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