X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/41c25df5a669fa999155c6d29435856ffa5bcd36..4fb142af4ad2ca73d141cc04af24e7c1b62f8a77:/uip/whom.c diff --git a/uip/whom.c b/uip/whom.c index f0eee7ef..da34146f 100644 --- a/uip/whom.c +++ b/uip/whom.c @@ -6,6 +6,7 @@ */ #include +#include "h/done.h" #include #include #include "sbr/m_maildir.h" @@ -59,12 +60,13 @@ main (int argc, char **argv) { pid_t child_id = OK; int status, isdf = 0; - int distsw = 0, vecp = 0; + int vecp = 0; + bool distsw; char *cp, *dfolder = NULL, *dmsg = NULL; char *msg = NULL, **ap, **argp, backup[BUFSIZ]; char buf[BUFSIZ], **arguments, *vec[MAXARGS]; - if (nmh_init(argv[0], 2)) { return 1; } + if (nmh_init(argv[0], true, false)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -72,7 +74,7 @@ main (int argc, char **argv) vec[vecp++] = invo_name; vec[vecp++] = "-whom"; vec[vecp++] = "-library"; - vec[vecp++] = getcpy (m_maildir ("")); + vec[vecp++] = mh_xstrdup(m_maildir("")); if ((cp = context_find ("credentials"))) { /* post doesn't read context so need to pass credentials. */ @@ -90,7 +92,7 @@ main (int argc, char **argv) ambigsw (cp, switches); done (1); case UNKWNSW: - adios (NULL, "-%s unknown", cp); + die("-%s unknown", cp); case HELPSW: snprintf (buf, sizeof(buf), "%s [switches] [file]", invo_name); @@ -116,17 +118,17 @@ main (int argc, char **argv) case DFOLDSW: if (dfolder) - adios (NULL, "only one draft folder at a time!"); + die("only one draft folder at a time!"); if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); dfolder = path (*cp == '+' || *cp == '@' ? cp + 1 : cp, *cp != '@' ? TFOLDER : TSUBCWF); continue; case DMSGSW: if (dmsg) - adios (NULL, "only one draft message at a time!"); + die("only one draft message at a time!"); if (!(dmsg = *argp++) || *dmsg == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); continue; case NDFLDSW: dfolder = NULL; @@ -142,13 +144,13 @@ main (int argc, char **argv) case MTSSW: vec[vecp++] = --cp; if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); vec[vecp++] = cp; continue; } } if (msg) - adios (NULL, "only one draft at a time!"); + die("only one draft at a time!"); vec[vecp++] = msg = cp; } @@ -163,14 +165,13 @@ main (int argc, char **argv) } if (msg == NULL) { - cp = getcpy (m_draft (dfolder, dmsg, 1, &isdf)); + cp = mh_xstrdup(m_draft(dfolder, dmsg, 1, &isdf)); msg = vec[vecp++] = cp; } - if ((cp = getenv ("mhdist")) - && *cp - && (distsw = atoi (cp)) - && (cp = getenv ("mhaltmsg")) - && *cp) { + + distsw = (cp = getenv("mhdist")) && *cp && atoi(cp) && + (cp = getenv("mhaltmsg")) && *cp; + if (distsw) { if (distout (msg, cp, backup) == NOTOK) done (1); vec[vecp++] = "-dist"; @@ -202,5 +203,5 @@ main (int argc, char **argv) execvp (postproc, vec); fprintf (stderr, "unable to exec "); perror (postproc); - _exit (-1); + _exit(1); }