confz

git mirror of https://ccx.te2000.cz/bzr/confz
git clone https://ccx.te2000.cz/git/confz
Log | Files | Refs

commit 6192400db85641235eb44ddb37f99302663ab0f7
parent d64295981ce175afa3446e03b7ba1fbe6fde0532
Author: Jan Pobrislo <ccx@webprojekty.cz>
Date:   Thu, 19 Jun 2014 20:17:59 +0200

fix restoring $vars
Diffstat:
Mbin/confz | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/bin/confz b/bin/confz @@ -98,13 +98,14 @@ require() { local name outer inner indent_prev check_only_prev local -a do_command_prev - local -A vars_switch lift + local -A vars_local lift name=$1 shift - # store $vars - vars_prev=( "${(kv)vars[@]}" ) + # store and clear $vars + vars_prev=( "${(@kv)vars}" ) + vars_local=( "${(@kv)vars}" ) vars=( ) # print check start @@ -151,9 +152,8 @@ require() { do_command=( "${do_command_prev[@]}" ) # restore old $vars and put calee's $vars into $vars_prev - vars_switch=( "${(kv)vars[@]}" ) - vars=( "${(kv)vars_prev[@]}" ) - vars_prev=( "${(kv)vars_switch[@]}" ) + vars_prev=( "${(@kv)vars}" ) + vars=( "${(kv)vars_local[@]}" ) # lift %variables from calee to caller for outer inner in ${(kv)lift}; do