--- mailx-8.1.1/cmd1.c.siglj Fri Aug 11 13:56:15 2000 +++ mailx-8.1.1/cmd1.c Fri Aug 11 13:58:32 2000 @@ -304,7 +304,7 @@ /* * Type out the messages requested. */ -jmp_buf pipestop; +sigjmp_buf pipestop; int type1(msgvec, doign, page) int *msgvec; @@ -322,7 +322,7 @@ #endif obuf = stdout; - if (setjmp(pipestop)) + if (sigsetjmp(pipestop, 1)) goto close_pipe; if (value("interactive") != NOSTR && (page || (cp = value("crt")) != NOSTR)) { @@ -373,7 +373,7 @@ brokpipe(signo) int signo; { - longjmp(pipestop, 1); + siglongjmp(pipestop, 1); } /* --- mailx-8.1.1/tty.c.siglj Fri Aug 11 14:02:16 2000 +++ mailx-8.1.1/tty.c Fri Aug 11 14:02:19 2000 @@ -56,8 +56,8 @@ static cc_t c_erase; /* Current erase char */ static cc_t c_kill; /* Current kill char */ -static jmp_buf rewrite; /* Place to go when continued */ -static jmp_buf intjmp; /* Place to go when interrupted */ +static sigjmp_buf rewrite; /* Place to go when continued */ +static sigjmp_buf intjmp; /* Place to go when interrupted */ #ifndef TIOCSTI static int ttyset; /* We must now do erase/kill */ #endif @@ -113,7 +113,7 @@ #ifdef IOSAFE got_interrupt = 0; #endif - if (setjmp(intjmp)) { + if (sigsetjmp(intjmp, 1)) { /* avoid garbled output with C-c */ printf("\n"); fflush(stdout); @@ -218,7 +218,7 @@ while (cp2 < canonb + BUFSIZ) *cp2++ = 0; cp2 = cp; - if (setjmp(rewrite)) + if (sigsetjmp(rewrite, 1)) goto redo; #ifdef IOSAFE got_interrupt = 0; @@ -232,9 +232,9 @@ c = safegetc(stdin); /* this is full of ACE but hopefully, interrupts will only occur in the above read */ if (got_interrupt == SIGINT) - longjmp(intjmp,1); + siglongjmp(intjmp,1); else if (got_interrupt) - longjmp(rewrite,1); + siglongjmp(rewrite,1); #else c = getc(stdin); #endif @@ -308,7 +308,7 @@ #ifdef IOSAFE got_interrupt = s; #endif - longjmp(rewrite, 1); + siglongjmp(rewrite, 1); } /*ARGSUSED*/ @@ -319,7 +319,7 @@ #ifdef IOSAFE got_interrupt = s; #else - longjmp(intjmp, 1); + siglongjmp(intjmp, 1); #endif } --- mailx-8.1.1/collect.c.siglj Fri Aug 11 13:58:53 2000 +++ mailx-8.1.1/collect.c Fri Aug 11 14:00:20 2000 @@ -76,9 +76,9 @@ static FILE *collf; /* File for saving away */ static int hadintr; /* Have seen one SIGINT so far */ -static jmp_buf colljmp; /* To get back to work */ +static sigjmp_buf colljmp; /* To get back to work */ static int colljmp_p; /* whether to long jump */ -static jmp_buf collabort; /* To end collection with error */ +static sigjmp_buf collabort; /* To end collection with error */ FILE * collect(hp, printheaders) @@ -115,7 +115,7 @@ savetstp = signal(SIGTSTP, collstop); savettou = signal(SIGTTOU, collstop); savettin = signal(SIGTTIN, collstop); - if (setjmp(collabort) || setjmp(colljmp)) { + if (sigsetjmp(collabort, 1) || sigsetjmp(colljmp, 1)) { rm(tempMail); goto err; } @@ -152,7 +152,7 @@ got_interrupt = 0; #endif - if (!setjmp(colljmp)) { + if (!sigsetjmp(colljmp, 1)) { if (getsub) grabh(hp, GSUBJECT); } else { @@ -177,7 +177,7 @@ #ifdef IOSAFE if (got_interrupt) { got_interrupt = 0; - longjmp(colljmp,1); + siglongjmp(colljmp,1); } #endif colljmp_p = 0; @@ -614,7 +614,7 @@ #ifdef IOSAFE got_interrupt = s; #else - longjmp(colljmp, 1); + siglongjmp(colljmp, 1); #endif } @@ -645,13 +645,13 @@ got_interrupt = s; return; #else - longjmp(colljmp, 1); + siglongjmp(colljmp, 1); #endif } rewind(collf); if (value("nosave") == NOSTR) savedeadletter(collf); - longjmp(collabort, 1); + siglongjmp(collabort, 1); } /*ARGSUSED*/