changeset 26250:3711e56f7e7b v8.2.3656

patch 8.2.3656: Vim9: no error for an evironment variable by itself Commit: https://github.com/vim/vim/commit/65259b5c6a8ad4edaf6eeb8dbb7b50342c64d403 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Nov 23 14:52:06 2021 +0000 patch 8.2.3656: Vim9: no error for an evironment variable by itself Problem: Vim9: no error for an evironment variable by itself. Solution: Give a "without effect" error. (closes https://github.com/vim/vim/issues/9166)
author Bram Moolenaar <Bram@vim.org>
date Tue, 23 Nov 2021 16:00:06 +0100
parents 785bcb1fe213
children 2f8126f528a1
files src/ex_eval.c src/testdir/test_vim9_cmd.vim src/version.c
diffstat 3 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -888,7 +888,8 @@ report_discard_pending(int pending, void
 }
 
 /*
- * Return TRUE if "arg" is only a variable, register or option name.
+ * Return TRUE if "arg" is only a variable, register, environment variable or
+ * option name.
  */
     int
 cmd_is_name_only(char_u *arg)
@@ -911,6 +912,8 @@ cmd_is_name_only(char_u *arg)
 	    if (STRNCMP("l:", p, 2) == 0 || STRNCMP("g:", p, 2) == 0)
 		p += 2;
 	}
+	else if (*p == '$')
+	    ++p;
 	get_name_len(&p, &alias, FALSE, FALSE);
     }
     name_only = ends_excmd2(arg, skipwhite(p));
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -584,6 +584,13 @@ def Test_use_register()
   END
   CheckDefAndScriptFailure(lines, 'E1207:', 2)
   &g:showbreak = ''
+
+  lines =<< trim END
+      $SomeEnv = 'value'
+      $SomeEnv
+  END
+  CheckDefAndScriptFailure(lines, 'E1207:', 2)
+  $SomeEnv = ''
 enddef
 
 def Test_environment_use_linebreak()
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3656,
+/**/
     3655,
 /**/
     3654,