Change link-time overriding of done() to run-time reassigning of equivalent
[mmh] / uip / packf.c
index e074505..0183da6 100644 (file)
@@ -33,6 +33,8 @@ static int md = NOTOK;
 static int mbx_style = MBOX_FORMAT;
 static int mapping = 0;
 
+static int mbxclose_done(int);
+
 char *file = NULL;
 
 
@@ -46,6 +48,8 @@ main (int argc, char **argv)
     struct msgs *mp;
     struct stat st;
 
+    done=mbxclose_done;
+
 #ifdef LOCALE
     setlocale(LC_ALL, "");
 #endif
@@ -98,7 +102,7 @@ main (int argc, char **argv)
        if (*cp == '+' || *cp == '@') {
            if (folder)
                adios (NULL, "only one folder at a time!");
-           folder = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
+           folder = pluspath (cp);
        } else
                app_msgarg(&msgs, cp);
     }
@@ -178,8 +182,8 @@ main (int argc, char **argv)
     return done (0);
 }
 
-int
-done (int status)
+static int
+mbxclose_done (int status)
 {
     mbx_close (file, md);
     exit (status);