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:
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#%}#*=};;