On 04/06/18 18:47, Jan Alexander Steffens wrote: > The ERR trap is not inherited by functions unless the "errtrace" option > is set. So in the current situation, makepkg's internal functions are > supposed to do manual error checking. Bad returns from function calls at > the top level will trigger the trap, though. >
Is there any point to the restoretrap variable then? A > On Mon, Jun 4, 2018 at 9:59 AM Allan McRae <[email protected] > <mailto:[email protected]>> wrote: > > On 01/06/18 02:24, Jan Alexander Steffens (heftig) wrote: > > $restoretrap is empty if the trap was not set. This caused the trap > > handler to remain and override later exit codes. > > How is this ever unset? We set the error trap early in makepkg: > > trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. > Exiting...")"' ERR > > > > --- > > scripts/makepkg.sh.in <http://makepkg.sh.in> | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/scripts/makepkg.sh.in <http://makepkg.sh.in> > b/scripts/makepkg.sh.in <http://makepkg.sh.in> > > index ed0ceaec..3a3f4c30 100644 > > --- a/scripts/makepkg.sh.in <http://makepkg.sh.in> > > +++ b/scripts/makepkg.sh.in <http://makepkg.sh.in> > > @@ -432,6 +432,7 @@ run_function_safe() { > > > > run_function "$1" > > > > + trap - ERR > > eval "$restoretrap" > > eval "$restoreset" > > eval "$restoreshopt" > > >
