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

Re: Variable namespaces, goals for ZLE, etc.

Bart Schaefer wrote:
>Are there any "available" names in the POSIX space?

Depends what you mean by "available".  POSIX lists "the special
parameters" as being "*", "@", "#", "?", "-", "$", "!" and "0"; by
implication, all other parameters have the semantics of normal variables.
It lists "IFS", "PATH", "PPID" et al as normal variables that are either
set or read by the shell, but does not permit them to have any weird
semantics beyond those it defines.  It is arguable that the shell can
modify its behaviour based on the values of other variables, but it
certainly isn't permitted to make variables with normal names behave as
special variables.

>The problem with introducing an incompatible syntax in order to escape
>POSIX is that you can't reliably export variables with the new names.

You can export anything.  Whether other utilities accept anything unusual
is, admittedly, a more complicated issue.

>I've used versions of sh that would mangle the environment and/or issue
>warning messages if there were any strings present where the stuff to
>the left of the `=' contained characters other than [A-Z][a-z][0-9]_.

We could do a configure test for that.  Perhaps if the local sh does
complain, we could import/export using munged names starting with
"__ZSH__" or something like that.  Within zsh, the variable name "__ZSH__"
would still be legal, it would just be exported under a different name.
Alternatively, we keep things simple, and just don't import/export
special variables on platforms that really can't handle it -- there
can't be many of them, surely?


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