18462SApril.Chin@Sun.COM# 28462SApril.Chin@Sun.COM# CDDL HEADER START 38462SApril.Chin@Sun.COM# 48462SApril.Chin@Sun.COM# The contents of this file are subject to the terms of the 58462SApril.Chin@Sun.COM# Common Development and Distribution License (the "License"). 68462SApril.Chin@Sun.COM# You may not use this file except in compliance with the License. 78462SApril.Chin@Sun.COM# 88462SApril.Chin@Sun.COM# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 98462SApril.Chin@Sun.COM# or http://www.opensolaris.org/os/licensing. 108462SApril.Chin@Sun.COM# See the License for the specific language governing permissions 118462SApril.Chin@Sun.COM# and limitations under the License. 128462SApril.Chin@Sun.COM# 138462SApril.Chin@Sun.COM# When distributing Covered Code, include this CDDL HEADER in each 148462SApril.Chin@Sun.COM# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 158462SApril.Chin@Sun.COM# If applicable, add the following below this CDDL HEADER, with the 168462SApril.Chin@Sun.COM# fields enclosed by brackets "[]" replaced with your own identifying 178462SApril.Chin@Sun.COM# information: Portions Copyright [yyyy] [name of copyright owner] 188462SApril.Chin@Sun.COM# 198462SApril.Chin@Sun.COM# CDDL HEADER END 208462SApril.Chin@Sun.COM# 218462SApril.Chin@Sun.COM 228462SApril.Chin@Sun.COM# 23*12068SRoger.Faulkner@Oracle.COM# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. 248462SApril.Chin@Sun.COM# 258462SApril.Chin@Sun.COM 268462SApril.Chin@Sun.COM# 278462SApril.Chin@Sun.COM# variable tree test #003 288462SApril.Chin@Sun.COM# Propose of this test is whether ksh93 handles global variable trees 298462SApril.Chin@Sun.COM# and function-local variable trees the same way, including "nameref" 308462SApril.Chin@Sun.COM# and "unset" handling. 318462SApril.Chin@Sun.COM# 328462SApril.Chin@Sun.COM 3310898Sroland.mainz@nrubsig.org# test setup 348462SApril.Chin@Sun.COMfunction err_exit 358462SApril.Chin@Sun.COM{ 368462SApril.Chin@Sun.COM print -u2 -n "\t" 378462SApril.Chin@Sun.COM print -u2 -r ${Command}[$1]: "${@:2}" 38*12068SRoger.Faulkner@Oracle.COM (( Errors < 127 && Errors++ )) 398462SApril.Chin@Sun.COM} 408462SApril.Chin@Sun.COMalias err_exit='err_exit $LINENO' 418462SApril.Chin@Sun.COM 4210898Sroland.mainz@nrubsig.org# the test cannot use "nounset" 4310898Sroland.mainz@nrubsig.orgCommand=${0##*/} 448462SApril.Chin@Sun.COMinteger Errors=0 458462SApril.Chin@Sun.COM 468462SApril.Chin@Sun.COMfunction example_tree 478462SApril.Chin@Sun.COM{ 488462SApril.Chin@Sun.COMcat <<EOF 498462SApril.Chin@Sun.COM( 508462SApril.Chin@Sun.COM typeset -A l1=( 518462SApril.Chin@Sun.COM [adobe]=( 528462SApril.Chin@Sun.COM typeset -A l2=( 538462SApril.Chin@Sun.COM [avantgarde]=( 548462SApril.Chin@Sun.COM typeset -A l3=( 558462SApril.Chin@Sun.COM [demi]=( 568462SApril.Chin@Sun.COM typeset -A entries=( 578462SApril.Chin@Sun.COM [182c069a485316b1bc7ae001c04c7835]=( 588462SApril.Chin@Sun.COM typeset -a comments=( 598462SApril.Chin@Sun.COM FONT 608462SApril.Chin@Sun.COM -adobe-avantgarde-demi-r-normal--199-120-1200-1200-p-1130-iso8859-1 618462SApril.Chin@Sun.COM COPYRIGHT 628462SApril.Chin@Sun.COM 'Copyright Notice not available' 638462SApril.Chin@Sun.COM RAW_PIXELSIZE 648462SApril.Chin@Sun.COM RAW_POINTSIZE 658462SApril.Chin@Sun.COM -- 668462SApril.Chin@Sun.COM section 678462SApril.Chin@Sun.COM diaeresis 688462SApril.Chin@Sun.COM copyright 698462SApril.Chin@Sun.COM ordfeminine 708462SApril.Chin@Sun.COM guillemotleft 718462SApril.Chin@Sun.COM ) 728462SApril.Chin@Sun.COM typeset -a filenames=( 738462SApril.Chin@Sun.COM X11Rx/R6.4/xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-Demi.pmf 748462SApril.Chin@Sun.COM ) 758462SApril.Chin@Sun.COM md5sum=182c069a485316b1bc7ae001c04c7835 768462SApril.Chin@Sun.COM typeset -a xlfd=( 778462SApril.Chin@Sun.COM -adobe-avantgarde-demi-r-normal--199-120-1200-1200-p-1130-iso8859-1 788462SApril.Chin@Sun.COM ) 798462SApril.Chin@Sun.COM ) 808462SApril.Chin@Sun.COM [7db15b51965d8fe1f1c55fcb101d7616]=( 818462SApril.Chin@Sun.COM typeset -a comments=( 828462SApril.Chin@Sun.COM FONT 838462SApril.Chin@Sun.COM -adobe-avantgarde-demi-i-normal--199-120-1200-1200-p-1130-iso8859-1 848462SApril.Chin@Sun.COM COPYRIGHT 858462SApril.Chin@Sun.COM 'Copyright Notice not available' 868462SApril.Chin@Sun.COM RAW_PIXELSIZE 878462SApril.Chin@Sun.COM RAW_POINTSIZE 888462SApril.Chin@Sun.COM -- 898462SApril.Chin@Sun.COM section 908462SApril.Chin@Sun.COM diaeresis 918462SApril.Chin@Sun.COM copyright 928462SApril.Chin@Sun.COM ordfeminine 938462SApril.Chin@Sun.COM guillemotleft 948462SApril.Chin@Sun.COM ) 958462SApril.Chin@Sun.COM typeset -a filenames=( 968462SApril.Chin@Sun.COM X11Rx/R6.4/xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-DemiOblique.pmf 978462SApril.Chin@Sun.COM ) 988462SApril.Chin@Sun.COM md5sum=7db15b51965d8fe1f1c55fcb101d7616 998462SApril.Chin@Sun.COM typeset -a xlfd=( 1008462SApril.Chin@Sun.COM -adobe-avantgarde-demi-i-normal--199-120-1200-1200-p-1130-iso8859-1 1018462SApril.Chin@Sun.COM ) 1028462SApril.Chin@Sun.COM ) 1038462SApril.Chin@Sun.COM [a37e4a4a5035abf6f294d830fbd9e775]=( 1048462SApril.Chin@Sun.COM typeset -a comments=( 1058462SApril.Chin@Sun.COM FONT 1068462SApril.Chin@Sun.COM -adobe-avantgarde-demi-r-normal--422-120-2540-2540-p-2395-iso8859-1 1078462SApril.Chin@Sun.COM COPYRIGHT 1088462SApril.Chin@Sun.COM 'Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation.' 1098462SApril.Chin@Sun.COM RAW_PIXELSIZE 1108462SApril.Chin@Sun.COM RAW_POINTSIZE 1118462SApril.Chin@Sun.COM -- 1128462SApril.Chin@Sun.COM section 1138462SApril.Chin@Sun.COM diaeresis 1148462SApril.Chin@Sun.COM copyright 1158462SApril.Chin@Sun.COM ordfeminine 1168462SApril.Chin@Sun.COM guillemotleft 1178462SApril.Chin@Sun.COM ) 1188462SApril.Chin@Sun.COM typeset -a filenames=( 1198462SApril.Chin@Sun.COM fox-gate/XW_NV/open-src/tarballs/xorg-server-1.3.0.0/hw/xprint/config/C/print/models/PSdefault/fonts/AvantGarde-Demi.pmf 1208462SApril.Chin@Sun.COM ) 1218462SApril.Chin@Sun.COM md5sum=a37e4a4a5035abf6f294d830fbd9e775 1228462SApril.Chin@Sun.COM typeset -a xlfd=( 1238462SApril.Chin@Sun.COM -adobe-avantgarde-demi-r-normal--422-120-2540-2540-p-2395-iso8859-1 1248462SApril.Chin@Sun.COM ) 1258462SApril.Chin@Sun.COM ) 1268462SApril.Chin@Sun.COM [da3d6d94fcf759b95c7f829ce5619374]=( 1278462SApril.Chin@Sun.COM typeset -a comments=( 1288462SApril.Chin@Sun.COM FONT 1298462SApril.Chin@Sun.COM -adobe-avantgarde-demi-i-normal--422-120-2540-2540-p-2395-iso8859-1 1308462SApril.Chin@Sun.COM COPYRIGHT 1318462SApril.Chin@Sun.COM 'Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation.' 1328462SApril.Chin@Sun.COM RAW_PIXELSIZE 1338462SApril.Chin@Sun.COM RAW_POINTSIZE 1348462SApril.Chin@Sun.COM -- 1358462SApril.Chin@Sun.COM section 1368462SApril.Chin@Sun.COM diaeresis 1378462SApril.Chin@Sun.COM copyright 1388462SApril.Chin@Sun.COM ordfeminine 1398462SApril.Chin@Sun.COM guillemotleft 1408462SApril.Chin@Sun.COM ) 1418462SApril.Chin@Sun.COM typeset -a filenames=( 1428462SApril.Chin@Sun.COM fox-gate/XW_NV/open-src/tarballs/xorg-server-1.3.0.0/hw/xprint/config/C/print/models/PSdefault/fonts/AvantGarde-DemiOblique.pmf 1438462SApril.Chin@Sun.COM ) 1448462SApril.Chin@Sun.COM md5sum=da3d6d94fcf759b95c7f829ce5619374 1458462SApril.Chin@Sun.COM typeset -a xlfd=( 1468462SApril.Chin@Sun.COM -adobe-avantgarde-demi-i-normal--422-120-2540-2540-p-2395-iso8859-1 1478462SApril.Chin@Sun.COM ) 1488462SApril.Chin@Sun.COM ) 1498462SApril.Chin@Sun.COM ) 1508462SApril.Chin@Sun.COM ) 1518462SApril.Chin@Sun.COM ) 1528462SApril.Chin@Sun.COM ) 1538462SApril.Chin@Sun.COM ) 1548462SApril.Chin@Sun.COM ) 1558462SApril.Chin@Sun.COM ) 1568462SApril.Chin@Sun.COM) 1578462SApril.Chin@Sun.COMEOF 1588462SApril.Chin@Sun.COM} 1598462SApril.Chin@Sun.COM 1608462SApril.Chin@Sun.COMfunction main 1618462SApril.Chin@Sun.COM{ 1628462SApril.Chin@Sun.COM set -o errexit 1638462SApril.Chin@Sun.COM 1648462SApril.Chin@Sun.COM typeset xlfd_tree=() 1658462SApril.Chin@Sun.COM typeset -A xlfd_tree.l1 1668462SApril.Chin@Sun.COM 1678462SApril.Chin@Sun.COM eval "xlfd_tree=$( example_tree )" 1688462SApril.Chin@Sun.COM 1698462SApril.Chin@Sun.COM typeset i j k l fn 1708462SApril.Chin@Sun.COM 1718462SApril.Chin@Sun.COM # filter chain begin 1728462SApril.Chin@Sun.COM for i in "${!xlfd_tree.l1[@]}" ; do 1738462SApril.Chin@Sun.COM for j in "${!xlfd_tree.l1["$i"].l2[@]}" ; do 1748462SApril.Chin@Sun.COM for k in "${!xlfd_tree.l1["$i"].l2["$j"].l3[@]}" ; do 1758462SApril.Chin@Sun.COM nameref vndnode=xlfd_tree.l1["$i"].l2["$j"].l3["$k"] 1768462SApril.Chin@Sun.COM 1778462SApril.Chin@Sun.COM for l in "${!vndnode.entries[@]}" ; do 1788462SApril.Chin@Sun.COM nameref node=vndnode.entries["$l"] 1798462SApril.Chin@Sun.COM 1808462SApril.Chin@Sun.COM for fn in "${node.filenames[@]}" ; do 1818462SApril.Chin@Sun.COM if [[ "${fn}" != ~(E)x-re_gate_XW_NV_MWS ]] ; then 1828462SApril.Chin@Sun.COM unset "${!node}" 1838462SApril.Chin@Sun.COM break 1848462SApril.Chin@Sun.COM fi 1858462SApril.Chin@Sun.COM done 1868462SApril.Chin@Sun.COM done 1878462SApril.Chin@Sun.COM done 1888462SApril.Chin@Sun.COM done 1898462SApril.Chin@Sun.COM done 1908462SApril.Chin@Sun.COM 1918462SApril.Chin@Sun.COM # filter chain end 1928462SApril.Chin@Sun.COM 1938462SApril.Chin@Sun.COM return 0 1948462SApril.Chin@Sun.COM} 1958462SApril.Chin@Sun.COM 1968462SApril.Chin@Sun.COMmain || ((Errors++)) 1978462SApril.Chin@Sun.COM 1988462SApril.Chin@Sun.COM# tests done 1998462SApril.Chin@Sun.COMexit $((Errors)) 200