- vec[vecp++] = "-show";
- vec[vecp] = NULL;
- }
-
- /* If the "proc" is "mhshow", add "-file" if showing file or draft.
- */
- if (strcmp (r1bindex (proc, '/'), "mhshow") == 0 && (draftsw || file) ) {
- vec[vecp] = vec[vecp - 1];
- vec[vecp - 1] = "-file";
- vec[++vecp] = NULL;
- }
-
- /*
- * If "proc" is mhl, then run it internally
- * rather than exec'ing it.
- */
- if (strcmp (r1bindex (proc, '/'), "mhl") == 0) {
- vec[0] = "mhl";
- mhl (vecp, vec);
- done (0);
- }
-
- /*
- * If you are not using a nmh command as your "proc", then
- * add the path to the message names. Currently, we are just
- * checking for mhn here, since we've already taken care of mhl.
- */
- if (!strcmp (r1bindex (proc, '/'), "mhl")
- && !draftsw
- && !file
- && chdir (maildir = concat (m_maildir (""), "/", NULL)) != NOTOK) {
- mp->foldpath = concat (mp->foldpath, "/", NULL);
- cp = ssequal (maildir, mp->foldpath)
- ? mp->foldpath + strlen (maildir)
- : mp->foldpath;
- for (msgnum = procp; msgnum < vecp; msgnum++)
- vec[msgnum] = concat (cp, vec[msgnum], NULL);
- }
-
- vec[0] = r1bindex (proc, '/');
- execvp (proc, vec);
- adios (proc, "unable to exec");
- return 0; /* dead code to satisfy the compiler */
-}