patch 8.1.2168: heredoc assignment not skipped in if block
Problem: Heredoc assignment not skipped in if block.
Solution: Check if "skip" is set. (closes #5063)
diff --git a/src/evalvars.c b/src/evalvars.c
index 08a9cc2..eb198fd 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -756,10 +756,13 @@
if (l != NULL)
{
rettv_list_set(&rettv, l);
- op[0] = '=';
- op[1] = NUL;
- (void)ex_let_vars(eap->arg, &rettv, FALSE, semicolon, var_count,
+ if (!eap->skip)
+ {
+ op[0] = '=';
+ op[1] = NUL;
+ (void)ex_let_vars(eap->arg, &rettv, FALSE, semicolon, var_count,
is_const, op);
+ }
clear_tv(&rettv);
}
}