mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
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:
@@ -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;
|
nmatch = curbuf->b_ml.ml_line_count - sub_firstlnum + 1;
|
||||||
current_match.end.lnum = sub_firstlnum + (linenr_T)nmatch;
|
current_match.end.lnum = sub_firstlnum + (linenr_T)nmatch;
|
||||||
skip_match = true;
|
skip_match = true;
|
||||||
|
// safety check
|
||||||
|
if (nmatch < 0) {
|
||||||
|
goto skip;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save the line numbers for the preview buffer
|
// Save the line numbers for the preview buffer
|
||||||
|
@@ -1884,6 +1884,10 @@ static void win_exchange(int Prenum)
|
|||||||
beep_flush();
|
beep_flush();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (text_or_buf_locked()) {
|
||||||
|
beep_flush();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
frame_T *frp;
|
frame_T *frp;
|
||||||
|
|
||||||
|
@@ -1425,4 +1425,18 @@ func Test_z_substitute_expr_leak()
|
|||||||
delfunc SubExpr
|
delfunc SubExpr
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
Reference in New Issue
Block a user