ash: Return without arguments in a trap should use status outside traps
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 20 Feb 2020 15:47:01 +0000 (16:47 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 20 Feb 2020 15:47:01 +0000 (16:47 +0100)
commitcd24a506336f84ff2bb3318bc4f2f82dd025f318
tree4b05a48e5211faae670afb7671452a59ab0a89d5
parentbb095f483827567452ee3501779a84f36719288d
ash: Return without arguments in a trap should use status outside traps

Fixes exitcode_trap4.tests.
Upstream commit:

    Date: Mon, 6 Oct 2014 21:51:26 +0800
    Return without arguments in a trap should use status outside traps

    POSIX now requires that return without arguments in a trap should
    return the last command status prior to executing traps.  This
    patch implements this behaviour.

    Incidentally this also changes the behaviour of return without
    arguments in a loop conditional to use the last exit status in
    the body as opposed to the last command in the conditional when
    there is one.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/ash.c