mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-01 17:24:50 +01:00
Make DECLAREDNULL require POSIXBUILTINS and introduce a new test file.
V10private has been made agnostic to POSIXBUILTINS.
This commit is contained in:
parent
69bd4a197c
commit
3099e79d25
1 changed files with 105 additions and 0 deletions
105
Test/E03posix.ztst
Normal file
105
Test/E03posix.ztst
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
# Test POSIX-specific behavior
|
||||||
|
# Currently this covers only POSIXBUILTINS, other behaviors are in their
|
||||||
|
# more directly related sections
|
||||||
|
#
|
||||||
|
|
||||||
|
%prep
|
||||||
|
setopt POSIX_BUILTINS
|
||||||
|
|
||||||
|
%test
|
||||||
|
|
||||||
|
local parentenv=preserved
|
||||||
|
fn() {
|
||||||
|
typeset -h +g -m \*
|
||||||
|
unset -m \*
|
||||||
|
integer i=9
|
||||||
|
float -H f=9
|
||||||
|
declare -t scalar
|
||||||
|
declare -H -a array
|
||||||
|
typeset
|
||||||
|
typeset +
|
||||||
|
}
|
||||||
|
fn
|
||||||
|
echo $parentenv
|
||||||
|
0:Parameter hiding and tagging, printing types and values
|
||||||
|
>array local array
|
||||||
|
>float local f
|
||||||
|
>integer local i=9
|
||||||
|
>local tagged scalar
|
||||||
|
>array local array
|
||||||
|
>float local f
|
||||||
|
>integer local i
|
||||||
|
>local tagged scalar
|
||||||
|
>preserved
|
||||||
|
|
||||||
|
readonly foo=bar novalue
|
||||||
|
readonly -p
|
||||||
|
0:readonly -p output (no readonly specials)
|
||||||
|
>readonly foo=bar
|
||||||
|
>readonly novalue
|
||||||
|
|
||||||
|
local -a myarray
|
||||||
|
typeset -p1 myarray
|
||||||
|
myarray=("&" sand '""' "" plugh)
|
||||||
|
typeset -p1 myarray
|
||||||
|
0:typeset -p1 output for array
|
||||||
|
>typeset -a myarray
|
||||||
|
>typeset -a myarray=(
|
||||||
|
> '&'
|
||||||
|
> sand
|
||||||
|
> '""'
|
||||||
|
> ''
|
||||||
|
> plugh
|
||||||
|
>)
|
||||||
|
|
||||||
|
local -A myhash
|
||||||
|
typeset -p1 myhash
|
||||||
|
myhash=([one]=two [three]= [four]="[]")
|
||||||
|
typeset -p1 myhash
|
||||||
|
0:typeset -p1 output for associative array
|
||||||
|
>typeset -A myhash
|
||||||
|
>typeset -A myhash=(
|
||||||
|
> [four]='[]'
|
||||||
|
> [one]=two
|
||||||
|
> [three]=''
|
||||||
|
>)
|
||||||
|
|
||||||
|
str=s
|
||||||
|
arr=(a)
|
||||||
|
typeset -A ass
|
||||||
|
ass=(a a)
|
||||||
|
integer i=0
|
||||||
|
float f=0
|
||||||
|
print ${(t)str} ${(t)arr} ${(t)ass} ${(t)i} ${(t)f}
|
||||||
|
0:${(t)...}
|
||||||
|
>scalar array association-local integer-local float-local
|
||||||
|
|
||||||
|
print $empty[(i)] $empty[(I)]
|
||||||
|
0:(i) and (I) return nothing for empty array
|
||||||
|
>
|
||||||
|
|
||||||
|
(
|
||||||
|
# reserved words are handled during parsing,
|
||||||
|
# hence eval...
|
||||||
|
disable -r typeset
|
||||||
|
eval '
|
||||||
|
setopt kshtypeset
|
||||||
|
ktvars=(ktv1 ktv2)
|
||||||
|
typeset ktfoo=`echo arg1 arg2` $ktvars
|
||||||
|
() {
|
||||||
|
local ktfoo
|
||||||
|
print $+ktv1 $+ktv2 $+ktv3 $+ktfoo
|
||||||
|
}
|
||||||
|
print $ktfoo
|
||||||
|
unsetopt kshtypeset
|
||||||
|
typeset noktfoo=`echo noktarg1 noktarg2`
|
||||||
|
print $noktfoo
|
||||||
|
print $+noktarg1 $+noktarg2
|
||||||
|
unset ktfoo ktv1 ktv2 noktfoo noktarg2
|
||||||
|
'
|
||||||
|
)
|
||||||
|
0:KSH_TYPESET option
|
||||||
|
>0 0 0 0
|
||||||
|
>arg1 arg2
|
||||||
|
>noktarg1
|
||||||
|
>0 0
|
Loading…
Reference in a new issue