diff src/evalvars.c @ 27950:aacc98a38cf3 v8.2.4500

patch 8.2.4500: Vim9: can declare a global variable on the command line Commit: https://github.com/vim/vim/commit/0e1574c4069ded47c170fcd7a47a0df66693a5f4 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Mar 3 17:05:35 2022 +0000 patch 8.2.4500: Vim9: can declare a global variable on the command line Problem: Vim9: can declare a global variable on the command line. Solution: Disallow declaring a variable on the command line. (closes https://github.com/vim/vim/issues/9881)
author Bram Moolenaar <Bram@vim.org>
date Thu, 03 Mar 2022 18:15:03 +0100
parents c8d6c2736796
children 80f398bfc19f
line wrap: on
line diff
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -759,6 +759,11 @@ ex_var(exarg_T *eap)
 	semsg(_(e_str_cannot_be_used_in_legacy_vim_script), ":var");
 	return;
     }
+    if (current_sctx.sc_sid == 0)
+    {
+	emsg(_(e_cannot_declare_variable_on_command_line));
+	return;
+    }
     ex_let(eap);
 }
 
@@ -3440,7 +3445,7 @@ set_var_const(
 	if (in_vim9script() && is_export
 		&& SCRIPT_ID_VALID(current_sctx.sc_sid)
 		&& (si = SCRIPT_ITEM(current_sctx.sc_sid))
-						   ->sn_autoload_prefix != NULL)
+						  ->sn_autoload_prefix != NULL)
 	{
 	    // In a vim9 autoload script an exported variable is put in the
 	    // global namespace with the autoload prefix.