* uip/mhlistsbr.c, uip/mhlsbr.c, uip/picksbr.c: cast
[mmh] / uip / inc.c
index 0731a15..fce9cec 100644 (file)
--- a/uip/inc.c
+++ b/uip/inc.c
@@ -29,6 +29,7 @@
 #endif
 
 #include <h/mh.h>
+#include <h/utils.h>
 #include <fcntl.h>
 
 #ifdef POP
@@ -222,8 +223,8 @@ static FILE *in;
  */
 char *map_name(char *);
 
+static void inc_done(int) NORETURN;
 #ifdef POP
-int done(int);
 static int pop_action(char *);
 static int pop_pack(char *);
 static int map_count(void);
@@ -262,6 +263,8 @@ main (int argc, char **argv)
     struct hes_postoffice *po;
 #endif
 
+    done=inc_done;
+
 /* absolutely the first thing we do is save our privileges,
  * and drop them if we can.
  */
@@ -456,7 +459,7 @@ main (int argc, char **argv)
            if (folder)
                adios (NULL, "only one folder at a time!");
            else
-               folder = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
+               folder = pluspath (cp);
        } else {
            adios (NULL, "usage: %s [+folder] [switches]", invo_name);
        }
@@ -542,7 +545,7 @@ main (int argc, char **argv)
            adios (NULL, "no mail to incorporate");
 
        if ((cp = strdup(newmail)) == (char *)0)
-           adios (maildir, "error allocating memory to copy newmail");
+           adios (NULL, "error allocating memory to copy newmail");
 
        newmail = cp;
     }
@@ -562,10 +565,15 @@ main (int argc, char **argv)
     if ((maildir_copy = strdup(maildir)) == (char *)0)
         adios (maildir, "error allocating memory to copy maildir");
 
-    if (noisy)
-        create_folder(maildir, 0, done);
-    else
-        done (1);
+    if (!folder_exists(maildir)) {
+        /* If the folder doesn't exist, and we're given the -silent flag,
+         * just fail.
+         */
+        if (noisy)
+            create_folder(maildir, 0, done);
+        else
+            done (1);
+    }
 
     if (chdir (maildir) == NOTOK)
        adios (maildir, "unable to change directory to");
@@ -944,7 +952,8 @@ go_to_it:
     seq_setunseen (mp, 0);     /* set the Unseen-Sequence */
     seq_save (mp);             /* synchronize sequences   */
     context_save ();           /* save the context file   */
-    return done (0);
+    done (0);
+    return 1;
 }
 
 
@@ -981,8 +990,8 @@ cpymsg (FILE *in, FILE *out)
 #endif /* if 0 */
 
 
-int
-done (int status)
+static void
+inc_done (int status)
 {
 #ifdef POP
     if (packfile && pd != NOTOK)
@@ -995,7 +1004,6 @@ done (int status)
         DROPGROUPPRIVS();
     }
     exit (status);
-    return 1;  /* dead code to satisfy the compiler */
 }
 
 #ifdef POP