]> diplodocus.org Git - nmh/blobdiff - uip/post.c
mh_xmalloc() et al: Use C99's `%zu' to print size_t.
[nmh] / uip / post.c
index 9282a71c71569f0b32ad34d6575efd56c912edaf..11170615cdfff06b5c1062bbd9f6c25f0f6c4ec1 100644 (file)
@@ -306,7 +306,7 @@ static void sigon (void);
 static void sigoff (void);
 static void p_refile (char *);
 static void fcc (char *, char *);
-static void die (char *, char *, ...);
+static void die (char *, char *, ...) CHECK_PRINTF(2, 3);
 static void post (char *, int, int, int, char *, int, char *);
 static void do_text (char *file, int fd);
 static void do_an_address (struct mailname *, int);
@@ -323,7 +323,7 @@ main (int argc, char **argv)
     char *cp, *msg = NULL, **argp, **arguments, *envelope;
     char buf[NMH_BUFSIZ], name[NAMESZ], *auth_svc = NULL;
     FILE *in, *out;
-    m_getfld_state_t gstate = 0;
+    m_getfld_state_t gstate;
 
     if (nmh_init(argv[0], 0 /* use context_foil() */)) { return 1; }
 
@@ -584,8 +584,7 @@ main (int argc, char **argv)
        }
        if (msg)
            adios (NULL, "only one message at a time!");
-       else
-           msg = cp;
+        msg = cp;
     }
 
     alias (AliasFile);
@@ -619,16 +618,17 @@ main (int argc, char **argv)
 
     hdrtab = msgstate == NORMAL ? NHeaders : RHeaders;
 
+    gstate = m_getfld_state_init(in);
     for (compnum = 1;;) {
        int bufsz = sizeof buf;
-       switch (state = m_getfld (&gstate, name, buf, &bufsz, in)) {
+       switch (state = m_getfld2(&gstate, name, buf, &bufsz)) {
            case FLD: 
            case FLDPLUS: 
                 compnum++;
                cp = mh_xstrdup(buf);
                while (state == FLDPLUS) {
                    bufsz = sizeof buf;
-                   state = m_getfld (&gstate, name, buf, &bufsz, in);
+                   state = m_getfld2(&gstate, name, buf, &bufsz);
                    cp = add (buf, cp);
                }
                putfmt (name, cp, &eai, out);
@@ -642,7 +642,7 @@ main (int argc, char **argv)
                fprintf (out, "\n%s", buf);
                while (state == BODY) {
                    bufsz = sizeof buf;
-                   state = m_getfld (&gstate, name, buf, &bufsz, in);
+                   state = m_getfld2(&gstate, name, buf, &bufsz);
                    fputs (buf, out);
                }
                break;
@@ -669,9 +669,8 @@ main (int argc, char **argv)
     if (debug) {
        pl ();
        done (0);
-    } else {
-       fclose (out);
     }
+    fclose (out);
 
     /*
      * Here's how we decide which address to use as the envelope-from
@@ -989,9 +988,8 @@ putfmt (char *name, char *str, int *eai, FILE *out)
                    mp->m_bcc++;
                if (np->m_ingrp)
                    mp->m_ingrp = np->m_ingrp;
-               else
-                   if (mp->m_gname)
-                       putgrp (namep, mp->m_gname, out, hdr->flags);
+               else if (mp->m_gname)
+                    putgrp (namep, mp->m_gname, out, hdr->flags);
                if (mp->m_ingrp) {
                    if (sm_mts == MTS_SENDMAIL_PIPE) {
                        /* Catch this before sendmail chokes with:
@@ -1494,11 +1492,10 @@ make_bcc_file (int dashstuff)
        while (find_prefix () == NOTOK) {
            if (*cp < 'z')
                (*cp)++;
-           else
-               if (*++cp == 0)
-                   adios (NULL, "can't find a unique delimiter string");
-               else
-                   (*cp)++;
+           else if (*++cp == 0)
+                adios (NULL, "can't find a unique delimiter string");
+            else
+                (*cp)++;
        }
 
        fprintf (out, "%s: %s\n%s: multipart/digest; boundary=\"",