commit 6192400db85641235eb44ddb37f99302663ab0f7 parent d64295981ce175afa3446e03b7ba1fbe6fde0532 Author: Jan Pobrislo <ccx@webprojekty.cz> Date: Thu, 19 Jun 2014 20:17:59 +0200 fix restoring $vars Diffstat:
| M | bin/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