Mercurial > vim
comparison src/evalvars.c @ 18348:9ea364ccf216 v8.1.2168
patch 8.1.2168: heredoc assignment not skipped in if block
Commit: https://github.com/vim/vim/commit/b1ba9abcb385b0a5355788a7eefef78ec68d2f65
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Oct 16 23:34:42 2019 +0200
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 https://github.com/vim/vim/issues/5063)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 16 Oct 2019 23:45:03 +0200 |
parents | 5c8906f653f5 |
children | e93cab5d0f0f |
comparison
equal
deleted
inserted
replaced
18347:e4e6e0bfc526 | 18348:9ea364ccf216 |
---|---|
754 // HERE document | 754 // HERE document |
755 l = heredoc_get(eap, expr + 3); | 755 l = heredoc_get(eap, expr + 3); |
756 if (l != NULL) | 756 if (l != NULL) |
757 { | 757 { |
758 rettv_list_set(&rettv, l); | 758 rettv_list_set(&rettv, l); |
759 op[0] = '='; | 759 if (!eap->skip) |
760 op[1] = NUL; | 760 { |
761 (void)ex_let_vars(eap->arg, &rettv, FALSE, semicolon, var_count, | 761 op[0] = '='; |
762 op[1] = NUL; | |
763 (void)ex_let_vars(eap->arg, &rettv, FALSE, semicolon, var_count, | |
762 is_const, op); | 764 is_const, op); |
765 } | |
763 clear_tv(&rettv); | 766 clear_tv(&rettv); |
764 } | 767 } |
765 } | 768 } |
766 else | 769 else |
767 { | 770 { |