diff src/option.c @ 25176:af3d0198faad v8.2.3124

patch 8.2.3124: Vim9: no error for white space between option and "=9" Commit: https://github.com/vim/vim/commit/deb108ba0a8599c1307ddc1507c73e7b60f17d36 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jul 8 17:35:36 2021 +0200 patch 8.2.3124: Vim9: no error for white space between option and "=9" Problem: Vim9: no error for white space between option and "=9". Solution: Check for extraneous white space. (issue https://github.com/vim/vim/issues/8408)
author Bram Moolenaar <Bram@vim.org>
date Thu, 08 Jul 2021 17:45:03 +0200
parents b32c83317492
children 1e6da8364a02
line wrap: on
line diff
--- a/src/option.c
+++ b/src/option.c
@@ -1358,7 +1358,22 @@ do_set(
 	    // remember character after option name
 	    afterchar = arg[len];
 
-	    if (!in_vim9script())
+	    if (in_vim9script())
+	    {
+		char_u *p = skipwhite(arg + len);
+
+		// disallow white space before =val, +=val, -=val, ^=val
+		if (p > arg + len && (p[0] == '='
+			|| (vim_strchr((char_u *)"+-^", p[0]) != NULL
+							      && p[1] == '=')))
+		{
+		    errmsg = e_no_white_space_allowed_between_option_and;
+		    arg = p;
+		    startarg = p;
+		    goto skip;
+		}
+	    }
+	    else
 		// skip white space, allow ":set ai  ?", ":set hlsearch  !"
 		while (VIM_ISWHITE(arg[len]))
 		    ++len;