From 6c20c8ed2cb9ab69a1a57ccb2b9b79969a808321 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:38:56 +0200 Subject: Adding upstream version 5.2.15. Signed-off-by: Daniel Baumann --- tests/dollar-at-star11.sub | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 tests/dollar-at-star11.sub (limited to 'tests/dollar-at-star11.sub') diff --git a/tests/dollar-at-star11.sub b/tests/dollar-at-star11.sub new file mode 100644 index 0000000..b7a6ec4 --- /dev/null +++ b/tests/dollar-at-star11.sub @@ -0,0 +1,80 @@ +a[0]='/' +set -- / + +# these should all result in the empty (null) string + +recho "${a[0]%?}" +recho "${a[*]%?}" +recho "${a[@]%?}" + +recho "${*%?}" +recho "${@%?}" + +recho "${a[0]#?}" +recho "${a[*]#?}" +recho "${a[@]#?}" + +recho "${*#?}" +recho "${@#?}" + +recho "${a[0]/\//}" +recho "${a[*]/\//}" +recho "${a[@]/\//}" + +recho "${*/\//}" +recho "${@/\//}" + +recho "${a[0]:1:1}" +# these next four will all echo / + +# arrays are zero-based +recho "${a[*]:0:1}" +recho "${a[@]:0:1}" +# but the positional parameters start at 1 +recho "${*:1:1}" +recho "${@:1:1}" + +a[0]='' +set -- '' + +# arrays are zero-based +recho "${a[*]:0:1}" +recho "${a[@]:0:1}" + +recho "${*:1:1}" +recho "${@:1:1}" + +# these should all result in the empty (null) string, or quoted as such + +recho "${a[0]@Q}" +recho "${a[*]@Q}" +recho "${a[@]@Q}" + +recho "${*@Q}" +recho "${@@Q}" + +recho "${a[0]@L}" +recho "${a[*]@L}" +recho "${a[@]@L}" + +recho "${*@L}" +recho "${@@L}" + +# examples from the bug report +unset -v a + +a[0]='/' +for i in "${a[@]%/}"; do recho "$i"; done + +a[0]='' +for i in "${a[@]}"; do recho "$i"; done + +a[0]='/' +a[1]="//" +for i in "${a[@]%/}"; do recho "$i"; done + +unset -v x y +x=('/') +y=("${x[@]%/}") + +echo "${#x[@]}:${#y[@]}" -- cgit v1.2.3