]> diplodocus.org Git - nmh/blobdiff - uip/rcvstore.c
lock_file.c: close(2) file descriptor on failure, avoiding leak.
[nmh] / uip / rcvstore.c
index a7d3a9e920574ef6482bf7e552d6e8c5b0cc7c6d..6f82f812520b960c4b47db3514d90199504de2c7 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * rcvstore.c -- asynchronously add mail to a folder
+/* rcvstore.c -- asynchronously add mail to a folder
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
@@ -11,6 +9,10 @@
 #include <fcntl.h>
 #include <h/signals.h>
 #include <h/mts.h>
+#include <h/utils.h>
+#include "sbr/m_maildir.h"
+#include "sbr/m_mktemp.h"
+#include "sbr/makedir.h"
 
 #define RCVSTORE_SWITCHES \
     X("create", 0, CRETSW) \
@@ -54,7 +56,7 @@ main (int argc, char **argv)
     struct msgs *mp;
     struct stat st;
 
-    if (nmh_init(argv[0], 1)) { return 1; }
+    if (nmh_init(argv[0], 2)) { return 1; }
 
     done=unlink_done;
 
@@ -121,8 +123,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 {
            adios (NULL, "usage: %s [+folder] [switches]", invo_name);
        }
@@ -175,7 +176,7 @@ main (int argc, char **argv)
     /* don't add file if it is empty */
     if (st.st_size == 0) {
        (void) m_unlink (tmpfilenam);
-       advise (NULL, "empty file");
+       inform("empty file");
        done (0);
     }
 
@@ -189,7 +190,7 @@ main (int argc, char **argv)
      * Link message into folder, and possibly add
      * to the Unseen-Sequence's.
      */
-    if ((msgnum = folder_addmsg (&mp, tmpfilenam, 0, unseensw, 0, 0, (char *)0)) == -1)
+    if ((msgnum = folder_addmsg (&mp, tmpfilenam, 0, unseensw, 0, 0, NULL)) == -1)
        done (1);
 
     /*
@@ -222,7 +223,7 @@ main (int argc, char **argv)
 /*
  * Clean up and exit
  */
-static void
+static void NORETURN
 unlink_done(int status)
 {
     if (tmpfilenam && *tmpfilenam)