forked from aniani/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 #7072)
This commit is contained in:
@@ -2849,9 +2849,12 @@ do_ecmd(
|
|||||||
new_name = NULL;
|
new_name = NULL;
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
|
|
||||||
if (p_ur < 0 || curbuf->b_ml.ml_line_count <= p_ur)
|
// 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))
|
||||||
{
|
{
|
||||||
// Save all the text, so that the reload can be undone.
|
|
||||||
// Sync first so that this is a separate undo-able action.
|
// Sync first so that this is a separate undo-able action.
|
||||||
u_sync(FALSE);
|
u_sync(FALSE);
|
||||||
if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, TRUE)
|
if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, TRUE)
|
||||||
|
@@ -396,6 +396,26 @@ func Test_rundo_errors()
|
|||||||
call delete('Xundofile')
|
call delete('Xundofile')
|
||||||
endfunc
|
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.
|
" Test for undo working properly when executing commands from a register.
|
||||||
" Also test this in an empty buffer.
|
" Also test this in an empty buffer.
|
||||||
func Test_cmd_in_reg_undo()
|
func Test_cmd_in_reg_undo()
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1801,
|
||||||
/**/
|
/**/
|
||||||
1800,
|
1800,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user