* uip/mhlistsbr.c, uip/mhlsbr.c, uip/picksbr.c: cast
[mmh] / uip / mhbuild.c
index 045146b..9d9f553 100644 (file)
@@ -3,6 +3,10 @@
  * mhbuild.c -- expand/translate MIME composition files
  *
  * $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/md5.h>
 #include <errno.h>
 #include <signal.h>
-#include <zotnet/mts/mts.h>
+#include <h/mts.h>
 #include <h/tws.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
 #include <h/mhcachesbr.h>
+#include <h/utils.h>
 
 #ifdef HAVE_SYS_WAIT_H
 # include <sys/wait.h>
@@ -54,20 +59,21 @@ static struct swit switches[] = {
     { "rcache policy", 0 },
 #define        WCACHESW               15
     { "wcache policy", 0 },
-#define VERSIONSW              16
+#define        CONTENTIDSW            16
+    { "contentid", 0 },
+#define        NCONTENTIDSW           17
+    { "nocontentid", 0 },
+#define VERSIONSW              18
     { "version", 0 },
-#define        HELPSW                 17
+#define        HELPSW                 19
     { "help", 0 },
-#define        DEBUGSW                18
+#define        DEBUGSW                20
     { "debug", -5 },
     { NULL, 0 }
 };
 
 
-extern int errno;
-
 /* mhbuildsbr.c */
-extern int checksw;
 extern char *tmp;      /* directory to place temp files */
 
 /* mhcachesbr.c */
@@ -82,6 +88,7 @@ int verbosw = 0;
 int ebcdicsw = 0;
 int listsw   = 0;
 int rfc934sw = 0;
+int contentidsw = 1;
 
 /*
  * Temporary files
@@ -92,6 +99,7 @@ static int unlink_infile  = 0;
 static char outfile[BUFSIZ];
 static int unlink_outfile = 0;
 
+static void unlink_done (int) NORETURN;
 
 /* mhbuildsbr.c */
 CT build_mime (char *);
@@ -118,6 +126,8 @@ main (int argc, char **argv)
     CT ct, cts[2];
     FILE *fp;
 
+    done=unlink_done;
+
 #ifdef LOCALE
     setlocale(LC_ALL, "");
 #endif
@@ -216,6 +226,13 @@ main (int argc, char **argv)
                sizesw = 0;
                continue;
 
+           case CONTENTIDSW:
+               contentidsw = 1;
+               continue;
+           case NCONTENTIDSW:
+               contentidsw = 0;
+               continue;
+
            case VERBSW: 
                verbosw++;
                continue;
@@ -363,12 +380,13 @@ main (int argc, char **argv)
     unlink_outfile = 0;
 
     free_content (ct);
-    return done (0);
+    done (0);
+    return 1;
 }
 
 
-int
-done (int status)
+static void
+unlink_done (int status)
 {
     /*
      * Check if we need to remove stray
@@ -380,5 +398,4 @@ done (int status)
        unlink (outfile);
 
     exit (status);
-    return 1;  /* dead code to satisfy the compiler */
 }