changeset 10058:65e43481d7de v7.4.2300

commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 1 16:21:48 2016 +0200 patch 7.4.2300 Problem: Get warning for deleting autocommand group when the autocommand using the group is scheduled for deletion. (Pavol Juhas) Solution: Check for deleted autocommand.
author Christian Brabandt <cb@256bit.org>
date Thu, 01 Sep 2016 16:30:08 +0200
parents e9eb10b6757d
children f49517582678
files src/fileio.c src/testdir/test_autocmd.vim src/version.c
diffstat 3 files changed, 18 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -8018,7 +8018,7 @@ au_del_group(char_u *name)
 					    event = (event_T)((int)event + 1))
 	{
 	    for (ap = first_autopat[(int)event]; ap != NULL; ap = ap->next)
-		if (ap->group == i)
+		if (ap->group == i && ap->pat != NULL)
 		{
 		    give_warning((char_u *)_("W19: Deleting augroup that is still in use"), TRUE);
 		    in_use = TRUE;
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -152,6 +152,11 @@ func Test_early_bar()
   call assert_equal(1, len(split(execute('au vimBarTest'), "\n")))
 endfunc
 
+func RemoveGroup()
+  autocmd! StartOK
+  augroup! StartOK
+endfunc
+
 func Test_augroup_warning()
   augroup TheWarning
     au VimEnter * echo 'entering'
@@ -167,4 +172,14 @@ func Test_augroup_warning()
   augroup Another
   augroup END
   call assert_true(match(execute('au VimEnter'), "-Deleted-.*VimEnter") >= 0)
+
+  " no warning for postpone aucmd delete
+  augroup StartOK
+    au VimEnter * call RemoveGroup()
+  augroup END
+  call assert_true(match(execute('au VimEnter'), "StartOK.*VimEnter") >= 0)
+  redir => res
+  doautocmd VimEnter
+  redir END
+  call assert_true(match(res, "W19:") < 0)
 endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2300,
+/**/
     2299,
 /**/
     2298,