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