]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.0299: error messages for setcmdline() could be better v9.0.0299
authorYegappan Lakshmanan <yegappan@yahoo.com>
Sun, 28 Aug 2022 16:25:04 +0000 (17:25 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 28 Aug 2022 16:25:04 +0000 (17:25 +0100)
Problem:    Error messages for setcmdline() could be better.
Solution:   Use more specific error messages. (Yegappan Lakshmanan,
            closes #10995)

src/ex_getln.c
src/testdir/test_cmdline.vim
src/testdir/test_vim9_builtin.vim
src/version.c

index 1644de812a65e90505c28d80d8e356a1d535e42f..58dc1524ec42014dace6c2990fc616df8e9f4840 100644 (file)
@@ -4272,11 +4272,9 @@ f_setcmdline(typval_T *argvars, typval_T *rettv)
 {
     int pos = -1;
 
-    if (argvars[0].v_type != VAR_STRING || argvars[0].vval.v_string == NULL)
-    {
-       emsg(_(e_string_required));
+    if (check_for_string_arg(argvars, 0) == FAIL
+           || check_for_opt_number_arg(argvars, 1) == FAIL)
        return;
-    }
 
     if (argvars[1].v_type != VAR_UNKNOWN)
     {
index 121ff250d14c1e710171efb2f66e201f12499939..81f0c6f0eb2be00e30bf7f179ad17ad03069dae8 100644 (file)
@@ -3273,8 +3273,8 @@ func Test_setcmdline()
     call assert_equal(a:pos, getcmdpos())
 
     call assert_fails('call setcmdline("' .. a:text .. '", -1)', 'E487:')
-    call assert_fails('call setcmdline({}, 0)', 'E928:')
-    call assert_fails('call setcmdline("' .. a:text .. '", {})', 'E728:')
+    call assert_fails('call setcmdline({}, 0)', 'E1174:')
+    call assert_fails('call setcmdline("' .. a:text .. '", {})', 'E1210:')
 
     return ''
   endfunc
index 227e28c712ec3a913ef3a41819762f6848947ec8..e3ebc3e587fc393d5bee1e093de195812294c486 100644 (file)
@@ -3659,8 +3659,8 @@ enddef
 
 def Test_setcmdline()
   v9.CheckDefAndScriptSuccess(['setcmdline("ls", 2)'])
-  v9.CheckDefAndScriptFailure(['setcmdline(123)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E928: String required'])
-  v9.CheckDefAndScriptFailure(['setcmdline("ls", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1030: Using a String as a Number'])
+  v9.CheckDefAndScriptFailure(['setcmdline(123)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
+  v9.CheckDefAndScriptFailure(['setcmdline("ls", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
 enddef
 
 def Test_setcmdpos()
index 69cfafe5004e24fa9d9c0654b855d8e0ea922648..1af4b7d96615650109a58e01bd4dc72967235f14 100644 (file)
@@ -707,6 +707,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    299,
 /**/
     298,
 /**/