confz

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

commit 55c58421e02c021a61568c6ff2b95b65211ba537
parent 766d2997fcd8530b77f8cb18416c93170f0fbc8f
Author: Jan Pobříslo <ccx@te2000.cz>
Date:   Thu, 23 Jun 2022 12:07:49 +0200

Try to debug \?foo=bar syntax
Diffstat:
Mbin/confz | 8++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/bin/confz b/bin/confz @@ -154,6 +154,7 @@ require() { # <arguments> are arguments passed to the dependency function local name outer inner indent_prev check_only_prev check_ret + local prev_name new_name local -a do_command_prev local -A vars_local lift @@ -174,8 +175,11 @@ require() { (:*) ((${+vars_prev[${1#:}]})) || \ die "variable ${(qqq)1#:} not set, passed as :argument" setvar ${1#:} "${vars_prev[${1#:}]}";; - (\?*=*) (($+vars_prev[${${1#\?}#*=}])) && \ - setvar ${${1#\?}%%=*} "$vars_prev[${${1#\?}#*=}";; + (\?*=*) + prev_name=${${1#\?}#*=} + new_name=${${1#\?}%%=*} + (($+vars_prev[$prev_name])) && \ + setvar $new_name "$vars_prev[$new_name}";; (\?*) ((${+vars_prev[${1#\?}]})) && \ setvar ${1#\?} "${vars_prev[${1#\?}]}";; (%*=*) lift[${${1#%}%%=*}]=${${1#%}#*=};;