zsh-workers
 help / color / mirror / code / Atom feed
* _history-complete-older buggy
@ 2008-11-23 12:01 Mikael Magnusson
  2008-11-23 18:37 ` Bart Schaefer
  2008-11-23 18:51 ` Bart Schaefer
  0 siblings, 2 replies; 5+ messages in thread
From: Mikael Magnusson @ 2008-11-23 12:01 UTC (permalink / raw)
  To: zsh-workers

If i type a * and press _history-complete-older, i get this output

_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: closing brace expected
_all_labels:39: closing brace expected
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: closing brace expected
_all_labels:39: closing brace expected
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: closing brace expected
_all_labels:39: closing brace expected
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched "
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched `
_all_labels:39: unmatched `
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '
_all_labels:39: unmatched '

and after waiting maybe 15-20 seconds, it does give some set of
completions that do and do not start with a *. It might simply be all
words in my history. Words that do not contain a glob character seem
to work fine. Pressing the widget with an empty command line is also
very slow and non-ctrl-c-able.

Line 39 in _all_labels is
    "${(@)argv[4,__pre]}" "${(P@)2}" "${(@)argv[__suf,-1]}" && __ret=0
That file is wonderful to read btw, my only complaint is that it is
perhaps a bit sparsely commented.

With set -x, zsh tells me
+_all_labels:39> compadd -M 'm:{a-zA-Z}={A-Za-z}' -V history-words -X
'%B---- history word%b' -Q -a 'historywords[beg,beg+slice]'
just before the big unmatched output (and the same when it works,
although sometimes the -M argument has 'r:|[._-]=* r:|=*' +'l:|=*
r:|=*' in it too).

I didn't try _history-complete-newer or a minimal .zshrc yet.

-- 
Mikael Magnusson


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: _history-complete-older buggy
  2008-11-23 12:01 _history-complete-older buggy Mikael Magnusson
@ 2008-11-23 18:37 ` Bart Schaefer
  2008-11-23 20:50   ` Mikael Magnusson
  2008-11-23 18:51 ` Bart Schaefer
  1 sibling, 1 reply; 5+ messages in thread
From: Bart Schaefer @ 2008-11-23 18:37 UTC (permalink / raw)
  To: zsh-workers

On Nov 23,  1:01pm, Mikael Magnusson wrote:
}
} If i type a * and press _history-complete-older, i get this output

My guess is that this is going to be another case of some setting that
you use that is going to need turning off in _comp_options, or the
like.  Yep, I can duplicate your error if I "setopt glob_complete".

} and after waiting maybe 15-20 seconds, it does give some set of
} completions that do and do not start with a *. It might simply be all
} words in my history.

It almost certainly is.  You've asked for globbing completion, so the
* is being interpreted as a pattern, and guess what it matches?

What's your HISTSIZE setting?

The completion is in fact scanning the $historywords array, which is
all words in your history, so the more enormous your history compared
to the amount of memory and processor speed you have, the more poorly
this completion is going to behave.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: _history-complete-older buggy
  2008-11-23 12:01 _history-complete-older buggy Mikael Magnusson
  2008-11-23 18:37 ` Bart Schaefer
@ 2008-11-23 18:51 ` Bart Schaefer
  2008-11-24 10:02   ` Peter Stephenson
  1 sibling, 1 reply; 5+ messages in thread
From: Bart Schaefer @ 2008-11-23 18:51 UTC (permalink / raw)
  To: zsh-workers

On Nov 23,  1:01pm, Mikael Magnusson wrote:
}
} If i type a * and press _history-complete-older, i get this output
} 
} _all_labels:39: unmatched "

The error is coming from here:

#0  zerr (fmt=0x813efdb "unmatched %c") at ../../zsh-4.0/Src/utils.c:149
#1  0x08086521 in gettokstr (c=1, sub=1) at ../../zsh-4.0/Src/lex.c:1363
#2  0x08086ef7 in parse_subst_string (s=0xb7cc4b68 "71.134.26.26\232\212")
    at ../../zsh-4.0/Src/lex.c:1629
#3  0x080fa52f in comp_match (pfx=0xb7d03738 "*", sfx=0xb7d03740 "", 
    w=0xb7cd8860 "71.134.26.26\"$", cp=0xb7d03700, clp=0xbfede8bc, qu=0, 
    bpl=0xbfede880, bcp=0, bsl=0xbfede878, bcs=0, exact=0xbfede8cc)
    at ../../../zsh-4.0/Src/Zle/compmatch.c:1036
