From c3fc75db023f2acd0b82b7eebffd7ed89e8001ed Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 7 Feb 2021 15:28:09 +0100 Subject: patch 8.2.2480: Vim9: some errors for white space do not show context Problem: Vim9: some errors for white space do not show context. Solution: Include the text at the error. --- src/dict.c | 4 ++-- src/errors.h | 4 ++-- src/list.c | 2 +- src/userfunc.c | 8 ++++---- src/version.c | 2 ++ src/vim9compile.c | 12 ++++++------ src/vim9script.c | 2 +- src/vim9type.c | 6 ++++-- 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 @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2480, /**/ 2479, /**/ 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) -- cgit v1.2.1