diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Zle/computil.c | 4 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 1 | ||||
-rw-r--r-- | Src/utils.c | 6 |
3 files changed, 7 insertions, 4 deletions
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c index aed3d9808..e1ce68865 100644 --- a/Src/Zle/computil.c +++ b/Src/Zle/computil.c @@ -812,8 +812,8 @@ ca_get_opt(Cadef d, char *line, int full, char **end) return p; } else { for (p = d->opts; p; p = p->next) - if (p->active && p->args && p->type != CAO_NEXT && - strpfx(p->name, line)) { + if (p->active && ((!p->args || p->type == CAO_NEXT) ? + !strcmp(p->name, line) : strpfx(p->name, line))) { if (end) { int l = strlen(p->name); diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index ebae044b9..be671ab50 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -5452,6 +5452,7 @@ set_comp_sep(void) if (compisuffix) s = dyncat(s, compisuffix); + untokenize(s); return sep_comp_string("", s, lip + lp, 0); } diff --git a/Src/utils.c b/Src/utils.c index 140d00d32..1162968fd 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -91,8 +91,10 @@ zwarnnam(const char *cmd, const char *fmt, const char *str, int num) nicezputs(scriptname ? scriptname : argzero, stderr); fputs(": ", stderr); } - nicezputs(cmd, stderr); - fputs(": ", stderr); + if (cmd) { + nicezputs(cmd, stderr); + fputs(": ", stderr); + } zerrmsg(fmt, str, num); } |