#4  0x080f52b5 in addmatches (dat=0xbfede9a0, argv=0xb7cde394)
    at ../../../zsh-4.0/Src/Zle/compcore.c:2420
#5  0x080ed8b5 in bin_compadd (name=0xb7cf2db0 "compadd", argv=0xbfedea3c, 
    ops=0xbfedea90, func=0) at ../../../zsh-4.0/Src/Zle/complete.c:742

I note this comment in comp_match():

	     * Almost certainly this fails in some complicated cases
	     * but it should catch the basic ones.

I wonder if comp_match() should set noerrs before parse_subst_string()?
Or perhaps there's a more comprehensive (and less hackish) fix.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: _history-complete-older buggy
  2008-11-23 18:37 ` Bart Schaefer
@ 2008-11-23 20:50   ` Mikael Magnusson
  0 siblings, 0 replies; 5+ messages in thread
From: Mikael Magnusson @ 2008-11-23 20:50 UTC (permalink / raw)
  To: zsh-workers

2008/11/23 Bart Schaefer <schaefer@brasslantern.com>:
> On Nov 23,  1:01pm, Mikael Magnusson wrote:
> }
> } If i type a * and press _history-complete-older, i get this output
>
> My guess is that this is going to be another case of some setting that
> you use that is going to need turning off in _comp_options, or the
> like.  Yep, I can duplicate your error if I "setopt glob_complete".
>
> } and after waiting maybe 15-20 seconds, it does give some set of
> } completions that do and do not start with a *. It might simply be all
> } words in my history.
>
> It almost certainly is.  You've asked for globbing completion, so the
> * is being interpreted as a pattern, and guess what it matches?

Ah, I see.

When i say [*] i get words that start with a *, but when i say \** i
only get words that a) start with a * and b) contains a second *
somewhere.

Holding down tab to cycle the list, I get an increasingly long word
forming on the command line. Seems it loses track of what is part of
the completion word. This is what i got after a few seconds,
*.cue`*~og*|*/*.ogg|*/01*|*|*/*.ogg|*/*.mp3|*/ogg/*.jpg|*/ogg/frommp3_320|*.jpg|*/*.ogg&**/_wget

> What's your HISTSIZE setting?

13000

> The completion is in fact scanning the $historywords array, which is
> all words in your history, so the more enormous your history compared
> to the amount of memory and processor speed you have, the more poorly
> this completion is going to behave.

It also depends on how fast the code is :)
http://googleblog.blogspot.com/2008/11/sorting-1pb-with-mapreduce.html

-- 
Mikael Magnusson


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: _history-complete-older buggy
  2008-11-23 18:51 ` Bart Schaefer
@ 2008-11-24 10:02   ` Peter Stephenson
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Stephenson @ 2008-11-24 10:02 UTC (permalink / raw)
  To: zsh-workers

On Sun, 23 Nov 2008 10:51:16 -0800
Bart Schaefer <schaefer@brasslantern.com> wrote:
> On Nov 23,  1:01pm, Mikael Magnusson wrote:
> }
> } If i type a * and press _history-complete-older, i get this output
> } 
> } _all_labels:39: unmatched "
>
> I note this comment in comp_match():
> 
> 	     * Almost certainly this fails in some complicated cases
> 	     * but it should catch the basic ones.
> 
> I wonder if comp_match() should set noerrs before parse_subst_string()?
> Or perhaps there's a more comprehensive (and less hackish) fix.

Unfortunately quotation in completion has proved too horrific for me even
to be able to make it better rather than worse so far...  I didn't look at
this particular example, but the similar case of nested quotes was using up
vast amounts of my time without me really getting very far.  I suspect,
without looking at this case in detail, that the noerrs route and an
extended comment is the best that's likely to happen this side of the
fourth millenium.  It's possible there's a local fix of some sort; finding
it is another matter.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-11-24 10:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-23 12:01 _history-complete-older buggy Mikael Magnusson
2008-11-23 18:37 ` Bart Schaefer
2008-11-23 20:50   ` Mikael Magnusson
2008-11-23 18:51 ` Bart Schaefer
2008-11-24 10:02   ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).