mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
vim-patch:8.2.1801: undo file not found when using ":args" or ":next"
Problem: Undo file not found when using ":args" or ":next".
Solution: Handle like editing another file. (closes vim/vim#7072)
55b419b871
This commit is contained in:
@@ -2497,8 +2497,12 @@ int do_ecmd(
|
||||
new_name = NULL;
|
||||
}
|
||||
set_bufref(&bufref, buf);
|
||||
if (p_ur < 0 || curbuf->b_ml.ml_line_count <= p_ur) {
|
||||
// Save all the text, so that the reload can be undone.
|
||||
|
||||
// If the buffer was used before, store the current contents so that
|
||||
// the reload can be undone. Do not do this if the (empty) buffer is
|
||||
// being re-used for another file.
|
||||
if (!(curbuf->b_flags & BF_NEVERLOADED)
|
||||
&& (p_ur < 0 || curbuf->b_ml.ml_line_count <= p_ur)) {
|
||||
// Sync first so that this is a separate undo-able action.
|
||||
u_sync(false);
|
||||
if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, true)
|
||||
|
@@ -392,6 +392,26 @@ func Test_rundo_errors()
|
||||
call delete('Xundofile')
|
||||
endfunc
|
||||
|
||||
func Test_undofile_next()
|
||||
set undofile
|
||||
new Xfoo.txt
|
||||
execute "norm ix\<c-g>uy\<c-g>uz\<Esc>"
|
||||
write
|
||||
bwipe
|
||||
|
||||
next Xfoo.txt
|
||||
call assert_equal('xyz', getline(1))
|
||||
silent undo
|
||||
call assert_equal('xy', getline(1))
|
||||
silent undo
|
||||
call assert_equal('x', getline(1))
|
||||
bwipe!
|
||||
|
||||
call delete('Xfoo.txt')
|
||||
call delete('.Xfoo.txt.un~')
|
||||
set undofile&
|
||||
endfunc
|
||||
|
||||
" Test for undo working properly when executing commands from a register.
|
||||
" Also test this in an empty buffer.
|
||||
func Test_cmd_in_reg_undo()
|
||||
|
Reference in New Issue
Block a user