about summary refs log tree commit diff
path: root/Src/utils.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-11-05 15:25:55 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-11-05 15:25:55 +0000
commit0ed013b88644b953a8c9cef7051ca35251fad2d1 (patch)
treefbe0c54652fff7950b8f110a9bce0a5e35ead413 /Src/utils.c
parent231d6da07760e2a298d92d11b5f35173c74d1ad3 (diff)
downloadzsh-0ed013b88644b953a8c9cef7051ca35251fad2d1.tar.gz
zsh-0ed013b88644b953a8c9cef7051ca35251fad2d1.tar.xz
zsh-0ed013b88644b953a8c9cef7051ca35251fad2d1.zip
zsh-workers/8569
Diffstat (limited to 'Src/utils.c')
-rw-r--r--Src/utils.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/Src/utils.c b/Src/utils.c
index cbcdfc91e..cb279983b 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -3073,7 +3073,10 @@ bslashquote(const char *s, char **e, int instring)
 	  }
 	  continue;
 	}
-	else if (ispecial(*u) && (*u != '=' || u == s) &&
+	else if (ispecial(*u) &&
+		 ((*u != '=' && *u != '~') ||
+		  (u == s || (isset(MAGICEQUALSUBST) &&
+			      (u[-1] == '=' || u[-1] == ':')))) &&
 	    (!instring ||
 	     (isset(BANGHIST) && *u == (char)bangchar) ||
 	     (instring == 2 &&