]> diplodocus.org Git - nmh/blobdiff - uip/forw.c
lock_file.c: close(2) file descriptor on failure, avoiding leak.
[nmh] / uip / forw.c
index 8ee8da9ba60aae2b0c3c6aa3c73eed7ac50bc491..ce8a4fccd8a583f53a27687e449ffe139431d4c1 100644 (file)
@@ -9,7 +9,7 @@
 #include <fcntl.h>
 #include <h/tws.h>
 #include <h/utils.h>
-#include "../sbr/m_maildir.h"
+#include "sbr/m_maildir.h"
 
 
 #define        IFORMAT "digest-issue-%s"
@@ -40,7 +40,7 @@
     X("nodashstuffing", 0, NBITSTUFFSW) \
     X("version", 0, VERSIONSW) \
     X("help", 0, HELPSW) \
-    X("file file", 4, FILESW)                 /* interface from msh */ \
+    X("file file", 4, FILESW) \
     X("build", 5, BILDSW)                     /* interface from mhe */ \
     X("from address", 0, FROMSW) \
     X("to address", 0, TOSW) \
@@ -111,7 +111,7 @@ main (int argc, char **argv)
     char *dmsg = NULL, *digest = NULL, *ed = NULL;
     char *file = NULL, *filter = NULL, *folder = NULL, *fwdmsg = NULL;
     char *from = NULL, *to = NULL, *cc = NULL, *subject = NULL, *fcc = NULL;
-    char *form = NULL, buf[BUFSIZ], value[10];
+    char *form = NULL, buf[BUFSIZ];
     char **argp, **arguments;
     struct stat st;
     struct msgs_array msgs = { 0, 0, NULL };
@@ -290,8 +290,7 @@ main (int argc, char **argv)
        if (*cp == '+' || *cp == '@') {
            if (folder)
                adios (NULL, "only one folder at a time!");
-           else
-               folder = pluspath (cp);
+            folder = pluspath (cp);
        } else {
            app_msgarg(&msgs, cp);
        }
@@ -454,11 +453,9 @@ try_it_again:
 
        if (digest) {
            snprintf (buf, sizeof(buf), IFORMAT, digest);
-           snprintf (value, sizeof(value), "%d", issue);
-           context_replace (buf, mh_xstrdup(value));
+           context_replace (buf, mh_xstrdup(m_str(issue)));
            snprintf (buf, sizeof(buf), VFORMAT, digest);
-           snprintf (value, sizeof(value), "%d", volume);
-           context_replace (buf, mh_xstrdup(value));
+           context_replace (buf, mh_xstrdup(m_str(volume)));
        }
 
        context_replace (pfolder, folder);      /* update current folder   */
@@ -487,7 +484,7 @@ mhl_draft (int out, char *digest, int volume, int issue,
             char *file, char *filter, int dashstuff)
 {
     pid_t child_id;
-    int i, msgnum, pd[2];
+    int msgnum, pd[2];
     char buf1[BUFSIZ];
     char buf2[BUFSIZ];
     char *program;
@@ -498,9 +495,7 @@ mhl_draft (int out, char *digest, int volume, int issue,
 
     argsplit_msgarg(&vec, mhlproc, &program);
 
-    for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
-       sleep (5);
-
+    child_id = fork();
     switch (child_id) {
        case NOTOK: 
            adios ("fork", "unable to");