X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/017a82124bf2ea39ced5aa4c8f969c18b3c2fb90..811c11557492b9a6e6bd5ae45bb5597647ba5c99:/uip/mhmail.c diff --git a/uip/mhmail.c b/uip/mhmail.c index 5171f4e8..990776ca 100644 --- a/uip/mhmail.c +++ b/uip/mhmail.c @@ -2,11 +2,14 @@ /* * mhmail.c -- simple mail program * - * $Id$ + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ #include #include +#include #include static struct swit switches[] = { @@ -34,7 +37,7 @@ static char tmpfil[BUFSIZ]; /* * static prototypes */ -static RETSIGTYPE intrser (int); +static void intrser (int); int @@ -47,6 +50,7 @@ main (int argc, char **argv) char *from = NULL, *body = NULL, **argp, **arguments; char *vec[5], buf[BUFSIZ]; FILE *out; + char *tfile = NULL; #ifdef LOCALE setlocale(LC_ALL, ""); @@ -120,10 +124,11 @@ main (int argc, char **argv) if (tolist == NULL) adios (NULL, "usage: %s addrs ... [switches]", invo_name); - strncpy (tmpfil, m_tmpfil (invo_name), sizeof(tmpfil)); - if ((out = fopen (tmpfil, "w")) == NULL) - adios (tmpfil, "unable to write"); - chmod (tmpfil, 0600); + + tfile = m_mktemp2(NULL, invo_name, NULL, &out); + if (tfile == NULL) adios("mhmail", "unable to create temporary file"); + chmod(tfile, 0600); + strncpy (tmpfil, tfile, sizeof(tmpfil)); SIGNAL2 (SIGINT, intrser); @@ -168,7 +173,7 @@ main (int argc, char **argv) if (child_id == NOTOK) { /* report failure and then send it */ - admonish (NULL, "unable to fork"); + adios (NULL, "unable to fork"); } else if (child_id) { /* parent process */ if ((status = pidXwait(child_id, postproc))) { @@ -192,14 +197,9 @@ main (int argc, char **argv) } -static RETSIGTYPE +static void intrser (int i) { -#ifndef RELIABLE_SIGNALS - if (i) - SIGNAL (i, SIG_IGN); -#endif - unlink (tmpfil); done (i != 0 ? 1 : 0); }