use _setjmp/_longjmp on NeXTstep: its Intel port always restores the signal mask on siglongjmp, which we never have

This commit is contained in:
tg
2012-03-31 17:30:00 +00:00
parent 86c4ea4619
commit e67b98e21b
5 changed files with 67 additions and 69 deletions

5
expr.c
View File

@ -23,7 +23,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/expr.c,v 1.54 2012/03/29 19:22:58 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/expr.c,v 1.55 2012/03/31 17:29:59 tg Exp $");
/* The order of these enums is constrained by the order of opinfo[] */
enum token {
@ -199,8 +199,7 @@ v_evaluate(struct tbl *vp, const char *expr, volatile int error_ok,
curstate.natural = false;
newenv(E_ERRH);
i = sigsetjmp(e->jbuf, 0);
if (i) {
if ((i = kshsetjmp(e->jbuf))) {
/* Clear EXPRINEVAL in of any variables we were playing with */
if (curstate.evaling)
curstate.evaling->flag &= ~EXPRINEVAL;