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

Re: ${path[@]} in sh mode [was: Segfault with zsh 5.2]



Mikael Magnusson schreef op 23-01-16 om 00:07:
> On Fri, Jan 22, 2016 at 9:45 PM, Martijn Dekker <martijn@xxxxxxxx> wrote:
>> Martijn Dekker schreef op 22-01-16 om 20:12:
>>> Peter Stephenson schreef op 07-12-15 om 14:36:
>>>> Change now pushed.
>>>
>>> Can the ${path[@]} array be disabled in sh mode? I just noticed that it
>>> auto-syncs with the system $PATH. Lowercase "path" is a perfectly normal
>>> variable name in other shells and is a common English word, so conflicts
>>> that result in corruption of $PATH are not unlikely when running scripts
>>> written using other shells.
>>
>> Never mind: it is disabled when zsh is launched as sh (but not when
>> launched as zsh and then executing 'emulate sh'). So I suppose it was
>> decided long before that disabling it post-launch is not feasible. Sorry
>> for the noise.
> 
> If you're in a function context, you can say 'typeset -h path' to hide
> the specialness of $path and declare a new local of the same name. Eg,
> one that isn't connected to PATH.

It would be nice if that worked globally too, and even nicer if it were
automatically done by 'emulate sh' (or ksh for that matter) and undone
by 'emulate zsh'. But that might be non-trivial and the developers may
have other priorities.

- M.




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