summaryrefslogtreecommitdiff
path: root/src/list.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-24 18:37:35 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-24 18:37:35 +0200
commit5409f5d8c95007216ae1190565a7a8ee9ebd7100 (patch)
treecbc94bc8f6560299b6ef2224f526ab53c7534bc6 /src/list.c
parentb7e2483655d9b68df0c7349918027d800051a28a (diff)
downloadvim-git-5409f5d8c95007216ae1190565a7a8ee9ebd7100.tar.gz
patch 8.2.1047: Vim9: script cannot use line continuation like :def functionv8.2.1047
Problem: Vim9: script cannot use line continuation like in a :def function. Solution: Pass the getline function pointer to the eval() functions. Use it for addition and multiplication operators.
Diffstat (limited to 'src/list.c')
-rw-r--r--src/list.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/list.c b/src/list.c
index 130ab2525..c624003a2 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1165,6 +1165,10 @@ get_list_tv(char_u **arg, typval_T *rettv, int flags, int do_error)
list_T *l = NULL;
typval_T tv;
listitem_T *item;
+ evalarg_T evalarg;
+
+ CLEAR_FIELD(evalarg);
+ evalarg.eval_flags = flags;
if (evaluate)
{
@@ -1176,7 +1180,7 @@ get_list_tv(char_u **arg, typval_T *rettv, int flags, int do_error)
*arg = skipwhite(*arg + 1);
while (**arg != ']' && **arg != NUL)
{
- if (eval1(arg, &tv, flags) == FAIL) // recursive!
+ if (eval1(arg, &tv, &evalarg) == FAIL) // recursive!
goto failret;
if (evaluate)
{