Beginning support for mh-format support in comp(1). Includes changes to
[mmh] / uip / forw.c
index 2d4f2d5..112b083 100644 (file)
@@ -2,8 +2,6 @@
 /*
  * forw.c -- forward a message, or group of 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.
@@ -70,11 +68,8 @@ static struct swit switches[] = {
     { "help", 0 },
 #define        FILESW                24
     { "file file", 4 },                        /* interface from msh */
-
-#ifdef MHE
 #define        BILDSW                25
     { "build", 5 },                    /* interface from mhe */
-#endif /* MHE */
 
     { NULL, 0 }
 };
@@ -134,9 +129,7 @@ main (int argc, char **argv)
     char **argp, **arguments, *msgs[MAXARGS];
     struct stat st;
 
-#ifdef MHE
     int buildsw = 0;
-#endif /* MHE */
 
 #ifdef LOCALE
     setlocale(LC_ALL, "");
@@ -188,10 +181,8 @@ main (int argc, char **argv)
                        adios (NULL, "missing argument to %s", argp[-2]);
                    nwhat = 0;
                    continue;
-#ifdef MHE
                case BILDSW:
                    buildsw++;  /* fall... */
-#endif /* MHE */
                case NWHATSW: 
                    nwhat++;
                    continue;
@@ -300,18 +291,11 @@ main (int argc, char **argv)
 
 try_it_again:
 
-#ifdef MHE
     strncpy (drft, buildsw ? m_maildir ("draft")
                          : m_draft (dfolder, NULL, NOUSE, &isdf), sizeof(drft));
 
     /* Check if a draft already exists */
     if (!buildsw && stat (drft, &st) != NOTOK) {
-#else
-    strncpy (drft, m_draft (dfolder, dmsg, NOUSE, &isdf), sizeof(drft));
-
-    /* Check if a draft already exists */
-    if (stat (drft, &st) != NOTOK) {
-#endif /* MHE */
        printf ("Draft \"%s\" exists (%ld bytes).", drft, (long) st.st_size);
        for (i = LISTDSW; i != YESW;) {
            if (!(argp = getans ("\nDisposition? ", isdf ? aqrnl : aqrl)))
@@ -516,8 +500,9 @@ mhl_draft (int out, char *digest, int volume, int issue,
             * handle about 995 messages (because vec is fixed size),
             * but that should be plenty.
             */
-           for (msgnum = mp->lowsel; msgnum <= mp->hghsel && i < sizeof(vec) - 1;
-                       msgnum++)
+           for (msgnum = mp->lowsel;
+                 msgnum <= mp->hghsel && i < (int) sizeof(vec) - 1;
+                 msgnum++)
                if (is_selected (mp, msgnum))
                    vec[i++] = getcpy (m_name (msgnum));
            vec[i] = NULL;
@@ -650,10 +635,11 @@ build_form (char *form, char *digest, int volume, int issue)
     int fmtsize;
     register char *nfs;
     char *line, tmpfil[BUFSIZ];
-    register FILE *tmp;
+    FILE *tmp;
     register struct comp *cptr;
     struct format *fmt;
     int dat[5];
+    char *cp = NULL;
 
     /* Get new format string */
     nfs = new_fs (form, NULL, NULL);
@@ -675,9 +661,9 @@ build_form (char *form, char *digest, int volume, int issue)
     dat[3] = fmtsize;
     dat[4] = 0;
 
-    strncpy (tmpfil, m_tmpfil (invo_name), sizeof(tmpfil));
-    if ((tmp = fopen (tmpfil, "w+")) == NULL)
-       adios (tmpfil, "unable to create");
+    cp = m_mktemp2(NULL, invo_name, NULL, &tmp);
+    if (cp == NULL) adios("forw", "unable to create temporary file");
+    strncpy (tmpfil, cp, sizeof(tmpfil));
     unlink (tmpfil);
     if ((in = dup (fileno (tmp))) == NOTOK)
        adios ("dup", "unable to");