Mercurial > vim
changeset 10086:1de911ef1edf v7.4.2314
commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 3 16:59:06 2016 +0200
patch 7.4.2314
Problem: No error when deleting an augroup while it's the current one.
Solution: Disallow deleting an augroup when it's the current one.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 03 Sep 2016 17:00:07 +0200 |
parents | f7a4267983a4 |
children | 2a3569e47156 |
files | src/fileio.c src/testdir/test_autocmd.vim src/version.c |
diffstat | 3 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fileio.c +++ b/src/fileio.c @@ -8017,6 +8017,8 @@ au_del_group(char_u *name) i = au_find_group(name); if (i == AUGROUP_ERROR) /* the group doesn't exist */ EMSG2(_("E367: No such group: \"%s\""), name); + else if (i == current_augroup) + EMSG(_("E936: Cannot delete the current group")); else { event_T event;
--- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -182,13 +182,17 @@ func Test_augroup_warning() doautocmd VimEnter redir END call assert_true(match(res, "W19:") < 0) + au! VimEnter endfunc func Test_augroup_deleted() - " This caused a crash + " This caused a crash before E936 was introduced augroup x + call assert_fails('augroup! x', 'E936:') + au VimEnter * echo + augroup end augroup! x - au VimEnter * echo - au VimEnter + call assert_true(match(execute('au VimEnter'), "-Deleted-.*VimEnter") >= 0) + au! VimEnter endfunc