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

Re: Crash when exporting scalar without value and getsparam fails



On Sat, Jan 10, 2015 at 5:57 PM, Bart Schaefer
<schaefer@xxxxxxxxxxxxxxxx> wrote:
> On Jan 10,  8:56am, Mikael Magnusson wrote:
> } Subject: Re: Crash when exporting scalar without value and getsparam fails
> }
> } On Sat, Jan 10, 2015 at 7:52 AM, Bart Schaefer
> } <schaefer@xxxxxxxxxxxxxxxx> wrote:
> } > I think it should do nothing to the environment and return success.
> } >
> } > % bash -c 'unset IFS; export IFS; echo $?; printenv | grep IFS'
> } > 0
> } > %
> }
> } Ah yes, this is what happens for other parameters in zsh too.
>
> So did I somehow miss that this is specific to IFS and doesn't affect
> exports in general?  Or is there some other characteristic of the
> parameters that tickle this bug?

(I see that what I wrote is a bit unclear, but I'm not sure what the
'this' refers to, so I'll be specific about everything).
I don't know exactly how specific the crash is, but for most
parameters, doing an unset followed by an export does what you suggest
we should do for IFS. Eg, it isn't put into the environment, but upon
the next assignment it is set and exported into the environment
without another explicit 'export'. For IFS doing this just crashes
currently. The reason for which is that getsparam fails on IFS when it
is unset (I don't know why).

According to Oliver's original analysis, there may be other cases such
as dupstring failing (that would break everything else anyway), or
other unknown causes.

Neither of the changes I tested makes IFS behave as the generic case,
but both stop the crashing.

-- 
Mikael Magnusson



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