while ((cp = *argp++)) {
if (*cp == '-') {
switch (smatch(++cp, switches)) {
- case AMBIGSW:
- ambigsw(cp, switches);
- done(1);
- case UNKWNSW:
- adios(NULL, "-%s unknown", cp);
-
- case HELPSW:
- snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name);
- print_help(buf, switches, 1);
- done(1);
- case VERSIONSW:
- print_version(invo_name);
- done(1);
-
- case ANNOSW:
- anot++;
- continue;
- case NANNOSW:
- anot = 0;
- continue;
-
- case EDITRSW:
- if (!(ed = *argp++) || *ed == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- nedit = 0;
- continue;
- case NEDITSW:
- nedit++;
- continue;
-
- case WHATSW:
- if (!(whatnowproc = *argp++) || *whatnowproc == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- nwhat = 0;
- continue;
+ case AMBIGSW:
+ ambigsw(cp, switches);
+ done(1);
+ case UNKWNSW:
+ adios(NULL, "-%s unknown", cp);
+
+ case HELPSW:
+ snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name);
+ print_help(buf, switches, 1);
+ done(1);
+ case VERSIONSW:
+ print_version(invo_name);
+ done(1);
+
+ case ANNOSW:
+ anot++;
+ continue;
+ case NANNOSW:
+ anot = 0;
+ continue;
+
+ case EDITRSW:
+ if (!(ed = *argp++) || *ed == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ nedit = 0;
+ continue;
+ case NEDITSW:
+ nedit++;
+ continue;
+
+ case WHATSW:
+ if (!(whatnowproc = *argp++) ||
+ *whatnowproc == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ nwhat = 0;
+ continue;
#ifdef MHE
- case BILDSW:
- buildsw++; /* fall... */
+ case BILDSW:
+ buildsw++; /* fall... */
#endif /* MHE */
- case NWHATSW:
- nwhat++;
- continue;
-
- case FILESW:
- if (file)
- adios(NULL, "only one file at a time!");
- if (!(cp = *argp++) || *cp == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- file = getcpy(expanddir(cp));
- continue;
- case FILTSW:
- if (!(cp = *argp++) || *cp == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- filter = getcpy(etcpath(cp));
- mime = 0;
- continue;
- case FORMSW:
- if (!(form = *argp++) || *form == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- continue;
-
- case FRMTSW:
- filter = getcpy(etcpath(mhlforward));
- continue;
- case NFRMTSW:
- filter = NULL;
- continue;
-
- case INPLSW:
- inplace++;
- continue;
- case NINPLSW:
- inplace = 0;
- continue;
-
- case MIMESW:
- mime++;
- filter = NULL;
- continue;
- case NMIMESW:
- mime = 0;
- continue;
-
- case DGSTSW:
- if (!(digest = *argp++) || *digest == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- mime = 0;
- continue;
- case ISSUESW:
- if (!(cp = *argp++) || *cp == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- if ((issue = atoi(cp)) < 1)
- adios(NULL, "bad argument %s %s", argp[-2], cp);
- continue;
- case VOLUMSW:
- if (!(cp = *argp++) || *cp == '-')
- adios(NULL, "missing argument to %s", argp[-2]);
- if ((volume = atoi(cp)) < 1)
- adios(NULL, "bad argument %s %s", argp[-2], cp);
- continue;
-
- case BITSTUFFSW:
- dashstuff = 1; /* trinary logic */
- continue;
- case NBITSTUFFSW:
- dashstuff = -1; /* trinary logic */
- continue;
+ case NWHATSW:
+ nwhat++;
+ continue;
+
+ case FILESW:
+ if (file)
+ adios(NULL, "only one file at a time!");
+ if (!(cp = *argp++) || *cp == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ file = getcpy(expanddir(cp));
+ continue;
+ case FILTSW:
+ if (!(cp = *argp++) || *cp == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ filter = getcpy(etcpath(cp));
+ mime = 0;
+ continue;
+ case FORMSW:
+ if (!(form = *argp++) || *form == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ continue;
+
+ case FRMTSW:
+ filter = getcpy(etcpath(mhlforward));
+ continue;
+ case NFRMTSW:
+ filter = NULL;
+ continue;
+
+ case INPLSW:
+ inplace++;
+ continue;
+ case NINPLSW:
+ inplace = 0;
+ continue;
+
+ case MIMESW:
+ mime++;
+ filter = NULL;
+ continue;
+ case NMIMESW:
+ mime = 0;
+ continue;
+
+ case DGSTSW:
+ if (!(digest = *argp++) || *digest == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ mime = 0;
+ continue;
+ case ISSUESW:
+ if (!(cp = *argp++) || *cp == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ if ((issue = atoi(cp)) < 1)
+ adios(NULL, "bad argument %s %s",
+ argp[-2], cp);
+ continue;
+ case VOLUMSW:
+ if (!(cp = *argp++) || *cp == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ if ((volume = atoi(cp)) < 1)
+ adios(NULL, "bad argument %s %s",
+ argp[-2], cp);
+ continue;
+
+ case BITSTUFFSW:
+ dashstuff = 1; /* trinary logic */
+ continue;
+ case NBITSTUFFSW:
+ dashstuff = -1; /* trinary logic */
+ continue;
}
}
if (*cp == '+' || *cp == '@') {
#ifdef MHE
strncpy(drft, buildsw ? toabsdir("draft")
- : m_draft("new"), sizeof(drft));
+ : m_draft(seq_beyond), sizeof(drft));
#else
- strncpy(drft, m_draft("new"), sizeof(drft));
+ strncpy(drft, m_draft(seq_beyond), sizeof(drft));
#endif /* MHE */
if (file) {
** Forwarding a message.
*/
if (!msgp)
- msgs[msgp++] = "cur";
+ msgs[msgp++] = seq_cur;
if (!folder)
folder = getcurfol();
maildir = toabsdir(folder);
for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
sleep(5);
switch (child_id) {
- case NOTOK:
- adios("fork", "unable to");
+ case NOTOK:
+ adios("fork", "unable to");
- case OK:
- close(pd[0]);
- dup2(pd[1], 1);
- close(pd[1]);
+ case OK:
+ close(pd[0]);
+ dup2(pd[1], 1);
+ close(pd[1]);
- i = 1;
- vec[i++] = "-forwall";
- vec[i++] = "-form";
- vec[i++] = filter;
+ i = 1;
+ vec[i++] = "-forwall";
+ vec[i++] = "-form";
+ vec[i++] = filter;
- if (digest) {
- vec[i++] = "-digest";
- vec[i++] = digest;
- vec[i++] = "-issue";
- snprintf(buf1, sizeof(buf1), "%d", issue);
- vec[i++] = buf1;
- vec[i++] = "-volume";
- snprintf(buf2, sizeof(buf2), "%d", volume);
- vec[i++] = buf2;
- }
+ if (digest) {
+ vec[i++] = "-digest";
+ vec[i++] = digest;
+ vec[i++] = "-issue";
+ snprintf(buf1, sizeof(buf1), "%d", issue);
+ vec[i++] = buf1;
+ vec[i++] = "-volume";
+ snprintf(buf2, sizeof(buf2), "%d", volume);
+ vec[i++] = buf2;
+ }
- /*
- ** Are we dashstuffing (quoting) the lines that begin
- ** with `-'. We use the mhl default (don't add any
- ** flag) unless the user has specified a specific flag.
- */
- if (dashstuff > 0)
- vec[i++] = "-dashstuffing";
- else if (dashstuff < 0)
- vec[i++] = "-nodashstuffing";
+ /*
+ ** Are we dashstuffing (quoting) the lines that begin
+ ** with `-'. We use the mhl default (don't add any
+ ** flag) unless the user has specified a specific flag.
+ */
+ if (dashstuff > 0)
+ vec[i++] = "-dashstuffing";
+ else if (dashstuff < 0)
+ vec[i++] = "-nodashstuffing";
- if (mp->numsel >= MAXARGS - i)
- adios(NULL, "more than %d messages for %s exec", MAXARGS - i, vec[0]);
+ if (mp->numsel >= MAXARGS - i)
+ adios(NULL, "more than %d messages for %s exec",
+ MAXARGS - i, vec[0]);
- /*
- ** Now add the message names to filter. We can only
- ** handle about 995 messages (because vec is fixed
- ** size), but that should be plenty.
- */
- for (msgnum = mp->lowsel;
- msgnum <= mp->hghsel && i < sizeof(vec) - 1;
- msgnum++)
- if (is_selected(mp, msgnum))
- vec[i++] = getcpy(m_name(msgnum));
- vec[i] = NULL;
-
- execvp(mhlproc, vec);
- fprintf(stderr, "unable to exec ");
- perror(mhlproc);
- _exit(-1);
-
- default:
- close(pd[1]);
- cpydata(pd[0], out, vec[0], file);
- close(pd[0]);
- pidXwait(child_id, mhlproc);
- break;
+ /*
+ ** Now add the message names to filter. We can only
+ ** handle about 995 messages (because vec is fixed
+ ** size), but that should be plenty.
+ */
+ for (msgnum = mp->lowsel;
+ msgnum <= mp->hghsel && i < sizeof(vec) - 1;
+ msgnum++)
+ if (is_selected(mp, msgnum))
+ vec[i++] = getcpy(m_name(msgnum));
+ vec[i] = NULL;
+
+ execvp(mhlproc, vec);
+ fprintf(stderr, "unable to exec ");
+ perror(mhlproc);
+ _exit(-1);
+
+ default:
+ close(pd[1]);
+ cpydata(pd[0], out, vec[0], file);
+ close(pd[0]);
+ pidXwait(child_id, mhlproc);
+ break;
}
}