Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Should declare -p add a new declaration inside a function?



It appears that using "declare" or "typeset" with the -p (print) flag will add a new declaration inside a function. Is this really desirable? It seems to reduce the usefulness of -p.

Here's an example:

declare -a xx
xx=(an array)
bug() {
    echo xx is \"${xx[@]}\" before \"declare -p xx\"
    echo 'declare -p xx:'
    declare -p xx
    echo xx is now \"${xx[@]}\" in bug
    echo '===='
}
bug
echo 'declare -p xx outside bug:'
declare -p xx


Running this produces:

xx is "an array" before "declare -p xx"
declare -p xx:
typeset xx=''
xx is now "" in bug
====
declare -p xx outside bug:
typeset -a xx
xx=(an array)





Messages sorted by: Reverse Date, Date, Thread, Author