summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-02-07 15:28:09 +0100
committerBram Moolenaar <Bram@vim.org>2021-02-07 15:28:09 +0100
commitc3fc75db023f2acd0b82b7eebffd7ed89e8001ed (patch)
treeccd13a21ec12f4b20124bedb7397896471ec8e9a
parent00385114dbd6a3d59516baa02e1ea86a1e7ee70e (diff)
downloadvim-git-c3fc75db023f2acd0b82b7eebffd7ed89e8001ed.tar.gz
patch 8.2.2480: Vim9: some errors for white space do not show contextv8.2.2480
Problem: Vim9: some errors for white space do not show context. Solution: Include the text at the error.
-rw-r--r--src/dict.c4
-rw-r--r--src/errors.h4
-rw-r--r--src/list.c2
-rw-r--r--src/userfunc.c8
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c12
-rw-r--r--src/vim9script.c2
-rw-r--r--src/vim9type.c6
8 files changed, 22 insertions, 18 deletions
diff --git a/src/dict.c b/src/dict.c
index 260f22985..b40aaef0d 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -970,7 +970,7 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
}
if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
{
- semsg(_(e_white_space_required_after_str), ":");
+ semsg(_(e_white_space_required_after_str_str), ":", *arg);
clear_tv(&tvkey);
goto failret;
}
@@ -1012,7 +1012,7 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
{
if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
{
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str), ",", *arg);
goto failret;
}
*arg = skipwhite(*arg + 1);
diff --git a/src/errors.h b/src/errors.h
index ec038ec24..ed267fd39 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -175,8 +175,8 @@ EXTERN char e_separator_mismatch_str[]
INIT(= N_("E1067: Separator mismatch: %s"));
EXTERN char e_no_white_space_allowed_before_str[]
INIT(= N_("E1068: No white space allowed before '%s'"));
-EXTERN char e_white_space_required_after_str[]
- INIT(= N_("E1069: White space required after '%s'"));
+EXTERN char e_white_space_required_after_str_str[]
+ INIT(= N_("E1069: White space required after '%s': %s"));
EXTERN char e_missing_from[]
INIT(= N_("E1070: Missing \"from\""));
EXTERN char e_invalid_string_after_from[]
diff --git a/src/list.c b/src/list.c
index c51c99bc9..c93a66d81 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1311,7 +1311,7 @@ eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
{
if (vim9script && !IS_WHITE_OR_NUL((*arg)[1]) && (*arg)[1] != ']')
{
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str), ",", *arg);
goto failret;
}
*arg = skipwhite(*arg + 1);
diff --git a/src/userfunc.c b/src/userfunc.c
index bdf406426..e220781b1 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -126,7 +126,7 @@ one_function_arg(
++p;
if (!skip && !VIM_ISWHITE(*p))
{
- semsg(_(e_white_space_required_after_str), ":");
+ semsg(_(e_white_space_required_after_str_str), ":", p - 1);
return arg;
}
type = skipwhite(p);
@@ -297,7 +297,7 @@ get_function_args(
if (!skip && in_vim9script()
&& !IS_WHITE_OR_NUL(*p) && *p != endchar)
{
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str), ",", p - 1);
goto err_ret;
}
}
@@ -487,7 +487,7 @@ skip_arrow(
if (white_error != NULL && !VIM_ISWHITE(s[1]))
{
*white_error = TRUE;
- semsg(_(e_white_space_required_after_str), ":");
+ semsg(_(e_white_space_required_after_str_str), ":", s);
return NULL;
}
s = skipwhite(s + 1);
@@ -884,7 +884,7 @@ get_func_tv(
break;
if (vim9script && !IS_WHITE_OR_NUL(argp[1]))
{
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str), ",", argp);
ret = FAIL;
break;
}
diff --git a/src/version.c b/src/version.c
index 383e15a18..871e04892 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 */
/**/
+ 2480,
+/**/
2479,
/**/
2478,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 6a1d8d9e7..3c24fdb06 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -2807,7 +2807,7 @@ compile_arguments(char_u **arg, cctx_T *cctx, int *argcount)
{
++p;
if (*p != NUL && !VIM_ISWHITE(*p))
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str), ",", p - 1);
}
else
must_end = TRUE;
@@ -3073,7 +3073,7 @@ compile_list(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
++p;
if (*p != ']' && !IS_WHITE_OR_NUL(*p))
{
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str), ",", p - 1);
return FAIL;
}
}
@@ -3242,7 +3242,7 @@ compile_dict(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
whitep = *arg + 1;
if (!IS_WHITE_OR_NUL(*whitep))
{
- semsg(_(e_white_space_required_after_str), ":");
+ semsg(_(e_white_space_required_after_str_str), ":", *arg);
return FAIL;
}
@@ -3279,10 +3279,10 @@ compile_dict(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
whitep = *arg + 1;
if (!IS_WHITE_OR_NUL(*whitep))
{
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str), ",", *arg);
return FAIL;
}
- *arg = skipwhite(*arg + 1);
+ *arg = skipwhite(whitep);
}
*arg = *arg + 1;
@@ -5711,7 +5711,7 @@ compile_lhs(
// parse optional type: "let var: type = expr"
if (!VIM_ISWHITE(var_end[1]))
{
- semsg(_(e_white_space_required_after_str), ":");
+ semsg(_(e_white_space_required_after_str_str), ":", var_end);
return FAIL;
}
p = skipwhite(var_end + 1);
diff --git a/src/vim9script.c b/src/vim9script.c
index 010b4bfdb..387c9bedc 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -629,7 +629,7 @@ vim9_declare_scriptvar(exarg_T *eap, char_u *arg)
}
if (!VIM_ISWHITE(p[1]))
{
- semsg(_(e_white_space_required_after_str), ":");
+ semsg(_(e_white_space_required_after_str_str), ":", p);
return arg + STRLEN(arg);
}
name = vim_strnsave(arg, p - arg);
diff --git a/src/vim9type.c b/src/vim9type.c
index 1374cee1b..dbe7db92c 100644
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -788,7 +788,8 @@ parse_type(char_u **arg, garray_T *type_gap, int give_error)
if (!VIM_ISWHITE(*p))
{
if (give_error)
- semsg(_(e_white_space_required_after_str), ",");
+ semsg(_(e_white_space_required_after_str_str),
+ ",", p - 1);
return NULL;
}
}
@@ -815,7 +816,8 @@ parse_type(char_u **arg, garray_T *type_gap, int give_error)
// parse return type
++*arg;
if (!VIM_ISWHITE(**arg) && give_error)
- semsg(_(e_white_space_required_after_str), ":");
+ semsg(_(e_white_space_required_after_str_str),
+ ":", *arg - 1);
*arg = skipwhite(*arg);
ret_type = parse_type(arg, type_gap, give_error);
if (ret_type == NULL)