Return type of (*done)() changed to void. default_done() replaced by
[mmh] / uip / rcvdist.c
index b210696..b0a3609 100644 (file)
@@ -3,12 +3,18 @@
  * rcvdist.c -- asynchronously redistribute messages
  *
  * $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 <h/mh.h>
 #include <h/fmt_scan.h>
 #include <h/rcvmail.h>
-#include <zotnet/tws/tws.h>
+#include <h/tws.h>
+#include <h/mts.h>
+#include <h/utils.h>
 
 static struct swit switches[] = {
 #define        FORMSW       0
@@ -16,7 +22,7 @@ static struct swit switches[] = {
 #define VERSIONSW    1
     { "version", 0 },
 #define        HELPSW       2
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -28,7 +34,7 @@ static char tmpfil[BUFSIZ] = "";
  * prototypes
  */
 static void rcvdistout (FILE *, char *, char *);
-void done (int);
+static void unlink_done (int);
 
 
 int
@@ -40,6 +46,8 @@ main (int argc, char **argv)
     char **argp, **arguments, *vec[MAXARGS];
     register FILE *fp;
 
+    done=unlink_done;
+
 #ifdef LOCALE
     setlocale(LC_ALL, "");
 #endif
@@ -117,7 +125,8 @@ main (int argc, char **argv)
        default: 
            done (pidXwait(child_id, postproc));
     }
-/* NOTREACHED */
+
+    return 0;  /* dead code to satisfy the compiler */
 }
 
 /* very similar to routine in replsbr.c */
@@ -175,8 +184,7 @@ rcvdistout (FILE *inb, char *form, char *addrs)
     *--savecomp = 0;
 
     for (i = ncomps; i--;)
-       if (!(*nxtbuf++ = malloc (SBUFSIZ)))
-           adios (NULL, "unable to allocate component buffer");
+       *nxtbuf++ = mh_xmalloc (SBUFSIZ);
     nxtbuf = compbuffers;
     tmpbuf = *nxtbuf++;
 
@@ -196,7 +204,7 @@ rcvdistout (FILE *inb, char *form, char *addrs)
            case FLDPLUS: 
                if ((cptr = wantcomp[CHASH (name)]))
                    do {
-                       if (!strcasecmp (name, cptr->c_name)) {
+                       if (!mh_strcasecmp (name, cptr->c_name)) {
                            char_read += msg_count;
                            if (!cptr->c_text) {
                                cptr->c_text = tmpbuf;
@@ -205,13 +213,14 @@ rcvdistout (FILE *inb, char *form, char *addrs)
                            }
                            else {
                                i = strlen (cp = cptr->c_text) - 1;
-                               if (cp[i] == '\n')
+                               if (cp[i] == '\n') {
                                    if (cptr->c_type & CT_ADDR) {
                                        cp[i] = 0;
                                        cp = add (",\n\t", cp);
                                    }
                                    else
                                        cp = add ("\t", cp);
+                               }
                                cptr->c_text = add (tmpbuf, cp);
                            }
                            while (state == FLDPLUS) {
@@ -241,7 +250,7 @@ rcvdistout (FILE *inb, char *form, char *addrs)
 finished: ;
 
     i = format_len + char_read + 256;
-    scanl = malloc ((size_t) i + 2);
+    scanl = mh_xmalloc ((size_t) i + 2);
     dat[0] = dat[1] = dat[2] = dat[4] = 0;
     dat[3] = outputlinelen;
     fmt_scan (fmt, scanl, i, dat);
@@ -252,7 +261,7 @@ finished: ;
     fclose (out);
 
     free (scanl);
-    for (nxtbuf = compbuffers, i = ncomps; cptr = *savecomp++; nxtbuf++, i--)
+    for (nxtbuf = compbuffers, i = ncomps; (cptr = *savecomp++); nxtbuf++, i--)
        free (cptr->c_text);
     while (i-- > 0)
         free (*nxtbuf++);
@@ -261,8 +270,8 @@ finished: ;
 }
 
 
-void
-done (int status)
+static void
+unlink_done (int status)
 {
     if (backup[0])
        unlink (backup);