#Test scoping rules for functions set -e smurf function setter set smurf green end function unsetter set -e smurf end function call1 set smurf blue; setter; if test $smurf = blue; echo Test 1 pass; else; echo Test 1 fail; end end function call2 set smurf blue; unsetter; if test $smurf = blue; echo Test 2 pass; else; echo Test 2 fail; end end call1 call2 function call3 setter; if test $smurf = green; echo Test 3 pass; else; echo Test 3 fail; end end function call4 unsetter; if test !$smurf; echo Test 4 pass; else; echo Test 4 fail; end end set -g smurf yellow call3 call4