changeset 6623:a532340f3940 v7.4.637

updated for version 7.4.637 Problem: Incorrectly read the number of buffer for which an autocommand should be registered. Solution: Reverse check for "<buffer=abuf>". (Lech Lorens)
author Bram Moolenaar <bram@vim.org>
date Tue, 17 Feb 2015 16:04:57 +0100
parents 3c312e259c79
children bc645ee095ea
files src/fileio.c src/version.c
diffstat 2 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -8527,21 +8527,22 @@ do_autocmd_event(event, pat, nested, 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);
 	    }
 	}
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    637,
+/**/
     636,
 /**/
     635,