{ "showproc program", 0 },
#define SHOWMIMESW 10
{ "showmimeproc program", 0 },
-#define NSHOWSW 11
- { "noshowproc", 0 },
-#define FILESW 12
+#define FILESW 11
{ "file file", -4 }, /* interface from showfile */
-#define VERSIONSW 13
+#define VERSIONSW 12
{ "version", 0 },
-#define HELPSW 14
+#define HELPSW 13
{ "help", 0 },
{ NULL, 0 }
};
main(int argc, char **argv)
{
int headersw = 1, msgp = 0;
- int nshow = 0, checkmime = 1, mime;
+ int checkmime = 1, mime;
int vecp = 1, procp = 1, mode = SHOW, msgnum;
char *cp, *maildir, *file = NULL, *folder = NULL, *proc;
char buf[BUFSIZ], **argp, **arguments;
if (!(showproc = *argp++) || *showproc == '-')
adios(NULL, "missing argument to %s",
argp[-2]);
- nshow = 0;
- continue;
- case NSHOWSW:
- nshow++;
continue;
case SHOWMIMESW:
*showmimeproc == '-')
adios(NULL, "missing argument to %s",
argp[-2]);
- nshow = 0;
continue;
case CHECKMIMESW:
checkmime++;
if (!msgp) {
switch (mode) {
case NEXT:
- msgs[msgp++] = "next";
+ msgs[msgp++] = seq_next;
break;
case PREV:
- msgs[msgp++] = "prev";
+ msgs[msgp++] = seq_prev;
break;
default:
- msgs[msgp++] = "cur";
+ msgs[msgp++] = seq_cur;
break;
}
}
set_unseen(mp, msgnum);
seq_setprev(mp); /* set the Previous-Sequence */
- seq_setunseen(mp, 1); /* unset the Unseen-Sequence */
+ seq_setunseen(mp, 0); /* unset unseen seqs for shown msgs */
if (mp->numsel > MAXARGS - 2)
adios(NULL, "more than %d messages for show exec",
** Decide which "proc" to use
*/
mime = 0;
- if (nshow) {
- proc = catproc;
- } else {
- /* check if any messages are non-text MIME messages */
- if (checkmime && !getenv("NOMHNPROC")) {
- if (!file) {
- /*
- ** loop through selected messages
- ** and check for MIME
- */
- for (msgnum = mp->lowsel;
- msgnum <= mp->hghsel;
- msgnum++)
- if (is_selected(mp, msgnum) && is_nontext(m_name(msgnum))) {
- mime = 1;
- break;
- }
- } else {
- /* check the file for MIME */
- if (is_nontext(vec[vecp - 1]))
+ /* check if any messages are non-text MIME messages */
+ if (checkmime) {
+ if (!file) {
+ /*
+ ** loop through selected messages
+ ** and check for MIME
+ */
+ for (msgnum = mp->lowsel;
+ msgnum <= mp->hghsel;
+ msgnum++)
+ if (is_selected(mp, msgnum) && is_nontext(m_name(msgnum))) {
mime = 1;
- }
+ break;
+ }
+ } else {
+ /* check the file for MIME */
+ if (is_nontext(vec[vecp - 1]))
+ mime = 1;
}
-
- /* Set the "proc" */
- if (mime)
- proc = showmimeproc;
- else
- proc = showproc;
}
+ /* Set the "proc" */
+ if (mime)
+ proc = showmimeproc;
+ else
+ proc = showproc;
+
if (folder && !file)
m_putenv("mhfolder", folder);
- /*
- ** For backward compatibility, if the "proc" is mhn,
- ** then add "-show" option. Add "-file" if showing
- ** file.
- */
- if (strcmp(mhbasename(proc), "mhn") == 0) {
- if (file) {
- vec[vecp] = vec[vecp - 1];
- vec[vecp - 1] = "-file";
- vecp++;
- }
- vec[vecp++] = "-show";
- vec[vecp] = NULL;
- }
-
/* If the "proc" is "mhshow", add "-file" if showing file. */
if (strcmp(mhbasename(proc), "mhshow") == 0 && file ) {
vec[vecp] = vec[vecp - 1];
/*
** 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.
+ ** add the path to the message names.
*/
- if (!strcmp(mhbasename(proc), "mhl")
+ if (strcmp(mhbasename(proc), "mhl")==0
&& !file
&& chdir(maildir =
concat(toabsdir("+"), "/", NULL)) != NOTOK) {
mp->foldpath = concat(mp->foldpath, "/", NULL);
- cp = isprefix(maildir, mp->foldpath)
- ? mp->foldpath + strlen(maildir)
- : mp->foldpath;
+ 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);
}