aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/regexp.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-01-25 16:18:58 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-01-25 16:18:58 +0800
commitd11bbacf0ffa45096364195bda4739984d25121e (patch)
treead1eba2f9daaec6c0e91830415ce1db445f83ec9 /src/nvim/regexp.c
parentecec957125ca95ef5fbc4534d62ed16cfedb0c44 (diff)
downloadrneovim-d11bbacf0ffa45096364195bda4739984d25121e.tar.gz
rneovim-d11bbacf0ffa45096364195bda4739984d25121e.tar.bz2
rneovim-d11bbacf0ffa45096364195bda4739984d25121e.zip
fix(inccommand): do not change reg_prev_sub when previewing
Diffstat (limited to 'src/nvim/regexp.c')
-rw-r--r--src/nvim/regexp.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index 45e580dbee..9bea54ad2c 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -6538,11 +6538,16 @@ char_u *regtilde(char_u *source, int magic)
}
}
- xfree(reg_prev_sub);
- if (newsub != source) /* newsub was allocated, just keep it */
- reg_prev_sub = newsub;
- else /* no ~ found, need to save newsub */
- reg_prev_sub = vim_strsave(newsub);
+ // Only change reg_prev_sub when not previewing.
+ if (!(State & CMDPREVIEW)) {
+ xfree(reg_prev_sub);
+ if (newsub != source) { // newsub was allocated, just keep it
+ reg_prev_sub = newsub;
+ } else { // no ~ found, need to save newsub
+ reg_prev_sub = vim_strsave(newsub);
+ }
+ }
+
return newsub;
}