* Jilles Tjoelker <jilles@xxxxxxxx> [2010-08-23 00:32]: > If you want to try something, here is a patch. I have verified that the > only change to the results of FreeBSD sh's testsuite is that the test > builtins/break2.0 starts working (there are still 51 other broken > tests). There is no change in output from the posh testsuite (run with > -C sh,posix,no-typeset,no-arrays,no-coprocs,no-herestrings,no-history > ). > > diff --git a/src/eval.c b/src/eval.c > index d5e5c95..e484bec 100644 > --- a/src/eval.c > +++ b/src/eval.c > @@ -307,9 +307,9 @@ setstatus: > break; > } > out: > - if ((checkexit & exitstatus) || > - (pendingsigs && dotrap()) || > - (flags & EV_EXIT)) > + if (pendingsigs) > + dotrap(); > + if ((flags & EV_EXIT) || (checkexit & exitstatus)) > exraise(EXEXIT); > } Unfortunately this seems to corrupt variables. See the attached test script, after the TERM signal $value is not empty anymore but contains garbage. Where can I find FreeBSD's sh tests? -- Guido Berhoerster
Attachment:
timed-read.sh
Description: application/shellscript