From: markus schnalke Date: Mon, 26 Jan 2015 17:44:50 +0000 (+0100) Subject: Merge ../mmh X-Git-Tag: mmh-0.2-RC1~56^2~3 X-Git-Url: http://git.marmaro.de/?p=mmh;a=commitdiff_plain;h=8ab7ca4f2b4caa1f1ed2859d7d911513a7b2b2a2;hp=-c Merge ../mmh Conflicts: uip/rmm.c uip/whatnow.c --- 8ab7ca4f2b4caa1f1ed2859d7d911513a7b2b2a2 diff --combined uip/new.c index 1ea9010,1ee95ff..04fb949 --- a/uip/new.c +++ b/uip/new.c @@@ -314,7 -314,7 +314,7 @@@ doit(char *cur, char *folders, char *se char *sequences_s = NULL; int argc = 0; char *argv[MAXARGS]; - char *cp; + char **seqp; char buf[BUFSIZ]; if (cur == NULL || cur[0] == '\0') { @@@ -391,8 -391,8 +391,8 @@@ argv[argc++] = "scan"; snprintf(buf, sizeof buf, "+%s", node->n_name); argv[argc++] = buf; - for (cp=*sequences; *cp; cp++) { - argv[argc++] = cp; + for (seqp=sequences; *seqp; seqp++) { + argv[argc++] = *seqp; } argv[argc] = (char *)NULL; execprog(*argv, argv); @@@ -457,7 -457,7 +457,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); @@@ -466,10 -466,10 +466,10 @@@ "%s [switches] [sequences]", invo_name); print_help(help, switches, 1); - done(1); + exit(0); case VERSIONSW: print_version(invo_name); - done(1); + exit(0); case FOLDERSSW: if (!(folders = *argp++) || *folders == '-') @@@ -526,7 -526,7 +526,7 @@@ folder = doit(context_find(curfolder), folders, sequences); if (folder == NULL) { - done(0); + exit(0); return 1; } @@@ -550,5 -550,6 +550,5 @@@ context_save(); - done(0); - return 1; + return 0; } diff --combined uip/rmm.c index 9401d2b,33ae9da..03d4568 --- a/uip/rmm.c +++ b/uip/rmm.c @@@ -31,7 -31,6 +31,6 @@@ main(int argc, char **argv char **arguments; struct msgs_array msgs = { 0, 0, NULL }; struct msgs *mp; - pid_t pid; setlocale(LC_ALL, ""); invo_name = mhbasename(argv[0]); @@@ -47,17 -46,17 +46,17 @@@ 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++; @@@ -104,8 -103,7 +103,8 @@@ */ for (msgnum = 0; msgnum < msgs.size; msgnum++) { if (!m_convert(mp, msgs.msgs[msgnum])) { - done(1); + /* sysexits EX_USAGE */ + exit(1); } } @@@ -118,7 -116,8 +117,7 @@@ seq_setprev(mp); seq_save(mp); folder_free(mp); - done(0); - return 1; + return 0; } /* remove by refiling. */ @@@ -140,21 -139,7 +139,6 @@@ vec[vecp++] = msgs.msgs[msgnum]; } vec[vecp] = NULL; - done(execprog(*vec, vec)); - 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); - } - - return 0; - return 1; /* just in case ... */ ++ return execprog(*vec, vec); } diff --combined uip/whatnow.c index fbc8582,4f8d956..2969397 --- a/uip/whatnow.c +++ b/uip/whatnow.c @@@ -110,7 -110,7 +110,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); @@@ -119,10 -119,10 +119,10 @@@ "%s [switches] [file]", invo_name); print_help(buf, switches, 1); - done(1); + exit(0); case VERSIONSW: print_version(invo_name); - done(1); + exit(0); case EDITRSW: if (!(ed = *argp++) || *ed == '-') @@@ -161,15 -161,14 +161,15 @@@ unlink(drft); } advise(NULL, "Try again."); - done(1); + /* sysexits.h EX_SOFTWARE */ + exit(1); } } snprintf(prompt, sizeof(prompt), myprompt, invo_name); for (;;) { if (!(argp = getans(prompt, aleqs))) { - done(1); + exit(1); } switch (smatch(*argp, aleqs)) { case DISPSW: @@@ -200,12 -199,12 +200,12 @@@ if (stat(drft, &st) != NOTOK) { advise(NULL, "draft left on %s", drft); } - done(1); + exit(1); case DELETESW: /* Delete draft and exit */ removefile(drft); - done(1); + exit(1); case SENDSW: /* Send draft */ @@@ -215,7 -214,7 +215,7 @@@ case REFILEOPT: /* Refile the draft */ if (refile(++argp, drft) == 0) { - done(0); + exit(0); } break; @@@ -518,9 -517,9 +518,9 @@@ editfile(char **ed, char **arg, char *f case OK: vecp = 0; vec[vecp++] = mhbasename(*ed); - if (arg) - while (*arg) - vec[vecp++] = *arg++; + while (arg && *arg) { + vec[vecp++] = *arg++; + } vec[vecp++] = file; vec[vecp] = NULL; @@@ -566,36 -565,22 +566,22 @@@ static int sendfile(char **arg, char *file) { - pid_t child_id; - int vecp; + int vecp = 0; char *vec[MAXARGS]; - context_save(); /* save the context file */ + context_save(); fflush(stdout); - switch (child_id = fork()) { - case NOTOK: - advise(NULL, "unable to fork, so sending directly..."); - /* fall */ - case OK: - vecp = 0; - vec[vecp++] = "send"; - if (arg) - while (*arg) - vec[vecp++] = *arg++; - vec[vecp++] = file; - vec[vecp] = NULL; - - execvp("send", vec); - fprintf(stderr, "%s: unable to exec ", invo_name); - perror("send"); - _exit(-1); - - default: - if (pidwait(child_id, OK) == 0) - exit(0); - return 1; + vec[vecp++] = "send"; + while (arg && *arg) { + vec[vecp++] = *arg++; } + vec[vecp++] = file; + vec[vecp] = NULL; + execvp(*vec, vec); + fprintf(stderr, "%s: unable to exec ", invo_name); + perror("send"); + _exit(-1); } @@@ -605,11 -590,9 +591,9 @@@ static int refile(char **arg, char *file) { - pid_t pid; - register int vecp; + int vecp = 0; char *vec[MAXARGS]; - vecp = 0; vec[vecp++] = "refile"; vec[vecp++] = "-nolink"; /* override bad .mh_profile defaults */ vec[vecp++] = "-file"; @@@ -620,23 -603,10 +604,10 @@@ } vec[vecp] = NULL; - context_save(); /* save the context file */ + context_save(); fflush(stdout); - switch (pid = fork()) { - case -1: - advise("fork", "unable to"); - return -1; - - case 0: - execvp(*vec, vec); - fprintf(stderr, "%s: unable to exec ", invo_name); - perror(*vec); - _exit(-1); - - default: - return (pidwait(pid, -1)); - } + return execprog(*vec, vec); }