1
0
forked from aniani/vim

patch 8.2.1110: Vim9: line continuation does not work in function arguments

Problem:    Vim9: line continuation does not work in function arguments.
Solution:   Pass "evalarg" to get_func_tv().  Fix seeing double quoted string
            as comment.
This commit is contained in:
Bram Moolenaar
2020-07-01 17:28:33 +02:00
parent 086eb18ba1
commit e6b5324e3a
10 changed files with 80 additions and 32 deletions

View File

@@ -1177,7 +1177,7 @@ get_list_tv(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
return FAIL;
}
*arg = skipwhite_and_linebreak(*arg + 1, evalarg);
*arg = skipwhite_and_linebreak_keep_string(*arg + 1, evalarg);
while (**arg != ']' && **arg != NUL)
{
if (eval1(arg, &tv, evalarg) == FAIL) // recursive!
@@ -1207,8 +1207,9 @@ get_list_tv(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
*arg = skipwhite(*arg + 1);
}
// the "]" can be on the next line
*arg = skipwhite_and_linebreak(*arg, evalarg);
// The "]" can be on the next line. But a double quoted string may
// follow, not a comment.
*arg = skipwhite_and_linebreak_keep_string(*arg, evalarg);
if (**arg == ']')
break;
@@ -2356,7 +2357,7 @@ f_insert(typval_T *argvars, typval_T *rettv)
}
if (l != NULL)
{
list_insert_tv(l, &argvars[1], item);
(void)list_insert_tv(l, &argvars[1], item);
copy_tv(&argvars[0], rettv);
}
}