about summary refs log tree commit diff
path: root/Src/parse.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-09-13 09:42:24 +0100
committerPeter Stephenson <pws@zsh.org>2016-09-13 09:42:24 +0100
commit1993a3cd2a7b479530da8f37f6fb3ea05a0efb71 (patch)
tree1b352222ea93c281cddae037a09847439a1ace2f /Src/parse.c
parent23c1c774b95861209fe97d1436b6563d5946f939 (diff)
downloadzsh-1993a3cd2a7b479530da8f37f6fb3ea05a0efb71.tar.gz
zsh-1993a3cd2a7b479530da8f37f6fb3ea05a0efb71.tar.xz
zsh-1993a3cd2a7b479530da8f37f6fb3ea05a0efb71.zip
39292: Distinguish "=" and "==" tests in output.
This is both in xtrace output and shell code rebuilt from
internal structures.
Diffstat (limited to 'Src/parse.c')
-rw-r--r--Src/parse.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Src/parse.c b/Src/parse.c
index 94ac04922..6e7d40e29 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -2498,12 +2498,17 @@ par_cond_triple(char *a, char *b, char *c)
 {
     int t0;
 
-    if ((b[0] == Equals || b[0] == '=') &&
-	(!b[1] || ((b[1] == Equals || b[1] == '=') && !b[2]))) {
+    if ((b[0] == Equals || b[0] == '=') && !b[1]) {
 	ecadd(WCB_COND(COND_STREQ, 0));
 	ecstr(a);
 	ecstr(c);
 	ecadd(ecnpats++);
+    } else if ((b[0] == Equals || b[0] == '=') &&
+	       (b[1] == Equals || b[1] == '=') && !b[2]) {
+	ecadd(WCB_COND(COND_STRDEQ, 0));
+	ecstr(a);
+	ecstr(c);
+	ecadd(ecnpats++);
     } else if (b[0] == '!' && (b[1] == Equals || b[1] == '=') && !b[2]) {
 	ecadd(WCB_COND(COND_STRNEQ, 0));
 	ecstr(a);