vim-patch:8.1.1061: when substitute string throws error, substitute happens anyway

Problem:    When substitute string throws error, substitute happens anyway.
Solution:   Skip substitution when aborting. (closes vim/vim#4161)
0e97b94875
This commit is contained in:
Jan Edmund Lazo
2019-03-27 21:33:25 -04:00
parent 2894d04b19
commit 4b96002533
2 changed files with 36 additions and 0 deletions

View File

@@ -3831,6 +3831,12 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout,
sublen = vim_regsub_multi(&regmatch,
sub_firstlnum - regmatch.startpos[0].lnum,
sub, sub_firstline, false, p_magic, true);
// If getting the substitute string caused an error, don't do
// the replacement.
if (aborting()) {
goto skip;
}
// Don't keep flags set by a recursive call
subflags = subflags_save;
if (subflags.do_count) {