-
- if (s == SIGINT && hadintr == 0) {
- hadintr++;
- fflush(stdout);
- fprintf(stderr, "\n(Interrupt -- one more to kill letter)\n");
- longjmp(coljmp, 1);
- }
- fclose(newo);
- rewind(newi);
- if (s == SIGINT && value("nosave") != NOSTR || fsize(newi) == 0)
- goto done;
- if ((dbuf = fopen(deadletter, "w")) == NULL)
- goto done;
- chmod(deadletter, 0600);
- while ((c = getc(newi)) != EOF)
- putc(c, dbuf);
- fclose(dbuf);
-
-done:
- fclose(newi);
- sigset(SIGINT, savesig);
- sigset(SIGHUP, savehup);
-# ifdef VMUNIX
- sigset(SIGCONT, savecont);
-# endif VMUNIX
- if (rcvmode) {
- if (s == SIGHUP)
- hangup(SIGHUP);
- else
- stop(s);
- }
- else
- exit(1);
-}
-
-/*
- * Acknowledge an interrupt signal from the tty by typing an @
- */
-
-intack(s)
-{
-
- puts("@");
- fflush(stdout);
- clearerr(stdin);
-}
-
-/*
- * Add a string to the end of a header entry field.
- */
-
-char *
-addto(hf, news)
- char hf[], news[];
-{
- register char *cp, *cp2, *linebuf;
-
- if (hf == NOSTR)
- hf = "";
- if (*news == '\0')
- return(hf);
- linebuf = salloc(strlen(hf) + strlen(news) + 2);
- for (cp = hf; any(*cp, " \t"); cp++)
- ;
- for (cp2 = linebuf; *cp;)
- *cp2++ = *cp++;
- *cp2++ = ' ';
- for (cp = news; any(*cp, " \t"); cp++)
- ;
- while (*cp != '\0')
- *cp2++ = *cp++;
- *cp2 = '\0';
- return(linebuf);