Replace done with exit at uip
[mmh] / uip / rcvstore.c
index bb14ed9..fbddda7 100644 (file)
@@ -44,7 +44,7 @@ static struct swit switches[] = {
 */
 static char *tmpfilenam = NULL;
 
-static void unlink_done(int) NORETURN;
+static void unlink_done();
 
 int
 main(int argc, char **argv)
@@ -58,7 +58,7 @@ main(int argc, char **argv)
        struct msgs *mp;
        struct stat st;
 
-       done=unlink_done;
+       atexit(unlink_done);
 
        setlocale(LC_ALL, "");
        invo_name = mhbasename(argv[0]);
@@ -75,7 +75,7 @@ main(int argc, char **argv)
                        switch (smatch(++cp, switches)) {
                        case AMBIGSW:
                                ambigsw(cp, switches);
-                               done(1);
+                               exit(1);
                        case UNKWNSW:
                                adios(NULL, "-%s unknown", cp);
 
@@ -84,10 +84,10 @@ main(int argc, char **argv)
                                                "%s [+folder] [switches]",
                                                invo_name);
                                print_help(buf, switches, 1);
-                               done(1);
+                               exit(1);
                        case VERSIONSW:
                                print_version(invo_name);
-                               done(1);
+                               exit(1);
 
                        case SEQSW:
                                if (!(cp = *argp++) || *cp == '-')
@@ -186,7 +186,7 @@ main(int argc, char **argv)
        if (st.st_size == 0) {
                unlink(tmpfilenam);
                advise(NULL, "empty file");
-               done(0);
+               exit(0);
        }
 
        /*
@@ -201,7 +201,7 @@ main(int argc, char **argv)
        */
        if ((msgnum = folder_addmsg(&mp, tmpfilenam, 0, unseensw, 0, 0, NULL))
                        == -1)
-               done(1);
+               exit(1);
 
        /*
        ** Add the message to any extra sequences
@@ -209,7 +209,7 @@ main(int argc, char **argv)
        */
        for (seqp = 0; seqs[seqp]; seqp++) {
                if (!seq_addmsg(mp, seqs[seqp], msgnum, publicsw, zerosw))
-                       done(1);
+                       exit(1);
        }
 
        seq_setunseen(mp, 1);  /* add new msgs to unseen sequences */
@@ -220,17 +220,16 @@ main(int argc, char **argv)
        unlink(tmpfilenam);  /* remove temporary file */
        tmpfilenam = NULL;
 
-       done(0);
-       return 1;
+       return 0;
 }
 
 /*
 ** Clean up and exit
 */
 static void
-unlink_done(int status)
+unlink_done()
 {
-       if (tmpfilenam && *tmpfilenam)
+       if (tmpfilenam && *tmpfilenam) {
                unlink(tmpfilenam);
-       exit(status);
+       }
 }