X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Frcvdist.c;h=c3650595da8382af9c3093fa743da0e63432108a;hb=1201af682c2a7e34d4d598e62718306b885a187e;hp=fa2a170b1733ff2d5858aed223497687869a6118;hpb=bd60514e13b4b1d4e2f726e6fc54da9eff6a263e;p=mmh diff --git a/uip/rcvdist.c b/uip/rcvdist.c index fa2a170..c365059 100644 --- a/uip/rcvdist.c +++ b/uip/rcvdist.c @@ -30,7 +30,7 @@ static char tmpfil[BUFSIZ] = ""; ** prototypes */ static void rcvdistout(FILE *, char *, char *); -static void unlink_done(int) NORETURN; +void unlink_done(); int @@ -42,11 +42,11 @@ main(int argc, char **argv) FILE *fp; char *tfile = NULL; - done=unlink_done; + if (atexit(unlink_done) != 0) { + adios(NULL, "atexit failed"); + } -#ifdef LOCALE setlocale(LC_ALL, ""); -#endif invo_name = mhbasename(argv[0]); /* read user profile/context */ @@ -60,7 +60,7 @@ main(int argc, char **argv) switch (smatch(++cp, switches)) { case AMBIGSW: ambigsw(cp, switches); - done(1); + exit(1); case UNKWNSW: vec[vecp++] = --cp; continue; @@ -68,10 +68,10 @@ main(int argc, char **argv) case HELPSW: snprintf(buf, sizeof(buf), "%s [switches] [switches for spost] address ...", invo_name); print_help(buf, switches, 1); - done(1); + exit(0); case VERSIONSW: print_version(invo_name); - done(1); + exit(0); case FORMSW: if (!(form = *argp++) || *form == '-') { @@ -105,7 +105,8 @@ main(int argc, char **argv) fclose(fp); if (distout(drft, tmpfil, backup) == NOTOK) { - done(1); + /* sysexits.h EX_DATAERR */ + exit(1); } vec[0] = "spost"; @@ -276,8 +277,8 @@ finished: ; } -static void -unlink_done(int status) +void +unlink_done() { if (*backup) { unlink(backup); @@ -288,5 +289,4 @@ unlink_done(int status) if (*tmpfil) { unlink(tmpfil); } - exit(status ? RCV_MBX : RCV_MOK); }