diff options
author | Wayne Davison <wayned@users.sourceforge.net> | 2005-08-11 16:25:10 +0000 |
---|---|---|
committer | Wayne Davison <wayned@users.sourceforge.net> | 2005-08-11 16:25:10 +0000 |
commit | 5aa648a5f2a73bf050635e2b548b0f4c8679e957 (patch) | |
tree | 2108a803c8efcddc69d0c1cb93f08ae149a74d2b | |
parent | 0e57f6ebe8e95f688a7bf416a3ed2d2ed6847e26 (diff) | |
download | zsh-5aa648a5f2a73bf050635e2b548b0f4c8679e957.tar.gz zsh-5aa648a5f2a73bf050635e2b548b0f4c8679e957.tar.xz zsh-5aa648a5f2a73bf050635e2b548b0f4c8679e957.zip |
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).
-rw-r--r-- | Test/B02typeset.ztst | 28 |
1 files 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 |