|
Packit Service |
a8c26c |
########################################################################
|
|
Packit Service |
a8c26c |
# #
|
|
Packit Service |
a8c26c |
# This software is part of the ast package #
|
|
Packit Service |
a8c26c |
# Copyright (c) 1982-2012 AT&T Intellectual Property #
|
|
Packit Service |
a8c26c |
# and is licensed under the #
|
|
Packit Service |
a8c26c |
# Eclipse Public License, Version 1.0 #
|
|
Packit Service |
a8c26c |
# by AT&T Intellectual Property #
|
|
Packit Service |
a8c26c |
# #
|
|
Packit Service |
a8c26c |
# A copy of the License is available at #
|
|
Packit Service |
a8c26c |
# http://www.eclipse.org/org/documents/epl-v10.html #
|
|
Packit Service |
a8c26c |
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
|
|
Packit Service |
a8c26c |
# #
|
|
Packit Service |
a8c26c |
# Information and Software Systems Research #
|
|
Packit Service |
a8c26c |
# AT&T Research #
|
|
Packit Service |
a8c26c |
# Florham Park NJ #
|
|
Packit Service |
a8c26c |
# #
|
|
Packit Service |
a8c26c |
# David Korn <dgk@research.att.com> #
|
|
Packit Service |
a8c26c |
# #
|
|
Packit Service |
a8c26c |
########################################################################
|
|
Packit Service |
a8c26c |
function err_exit
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
print -u2 -n "\t"
|
|
Packit Service |
a8c26c |
print -u2 -r ${Command}[$1]: "${@:2}"
|
|
Packit Service |
a8c26c |
let Errors+=1
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
alias err_exit='err_exit $LINENO'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#test for compound variables
|
|
Packit Service |
a8c26c |
Command=${0##*/}
|
|
Packit Service |
a8c26c |
integer Errors=0
|
|
Packit Service |
a8c26c |
Point=(
|
|
Packit Service |
a8c26c |
float x=1. y=0.
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
eval p="$Point"
|
|
Packit Service |
a8c26c |
if (( (p.x*p.x + p.y*p.y) > 1.01 ))
|
|
Packit Service |
a8c26c |
then err_exit 'compound variable not working'
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
nameref foo=p
|
|
Packit Service |
a8c26c |
if [[ ${foo.x} != ${Point.x} ]]
|
|
Packit Service |
a8c26c |
then err_exit 'reference to compound object not working'
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
unset foo
|
|
Packit Service |
a8c26c |
rec=(
|
|
Packit Service |
a8c26c |
name='Joe Blow'
|
|
Packit Service |
a8c26c |
born=(
|
|
Packit Service |
a8c26c |
month=jan
|
|
Packit Service |
a8c26c |
integer day=16
|
|
Packit Service |
a8c26c |
year=1980
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
eval newrec="$rec"
|
|
Packit Service |
a8c26c |
if [[ ${newrec.name} != "${rec.name}" ]]
|
|
Packit Service |
a8c26c |
then err_exit 'copying a compound object not working'
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
if (( newrec.born.day != 16 ))
|
|
Packit Service |
a8c26c |
then err_exit 'copying integer field of compound object not working'
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
p_t=(
|
|
Packit Service |
a8c26c |
integer z=0
|
|
Packit Service |
a8c26c |
typeset -A tokens
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
typeset -A x
|
|
Packit Service |
a8c26c |
x=( [foo]=bar )
|
|
Packit Service |
a8c26c |
if [[ ${x[@]} != bar ]]
|
|
Packit Service |
a8c26c |
then err_exit 'compound assignemnt of associative arrays not working'
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
unset -n foo x
|
|
Packit Service |
a8c26c |
unset foo x
|
|
Packit Service |
a8c26c |
foo=( x=3)
|
|
Packit Service |
a8c26c |
nameref x=foo
|
|
Packit Service |
a8c26c |
if [[ ${!x.@} != foo.x ]]
|
|
Packit Service |
a8c26c |
then err_exit 'name references not expanded on prefix matching'
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
unset -n x
|
|
Packit Service |
a8c26c |
(
|
|
Packit Service |
a8c26c |
x=()
|
|
Packit Service |
a8c26c |
x.foo.bar=7
|
|
Packit Service |
a8c26c |
[[ ${x.foo.bar} == 7 ]] || err_exit '[[ ${x.foo.bar} != 7 ]]'
|
|
Packit Service |
a8c26c |
(( x.foo.bar == 7 ))|| err_exit '(( x.foo.bar != 7 ))'
|
|
Packit Service |
a8c26c |
[[ ${x.foo} == *bar=7* ]] || err_exit '[[ ${x.foo} != *bar=7* ]]'
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
foo=(integer x=3)
|
|
Packit Service |
a8c26c |
if [[ ${foo} != *x=3* ]]
|
|
Packit Service |
a8c26c |
then err_exit "compound variable with integer subvariable not working"
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
$SHELL -c $'x=(foo=bar)\n[[ x == x ]]' 2> /dev/null ||
|
|
Packit Service |
a8c26c |
err_exit '[[ ... ]] not working after compound assignment'
|
|
Packit Service |
a8c26c |
unset foo
|
|
Packit Service |
a8c26c |
[[ ${!foo.@} ]] && err_exit 'unset compound variable leaves subvariables'
|
|
Packit Service |
a8c26c |
suitable=(
|
|
Packit Service |
a8c26c |
label="Table Viewer"
|
|
Packit Service |
a8c26c |
langs="ksh"
|
|
Packit Service |
a8c26c |
uselang=ksh
|
|
Packit Service |
a8c26c |
launch=no
|
|
Packit Service |
a8c26c |
groups="default"
|
|
Packit Service |
a8c26c |
default=(
|
|
Packit Service |
a8c26c |
label="Table Viewer Preferences"
|
|
Packit Service |
a8c26c |
entrylist=" \
|
|
Packit Service |
a8c26c |
vieworigin viewsize viewcolor viewfontname viewfontsize \
|
|
Packit Service |
a8c26c |
showheader header showfooter footer showtitle title showlegends \
|
|
Packit Service |
a8c26c |
class_td_lg1_style class_tr_tr1_style \
|
|
Packit Service |
a8c26c |
class_th_th1_style class_td_td1_style \
|
|
Packit Service |
a8c26c |
fields fieldorder \
|
|
Packit Service |
a8c26c |
"
|
|
Packit Service |
a8c26c |
entries=(
|
|
Packit Service |
a8c26c |
vieworigin=(
|
|
Packit Service |
a8c26c |
type=coord var=vieworigin val="0 0" label="Window Position"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
viewsize=(
|
|
Packit Service |
a8c26c |
type=coord var=viewsize val="400 400" label="Window Size"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
viewcolor=(
|
|
Packit Service |
a8c26c |
type=2colors var=viewcolor val="gray black"
|
|
Packit Service |
a8c26c |
label="Window Colors"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
viewfontname=(
|
|
Packit Service |
a8c26c |
type=fontname var=viewfontname val="Times-Roman"
|
|
Packit Service |
a8c26c |
label="Window Font Name"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
viewfontsize=(
|
|
Packit Service |
a8c26c |
type=fontsize var=viewfontsize val=14 label="Window Font Size"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
showheader=(
|
|
Packit Service |
a8c26c |
type=yesno var=showheader val=no label="Show Header"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
header=(
|
|
Packit Service |
a8c26c |
type=text var=header val="" label="Header"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
showfooter=(
|
|
Packit Service |
a8c26c |
type=yesno var=showfooter val=no label="Show Footer"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
footer=(
|
|
Packit Service |
a8c26c |
type=text var=footer val="" label="Footer"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
showtitle=(
|
|
Packit Service |
a8c26c |
type=yesno var=showtitle val=yes label="Show Title"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
title=(
|
|
Packit Service |
a8c26c |
type=text var=title val="SWIFTUI - Table View" label="Title"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
showlegends=(
|
|
Packit Service |
a8c26c |
type=yesno var=showlegends val=yes label="Show Legends"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
class_td_lg1_style=(
|
|
Packit Service |
a8c26c |
type=style var=class_td_lg1_style
|
|
Packit Service |
a8c26c |
val="color: black; font-family: Times-Roman; font-size: 14pt"
|
|
Packit Service |
a8c26c |
label="Legend 1 Style"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
class_tr_tr1_style=(
|
|
Packit Service |
a8c26c |
type=style var=class_tr_tr1_style val="background: black"
|
|
Packit Service |
a8c26c |
label="Table Row 1 Style"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
class_th_th1_style=(
|
|
Packit Service |
a8c26c |
type=style var=class_th_th1_style
|
|
Packit Service |
a8c26c |
val="color: black; font-family: Times-Roman; font-size: 14pt; text-align: left"
|
|
Packit Service |
a8c26c |
label="Table Header 1 Style"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
class_td_td1_style=(
|
|
Packit Service |
a8c26c |
type=style var=class_td_td1_style
|
|
Packit Service |
a8c26c |
val="color: black; font-family: Times-Roman; font-size: 14pt; text-align: left"
|
|
Packit Service |
a8c26c |
label="Table Cell 1 Style"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
fields=(
|
|
Packit Service |
a8c26c |
type=text var=fields val= label="List of Fields"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
fieldorder=(
|
|
Packit Service |
a8c26c |
type=text var=fieldorder val= label="Order of Fields"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
[[ "${suitable}" == *entrylist=* ]] || err_exit 'compound variable expansion omitting fields'
|
|
Packit Service |
a8c26c |
foo=( bar=foo barbar=bar)
|
|
Packit Service |
a8c26c |
[[ $foo == *bar=foo* ]] || err_exit 'no prefix elements in compound variable output'
|
|
Packit Service |
a8c26c |
function localvar
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
typeset point=(typeset -i x=3 y=4)
|
|
Packit Service |
a8c26c |
(( (point.x*point.x + point.y*point.y) == 25 )) || err_exit "local compound variable not working"
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
point=(integer x=6 y=8)
|
|
Packit Service |
a8c26c |
localvar
|
|
Packit Service |
a8c26c |
(( (point.x*point.x + point.y*point.y) == 100 )) || err_exit "global compound variable not preserved"
|
|
Packit Service |
a8c26c |
[[ $($SHELL -c 'foo=();foo.[x]=(y z); print ${foo.x[@]}') == 'y z' ]] 2> /dev/null || err_exit 'foo=( [x]=(y z) not working'
|
|
Packit Service |
a8c26c |
function staticvar
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
if [[ $1 ]]
|
|
Packit Service |
a8c26c |
then print -r -- "$point"
|
|
Packit Service |
a8c26c |
return
|
|
Packit Service |
a8c26c |
fi
|
|
Packit Service |
a8c26c |
typeset -S point=(typeset -i x=3 y=4)
|
|
Packit Service |
a8c26c |
(( (point.x*point.x + point.y*point.y) == 25 )) || err_exit "local compound variable not working"
|
|
Packit Service |
a8c26c |
point.y=5
|
|
Packit Service |
a8c26c |
point.z=foobar
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
staticvar
|
|
Packit Service |
a8c26c |
(( (point.x*point.x + point.y*point.y) == 100 )) || err_exit "global compound variable not preserved"
|
|
Packit Service |
a8c26c |
[[ $(staticvar x) == $'(\n\ttypeset -i x=3\n\ttypeset -i y=5\n\tz=foobar\n)' ]] || err_exit 'static variables in function not working'
|
|
Packit Service |
a8c26c |
integer x=3
|
|
Packit Service |
a8c26c |
( typeset -S x=+++)2> /dev/null || err_exit "typeset -S doesn't unset first"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset z
|
|
Packit Service |
a8c26c |
( [[ ${z.foo.bar:-abc} == abc ]] 2> /dev/null) || err_exit ':- not working with compound variables'
|
|
Packit Service |
a8c26c |
stack=()
|
|
Packit Service |
a8c26c |
typeset -a stack.items=([0]=foo [1]=bar)
|
|
Packit Service |
a8c26c |
[[ ${stack.items[0]} == foo ]] || err_exit 'typeset -a variable not expanding correctly'
|
|
Packit Service |
a8c26c |
$SHELL -c 'typeset -a info=( [1]=( passwd=( since=2005-07-20) ))' || err_exit 'problem with embedded index array in compound variable'
|
|
Packit Service |
a8c26c |
x=(foo=([1]=(y=([2]=(z=4)))))
|
|
Packit Service |
a8c26c |
[[ $x == *'.y'=* ]] && err_exit 'expansion with bogus leading . in name'
|
|
Packit Service |
a8c26c |
unset z
|
|
Packit Service |
a8c26c |
z=1
|
|
Packit Service |
a8c26c |
function foo
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
z=3
|
|
Packit Service |
a8c26c |
[[ ${a.z} == 3 ]] && err_exit "\${a.z} should not be 3"
|
|
Packit Service |
a8c26c |
print hi
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
a=( b=$(foo) )
|
|
Packit Service |
a8c26c |
[[ ${a.z} == 3 ]] && err_exit 'a.z should not be set to 3'
|
|
Packit Service |
a8c26c |
function a.b.get
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
.sh.value=foo
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
{ b=( b1=${a.b} ) ;} 2> /dev/null
|
|
Packit Service |
a8c26c |
[[ ${b.b1} == foo ]] || err_exit '${b.b1} should be foo'
|
|
Packit Service |
a8c26c |
function dcl1
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
eval 'a=1
|
|
Packit Service |
a8c26c |
function a.set
|
|
Packit Service |
a8c26c |
{ print ${.sh.name}=${.sh.value}; }'
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
function dcl2
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
eval 'b=(typeset x=0; typeset y=0 )
|
|
Packit Service |
a8c26c |
function b.x.set
|
|
Packit Service |
a8c26c |
{ print ${.sh.name}=${.sh.value}; }'
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
dcl1
|
|
Packit Service |
a8c26c |
[[ ${ a=123;} == 'a=123' ]] || err_exit 'should be a=123'
|
|
Packit Service |
a8c26c |
dcl2
|
|
Packit Service |
a8c26c |
[[ ${ b.x=456;} == 'b.x=456' ]] || err_exit 'should be b.x=456'
|
|
Packit Service |
a8c26c |
eval 'b=(typeset x=0; typeset y=0 )
|
|
Packit Service |
a8c26c |
function b.x.set
|
|
Packit Service |
a8c26c |
{ print ${.sh.name}=${.sh.value}; }' > /dev/null
|
|
Packit Service |
a8c26c |
[[ ${ b.x=789;} == 'b.x=789' ]] || err_exit 'should be b.x=789'
|
|
Packit Service |
a8c26c |
unset a b
|
|
Packit Service |
a8c26c |
function func
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
typeset X
|
|
Packit Service |
a8c26c |
X=( bar=2 )
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
X=( foo=1 )
|
|
Packit Service |
a8c26c |
func
|
|
Packit Service |
a8c26c |
[[ $X == $'(\n\tfoo=1\n)' ]] || err_exit 'scoping problem with compound variables'
|
|
Packit Service |
a8c26c |
unset foo
|
|
Packit Service |
a8c26c |
typeset -A foo=([a]=aa;[b]=bb;[c]=cc)
|
|
Packit Service |
a8c26c |
[[ ${foo[c]} == cc ]] || err_exit 'associative array assignment with; not working'
|
|
Packit Service |
a8c26c |
[[ $({ $SHELL -c 'x=(); typeset -a x.foo; x.foo=bar; print -r -- "$x"' ;} 2> /dev/null) == $'(\n\ttypeset -a foo=bar\n)' ]] || err_exit 'indexed array in compound variable with only element 0 defined fails'
|
|
Packit Service |
a8c26c |
unset foo
|
|
Packit Service |
a8c26c |
foo=(typeset -a bar)
|
|
Packit Service |
a8c26c |
[[ $foo == *'typeset -a bar'* ]] || err_exit 'array attribute -a not preserved in compound variable'
|
|
Packit Service |
a8c26c |
unset s
|
|
Packit Service |
a8c26c |
typeset -A s=( [foo]=(y=2 z=3) [bar]=(y=4 z=5))
|
|
Packit Service |
a8c26c |
[[ ${s[@]} == *z=*z=* ]] || err_exit 'missing elements in compound associative array'
|
|
Packit Service |
a8c26c |
unset nodes
|
|
Packit Service |
a8c26c |
typeset -A nodes
|
|
Packit Service |
a8c26c |
nodes[0]+=( integer x=5)
|
|
Packit Service |
a8c26c |
[[ ${nodes[0].x} == 5 ]] || err_exit '${nodes[0].x} should be 5'
|
|
Packit Service |
a8c26c |
unset foo
|
|
Packit Service |
a8c26c |
typeset -C foo
|
|
Packit Service |
a8c26c |
foo.bar=abc
|
|
Packit Service |
a8c26c |
[[ $foo == $'(\n\tbar=abc\n)' ]] || err_exit 'typeset -C not working for foo'
|
|
Packit Service |
a8c26c |
typeset -C foo=(bar=def)
|
|
Packit Service |
a8c26c |
[[ $foo == $'(\n\tbar=def\n)' ]] || err_exit 'typeset -C not working when initialized'
|
|
Packit Service |
a8c26c |
foo=(
|
|
Packit Service |
a8c26c |
hello=ok
|
|
Packit Service |
a8c26c |
yes=( bam=2 yes=4)
|
|
Packit Service |
a8c26c |
typeset -A array=([one]=one [two]=2)
|
|
Packit Service |
a8c26c |
last=me
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
eval foo2="$foo"
|
|
Packit Service |
a8c26c |
foo2.hello=notok foo2.yes.yex=no foo2.extra=yes.
|
|
Packit Service |
a8c26c |
typeset -C bar bam
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
read -Cu3 bar
|
|
Packit Service |
a8c26c |
read -Cu3 bam
|
|
Packit Service |
a8c26c |
read -ru3
|
|
Packit Service |
a8c26c |
} 3<<- ++++
|
|
Packit Service |
a8c26c |
"$foo"
|
|
Packit Service |
a8c26c |
"$foo2"
|
|
Packit Service |
a8c26c |
last line
|
|
Packit Service |
a8c26c |
++++
|
|
Packit Service |
a8c26c |
[[ $? == 0 ]] || err_exit ' read -C failed'
|
|
Packit Service |
a8c26c |
[[ $bar == "$foo" ]] || err_exit '$foo != $bar'
|
|
Packit Service |
a8c26c |
[[ $bam == "$foo2" ]] || err_exit '$foo2 != $bmr'
|
|
Packit Service |
a8c26c |
[[ $REPLY == 'last line' ]] || err_exit "\$REPLY=$REPLY should be 'last line"
|
|
Packit Service |
a8c26c |
typeset x=( typeset -a foo=( [1][3]=hello [9][2]="world" ) )
|
|
Packit Service |
a8c26c |
eval y="(typeset -a foo=$(printf "%B\n" x.foo) )"
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x.foo != $y.foo with %B'
|
|
Packit Service |
a8c26c |
eval y="(typeset -a foo=$(printf "%#B\n" x.foo) )"
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x.foo != $y.foo with %#B'
|
|
Packit Service |
a8c26c |
eval y="$(printf "%B\n" x)"
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x != $y with %B'
|
|
Packit Service |
a8c26c |
eval y="$(printf "%#B\n" x)"
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x != $y with %#B'
|
|
Packit Service |
a8c26c |
y=$(set | grep ^x=) 2> /dev/null
|
|
Packit Service |
a8c26c |
eval "${y/#x/y}"
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x != $y with set | grep'
|
|
Packit Service |
a8c26c |
unset x y z
|
|
Packit Service |
a8c26c |
x=( float x=0 y=1; z=([foo]=abc [bar]=def))
|
|
Packit Service |
a8c26c |
typeset -C y=x
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x != $y with typeset -C'
|
|
Packit Service |
a8c26c |
unset y
|
|
Packit Service |
a8c26c |
y=()
|
|
Packit Service |
a8c26c |
y=x
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x != $y when x=y and x and y are -C '
|
|
Packit Service |
a8c26c |
function foobar
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
typeset -C z
|
|
Packit Service |
a8c26c |
z=x
|
|
Packit Service |
a8c26c |
[[ $x == "$z" ]] || err_exit '$x != $z when x=z and x and z are -C '
|
|
Packit Service |
a8c26c |
y=z
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x != $y when x=y -C copied in a function '
|
|
Packit Service |
a8c26c |
z=(foo=abc)
|
|
Packit Service |
a8c26c |
y+=z
|
|
Packit Service |
a8c26c |
[[ $y == *foo=abc* ]] || err_exit 'z not appended to y'
|
|
Packit Service |
a8c26c |
unset y.foo
|
|
Packit Service |
a8c26c |
[[ $x == "$y" ]] || err_exit '$x != $y when y.foo deleted'
|
|
Packit Service |
a8c26c |
unset x y
|
|
Packit Service |
a8c26c |
x=( foo=(z=abc d=ghi) bar=abc; typeset -A r=([x]=3 [y]=4))
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
x=()
|
|
Packit Service |
a8c26c |
[[ $x == $'(\n)' ]] || err_exit 'unset compound variable is not empty'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset z
|
|
Packit Service |
a8c26c |
z=()
|
|
Packit Service |
a8c26c |
z.foo=( [one]=hello [two]=(x=3 y=4) [three]=hi)
|
|
Packit Service |
a8c26c |
z.bar[0]=hello
|
|
Packit Service |
a8c26c |
z.bar[2]=world
|
|
Packit Service |
a8c26c |
z.bar[1]=(x=4 y=5)
|
|
Packit Service |
a8c26c |
exp='(
|
|
Packit Service |
a8c26c |
typeset -a bar=(
|
|
Packit Service |
a8c26c |
[0]=hello
|
|
Packit Service |
a8c26c |
[2]=world
|
|
Packit Service |
a8c26c |
[1]=(
|
|
Packit Service |
a8c26c |
x=4
|
|
Packit Service |
a8c26c |
y=5
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
typeset -A foo=(
|
|
Packit Service |
a8c26c |
[one]=hello
|
|
Packit Service |
a8c26c |
[three]=hi
|
|
Packit Service |
a8c26c |
[two]=(
|
|
Packit Service |
a8c26c |
x=3
|
|
Packit Service |
a8c26c |
y=4
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)'
|
|
Packit Service |
a8c26c |
got=$z
|
|
Packit Service |
a8c26c |
[[ $got == "$exp" ]] || {
|
|
Packit Service |
a8c26c |
exp=$(printf %q "$exp")
|
|
Packit Service |
a8c26c |
got=$(printf %q "$got")
|
|
Packit Service |
a8c26c |
err_exit "compound indexed array pretty print failed -- expected $exp, got $got"
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -A record
|
|
Packit Service |
a8c26c |
record[a]=(
|
|
Packit Service |
a8c26c |
typeset -a x=(
|
|
Packit Service |
a8c26c |
[1]=(
|
|
Packit Service |
a8c26c |
X=1
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
exp=$'(\n\ttypeset -a x=(\n\t\t[1]=(\n\t\t\tX=1\n\t\t)\n\t)\n)'
|
|
Packit Service |
a8c26c |
got=${record[a]}
|
|
Packit Service |
a8c26c |
[[ $got == "$exp" ]] || {
|
|
Packit Service |
a8c26c |
exp=$(printf %q "$exp")
|
|
Packit Service |
a8c26c |
got=$(printf %q "$got")
|
|
Packit Service |
a8c26c |
err_exit "compound indexed array pretty print failed -- expected $exp, got $got"
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset r
|
|
Packit Service |
a8c26c |
r=(
|
|
Packit Service |
a8c26c |
typeset -a x=(
|
|
Packit Service |
a8c26c |
[1]=(
|
|
Packit Service |
a8c26c |
X=1
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
exp=$'(\n\ttypeset -a x=(\n\t\t[1]=(\n\t\t\tX=1\n\t\t)\n\t)\n)'
|
|
Packit Service |
a8c26c |
got=$r
|
|
Packit Service |
a8c26c |
[[ $got == "$exp" ]] || {
|
|
Packit Service |
a8c26c |
exp=$(printf %q "$exp")
|
|
Packit Service |
a8c26c |
got=$(printf %q "$got")
|
|
Packit Service |
a8c26c |
err_exit "compound indexed array pretty print failed -- expected $exp, got $got"
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
# array of compund variables
|
|
Packit Service |
a8c26c |
typeset -C data=(
|
|
Packit Service |
a8c26c |
typeset -a samples
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
data.samples+=(
|
|
Packit Service |
a8c26c |
type1="greeting1"
|
|
Packit Service |
a8c26c |
timestamp1="now1"
|
|
Packit Service |
a8c26c |
command1="grrrr1"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
data.samples+=(
|
|
Packit Service |
a8c26c |
type2="greeting2"
|
|
Packit Service |
a8c26c |
timestamp2="now2"
|
|
Packit Service |
a8c26c |
command2="grrrr2"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
[[ $data == %(()) ]] || err_exit "unbalanced parenthesis with compound variable containing array of compound variables"
|
|
Packit Service |
a8c26c |
typeset -C -A hello=( [foo]=bar)
|
|
Packit Service |
a8c26c |
[[ $(typeset -p hello) == 'typeset -C -A hello=([foo]=bar)' ]] || err_exit 'typeset -A -C with intial assignment not working'
|
|
Packit Service |
a8c26c |
# this caused a core dump before ksh93t+
|
|
Packit Service |
a8c26c |
[[ $($SHELL -c 'foo=(x=3 y=4);function bar { typeset z=4;: $z;};bar;print ${!foo.@}') == 'foo.x foo.y' ]] 2> /dev/null || err_exit '${!foo.@} after function not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
function foo
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
typeset tmp
|
|
Packit Service |
a8c26c |
read -C tmp
|
|
Packit Service |
a8c26c |
read -C tmp
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
foo 2> /dev/null <<- \EOF || err_exit 'deleting compound variable in function failed'
|
|
Packit Service |
a8c26c |
(
|
|
Packit Service |
a8c26c |
typeset -A myarray3=(
|
|
Packit Service |
a8c26c |
[a]=( foo=bar)
|
|
Packit Service |
a8c26c |
[b]=( foo=bar)
|
|
Packit Service |
a8c26c |
[c d]=( foo=bar)
|
|
Packit Service |
a8c26c |
[e]=( foo=bar)
|
|
Packit Service |
a8c26c |
[f]=( foo=bar)
|
|
Packit Service |
a8c26c |
[g]=( foo=bar)
|
|
Packit Service |
a8c26c |
[h]=( foo=bar)
|
|
Packit Service |
a8c26c |
[i]=( foo=bar)
|
|
Packit Service |
a8c26c |
[j]=( foo=bar)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
hello
|
|
Packit Service |
a8c26c |
EOF
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -C -a mica01
|
|
Packit Service |
a8c26c |
mica01[4]=( a_string="foo bar" )
|
|
Packit Service |
a8c26c |
typeset -C more_content=(
|
|
Packit Service |
a8c26c |
some_stuff="hello"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
mica01[4]+=more_content
|
|
Packit Service |
a8c26c |
expected=$'typeset -C -a mica01=([4]=(a_string=\'foo bar\';some_stuff=hello))'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p mica01) == "$expected" ]] || err_exit 'appened to indexed array compound variable not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
compound x=( integer x ; )
|
|
Packit Service |
a8c26c |
[[ ! -v x.x ]] && err_exit 'x.x should be set'
|
|
Packit Service |
a8c26c |
expected=$'(\n\ttypeset -l -i x=0\n)'
|
|
Packit Service |
a8c26c |
[[ $(print -v x) == "$expected" ]] || err_exit "'print -v x' should be $expected"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -C -A hello19=(
|
|
Packit Service |
a8c26c |
[19]=(
|
|
Packit Service |
a8c26c |
one="xone 19"
|
|
Packit Service |
a8c26c |
two="xtwo 19"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
[23]=(
|
|
Packit Service |
a8c26c |
one="xone 23"
|
|
Packit Service |
a8c26c |
two="xtwo 23"
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
expected="typeset -C -A hello19=([19]=(one='xone 19';two='xtwo 19') [23]=(one='xone 23';two='xtwo 23'))"
|
|
Packit Service |
a8c26c |
[[ $(typeset -p hello19) == "$expected" ]] || print -u2 'typeset -p hello19 incorrect'
|
|
Packit Service |
a8c26c |
expected=$'(\n\tone=\'xone 19\'\n\ttwo=\'xtwo 19\'\n) (\n\tone=\'xone 23\'\n\ttwo=\'xtwo 23\'\n)'
|
|
Packit Service |
a8c26c |
[[ ${hello19[@]} == "$expected" ]] || print -u2 '${hello19[@]} incorrect'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -C -A foo1=( abc="alphabet" ) foo2=( abc="alphabet" )
|
|
Packit Service |
a8c26c |
function add_one
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
nameref left_op=$1
|
|
Packit Service |
a8c26c |
typeset -C info
|
|
Packit Service |
a8c26c |
info.hello="world"
|
|
Packit Service |
a8c26c |
nameref x=info
|
|
Packit Service |
a8c26c |
left_op+=x
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
nameref node1="foo1[1234]"
|
|
Packit Service |
a8c26c |
add_one "node1"
|
|
Packit Service |
a8c26c |
add_one "foo2[1234]"
|
|
Packit Service |
a8c26c |
[[ "${foo1[1234]}" == "${foo2[1234]}" ]] || err_exit "test failed\n$(diff -u <( print -r -- "${foo1[1234]}") <(print -r -- "${foo2[1234]}"))."
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -C tree
|
|
Packit Service |
a8c26c |
function f1
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
nameref tr=$1
|
|
Packit Service |
a8c26c |
typeset -A tr.subtree
|
|
Packit Service |
a8c26c |
typeset -C node
|
|
Packit Service |
a8c26c |
node.one="hello"
|
|
Packit Service |
a8c26c |
node.two="world"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
# move local note into the array
|
|
Packit Service |
a8c26c |
typeset -m tr.subtree["a_node"]=node
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
f1 tree
|
|
Packit Service |
a8c26c |
expected=$'(\n\ttypeset -A subtree=(\n\t\t[a_node]=(\n\t\t\tone=hello\n\t\t\ttwo=world\n\t\t)\n\t)\n)'
|
|
Packit Service |
a8c26c |
[[ $tree == "$expected" ]] || err_exit 'move of compound local variable to global variable not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -C -A array
|
|
Packit Service |
a8c26c |
float array[12].amount=2.9
|
|
Packit Service |
a8c26c |
expected='typeset -C -A array=([12]=(typeset -l -E amount=2.9))'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p array) == "$expected" ]] || err_exit 'typeset with compound variable with compound variable array not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -T foo_t=(
|
|
Packit Service |
a8c26c |
function diff
|
|
Packit Service |
a8c26c |
{
|
|
Packit Service |
a8c26c |
print 1.0
|
|
Packit Service |
a8c26c |
return 0
|
|
Packit Service |
a8c26c |
}
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
foo_t sw
|
|
Packit Service |
a8c26c |
compound output=(
|
|
Packit Service |
a8c26c |
integer one=1
|
|
Packit Service |
a8c26c |
float mydiff=sw.diff
|
|
Packit Service |
a8c26c |
float end=.314
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
[[ $output == *end=* ]] || err_exit "The field 'name' end is missing"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
compound cpv1=( integer f=2 )
|
|
Packit Service |
a8c26c |
compound x=(
|
|
Packit Service |
a8c26c |
integer a=1
|
|
Packit Service |
a8c26c |
compound b=cpv1
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
[[ $x == *f=2* ]] || err_exit "The field b containg 'f=2' is missing"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
compound x=(
|
|
Packit Service |
a8c26c |
compound -a nodes=(
|
|
Packit Service |
a8c26c |
[4]=( )
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
expected='typeset -C x=(typeset -C -a nodes=([4]=());)'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p x) == "$expected" ]] || err_exit 'typeset -p with nested compound index array not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset v
|
|
Packit Service |
a8c26c |
compound v=(
|
|
Packit Service |
a8c26c |
integer -A ar=(
|
|
Packit Service |
a8c26c |
[aa]=4 [bb]=9
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
expected='typeset -C v=(typeset -A -l -i ar=([aa]=4 [bb]=9);)'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p v) == "$expected" ]] || err_exit 'attributes for associative arrays embedded in compound variables not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
compound -a x
|
|
Packit Service |
a8c26c |
x[1]=( a=1 b=2 )
|
|
Packit Service |
a8c26c |
[[ $(print -v x[1]) == "${x[1]}" ]] || err_exit 'print -v x[1] not working for index array of compound variables'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
z='typeset -a x=(hello (x=12;y=5) world)'
|
|
Packit Service |
a8c26c |
{ eval "$z" ;} 2> /dev/null
|
|
Packit Service |
a8c26c |
[[ $(typeset -p x) == "$z" ]] || err_exit "compound assignment '$z' not working"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
expected='typeset -C -A l=([4]=(typeset -a ar=(1 2 3);b=1))'
|
|
Packit Service |
a8c26c |
typeset -A -C l
|
|
Packit Service |
a8c26c |
printf "( typeset -a ar=( 1\n2\n3\n) b=1 )\n" | read -C l[4]
|
|
Packit Service |
a8c26c |
[[ $(typeset -p l) == "$expected" ]] || err_exit 'read -C for associative array of compound variables not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
compound x=( z="a=b c")
|
|
Packit Service |
a8c26c |
exp=$'typeset -C x=(z=a\\=\'b c\')'
|
|
Packit Service |
a8c26c |
got=$(typeset -p x)
|
|
Packit Service |
a8c26c |
[[ $got == "$exp" ]] || err_exit "typeset -p failed -- expected '$exp', got '$got'"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
x=(typeset -C -a y;float z=2)
|
|
Packit Service |
a8c26c |
got=$(print -C x)
|
|
Packit Service |
a8c26c |
expected='(typeset -C -a y;typeset -l -E z=2)'
|
|
Packit Service |
a8c26c |
[[ $expected == "$got" ]] || err_exit "print -C x exects '$expected' got '$got'"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset vx vy
|
|
Packit Service |
a8c26c |
compound vx=(
|
|
Packit Service |
a8c26c |
compound -a va=(
|
|
Packit Service |
a8c26c |
[3][17]=(
|
|
Packit Service |
a8c26c |
integer -A ar=( [aa]=4 [bb]=9 )
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
eval "vy=$(print -C vx)"
|
|
Packit Service |
a8c26c |
[[ $vx == "$vy" ]] || err_exit 'print -C with multi-dimensional array not working'
|
|
Packit Service |
a8c26c |
eval "vy=$(print -v vx)"
|
|
Packit Service |
a8c26c |
[[ $vx == "$vy" ]] || err_exit 'print -v with multi-dimensional array not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset x
|
|
Packit Service |
a8c26c |
typeset -C -A x=( [0]=(a=1) [1]=(b=2) )
|
|
Packit Service |
a8c26c |
expected=$'(\n\t[0]=(\n\t\ta=1\n\t)\n\t[1]=(\n\t\tb=2\n\t)\n)'
|
|
Packit Service |
a8c26c |
[[ $(print -v x) == "$expected" ]] || err_exit 'print -v not formatting correctly'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
compound -a x=( [0]=(a=1) [1]=(b=2) )
|
|
Packit Service |
a8c26c |
typeset -m "z=x[1]"
|
|
Packit Service |
a8c26c |
[[ $(typeset -p z 2>/dev/null) == 'typeset -C z=(b=2)' ]] || err_exit 'typeset -m not working with commpound -a variable'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset x z
|
|
Packit Service |
a8c26c |
compound -A x=( [0]=(a=1) [1]=(b=2) )
|
|
Packit Service |
a8c26c |
typeset -m "z=x[1]"
|
|
Packit Service |
a8c26c |
[[ $(typeset -p z 2>/dev/null) == 'typeset -C z=(b=2)' ]] || err_exit 'typeset -m not working with commpound -a variable'
|
|
Packit Service |
a8c26c |
typeset -m "x[1]=x[0]"
|
|
Packit Service |
a8c26c |
typeset -m "x[0]=z"
|
|
Packit Service |
a8c26c |
exp='([0]=(b=2) [1]=(a=1))'
|
|
Packit Service |
a8c26c |
[[ $(print -C x) == "$exp" ]] || err_exit 'typeset -m not working for associative arrays'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset z r
|
|
Packit Service |
a8c26c |
z=(a b c)
|
|
Packit Service |
a8c26c |
r=(x=3 y=4)
|
|
Packit Service |
a8c26c |
typeset -m z[1]=r
|
|
Packit Service |
a8c26c |
exp='typeset -a z=(a (x=3;y=4) c)'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p z) == "$exp" ]] || err_exit 'moving compound variable into indexed array fails'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset c
|
|
Packit Service |
a8c26c |
compound c
|
|
Packit Service |
a8c26c |
compound -a c.a=( [1]=( aa=1 ) )
|
|
Packit Service |
a8c26c |
compound -a c.b=( [2]=( bb=2 ) )
|
|
Packit Service |
a8c26c |
typeset -m "c.b[9]=c.a[1]"
|
|
Packit Service |
a8c26c |
exp='typeset -C c=(typeset -C -a a;typeset -C -a b=( [2]=(bb=2;)[9]=(aa=1));)'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p c) == "$exp" ]] || err_exit 'moving compound indexed array element to another index fails'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset c
|
|
Packit Service |
a8c26c |
compound c
|
|
Packit Service |
a8c26c |
compound -a c.a=( [1]=( aa=1 ) )
|
|
Packit Service |
a8c26c |
compound -A c.b=( [2]=( bb=2 ) )
|
|
Packit Service |
a8c26c |
typeset -m "c.b[9]=c.a[1]"
|
|
Packit Service |
a8c26c |
exp='typeset -C c=(typeset -C -a a;typeset -C -A b=( [2]=(bb=2;)[9]=(aa=1));)'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p c) == "$exp" ]] || err_exit 'moving compound indexed array element to a compound associative array element fails'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
zzz=(
|
|
Packit Service |
a8c26c |
foo=(
|
|
Packit Service |
a8c26c |
bar=4
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
)
|
|
Packit Service |
a8c26c |
[[ $(set | grep "^zzz\.") ]] && err_exit 'set displays compound variables incorrectly'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typeset -A stats
|
|
Packit Service |
a8c26c |
stats[1]=(a=1 b=2)
|
|
Packit Service |
a8c26c |
stats[2]=(a=1 b=2)
|
|
Packit Service |
a8c26c |
stats[1]=(c=3 d=4)
|
|
Packit Service |
a8c26c |
(( ${#stats[@]} == 2 )) || err_exit "stats[1] should contain 2 element not ${#stats[@]}"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
integer i=1
|
|
Packit Service |
a8c26c |
foo[i++]=(x=3 y=4)
|
|
Packit Service |
a8c26c |
[[ ${foo[1].x} == 3 ]] || err_exit "\${foo[1].x} should be 3"
|
|
Packit Service |
a8c26c |
[[ ${foo[1].y} == 4 ]] || err_exit "\${foo[1].y} should be 4"
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
# ${!x.} caused core dump in ks93u and earlier
|
|
Packit Service |
a8c26c |
{ $SHELL -c 'compound x=(y=1); : ${!x.}' ; ((!$?));} || err_exit '${!x.} not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
$SHELL -c 'typeset -A a=([b]=c)' 2> /dev/null || err_exit 'typeset -A a=([b]=c) fails'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
compound -a a
|
|
Packit Service |
a8c26c |
compound c=( name="container1" )
|
|
Packit Service |
a8c26c |
a[4]=c
|
|
Packit Service |
a8c26c |
[[ ${a[4]} == $'(\n\tname=container1\n)' ]] || err_exit 'assignment of compound variable to compound array element not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset c
|
|
Packit Service |
a8c26c |
compound c
|
|
Packit Service |
a8c26c |
compound -a c.board
|
|
Packit Service |
a8c26c |
for ((i=2; i < 4; i++))
|
|
Packit Service |
a8c26c |
do c.board[1][$i]=(foo=bar)
|
|
Packit Service |
a8c26c |
done
|
|
Packit Service |
a8c26c |
exp=$'(\n\ttypeset -C -a board=(\n\t\t[1]=(\n\t\t\t[2]=(\n\t\t\t\tfoo=bar\n\t\t\t)\n\t\t\t[3]=(\n\t\t\t\tfoo=bar\n\t\t\t)\n\t\t)\n\t)\n)'
|
|
Packit Service |
a8c26c |
[[ "$(print -v c)" == "$exp" ]] || err_exit 'compound variable assignment to two dimensional array not working'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset zz
|
|
Packit Service |
a8c26c |
zz=()
|
|
Packit Service |
a8c26c |
zz.[foo]=abc
|
|
Packit Service |
a8c26c |
zz.[2]=def
|
|
Packit Service |
a8c26c |
exp='typeset -C zz=([2]=def;foo=abc)'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p zz) == "$exp" ]] || err_exit 'expansion of compound variables with non-identifiers not working'
|
|
Packit Service |
a8c26c |
(
|
|
Packit Service |
a8c26c |
typeset -i zz.[3]=123
|
|
Packit Service |
a8c26c |
exec 2>& 3-
|
|
Packit Service |
a8c26c |
exp='typeset -C zz=([2]=def;typeset -i [3]=123;foo=abc)'
|
|
Packit Service |
a8c26c |
[[ $(typeset -p zz) == "$exp" ]] || err_exit 'expansion of compound variables with non-identifiers not working in subshells'
|
|
Packit Service |
a8c26c |
) 3>&2 2> /dev/null || err_exit 'syntax errors expansion of compound variables with non-identifiers'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
unset xx
|
|
Packit Service |
a8c26c |
xx=(foo=bar)
|
|
Packit Service |
a8c26c |
xx=()
|
|
Packit Service |
a8c26c |
[[ $xx == $'(\n)' ]] || err_exit 'xx=() not unsetting previous value'
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
exit $((Errors<125?Errors:125))
|