From 65bfa86efeeb2ec18ba82fd821ffd4c8f97fcd2b Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 24 Jan 2024 07:29:33 +0800 Subject: vim-patch:9.1.0046: :drop does not re-use empty buffer (#27165) Problem: :drop does not re-use empty buffer (Rocco Mao) Solution: Make :drop re-use an empty buffer (Rocco Mao) fixes: vim/vim#13851 closes: vim/vim#13881 https://github.com/vim/vim/commit/f96dc8d07f752ddd96d1447d85278a85255a1462 Co-authored-by: Rocco Mao --- src/nvim/arglist.c | 2 +- src/nvim/ex_cmds2.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/nvim/arglist.c b/src/nvim/arglist.c index 921d56ed78..e9108f72cc 100644 --- a/src/nvim/arglist.c +++ b/src/nvim/arglist.c @@ -477,7 +477,7 @@ static int do_arglist(char *str, int what, int after, bool will_edit) /// Redefine the argument list. void set_arglist(char *str) { - do_arglist(str, AL_SET, 0, false); + do_arglist(str, AL_SET, 0, true); } /// @return true if window "win" is editing the file at the current argument diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 234a927291..842f8a4297 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -799,8 +799,7 @@ static void script_host_do_range(char *name, exarg_T *eap) } /// ":drop" -/// Opens the first argument in a window. When there are two or more arguments -/// the argument list is redefined. +/// Opens the first argument in a window, and the argument list is redefined. void ex_drop(exarg_T *eap) { bool split = false; @@ -825,6 +824,8 @@ void ex_drop(exarg_T *eap) // edited in a window yet. It's like ":tab all" but without closing // windows or tabs. ex_all(eap); + cmdmod.cmod_tab = 0; + ex_rewind(eap); return; } @@ -845,6 +846,7 @@ void ex_drop(exarg_T *eap) buf_check_timestamp(curbuf); curbuf->b_p_ar = save_ar; } + ex_rewind(eap); return; } } -- cgit