diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-10-04 20:11:52 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-10-05 18:18:14 -0400 |
commit | 674844086b0bc76a8878c6365323afbdb08580d4 (patch) | |
tree | af993118cbec962ec20337771a4f8a7f958e75e3 /src/nvim/ex_cmds.c | |
parent | b35b7222eeee407d8170914cc44247c6cd194160 (diff) | |
download | rneovim-674844086b0bc76a8878c6365323afbdb08580d4.tar.gz rneovim-674844086b0bc76a8878c6365323afbdb08580d4.tar.bz2 rneovim-674844086b0bc76a8878c6365323afbdb08580d4.zip |
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)
https://github.com/vim/vim/commit/55b419b871dd35f5b05dd2aed65f14461b493ba9
Diffstat (limited to 'src/nvim/ex_cmds.c')
-rw-r--r-- | src/nvim/ex_cmds.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index 9be6adcd61..bb4e92efc0 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -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) |