static struct swit switches[] = {
#define FORMSW 0
- { "form formfile", 4 },
+ { "form formfile", 0 },
#define VERSIONSW 1
- { "version", 0 },
+ { "Version", 0 },
#define HELPSW 2
{ "help", 0 },
{ NULL, 0 }
** prototypes
*/
static void rcvdistout(FILE *, char *, char *);
-static void unlink_done(int) NORETURN;
+static void unlink_done();
int
FILE *fp;
char *tfile = NULL;
- done=unlink_done;
+ atexit(unlink_done);
-#ifdef LOCALE
setlocale(LC_ALL, "");
-#endif
invo_name = mhbasename(argv[0]);
/* read user profile/context */
switch (smatch(++cp, switches)) {
case AMBIGSW:
ambigsw(cp, switches);
- done(1);
+ exit(1);
case UNKWNSW:
vec[vecp++] = --cp;
continue;
case HELPSW:
- snprintf(buf, sizeof(buf), "%s [switches] [switches for postproc] address ...", invo_name);
+ 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 == '-') {
}
if (!addrs) {
- adios(NULL, "usage: %s [switches] [switches for postproc] address ...", invo_name);
+ adios(NULL, "usage: %s [switches] [switches for spost] address ...", invo_name);
}
umask(~m_gmprot());
fclose(fp);
if (distout(drft, tmpfil, backup) == NOTOK) {
- done(1);
+ /* sysexits.h EX_DATAERR */
+ exit(1);
}
- vec[0] = mhbasename(postproc);
+ vec[0] = "spost";
vec[vecp++] = "-dist";
vec[vecp++] = drft;
vec[vecp] = NULL;
- execvp(postproc, vec);
+ execvp(*vec, vec);
fprintf(stderr, "unable to exec ");
- perror(postproc);
+ perror(*vec);
_exit(1);
return 0; /* dead code to satisfy the compiler */
}
static void
-unlink_done(int status)
+unlink_done()
{
if (*backup) {
unlink(backup);
if (*tmpfil) {
unlink(tmpfil);
}
- exit(status ? RCV_MBX : RCV_MOK);
}