Skip to content

Commit c3fc75d

Browse files
committed
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.
1 parent 0038511 commit c3fc75d

8 files changed

Lines changed: 22 additions & 18 deletions

File tree

src/dict.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -970,7 +970,7 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
970970
}
971971
if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
972972
{
973-
semsg(_(e_white_space_required_after_str), ":");
973+
semsg(_(e_white_space_required_after_str_str), ":", *arg);
974974
clear_tv(&tvkey);
975975
goto failret;
976976
}
@@ -1012,7 +1012,7 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
10121012
{
10131013
if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
10141014
{
1015-
semsg(_(e_white_space_required_after_str), ",");
1015+
semsg(_(e_white_space_required_after_str_str), ",", *arg);
10161016
goto failret;
10171017
}
10181018
*arg = skipwhite(*arg + 1);

src/errors.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ EXTERN char e_separator_mismatch_str[]
175175
INIT(= N_("E1067: Separator mismatch: %s"));
176176
EXTERN char e_no_white_space_allowed_before_str[]
177177
INIT(= N_("E1068: No white space allowed before '%s'"));
178-
EXTERN char e_white_space_required_after_str[]
179-
INIT(= N_("E1069: White space required after '%s'"));
178+
EXTERN char e_white_space_required_after_str_str[]
179+
INIT(= N_("E1069: White space required after '%s': %s"));
180180
EXTERN char e_missing_from[]
181181
INIT(= N_("E1070: Missing \"from\""));
182182
EXTERN char e_invalid_string_after_from[]

src/list.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1311,7 +1311,7 @@ eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
13111311
{
13121312
if (vim9script && !IS_WHITE_OR_NUL((*arg)[1]) && (*arg)[1] != ']')
13131313
{
1314-
semsg(_(e_white_space_required_after_str), ",");
1314+
semsg(_(e_white_space_required_after_str_str), ",", *arg);
13151315
goto failret;
13161316
}
13171317
*arg = skipwhite(*arg + 1);

src/userfunc.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ one_function_arg(
126126
++p;
127127
if (!skip && !VIM_ISWHITE(*p))
128128
{
129-
semsg(_(e_white_space_required_after_str), ":");
129+
semsg(_(e_white_space_required_after_str_str), ":", p - 1);
130130
return arg;
131131
}
132132
type = skipwhite(p);
@@ -297,7 +297,7 @@ get_function_args(
297297
if (!skip && in_vim9script()
298298
&& !IS_WHITE_OR_NUL(*p) && *p != endchar)
299299
{
300-
semsg(_(e_white_space_required_after_str), ",");
300+
semsg(_(e_white_space_required_after_str_str), ",", p - 1);
301301
goto err_ret;
302302
}
303303
}
@@ -487,7 +487,7 @@ skip_arrow(
487487
if (white_error != NULL && !VIM_ISWHITE(s[1]))
488488
{
489489
*white_error = TRUE;
490-
semsg(_(e_white_space_required_after_str), ":");
490+
semsg(_(e_white_space_required_after_str_str), ":", s);
491491
return NULL;
492492
}
493493
s = skipwhite(s + 1);
@@ -884,7 +884,7 @@ get_func_tv(
884884
break;
885885
if (vim9script && !IS_WHITE_OR_NUL(argp[1]))
886886
{
887-
semsg(_(e_white_space_required_after_str), ",");
887+
semsg(_(e_white_space_required_after_str_str), ",", argp);
888888
ret = FAIL;
889889
break;
890890
}

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,8 @@ static char *(features[]) =
750750

751751
static int included_patches[] =
752752
{ /* Add new patch number below this line */
753+
/**/
754+
2480,
753755
/**/
754756
2479,
755757
/**/

src/vim9compile.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2807,7 +2807,7 @@ compile_arguments(char_u **arg, cctx_T *cctx, int *argcount)
28072807
{
28082808
++p;
28092809
if (*p != NUL && !VIM_ISWHITE(*p))
2810-
semsg(_(e_white_space_required_after_str), ",");
2810+
semsg(_(e_white_space_required_after_str_str), ",", p - 1);
28112811
}
28122812
else
28132813
must_end = TRUE;
@@ -3073,7 +3073,7 @@ compile_list(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
30733073
++p;
30743074
if (*p != ']' && !IS_WHITE_OR_NUL(*p))
30753075
{
3076-
semsg(_(e_white_space_required_after_str), ",");
3076+
semsg(_(e_white_space_required_after_str_str), ",", p - 1);
30773077
return FAIL;
30783078
}
30793079
}
@@ -3242,7 +3242,7 @@ compile_dict(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
32423242
whitep = *arg + 1;
32433243
if (!IS_WHITE_OR_NUL(*whitep))
32443244
{
3245-
semsg(_(e_white_space_required_after_str), ":");
3245+
semsg(_(e_white_space_required_after_str_str), ":", *arg);
32463246
return FAIL;
32473247
}
32483248

@@ -3279,10 +3279,10 @@ compile_dict(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
32793279
whitep = *arg + 1;
32803280
if (!IS_WHITE_OR_NUL(*whitep))
32813281
{
3282-
semsg(_(e_white_space_required_after_str), ",");
3282+
semsg(_(e_white_space_required_after_str_str), ",", *arg);
32833283
return FAIL;
32843284
}
3285-
*arg = skipwhite(*arg + 1);
3285+
*arg = skipwhite(whitep);
32863286
}
32873287

32883288
*arg = *arg + 1;
@@ -5711,7 +5711,7 @@ compile_lhs(
57115711
// parse optional type: "let var: type = expr"
57125712
if (!VIM_ISWHITE(var_end[1]))
57135713
{
5714-
semsg(_(e_white_space_required_after_str), ":");
5714+
semsg(_(e_white_space_required_after_str_str), ":", var_end);
57155715
return FAIL;
57165716
}
57175717
p = skipwhite(var_end + 1);

src/vim9script.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ vim9_declare_scriptvar(exarg_T *eap, char_u *arg)
629629
}
630630
if (!VIM_ISWHITE(p[1]))
631631
{
632-
semsg(_(e_white_space_required_after_str), ":");
632+
semsg(_(e_white_space_required_after_str_str), ":", p);
633633
return arg + STRLEN(arg);
634634
}
635635
name = vim_strnsave(arg, p - arg);

src/vim9type.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,8 @@ parse_type(char_u **arg, garray_T *type_gap, int give_error)
788788
if (!VIM_ISWHITE(*p))
789789
{
790790
if (give_error)
791-
semsg(_(e_white_space_required_after_str), ",");
791+
semsg(_(e_white_space_required_after_str_str),
792+
",", p - 1);
792793
return NULL;
793794
}
794795
}
@@ -815,7 +816,8 @@ parse_type(char_u **arg, garray_T *type_gap, int give_error)
815816
// parse return type
816817
++*arg;
817818
if (!VIM_ISWHITE(**arg) && give_error)
818-
semsg(_(e_white_space_required_after_str), ":");
819+
semsg(_(e_white_space_required_after_str_str),
820+
":", *arg - 1);
819821
*arg = skipwhite(*arg);
820822
ret_type = parse_type(arg, type_gap, give_error);
821823
if (ret_type == NULL)

0 commit comments

Comments
 (0)