summaryrefslogtreecommitdiffstats
path: root/Test
diff options
context:
space:
mode:
authorPhilippe Altherr <philippe.altherr@gmail.com>2026-08-22 16:44:43 -0700
committerBart Schaefer <schaefer@zsh.org>2026-08-22 16:44:43 -0700
commita3a6ca51571e88d8089ffe2ee382d5baabae6951 (patch)
tree9da4bbf5f7d827307b1b1732a8063f577823cb55 /Test
parent55022: descriptive names for parameter declaration CPP macros (diff)
downloadzsh-a3a6ca51571e88d8089ffe2ee382d5baabae6951.tar
zsh-a3a6ca51571e88d8089ffe2ee382d5baabae6951.tar.gz
zsh-a3a6ca51571e88d8089ffe2ee382d5baabae6951.tar.bz2
zsh-a3a6ca51571e88d8089ffe2ee382d5baabae6951.tar.lz
zsh-a3a6ca51571e88d8089ffe2ee382d5baabae6951.tar.xz
zsh-a3a6ca51571e88d8089ffe2ee382d5baabae6951.tar.zst
zsh-a3a6ca51571e88d8089ffe2ee382d5baabae6951.zip
55026: Fix ${(!)ref::=var} substitutions for symmetry with other flags
Diffstat (limited to 'Test')
-rw-r--r--Test/K01nameref.ztst44
1 files changed, 44 insertions, 0 deletions
diff --git a/Test/K01nameref.ztst b/Test/K01nameref.ztst
index 0e1cc9e4e..22aacc8e9 100644
--- a/Test/K01nameref.ztst
+++ b/Test/K01nameref.ztst
@@ -2349,6 +2349,50 @@ F:converting from association/array to string should work here too
>B:16#FF
>C:16#FF
+ show() { printf "%-13s: %-3s - %-3s - %-3s\n" "$@" }
+ typeset var=aaa
+ typeset -n refU refN="" refS=var
+ show '${refX}' ${(q!)refU} ${(q!)refN} ${(q!)refS}
+ show '${+refX}' ${(q!)+refU} ${(q!)+refN} ${(q!)+refS}
+ show '${refX+1}' ${(q!)refU+1} ${(q!)refN+1} ${(q!)refS+1}
+ show '${refX:+1}' ${(q!)refU:+1} ${(q!)refN:+1} ${(q!)refS:+1}
+ echo
+ show '${refX-bbb}' ${(q!)refU-bbb} ${(q!)refN-bbb} ${(q!)refS-bbb}
+ show '${refX=bbb}' ${(q!)refU=bbb} ${(q!)refN=bbb} ${(q!)refS=bbb}
+ show '${refX}' ${(q!)refU} ${(q!)refN} ${(q!)refS}
+ show '${var}' ${var}
+ echo
+ typeset -n refU refN="" refS=var
+ show '${refX:-ccc}' ${(q!)refU:-ccc} ${(q!)refN:-ccc} ${(q!)refS:-ccc}
+ show '${refX:=ccc}' ${(q!)refU:=ccc} ${(q!)refN:=ccc} ${(q!)refS:=ccc}
+ show '${refX}' ${(q!)refU} ${(q!)refN} ${(q!)refS}
+ show '${var}' ${var}
+ echo
+ typeset -n refU refN="" refS=var
+ show '${refX::=ddd}' ${(q!)refU::=ddd} ${(q!)refN::=ddd} ${(q!)refS::=ddd}
+ show '${refX}' ${(q!)refU} ${(q!)refN} ${(q!)refS}
+ show '${var}' ${var}
+ unfunction show
+0:reference itself is examined in substitutions with the ! flag
+>${refX} : '' - '' - var
+>${+refX} : 0 - 1 - 1
+>${refX+1} : '' - 1 - 1
+>${refX:+1} : '' - '' - 1
+>
+>${refX-bbb} : bbb - '' - var
+>${refX=bbb} : bbb - '' - var
+>${refX} : bbb - '' - var
+>${var} : aaa - -
+>
+>${refX:-ccc} : ccc - ccc - var
+>${refX:=ccc} : ccc - ccc - var
+>${refX} : ccc - ccc - var
+>${var} : aaa - -
+>
+>${refX::=ddd}: ddd - ddd - ddd
+>${refX} : ddd - ddd - ddd
+>${var} : aaa - -
+
typeset -n ref1
setopt allexport
ref1=var