-/*
- * Cheat: we are loaded with adrparse, which wants a routine called
- * OfficialName(). We call adrparse:getm() with the correct arguments
- * to prevent OfficialName() from being called. Hence, the following
- * is to keep the loader happy.
- */
-
-char *
-OfficialName (char *name)
-{
- return name;
-}
+ /* If the "proc" is "mhshow", add "-file" if showing file. */
+ if (strcmp(mhbasename(proc), "mhshow") == 0 && 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(mhbasename(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(mhbasename(proc), "mhl")==0
+ && !file
+ && chdir(maildir =
+ concat(toabsdir("+"), "/", NULL)) != NOTOK) {
+ mp->foldpath = concat(mp->foldpath, "/", NULL);
+ cp = (strncmp(mp->foldpath, maildir, strlen(maildir))==0) ?
+ mp->foldpath + strlen(maildir) :
+ mp->foldpath;
+ for (msgnum = procp; msgnum < vecp; msgnum++)
+ vec[msgnum] = concat(cp, vec[msgnum], NULL);
+ }