diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-04-06 19:01:03 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-04-06 19:01:03 +0200 |
commit | 86cdb8a4bd1abff40b5f80c3c4149b33cbaab990 (patch) | |
tree | a4043b082ff789af6fa8b79c5be70aca287a89f7 | |
parent | e8c4660a55364a5d3e395652d1202b8702666823 (diff) | |
download | vim-git-86cdb8a4bd1abff40b5f80c3c4149b33cbaab990.tar.gz |
patch 8.2.2726: confusing error message with white space before commav8.2.2726
Problem: Confusing error message with white space before comma in the
arguments of a function declaration.
Solution: Give a specific error message. (closes #2235)
-rw-r--r-- | src/testdir/test_vim9_func.vim | 9 | ||||
-rw-r--r-- | src/userfunc.c | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 8085e5cf2..730cf40aa 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -1263,6 +1263,15 @@ def Test_arg_type_wrong() CheckScriptFailure(['def Func5(items)', 'echo "a"'], 'E1077:') enddef +def Test_white_space_before_comma() + var lines =<< trim END + vim9script + def Func(a: number , b: number) + enddef + END + CheckScriptFailure(lines, 'E1068:') +enddef + def Test_white_space_after_comma() var lines =<< trim END vim9script diff --git a/src/userfunc.c b/src/userfunc.c index 1139573c6..af107b0db 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -307,6 +307,17 @@ get_function_args( emsg(_("E989: Non-default argument follows default argument")); goto err_ret; } + + if (VIM_ISWHITE(*p) && *skipwhite(p) == ',') + { + // Be tolerant when skipping + if (!skip) + { + semsg(_(e_no_white_space_allowed_before_str_str), ",", p); + goto err_ret; + } + p = skipwhite(p); + } if (*p == ',') { ++p; diff --git a/src/version.c b/src/version.c index 4318b71eb..9b356bd26 100644 --- 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 */ /**/ + 2726, +/**/ 2725, /**/ 2724, |