]> granicus.if.org Git - vim/commitdiff
patch 8.2.2480: Vim9: some errors for white space do not show context v8.2.2480
authorBram Moolenaar <Bram@vim.org>
Sun, 7 Feb 2021 14:28:09 +0000 (15:28 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 7 Feb 2021 14:28:09 +0000 (15:28 +0100)
Problem:    Vim9: some errors for white space do not show context.
Solution:   Include the text at the error.

src/dict.c
src/errors.h
src/list.c
src/userfunc.c
src/version.c
src/vim9compile.c
src/vim9script.c
src/vim9type.c

index 260f229850f042e3ec4addffcaba27fccb6c00e2..b40aaef0daf7f38296f21d82e39e3360f8ebea72 100644 (file)
@@ -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);
index ec038ec24e56636c692b4a15ae569d0526164955..ed267fd398534f4bc9c27d8270b7ea0f1a436a32 100644 (file)
@@ -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[]
index c51c99bc9038910490a4b98c97fc32df808fae6c..c93a66d81b4d8947e31e6ff338c81f290db9eaf2 100644 (file)
@@ -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);
index bdf4064263abe3f2aafb37f488284686562c5ca3..e220781b1f7b9fb54ef2d5137998df9d04fd79c2 100644 (file)
@@ -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;
        }
index 383e15a1875dfccb2d68a5287b997552b9e0cf49..871e04892c877a998a1a204e1e05cabe5255f9f4 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2480,
 /**/
     2479,
 /**/
index 6a1d8d9e78caebf3e5206c78b691a8503bd2300e..3c24fdb06c4d33b3e4dda66d9f8f788733515ef4 100644 (file)
@@ -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);
index 010b4bfdb3e25fb5ec8e9c6cc96b09cf627b5fc8..387c9bedc45be57fa761488434aa40c17561e355 100644 (file)
@@ -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);
index 1374cee1b148703e2b19ee1fd891537c76960855..dbe7db92cfc7cf06237602386fe8f5896e2d518b 100644 (file)
@@ -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)