char **arguments;
struct msgs_array msgs = { 0, 0, NULL };
struct msgs *mp;
- pid_t pid;
setlocale(LC_ALL, "");
invo_name = mhbasename(argv[0]);
switch (smatch(++cp, switches)) {
case AMBIGSW:
ambigsw(cp, switches);
- done(1);
+ exit(1);
case UNKWNSW:
adios(NULL, "-%s unknown\n", cp);
case HELPSW:
snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name);
print_help(buf, switches, 1);
- done(1);
+ exit(0);
case VERSIONSW:
print_version(invo_name);
- done(1);
+ exit(0);
case UNLINKSW:
unlink_msgs++;
*/
for (msgnum = 0; msgnum < msgs.size; msgnum++) {
if (!m_convert(mp, msgs.msgs[msgnum])) {
- done(1);
+ /* sysexits EX_USAGE */
+ exit(1);
}
}
seq_setprev(mp);
seq_save(mp);
folder_free(mp);
- done(0);
- return 1;
+ return 0;
}
/* remove by refiling. */
}
vec[vecp] = NULL;
- fflush(stdout);
- switch (pid = fork()) {
- case -1:
- adios("fork", "unable to");
-
- case 0:
- execvp(*vec, vec);
- fprintf(stderr, "unable to exec ");
- perror(*vec);
- _exit(-1);
-
- default:
- pidwait(pid, -1);
- }
-
- done(0);
- return 1;
+ return execprog(*vec, vec);
}