Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: _history_complete_{newer,older} complains on "unmat ched" in _all_labels if globbing



Vasiliy Ivanov wrote on Wed, Oct 22, 2014 at 14:53:37 +0600:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 10/22/14 12:43, Bart Schaefer wrote:
> > On Oct 22,  3:08am, Vasiliy Ivanov wrote: } } % typeset -a somevariable } % somevariable=(1 2
> > 3) } } % *mevar<_history-complete-older> (completed properly, 2 items suggested -
> > 'somevariable=(' and } 'somevariable', guessed because expand prefix suffix style) } } but
> > fires hundreds of messages: } _all_labels:39: closing brace expected } ... } _all_labels:39:
> > unmatched ' } ... } _all_labels:39: unmatched " } } reproducible with any globbing syntax, zsh
> > 5.0.7
> > 
> > There's something else about your configuration that you're not telling us, because I can't get
> > any completions at all for *mevar unless I "setopt globcomplete", and I don't get any error
> > messages even with that set.
> > 
> > Line 39 of _all_labels is
> > 
> > "${(@)argv[4,__pre]}" "${(P@)2}" "${(@)argv[__suf,-1]}" && __ret=0
> > 
> > which ends up substituting into something like
> > 
> > +_all_labels:39> compadd -1 -V -default- -X '%SCompleting %Uhistory word%u%s' -Q -a
> > 'historywords[beg,beg+slice]' +_all_labels:39> __ret=0
> > 
> > (though in your case the assignment to __ret is likely not happening)
> > 
> 
> I was able to reproduce with zsh -f and minimal configuration:
> 
> % setopt globcomplete
> % autoload -U compinit
> % compinit
> 
> but *only* with my existing (2300+ records) history file; starting with empty one doesn't throw
> these messages.
> Line 39 in my case is «compadd -1 -V -default- -Q -a historywords[beg,beg+slice]»
> 
> How can I debug this further (which history records leads to «unmatched» messages)?
> Any hints will be extremely helpful.

Have you tried a binary search?

That is: split the history file to two roughly equal parts and try each
one of them to see if it reproduces the error.  It is likely that
exactly one of the two halves will reproduce the error.  Repeat the
bifurcation process recursively within that half until you narrow the
problem to a single history entry.

Cheers,

Daniel



Messages sorted by: Reverse Date, Date, Thread, Author