summaryrefslogtreecommitdiff
path: root/Src/Zle/computil.c
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-10 08:20:40 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2000-05-10 08:20:40 +0000
commit5b5c0e8fc9133b7b813902360fe9ded7d39f7317 (patch)
treef9eaa3f3aaebde4403f0a02f23273c39a604f9d4 /Src/Zle/computil.c
parentaa4a931544e21719ff9bc33c4f1fcef79eb31210 (diff)
downloadzsh-5b5c0e8fc9133b7b813902360fe9ded7d39f7317.tar.gz
zsh-5b5c0e8fc9133b7b813902360fe9ded7d39f7317.zip
fix for `-+opt' with mutex list (11294)
Diffstat (limited to 'Src/Zle/computil.c')
-rw-r--r--Src/Zle/computil.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 7f743492a..91149d2d2 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -651,7 +651,7 @@ parse_cadef(char *nam, char **args, int multi)
Caopt opt;
Caarg oargs = NULL;
int multi, otype = CAO_NEXT, again = 0;
- char *name, *descr, c;
+ char *name, *descr, c, *againp = NULL;
rec:
@@ -665,6 +665,7 @@ parse_cadef(char *nam, char **args, int multi)
p[2] != '=' && p[2] != '-' && p[2] != '+') {
/* It's a -+ or +- definition. We just execute the whole
* stuff twice for such things. */
+ againp = dupstring(p);
name = ++p;
*p = (again ? '-' : '+');
again++;
@@ -838,7 +839,7 @@ parse_cadef(char *nam, char **args, int multi)
if (again == 1) {
/* Do it all again for `*-...'. */
- p = dupstring(*args);
+ p = againp;
goto rec;
}
} else if (*p == '*') {