vim-patch:9.0.1877: missing test for patch 9.0.1873

Problem:  missing test for patch 9.0.1873
Solution: add a test trying to exchange windows

Add a test, making sure that switching windows is not allowed when
textlock is active, e.g. when running `:s/<pat>/\=func()/`

18d2709aa1

Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq 2023-09-09 17:51:02 +08:00
parent b7734c4ec8
commit bc09fc04b8
3 changed files with 22 additions and 0 deletions

View File

@ -3888,6 +3888,10 @@ static int do_sub(exarg_T *eap, const proftime_T timeout, const long cmdpreview_
nmatch = curbuf->b_ml.ml_line_count - sub_firstlnum + 1;
current_match.end.lnum = sub_firstlnum + (linenr_T)nmatch;
skip_match = true;
// safety check
if (nmatch < 0) {
goto skip;
}
}
// Save the line numbers for the preview buffer

View File

@ -1884,6 +1884,10 @@ static void win_exchange(int Prenum)
beep_flush();
return;
}
if (text_or_buf_locked()) {
beep_flush();
return;
}
frame_T *frp;

View File

@ -1425,4 +1425,18 @@ func Test_z_substitute_expr_leak()
delfunc SubExpr
endfunc
func Test_substitute_expr_switch_win()
func R()
wincmd x
return 'XXXX'
endfunc
new Xfoobar
let bufnr = bufnr('%')
put ="abcdef"
silent! s/\%')/\=R()
call assert_fails(':%s/./\=R()/g', 'E565')
delfunc R
exe bufnr .. "bw!"
endfunc
" vim: shiftwidth=2 sts=2 expandtab