mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 9.1.0192: drop: don't rewind when editing the same file
Problem: :drop tries to :rewind the argumentlist, which results in E37 (after v9.1.0046) Solution: instead of calling ex_rewind(), call open_buffer() only when re-using the initial empty buffer fixes: #14219 closes: #14220 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -5503,7 +5503,8 @@ ex_drop(exarg_T *eap)
|
||||
buf_check_timestamp(curbuf, FALSE);
|
||||
curbuf->b_p_ar = save_ar;
|
||||
}
|
||||
ex_rewind(eap);
|
||||
if (buf->b_ml.ml_flags & ML_EMPTY)
|
||||
open_buffer(FALSE, eap, 0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
10
src/testdir/dumps/Test_drop_modified_1.dump
Normal file
10
src/testdir/dumps/Test_drop_modified_1.dump
Normal file
@@ -0,0 +1,10 @@
|
||||
>T+0&#ffffff0|h|e| |q|u|i|c|k| |b|r|o|w|n| |f|o|x| |j|u|m|p|e|d| |o|v|e|r| |t|h|e| |l|a|z|y| |d|o|g|s| @29
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|:+0#0000000&|d|r|o|p| |X|d|r|o|p|_|m|o|d|i|f|i|e|d|.|t|x|t| @32|1|,|1| @10|A|l@1|
|
@@ -3,6 +3,7 @@
|
||||
source check.vim
|
||||
source shared.vim
|
||||
source term_util.vim
|
||||
source screendump.vim
|
||||
|
||||
func Test_ex_delete()
|
||||
new
|
||||
@@ -738,4 +739,19 @@ func Test_ex_address_range_overflow()
|
||||
call assert_fails(':--+foobar', 'E492:')
|
||||
endfunc
|
||||
|
||||
func Test_drop_modified_file()
|
||||
CheckScreendump
|
||||
let lines =<< trim END
|
||||
call setline(1, 'The quick brown fox jumped over the lazy dogs')
|
||||
END
|
||||
call writefile([''], 'Xdrop_modified.txt', 'D')
|
||||
call writefile(lines, 'Xtest_drop_modified', 'D')
|
||||
let buf = RunVimInTerminal('-S Xtest_drop_modified Xdrop_modified.txt', {'rows': 10,'columns': 40})
|
||||
call term_sendkeys(buf, ":drop Xdrop_modified.txt\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_drop_modified_1', {})
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
192,
|
||||
/**/
|
||||
191,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user