diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-07-05 21:41:48 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-07-05 21:41:48 +0200 |
commit | 404557e6a60389d09bbf91dd0cf3bae11bd623b9 (patch) | |
tree | e3d420c3f30df3d972734c35d90c4c22ac339701 /src/eval.c | |
parent | 04db26b36000a4677b95403ec94bd11f6cc73975 (diff) |
patch 8.2.3111: Vim9: confusing error with extra whitespace before colonv8.2.3111
Problem: Vim9: confusing error with extra whitespace before colon.
Solution: Check for colon after white space. (closes #8513)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c index f57001647c..1a84d2c1f5 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1660,6 +1660,7 @@ eval_for_line( evalarg_T *evalarg) { forinfo_T *fi; + char_u *var_list_end; char_u *expr; typval_T tv; list_T *l; @@ -1671,15 +1672,19 @@ eval_for_line( if (fi == NULL) return NULL; - expr = skip_var_list(arg, TRUE, &fi->fi_varcount, &fi->fi_semicolon, FALSE); - if (expr == NULL) + var_list_end = skip_var_list(arg, TRUE, &fi->fi_varcount, + &fi->fi_semicolon, FALSE); + if (var_list_end == NULL) return fi; - expr = skipwhite_and_linebreak(expr, evalarg); + expr = skipwhite_and_linebreak(var_list_end, evalarg); if (expr[0] != 'i' || expr[1] != 'n' || !(expr[2] == NUL || VIM_ISWHITE(expr[2]))) { - emsg(_(e_missing_in)); + if (in_vim9script() && *expr == ':' && expr != var_list_end) + semsg(_(e_no_white_space_allowed_before_colon_str), expr); + else + emsg(_(e_missing_in)); return fi; } |