diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-04 09:38:14 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-04 09:38:14 +0000 |
commit | 2f76a51352acacc7618f771dfbe2144fed9f4acd (patch) | |
tree | 56763dbdc0abd35b669200673692bd03a84bac2f /Src/Zle | |
parent | 3259e583b0d8505c099ab76ca7cec264511c45e8 (diff) | |
download | zsh-2f76a51352acacc7618f771dfbe2144fed9f4acd.tar.gz zsh-2f76a51352acacc7618f771dfbe2144fed9f4acd.tar.xz zsh-2f76a51352acacc7618f771dfbe2144fed9f4acd.zip |
zsh-workers/9191
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/complete.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Src/Zle/complete.c b/Src/Zle/complete.c index bf3102972..afcec261a 100644 --- a/Src/Zle/complete.c +++ b/Src/Zle/complete.c @@ -435,7 +435,7 @@ static int bin_compadd(char *name, char **argv, char *ops, int func) { struct cadata dat; - char *p, **sp, *e, *m = NULL; + char *p, **sp, *e, *m = NULL, *mstr = NULL; int dm; Cmatcher match = NULL; @@ -590,13 +590,21 @@ bin_compadd(char *name, char **argv, char *ops, int func) zerrnam(name, e, NULL, *p); return 1; } - if (dm && (match = parse_cmatcher(name, m)) == pcm_err) { - match = NULL; - return 1; + if (dm) { + if (mstr) + mstr = tricat(mstr, " ", m); + else + mstr = ztrdup(m); } } } } + if (mstr && (match = parse_cmatcher(name, mstr)) == pcm_err) { + zsfree(mstr); + return 1; + } + zsfree(mstr); + ca_args: if (!*argv && !dat.group && |