* Akim Demaille wrote on Wed, Sep 28, 2005 at 01:36:11PM CEST:
>
> Thanks, I didn't know. How about this then?
> (
> foo=bar
> test_local () {
> local foo=foo
> }
> test_local
> test $foo = bar
> ) || local () {
> case $1 in
> *=*) eval "$1";;
> esac
>
> }
That does not test what you'd like to know (if local doesn't work in
test_local, foo won't be reassigned), and the logic is wrong.
I believ you can even fail if you know you can't handle the assignment
(and you also don't want to see the test failure):
(
test_local () {
#set -x
local lfoo=foo 2>/dev/null
foo=$lfoo
}
test_local
test -n "$foo"
) || local () {
case $1 in
*[$IFS]*)
echo "local assignments with white space not implemented" >&2
exit 1;;
*=*) eval "$1";;
esac
}
Tested with Solaris 9 sh and dtksh (the latter does not have `local').
But why not allow `local a=b c=d'?
Cheers,
Ralf
_______________________________________________
Autoconf mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/autoconf