summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2012-02-12 00:18:58 +0100
committerBram Moolenaar <bram@vim.org>2012-02-12 00:18:58 +0100
commit30907936e36897e6e247bb17e75672bf21b6e959 (patch)
tree1c846b92ba00623ca649477096a8ad5c59782bd8
parent2d37f5850c4493acf3e0ce7ffcc9e1ca4df80e83 (diff)
downloadvim-30907936e36897e6e247bb17e75672bf21b6e959.tar.gz
updated for version 7.3.438v7.3.438v7-3-438
Problem: There is no way to avoid ":doautoall" reading modelines. Solution: Add the <nomodeline> argument. Adjust documentation.
-rw-r--r--runtime/doc/autocmd.txt13
-rw-r--r--src/fileio.c20
-rw-r--r--src/version.c2
3 files changed, 25 insertions, 10 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index ff0b403e..1e2bc773 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1073,13 +1073,8 @@ option will not cause any commands to be executed.
autocommands for that group. Note: if you use an
undefined group name, Vim gives you an error message.
- After applying the autocommands the modelines are
- processed, so that their settings overrule the
- settings from autocommands, like what happens when
- editing a file.
-
*:doautoa* *:doautoall*
-:doautoa[ll] [group] {event} [fname]
+:doautoa[ll] [<nomodeline>] [group] {event} [fname]
Like ":doautocmd", but apply the autocommands to each
loaded buffer. Note that [fname] is used to select
the autocommands, not the buffers to which they are
@@ -1090,6 +1085,12 @@ option will not cause any commands to be executed.
This command is intended for autocommands that set
options, change highlighting, and things like that.
+ After applying the autocommands the modelines are
+ processed, so that their settings overrule the
+ settings from autocommands, like what happens when
+ editing a file. This is skipped when the <nomodeline>
+ argument is present.
+
==============================================================================
10. Using autocommands *autocmd-use*
diff --git a/src/fileio.c b/src/fileio.c
index 8ed878d7..6d1bbbc1 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -8739,6 +8739,14 @@ ex_doautoall(eap)
int retval;
aco_save_T aco;
buf_T *buf;
+ char_u *arg = eap->arg;
+ int call_do_modelines = TRUE;
+
+ if (STRNCMP(arg, "<nomodeline>", 12) == 0)
+ {
+ call_do_modelines = FALSE;
+ arg = skipwhite(arg + 12);
+ }
/*
* This is a bit tricky: For some commands curwin->w_buffer needs to be
@@ -8755,11 +8763,15 @@ ex_doautoall(eap)
aucmd_prepbuf(&aco, buf);
/* execute the autocommands for this buffer */
- retval = do_doautocmd(eap->arg, FALSE);
+ retval = do_doautocmd(arg, FALSE);
- /* Execute the modeline settings, but don't set window-local
- * options if we are using the current window for another buffer. */
- do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+ if (call_do_modelines)
+ {
+ /* Execute the modeline settings, but don't set window-local
+ * options if we are using the current window for another
+ * buffer. */
+ do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+ }
/* restore the current window */
aucmd_restbuf(&aco);
diff --git a/src/version.c b/src/version.c
index 59498a4c..bce741c0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 438,
+/**/
437,
/**/
436,