vix@ubvax.UUCP (Paul Vixie) (05/13/87)
Our network is a little flakey today, and I just lost about 60 lines of reply text because 'prompter' just croaks on a SIGHUP, without leaving your text in Mail/draft. The fix was easy enough... I put it into the #ifdef's for BSD42, since all the other signal and setjmp stuff seems to be that way -- I don't know why, but since I don't run SYSV, it doesn't really matter to me. Two questions, then the patch: (1) who do I mail this to to have it included in the official release? (2) how do I get a more recent release? This patch is for the version of prompter.c that came on the 4.3BSD tape, namely MH 6.2. I know that MH 6.5 exists, but I don't know how to get it. cd to /usr/src/new/mh/uip and run 'patch' over this article: Index: prompter.c *** prompter.c.ucb Wed May 13 11:54:01 1987 --- prompter.c Wed May 13 12:04:23 1987 *************** *** 80,85 **** --- 80,87 ---- #ifdef BSD42 static jmp_buf sigenv; + static jmp_buf sighup_env; + static int sighup_func() { longjmp(sighup_env, 1); } #endif BSD42 /* */ *************** *** 221,226 **** --- 223,234 ---- sigint = 0; setsig (SIGINT, intrser); + #ifdef BSD42 + if (setjmp(sighup_env)) + goto sighup; + signal(SIGHUP, sighup_func); + #endif BSD42 + for (state = FLD;;) { switch (state = m_getfld (state, name, field, sizeof field, in)) { case FLD: *************** *** 323,328 **** --- 331,341 ---- if (body) printf ("--------\n"); (void) fflush (stdout); + + #ifdef BSD42 + sighup: ; + (void) signal(SIGHUP, SIG_IGN); + #endif BSD42 (void) fclose (in); (void) fclose (out);