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);
 	}
     }