vim-patch:7.4.637 #2126

Problem:    Incorrectly read the number of buffer for which an autocommand
            should be registered.
Solution:   Reverse check for "<buffer=abuf>". (Lech Lorens)

https://code.google.com/p/vim/source/detail?r=v7-4-637
This commit is contained in:
Lech Lorens
2015-03-10 02:05:47 +01:00
committed by Justin M. Keyes
parent dda914fd6a
commit bdbbdb5888
2 changed files with 45 additions and 6 deletions

View File

@@ -5878,19 +5878,20 @@ static int do_autocmd_event(event_T event, char_u *pat, int nested, char_u *cmd,
is_buflocal = FALSE;
buflocal_nr = 0;
if (patlen >= 7 && STRNCMP(pat, "<buffer", 7) == 0
if (patlen >= 8 && STRNCMP(pat, "<buffer", 7) == 0
&& pat[patlen - 1] == '>') {
/* Error will be printed only for addition. printing and removing
* will proceed silently. */
/* "<buffer...>": Error will be printed only for addition.
* printing and removing will proceed silently. */
is_buflocal = TRUE;
if (patlen == 8)
/* "<buffer>" */
buflocal_nr = curbuf->b_fnum;
else if (patlen > 9 && pat[7] == '=') {
/* <buffer=abuf> */
if (patlen == 13 && STRNICMP(pat, "<buffer=abuf>", 13))
if (patlen == 13 && STRNICMP(pat, "<buffer=abuf>", 13) == 0)
/* "<buffer=abuf>" */
buflocal_nr = autocmd_bufnr;
/* <buffer=123> */
else if (skipdigits(pat + 8) == pat + patlen - 1)
/* "<buffer=123>" */
buflocal_nr = atoi((char *)pat + 8);
}
}

View File

@@ -178,6 +178,44 @@ static char *(features[]) = {
// clang-format off
static int included_patches[] = {
//658,
//657,
//656,
//655,
//654,
//653,
//652,
//651,
//650,
//649,
//648,
//647,
//646,
//645,
//644,
//643,
//642,
//641,
//640,
//639,
//638,
637,
//636,
//635,
//634,
//633,
//632,
//631,
//630,
//629,
//628,
//627,
//626,
//625,
//624,
//623,
//622,
//621,
//620,
//619,
//618,