vim-patch:7.4.1913 (#5260)

Problem:    When ":doautocmd" is used modelines are used even when no
            autocommands were executed. (Daniel Hahler)
Solution:   Skip processing modelines. (closes vim/vim#854)

1610d05241
This commit is contained in:
Jurica Bradarić
2016-09-04 23:43:41 +02:00
committed by Justin M. Keyes
parent 0f381f26cb
commit 73b8424fad
4 changed files with 33 additions and 19 deletions

View File

@@ -4364,12 +4364,15 @@ static void ex_autocmd(exarg_T *eap)
*/
static void ex_doautocmd(exarg_T *eap)
{
char_u *arg = eap->arg;
char_u *arg = eap->arg;
int call_do_modelines = check_nomodeline(&arg);
bool did_aucmd;
(void)do_doautocmd(arg, TRUE);
if (call_do_modelines) /* Only when there is no <nomodeline>. */
(void)do_doautocmd(arg, true, &did_aucmd);
// Only when there is no <nomodeline>.
if (call_do_modelines && did_aucmd) {
do_modelines(0);
}
}
/*
@@ -9464,7 +9467,7 @@ static void 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);
}
} else if (STRCMP(arg, "off") == 0) {