changeset 24543:b3bd27751e09 v8.2.2811

patch 8.2.2811: Vim9: error for missing white space doesn't say where Commit: https://github.com/vim/vim/commit/b98cec28d95b2184c64a0646458c1e62deb2524b Author: Bram Moolenaar <Bram@vim.org> Date: Sun Apr 25 16:35:55 2021 +0200 patch 8.2.2811: Vim9: error for missing white space doesn't say where Problem: Vim9: error for missing white space doesn't say where it is missing Solution: Mention the command. (closes #8149)
author Bram Moolenaar <Bram@vim.org>
date Sun, 25 Apr 2021 16:45:03 +0200
parents 8d5235a3f487
children ed8d91abc6eb
files src/errors.h src/ex_docmd.c src/testdir/test_vim9_cmd.vim src/version.c
diffstat 4 files changed, 21 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/errors.h
+++ b/src/errors.h
@@ -323,8 +323,8 @@ EXTERN char e_non_empty_string_required[
 	INIT(= N_("E1142: Non-empty string required"));
 EXTERN char e_empty_expression_str[]
 	INIT(= N_("E1143: Empty expression: \"%s\""));
-EXTERN char e_command_not_followed_by_white_space_str[]
-	INIT(= N_("E1144: Command is not followed by white space: %s"));
+EXTERN char e_command_str_not_followed_by_white_space_str[]
+	INIT(= N_("E1144: Command \"%s\" is not followed by white space: %s"));
 EXTERN char e_missing_heredoc_end_marker_str[]
 	INIT(= N_("E1145: Missing heredoc end marker: %s"));
 EXTERN char e_command_not_recognized_str[]
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3673,8 +3673,11 @@ find_ex_command(
 	    && (eap->cmdidx < 0 ||
 		(cmdnames[eap->cmdidx].cmd_argt & EX_NONWHITE_OK) == 0))
     {
-	semsg(_(e_command_not_followed_by_white_space_str), eap->cmd);
+	char_u *cmd = vim_strnsave(eap->cmd, p - eap->cmd);
+
+	semsg(_(e_command_str_not_followed_by_white_space_str), cmd, eap->cmd);
 	eap->cmdidx = CMD_SIZE;
+	vim_free(cmd);
     }
 #endif
 
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -984,18 +984,26 @@ def Test_user_command_comment()
   command -nargs=1 Comd echom <q-args>
 
   var lines =<< trim END
-    vim9script
-    Comd # comment
+      vim9script
+      Comd # comment
   END
   CheckScriptSuccess(lines)
 
   lines =<< trim END
-    vim9script
-    Comd# comment
+      vim9script
+      Comd# comment
   END
   CheckScriptFailure(lines, 'E1144:')
+  delcommand Comd
 
-  delcommand Comd
+  lines =<< trim END
+      vim9script
+      command Foo echo 'Foo'
+      Foo3Bar
+  END
+  CheckScriptFailure(lines, 'E1144: Command "Foo" is not followed by white space: Foo3Bar')
+
+  delcommand Foo
 enddef
 
 def Test_star_command()
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2811,
+/**/
     2810,
 /**/
     2809,