From 1d5cace9db9aef76f26b2d7ba54bbb76443b00b2 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 5 May 2024 20:33:23 +0200 Subject: Adding upstream version 5.0. Signed-off-by: Daniel Baumann --- tests/nameref20.sub | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 tests/nameref20.sub (limited to 'tests/nameref20.sub') diff --git a/tests/nameref20.sub b/tests/nameref20.sub new file mode 100644 index 0000000..1e6faec --- /dev/null +++ b/tests/nameref20.sub @@ -0,0 +1,71 @@ +# a collection of cases in bug reports after bash-5.0-alpha was released + +declare -n r=v[0] +v=(X); r=Y +declare -p ${!v*} +printf "%s: <%s>\n" "r" "$r" "v" "$v" + +unset -n r +unset -v v + +declare -n ref=var; declare -a ref +ref=(X) +declare -p ref var + +unset -n ref +unset -v var + +f() { declare -n ref=var; declare ref=(X); declare -p ref var; }; +f + +unset -f f + +f() { declare -n ref=var; declare -g ref=(X); declare -p ref var; }; + +declare -n ref=foo +f +echo outside: +declare -p foo + +unset -n ref +unset -v foo +unset -f f + +f() { declare -n ref=var; declare -a ref; ref=(X); declare -p ref var; } + +f +echo outside: +declare -p ref var +unset -f f + +f() { declare -n ref=var; declare ref; ref=X; declare -p ref var; } + +f +echo outside: +declare -p ref var + +unset -f f + +unset -n ref; unset var + +f() +{ + declare var=X; declare -n ref=var; declare ref=(Y) + declare -p ref var +} +f + +unset -f f + +declare -n ref=var +f() { local ref=Y; declare -p ref var; local; } + +var=X +f + +unset -v var +f + +unset -n ref +unset -f f + -- cgit v1.2.3