diff options
author | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2021-07-23 20:27:38 +0100 |
---|---|---|
committer | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2021-07-23 20:27:38 +0100 |
commit | 50dc7f29131b668daaa82c02a826763e6e9a3a44 (patch) | |
tree | 79a96332f186551b2151567ca67258fd1db7a42d | |
parent | d9e5ef02040d846a7b1ea1f7283f57152859bd6c (diff) | |
download | zsh-50dc7f29131b668daaa82c02a826763e6e9a3a44.tar.gz zsh-50dc7f29131b668daaa82c02a826763e6e9a3a44.tar.xz zsh-50dc7f29131b668daaa82c02a826763e6e9a3a44.zip |
49182: Turn off correction inside command substition.
In "A=$(PWD)" we dont't have the information to correct at the level of the PWD subcommand, so don't try to do it as this causes a crash.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/hist.c | 7 | ||||
-rw-r--r-- | Src/lex.c | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index dd5012fbf..b0f838d5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2021-07-23 Peter Stephenson <p.w.stephenson@ntlworld.com> + + * 49182: Src/hist.c, Src/lex.c: Interactive word correction + doesn't work inside command substitution, so don't try to do it. + 2021-07-19 Eric Cook <llua@gmx.com> * 49147: Completion/Linux/Command/_modutils: fix the completion diff --git a/Src/hist.c b/Src/hist.c index 42cae030c..6ac581fda 100644 --- a/Src/hist.c +++ b/Src/hist.c @@ -339,6 +339,13 @@ hist_in_word(int yesno) histactive &= ~HA_INWORD; } +/**/ +int +hist_is_in_word(void) +{ + return (histactive & HA_INWORD) ? 1 : 0; +} + /* add a character to the current history word */ static void diff --git a/Src/lex.c b/Src/lex.c index 37fcec3e2..ece02659e 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -1889,6 +1889,7 @@ exalias(void) hwend(); if (interact && isset(SHINSTDIN) && !strin && incasepat <= 0 && tok == STRING && !nocorrect && !(inbufflags & INP_ALIAS) && + !hist_is_in_word() && (isset(CORRECTALL) || (isset(CORRECT) && incmdpos))) spckword(&tokstr, 1, incmdpos, 1); |