diff src/ex_docmd.c @ 588:d133e7c550d0

updated for version 7.0167
author vimboss
date Sun, 11 Dec 2005 21:27:22 +0000
parents c85bf6a4999b
children fea48f63efc8
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -1806,6 +1806,20 @@ do_one_cmd(cmdlinep, sourcing,
 #endif
 			continue;
 
+	    case 'n':	if (!checkforcmd(&ea.cmd, "noautocmd", 3))
+			    break;
+#ifdef FEAT_AUTOCMD
+			if (cmdmod.save_ei == NULL)
+			{
+			    /* Set 'eventignore' to "all".  Don't free the
+			     * existing option value, we restore it later. */
+			    cmdmod.save_ei = vim_strsave(p_ei);
+			    set_string_option_direct((char_u *)"ei", -1,
+						   (char_u *)"all", OPT_FREE);
+			}
+#endif
+			continue;
+
 	    case 'r':	if (!checkforcmd(&ea.cmd, "rightbelow", 6))
 			    break;
 #ifdef FEAT_WINDOWS
@@ -2595,6 +2609,14 @@ doend:
 
     if (verbose_save >= 0)
 	p_verbose = verbose_save;
+#ifdef FEAT_AUTOCMD
+    if (cmdmod.save_ei != NULL)
+    {
+	/* Restore 'eventignore' to the value before ":noautocmd". */
+	set_string_option_direct((char_u *)"ei", -1, cmdmod.save_ei, OPT_FREE);
+	free_string_option(cmdmod.save_ei);
+    }
+#endif
 
     cmdmod = save_cmdmod;