From 5aa648a5f2a73bf050635e2b548b0f4c8679e957 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Thu, 11 Aug 2005 16:25:10 +0000 Subject: Third time's a charm: a better fix than using either a subshell or "setopt localoptions" is to use a function for the final test (since it destroys all the variables in the environment). This allows us to directly test that the environment was properly restored after the function call, and ensures that the caller (ZTST_execchunk, which directly exec'ed the test code) still has all the vars that it expects in the environment (such as ZTST_verbose, options, and ZTST_mainopts). --- Test/B02typeset.ztst | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Test/B02typeset.ztst b/Test/B02typeset.ztst index fccf0d4d6..fc9d9c161 100644 --- a/Test/B02typeset.ztst +++ b/Test/B02typeset.ztst @@ -23,7 +23,7 @@ %prep - setopt localoptions noglob + setopt noglob scalar=scalar array=(a r r a y) @@ -341,16 +341,21 @@ 0q:Stress test: all parameters are local and unset, using -m >scalar a r y - # The first declare works around the "not an identifier" bug with -h - declare \! \# \$ \* - \? @ 0 - typeset -h +g -m \* - unset -m \* - integer i=9 - float -H f=9 - declare -t scalar - declare -H -a array - typeset - typeset + + local parentenv=preserved + fn() { + # The first declare works around the "not an identifier" bug with -h + declare \! \# \$ \* - \? @ 0 + 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 @@ -360,3 +365,4 @@ >float local f >integer local i >local tagged scalar +>preserved -- cgit 1.4.1