From 55b419b871dd35f5b05dd2aed65f14461b493ba9 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 4 Oct 2020 19:56:39 +0200 Subject: 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) --- src/ex_cmds.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/ex_cmds.c') diff --git a/src/ex_cmds.c b/src/ex_cmds.c index c61f57533..a55fae709 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -2849,9 +2849,12 @@ do_ecmd( new_name = NULL; 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. u_sync(FALSE); if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, TRUE) -- cgit v1.2.1