aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/vars.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/eval/vars.c')
-rw-r--r--src/nvim/eval/vars.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/eval/vars.c b/src/nvim/eval/vars.c
index a3dc0cfc04..02e526d7b6 100644
--- a/src/nvim/eval/vars.c
+++ b/src/nvim/eval/vars.c
@@ -255,13 +255,18 @@ void ex_let(exarg_T *eap)
if (eap->skip) {
emsg_skip++;
}
- int eval_flags = eap->skip ? 0 : EVAL_EVALUATE;
- i = eval0(expr, &rettv, &eap->nextcmd, eval_flags);
+ evalarg_T evalarg = {
+ .eval_flags = eap->skip ? 0 : EVAL_EVALUATE,
+ .eval_cookie = eap->getline == getsourceline ? eap->cookie : NULL,
+ };
+ i = eval0(expr, &rettv, &eap->nextcmd, &evalarg);
+ if (eap->skip) {
+ emsg_skip--;
+ }
if (eap->skip) {
if (i != FAIL) {
tv_clear(&rettv);
}
- emsg_skip--;
} else if (i != FAIL) {
(void)ex_let_vars(eap->arg, &rettv, false, semicolon, var_count, is_const, op);
tv_clear(&rettv);