Beginning support for mh-format support in comp(1). Includes changes to
[mmh] / uip / mhbuildsbr.c
index b75034a..c349bf8 100644 (file)
@@ -2,8 +2,6 @@
 /*
  * mhbuildsbr.c -- routines to 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/mhparse.h>
 #include <h/utils.h>
 
-#ifdef TIME_WITH_SYS_TIME
+#ifdef HAVE_SYS_TIME_H
 # include <sys/time.h>
-# include <time.h>
-#else
-# ifdef TM_IN_SYS_TIME
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
 #endif
+#include <time.h>
 
 
 extern int debugsw;
@@ -77,9 +65,6 @@ void content_error (char *, CT, char *, ...);
 /* mhcachesbr.c */
 int find_cache (CT, int, int *, char *, char *, int);
 
-/* ftpsbr.c */
-int ftp_get (char *, char *, char *, char *, char *, char *, int, int);
-
 /* mhfree.c */
 void free_content (CT);
 void free_ctinfo (CT);
@@ -414,14 +399,15 @@ user_content (FILE *in, char *file, char *buf, CT *ctp)
        long pos;
        char content[BUFSIZ];
        FILE *out;
+        char *cp;
+
+        cp = m_mktemp2(NULL, invo_name, NULL, &out);
+        if (cp == NULL) adios("mhbuildsbr", "unable to create temporary file");
 
        /* use a temp file to collect the plain text lines */
-       ce->ce_file = add (m_tmpfil (invo_name), NULL);
+       ce->ce_file = add (cp, NULL);
        ce->ce_unlink = 1;
 
-       if ((out = fopen (ce->ce_file, "w")) == NULL)
-           adios (ce->ce_file, "unable to open for writing");
-
        if (buf[0] == '#' && buf[1] == '<') {
            strncpy (content, buf + 2, sizeof(content));
            inlineD = 1;
@@ -873,7 +859,7 @@ set_id (CT ct, int top)
     if (clock == 0) {
        time (&clock);
        snprintf (msgid, sizeof(msgid), "<%d.%ld.%%d@%s>\n",
-               (int) getpid(), (long) clock, LocalName());
+               (int) getpid(), (long) clock, LocalName(1));
        partno = 0;
        msgfmt = getcpy(msgid);
     }
@@ -1007,11 +993,16 @@ compose_content (CT ct)
            char *vec[4], buffer[BUFSIZ];
            FILE *out;
            CI ci = &ct->c_ctinfo;
+            char *tfile = NULL;
 
            if (!(cp = ci->ci_magic))
                adios (NULL, "internal error(5)");
 
-           ce->ce_file = add (m_tmpfil (invo_name), NULL);
+            tfile = m_mktemp2(NULL, invo_name, NULL, NULL);
+            if (tfile == NULL) {
+                adios("mhbuildsbr", "unable to create temporary file");
+            }
+           ce->ce_file = add (tfile, NULL);
            ce->ce_unlink = 1;
 
            xstdout = 0;
@@ -1152,14 +1143,14 @@ static int
 scan_content (CT ct)
 {
     int len;
-    int check8bit, contains8bit = 0;     /* check if contains 8bit data                */
-    int checklinelen, linelen = 0;       /* check for long lines                       */
-    int checkboundary, boundaryclash = 0; /* check if clashes with multipart boundary   */
-    int checklinespace, linespace = 0;   /* check if any line ends with space          */
-    int checkebcdic, ebcdicunsafe = 0;   /* check if contains ebcdic unsafe characters */
-    unsigned char *cp, buffer[BUFSIZ];
-    struct text *t;
-    FILE *in;
+    int check8bit = 0, contains8bit = 0;  /* check if contains 8bit data                */
+    int checklinelen = 0, linelen = 0;   /* check for long lines                       */
+    int checkboundary = 0, boundaryclash = 0; /* check if clashes with multipart boundary   */
+    int checklinespace = 0, linespace = 0;  /* check if any line ends with space          */
+    int checkebcdic = 0, ebcdicunsafe = 0;  /* check if contains ebcdic unsafe characters */
+    unsigned char *cp = NULL, buffer[BUFSIZ];
+    struct text *t = NULL;
+    FILE *in = NULL;
     CE ce = ct->c_cefile;
 
     /*