7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# CDDL HEADER START
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# The contents of this file are subject to the terms of the
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# Common Development and Distribution License (the "License").
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# You may not use this file except in compliance with the License.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# or http://www.opensolaris.org/os/licensing.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# See the License for the specific language governing permissions
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# and limitations under the License.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# When distributing Covered Code, include this CDDL HEADER in each
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# If applicable, add the following below this CDDL HEADER, with the
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# fields enclosed by brackets "[]" replaced with your own identifying
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# information: Portions Copyright [yyyy] [name of copyright owner]
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# CDDL HEADER END
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# variable tree test #003
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# Propose of this test is whether ksh93 handles global variable trees
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# and function-local variable trees the same way, including "nameref"
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# and "unset" handling.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz# test setup
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinfunction err_exit
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin{
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin print -u2 -n "\t"
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin print -u2 -r ${Command}[$1]: "${@:2}"
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner (( Errors < 127 && Errors++ ))
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin}
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinalias err_exit='err_exit $LINENO'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz# the test cannot use "nounset"
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland MainzCommand=${0##*/}
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chininteger Errors=0
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinfunction example_tree
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin{
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chincat <<EOF
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -A l1=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin [adobe]=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -A l2=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin [avantgarde]=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -A l3=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin [demi]=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -A entries=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin [182c069a485316b1bc7ae001c04c7835]=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a comments=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin FONT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-r-normal--199-120-1200-1200-p-1130-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin COPYRIGHT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin 'Copyright Notice not available'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_PIXELSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_POINTSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin --
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin section
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin diaeresis
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin copyright
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin ordfeminine
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin guillemotleft
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a filenames=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin X11Rx/R6.4/xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-Demi.pmf
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin md5sum=182c069a485316b1bc7ae001c04c7835
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a xlfd=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-r-normal--199-120-1200-1200-p-1130-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin [7db15b51965d8fe1f1c55fcb101d7616]=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a comments=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin FONT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-i-normal--199-120-1200-1200-p-1130-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin COPYRIGHT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin 'Copyright Notice not available'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_PIXELSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_POINTSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin --
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin section
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin diaeresis
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin copyright
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin ordfeminine
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin guillemotleft
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a filenames=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin X11Rx/R6.4/xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-DemiOblique.pmf
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin md5sum=7db15b51965d8fe1f1c55fcb101d7616
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a xlfd=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-i-normal--199-120-1200-1200-p-1130-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin [a37e4a4a5035abf6f294d830fbd9e775]=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a comments=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin FONT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-r-normal--422-120-2540-2540-p-2395-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin COPYRIGHT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin '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.'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_PIXELSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_POINTSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin --
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin section
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin diaeresis
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin copyright
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin ordfeminine
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin guillemotleft
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a filenames=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin fox-gate/XW_NV/open-src/tarballs/xorg-server-1.3.0.0/hw/xprint/config/C/print/models/PSdefault/fonts/AvantGarde-Demi.pmf
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin md5sum=a37e4a4a5035abf6f294d830fbd9e775
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a xlfd=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-r-normal--422-120-2540-2540-p-2395-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin [da3d6d94fcf759b95c7f829ce5619374]=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a comments=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin FONT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-i-normal--422-120-2540-2540-p-2395-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin COPYRIGHT
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin '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.'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_PIXELSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin RAW_POINTSIZE
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin --
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin section
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin diaeresis
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin copyright
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin ordfeminine
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin guillemotleft
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a filenames=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin fox-gate/XW_NV/open-src/tarballs/xorg-server-1.3.0.0/hw/xprint/config/C/print/models/PSdefault/fonts/AvantGarde-DemiOblique.pmf
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin md5sum=da3d6d94fcf759b95c7f829ce5619374
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -a xlfd=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin -adobe-avantgarde-demi-i-normal--422-120-2540-2540-p-2395-iso8859-1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin )
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin)
7c2fbfb345896881c631598ee3852ce9ce33fb07April ChinEOF
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin}
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinfunction main
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin{
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin set -o errexit
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset xlfd_tree=()
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset -A xlfd_tree.l1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin eval "xlfd_tree=$( example_tree )"
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin typeset i j k l fn
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin # filter chain begin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin for i in "${!xlfd_tree.l1[@]}" ; do
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin for j in "${!xlfd_tree.l1["$i"].l2[@]}" ; do
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin for k in "${!xlfd_tree.l1["$i"].l2["$j"].l3[@]}" ; do
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin nameref vndnode=xlfd_tree.l1["$i"].l2["$j"].l3["$k"]
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin for l in "${!vndnode.entries[@]}" ; do
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin nameref node=vndnode.entries["$l"]
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin for fn in "${node.filenames[@]}" ; do
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin if [[ "${fn}" != ~(E)x-re_gate_XW_NV_MWS ]] ; then
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin unset "${!node}"
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin break
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin fi
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin done
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin done
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin done
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin done
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin done
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin # filter chain end
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin return 0
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin}
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinmain || ((Errors++))
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# tests done
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinexit $((Errors))