diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2007-10-03 16:18:38 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2007-10-03 16:18:38 +0000 |
commit | 91b9f3d7866c8c27c693d65ae1f42609227b907b (patch) | |
tree | 5b9bee2cf48bb51da0cd1710b230117a38e1d310 /Src | |
parent | 0245917d65c5007d7e42745fe1c106ed2e8d32e3 (diff) | |
download | zsh-91b9f3d7866c8c27c693d65ae1f42609227b907b.tar.gz zsh-91b9f3d7866c8c27c693d65ae1f42609227b907b.tar.xz zsh-91b9f3d7866c8c27c693d65ae1f42609227b907b.zip |
23900: Better handling of NO_EQUALS in old completion
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Zle/compctl.c | 2 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c index 143c93682..57bfccd49 100644 --- a/Src/Zle/compctl.c +++ b/Src/Zle/compctl.c @@ -3501,7 +3501,7 @@ makecomplistflags(Compctl cc, char *s, int incmd, int compadd) p++; /* Get the pattern string. */ tokenize(g = dupstrpfx(g, p - g)); - if (*g == '=') + if (*g == '=' && isset(EQUALS)) *g = Equals; if (*g == '~') *g = Tilde; diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index b3b1dfd3e..09e4ae8e1 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -1608,6 +1608,13 @@ get_comp_string(void) *q = Bnull; } } + /* + * Leading "=" gets tokenized in case the EQUALS options + * changes afterwards. It's too late for that now, so restore it + * to a plain "=" if the option is unset. + */ + if (*s == Equals && !isset(EQUALS)) + *s = '='; /* While building the quoted form, we also clean up the command line. */ for (p = s, i = wb, j = 0; *p; p++, i++) { int skipchars; |