From 11ecfb4d94d6aa5dc42156a5e1c57b8d0bfc0223 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Tue, 14 Sep 1999 14:55:37 +0000 Subject: zsh-workers/7827 --- Src/Zle/compctl.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'Src/Zle/compctl.c') diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c index 942a289f6..50cdadf26 100644 --- a/Src/Zle/compctl.c +++ b/Src/Zle/compctl.c @@ -230,18 +230,24 @@ parse_cmatcher(char *name, char *s) &err); if (err) return pcm_err; - if (!*s || !*++s) { - zwarnnam(name, ((fl & CMF_RIGHT) ? "missing right anchor" : "missing word pattern"), NULL, 0); - return pcm_err; + if ((fl & CMF_RIGHT) && (!*s || !*++s)) { + zwarnnam(name, "missing right anchor", NULL, 0); + } else if (!(fl & CMF_RIGHT)) { + if (!*s) { + zwarnnam(name, "missing word pattern", NULL, 0); + return pcm_err; + } + s++; } if (fl & CMF_RIGHT) { right = parse_pattern(name, &s, &ral, '=', &err); if (err) return pcm_err; - if (!*s || !*++s) { + if (!*s) { zwarnnam(name, "missing word pattern", NULL, 0); return pcm_err; } + s++; } else right = NULL; @@ -1726,7 +1732,7 @@ bin_compadd(char *name, char **argv, char *ops, int func) return 1; } dat.ipre = dat.isuf = dat.ppre = dat.psuf = dat.prpre = - dat.pre = dat.suf = dat.group = dat.rems = dat.remf = + dat.pre = dat.suf = dat.group = dat.rems = dat.remf = dat.disp = dat.ign = dat.exp = dat.apar = dat.opar = dat.dpar = dat.ylist = NULL; dat.match = NULL; dat.flags = 0; @@ -1840,6 +1846,13 @@ bin_compadd(char *name, char **argv, char *ops, int func) sp = &(dat.dpar); e = "parameter name expected after -%c"; break; + case 'd': + sp = &(dat.disp); + e = "parameter name expected after -%c"; + break; + case 'l': + dat.flags |= CMF_DISPLINE; + break; case '-': argv++; goto ca_args; -- cgit 1.4.1