diff options
author | Peter Stephenson <pws@zsh.org> | 2016-09-13 09:42:24 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2016-09-13 09:42:24 +0100 |
commit | 1993a3cd2a7b479530da8f37f6fb3ea05a0efb71 (patch) | |
tree | 1b352222ea93c281cddae037a09847439a1ace2f /Src/parse.c | |
parent | 23c1c774b95861209fe97d1436b6563d5946f939 (diff) | |
download | zsh-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.c | 9 |
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); |