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
On Oct 23, 3:26am, Vasiliy Ivanov wrote:
} Subject: Re: _history_complete_{newer,older} complains on "unmat ched" in
}
} % a='1 2'
} % ^D (seems history must be loaded from file to cause error)
As a workaround until the patch below makes it into release, it would
probably silence this "unmatched" (and possibly make your completions
more pleasing) if you "setopt HIST_LEX_WORDS" in your .zlogin file.
See the description of that option for details.
} $ zsh -f
} % export HISTSIZE=9000
} ...
} % compinit
} % *olo<^[/>
} _all_labels:39: unmatched '
} _all_labels:39: unmatched '
OK, this really isn't directly related to history completion, it's a
generic problem with compadd invoking the parser without first telling it
to be quiet. With HIST_LEX_WORDS the string being parsed would already
be a fully-quoted expression and the error would not occur in history
word completion (but might occur under other circumstances).
diff --git a/Src/Zle/compmatch.c b/Src/Zle/compmatch.c
index 4cd3b9f..05ae43a 100644
--- a/Src/Zle/compmatch.c
+++ b/Src/Zle/compmatch.c
@@ -1014,6 +1014,7 @@ comp_match(char *pfx, char *sfx, char *w, Patprog cp, Cline *clp, int qu,
Brinfo *bpl, int bcp, Brinfo *bsl, int bcs, int *exact)
{
char *r = NULL;
+ int onoerrs = noerrs;
if (cp) {
/* We have a globcomplete-like pattern, just use that. */
@@ -1033,12 +1034,14 @@ comp_match(char *pfx, char *sfx, char *w, Patprog cp, Cline *clp, int qu,
*/
teststr = dupstring(r);
tokenize(teststr);
+ noerrs = 1;
if (parse_subst_string(teststr))
teststr = r;
else {
remnulargs(teststr);
untokenize(teststr);
}
+ noerrs = onoerrs;
} else
teststr = r;
if (!pattry(cp, teststr))
Messages sorted by:
Reverse Date,
Date,
Thread,
Author