diff options
| author | Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> | 2023-09-13 09:59:42 +0900 |
|---|---|---|
| committer | Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> | 2023-09-13 09:59:42 +0900 |
| commit | 0eab788437d42afb290637441f88542fc496c307 (patch) | |
| tree | 1e7b8455db410a3388e7abd59be92f2babbbeeb4 /Test | |
| parent | 52125: getoutput() must not free() after gettempname(..., 1) for heap (diff) | |
| download | zsh-0eab788437d42afb290637441f88542fc496c307.tar zsh-0eab788437d42afb290637441f88542fc496c307.tar.gz zsh-0eab788437d42afb290637441f88542fc496c307.tar.bz2 zsh-0eab788437d42afb290637441f88542fc496c307.tar.lz zsh-0eab788437d42afb290637441f88542fc496c307.tar.xz zsh-0eab788437d42afb290637441f88542fc496c307.tar.zst zsh-0eab788437d42afb290637441f88542fc496c307.zip | |
52122 + 52129: fix (#) parameter expansion flag
Without the X flag, null string "" is substituted for bad math expression.
Diffstat (limited to 'Test')
| -rw-r--r-- | Test/D04parameter.ztst | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst index 0d44558a7..12ae1a446 100644 --- a/Test/D04parameter.ztst +++ b/Test/D04parameter.ztst @@ -2785,3 +2785,43 @@ F:behavior, see http://austingroupbugs.net/view.php?id=888 >string with spaces >stringwithspaces >stringwithspaces + + : ${(#X):-@} +1:${(#X)...}: bad math expression +?(eval):1: bad math expression: illegal character: @ + + echo a${(#):-@}z +0:${(#)...}: bad math expression +>az + + printf "a%sz\n" ${(#):-@} +0:${(#)...}: bad math expression, printf +>az + + a=( '1 +' '@' ) + : ${(#X)a} +1:${(#X)...}: array of bad math expressions +?(eval):2: bad math expression: operand expected at end of string + + printf "a%sz\n" ${(#)a} +0:${(#)...}: array of bad math expressions, printf +>az + + : ${(#X):-0x80} +1:${(#X)...}: out-of-range character +?(eval):1: character not in range + + [[ ${(#):-0x80} = $'\x80' ]] && echo OK +0:${(#)...}: out-of-range character +>OK + + a=( 0x80 0x81 ) + : ${(#X)a} +1:${(#X)...}: array of out-of-range characters +?(eval):2: character not in range + + printf "%s\n" ${(#)a} | + while read x; do echo $(( #x )); done +0:${(#)...}: array of out-of-range characters +>128 +>129 |
