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",
** 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")
+ 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);
}