*** ../vim-7.3.437/src/fileio.c 2012-02-11 23:45:30.000000000 +0100
--- src/fileio.c 2012-02-12 00:08:17.000000000 +0100
***************
*** 8739,8744 ****
--- 8739,8752 ----
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,8765 ****
aucmd_prepbuf(&aco, buf);
/* execute the autocommands for this buffer */
! retval = do_doautocmd(eap->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);
/* restore the current window */
aucmd_restbuf(&aco);
--- 8763,8777 ----
aucmd_prepbuf(&aco, buf);
/* execute the autocommands for this buffer */
! retval = do_doautocmd(arg, FALSE);
! 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);
*** ../vim-7.3.437/runtime/doc/autocmd.txt 2011-05-19 17:25:36.000000000 +0200
--- runtime/doc/autocmd.txt 2012-02-12 00:03:45.000000000 +0100
***************
*** 1065,1077 ****
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]
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
--- 1073,1080 ----
autocommands for that group. Note: if you use an
undefined group name, Vim gives you an error message.
*:doautoa* *:doautoall*
! :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
***************
*** 1082,1087 ****
--- 1085,1096 ----
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*
*** ../vim-7.3.437/src/version.c 2012-02-11 23:45:30.000000000 +0100
--- src/version.c 2012-02-12 00:16:04.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 438,
/**/
--
"Oh, no! NOT the Spanish Inquisition!"
"NOBODY expects the Spanish Inquisition!!!"
-- Monty Python sketch --
"Oh, no! NOT another option!"
"EVERYBODY expects another option!!!"
-- Discussion in vim-dev mailing list --
/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Thank you for the fix. But this patch deals with only
:doautoall. :doautocmd should be fixed too.
And the new document does not describe the reason about
reading modelines. It might perplex new users who have the
same question like me. It's better to add more description.
I wrote a patch to supplement the above points.
See the attachement for the details. How do you think?
--
To Vim, or not to Vim.
kana <http://whileimautomaton.net/>
> On Sun, Feb 12, 2012 at 8:19 AM, Bram Moolenaar <Br...@moolenaar.net> wrote:
> >
> > Patch 7.3.438
> > Problem: There is no way to avoid ":doautoall" reading modelines.
> > Solution: Add the <nomodeline> argument. Adjust documentation.
> > Files: src/fileio.c, runtime/doc/autocmd.txt
>
> Thank you for the fix. But this patch deals with only
> :doautoall. :doautocmd should be fixed too.
I thought :doautocmd did not read modelines. But I looked in the wrong
place, the code was inconsistent. Thanks for pointing out what I
overlooked.
> And the new document does not describe the reason about
> reading modelines. It might perplex new users who have the
> same question like me. It's better to add more description.
>
> I wrote a patch to supplement the above points.
> See the attachement for the details. How do you think?
I think the check for <nomodeline> should be in one place.
--
hundred-and-one symptoms of being an internet addict:
44. Your friends no longer send you e-mail...they just log on to your IRC
channel.