diff options
-rw-r--r-- | src/arglist.c | 3 | ||||
-rw-r--r-- | src/testdir/test_arglist.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/arglist.c b/src/arglist.c index 24b0a870e2..af8ce740fc 100644 --- a/src/arglist.c +++ b/src/arglist.c @@ -910,6 +910,7 @@ do_arg_all( tabpage_T *old_curtab, *last_curtab; win_T *new_curwin = NULL; tabpage_T *new_curtab = NULL; + int prev_arglist_locked = arglist_locked; #ifdef FEAT_CMDWIN if (cmdwin_type != 0) @@ -936,6 +937,7 @@ do_arg_all( // watch out for its size to be changed. alist = curwin->w_alist; ++alist->al_refcount; + arglist_locked = TRUE; old_curwin = curwin; old_curtab = curtab; @@ -1155,6 +1157,7 @@ do_arg_all( // Remove the "lock" on the argument list. alist_unlink(alist); + arglist_locked = prev_arglist_locked; --autocmd_no_enter; diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim index b1f292975a..d29a228e6c 100644 --- a/src/testdir/test_arglist.vim +++ b/src/testdir/test_arglist.vim @@ -583,4 +583,11 @@ func Test_all_not_allowed_from_cmdwin() au! BufEnter endfunc +func Test_clear_arglist_in_all() + n 0 00 000 0000 00000 000000 + au! * 0 n 0 + all + au! * +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 05b8120a98..7277d2f092 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3884, +/**/ 3883, /**/ 3882, |