Subject: Re: [BUG] Sticky-sh POSIX_TRAPS are function-local
From: Martijn Dekker <[email-masked]>
To: [email-masked]
Cc: Bart Schaefer <[email-masked]>
Date: Wed, 17 Feb 2016 06:24:47 +0100
List-Id: Zsh Workers List <zsh-workers.zsh.org>

Bart Schaefer schreef op 17-02-16 om 05:25:
> On Feb 17, 12:38am, Martijn Dekker wrote:
> } 
> } With your current patch, the function-local trap wipes out the global
> } POSIX exit trap, so the last line of expected output doesn't appear.
> 
> Hrm.  I think the point is that there are no function-local traps in
> POSIX, so the POSIX trap obeys the POSIX rules even when another trap
> is set in non-POSIX scope.

But POSIX is irrelevant to function-local traps because they are not
defined in POSIX, so, once emulation mode is exited, there is nothing
that compels you to make them wipe out a global POSIX trap.

I think it would actually be more consistent with the intention of the
POSIX trap if it survived a function-local native zsh trap; the
intention of the POSIX trap was for it to be executed on program exit,
so having it wiped out by a temporary function-local trap doesn't seem
helpful.

> I could see an argument either way, though.  I could also see an argument
> that the localtraps option should affect this (even though it's not usually
> needed for global traps).

How do you think that option should affect this?

Thanks,

- M.