# 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