0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

updated for version 7.3.438

Problem:    There is no way to avoid ":doautoall" reading modelines.
Solution:   Add the <nomodeline> argument. Adjust documentation.
This commit is contained in:
Bram Moolenaar
2012-02-12 00:18:58 +01:00
parent 28f2908d95
commit a61d5fbf7a
3 changed files with 25 additions and 10 deletions

View File

@@ -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*

View File

@@ -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);
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. */
* 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);

View File

@@ -714,6 +714,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
438,
/**/
437,
/**/