summary refs log tree commit diff
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.tar.xz
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 == '*') {