Mercurial > vim
diff src/ex_docmd.c @ 9260:ac8180818504 v7.4.1913
commit https://github.com/vim/vim/commit/1610d052413e0ed664498853a47acc2d677a22d1
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jun 9 22:53:01 2016 +0200
patch 7.4.1913
Problem: When ":doautocmd" is used modelines are used even when no
autocommands were executed. (Daniel Hahler)
Solution: Skip processing modelines. (closes https://github.com/vim/vim/issues/854)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 09 Jun 2016 23:00:05 +0200 |
parents | f7fb117883ba |
children | 78712a2f687a |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -5449,9 +5449,11 @@ ex_doautocmd(exarg_T *eap) { char_u *arg = eap->arg; int call_do_modelines = check_nomodeline(&arg); - - (void)do_doautocmd(arg, TRUE); - if (call_do_modelines) /* Only when there is no <nomodeline>. */ + int did_aucmd; + + (void)do_doautocmd(arg, TRUE, &did_aucmd); + /* Only when there is no <nomodeline>. */ + if (call_do_modelines && did_aucmd) do_modelines(0); } #endif @@ -11896,7 +11898,7 @@ ex_filetype(exarg_T *eap) } if (*arg == 'd') { - (void)do_doautocmd((char_u *)"filetypedetect BufRead", TRUE); + (void)do_doautocmd((char_u *)"filetypedetect BufRead", TRUE, NULL); do_modelines(0); } }