diff src/ex_docmd.c @ 23513:872239543313 v8.2.2299

patch 8.2.2299: Vim9: invalid memory access making error message flaky Commit: https://github.com/vim/vim/commit/d1510ee9469f623c872a18b6e3c3666c0fb23c58 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jan 4 16:15:58 2021 +0100 patch 8.2.2299: Vim9: invalid memory access making error message flaky Problem: Vim9: invalid memory access making error message flaky. Solution: Do not check cmd_argt for CMD_USER. (issue https://github.com/vim/vim/issues/7467)
author Bram Moolenaar <Bram@vim.org>
date Mon, 04 Jan 2021 16:30:03 +0100
parents bb29b09902d5
children 7f0fc2ab90e3
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2025,7 +2025,7 @@ do_one_cmd(
     if (p == NULL)
     {
 	if (!ea.skip)
-	    errormsg = _("E464: Ambiguous use of user-defined command");
+	    errormsg = _(e_ambiguous_use_of_user_defined_command);
 	goto doend;
     }
     // Check for wrong commands.
@@ -3531,9 +3531,11 @@ find_ex_command(
 	eap->cmdidx = CMD_finally;
 
 #ifdef FEAT_EVAL
-    if (eap->cmdidx != CMD_SIZE && in_vim9script()
+    if (eap->cmdidx < CMD_SIZE
+	    && in_vim9script()
 	    && !IS_WHITE_OR_NUL(*p) && *p != '\n' && *p != '!'
-	    && (cmdnames[eap->cmdidx].cmd_argt & EX_NONWHITE_OK) == 0)
+	    && (eap->cmdidx < 0 ||
+		(cmdnames[eap->cmdidx].cmd_argt & EX_NONWHITE_OK) == 0))
     {
 	semsg(_(e_command_not_followed_by_white_space_str), eap->cmd);
 	eap->cmdidx = CMD_SIZE;