X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fsortm.c;h=4b8048f854f462e1a4baa13b70b5427f594d76ca;hb=0c3be1c75f481d085d0ada3e9a714051a221be80;hp=5cff943b992b92e9a473d828dcdfece362f10c95;hpb=a259594cc41e41bfbb90562d3977b8194d1446f5;p=mmh diff --git a/uip/sortm.c b/uip/sortm.c index 5cff943..4b8048f 100644 --- a/uip/sortm.c +++ b/uip/sortm.c @@ -443,24 +443,23 @@ get_fields (char *datesw, int msg, struct smsg *smsg) cp = subjcomp; cp2 = subjcomp; - if (strcmp (subjsort, "subject") == 0) + if (strcmp (subjsort, "subject") == 0) { while ((c = *cp)) { if (! isspace(c)) { if(uprf(cp, "re:")) cp += 2; - else { - if (isalnum(c)) - *cp2++ = isupper(c) ? tolower(c) : c; + else break; - } } cp++; } + } + while ((c = *cp++)) { if (isalnum(c)) *cp2++ = isupper(c) ? tolower(c) : c; - } + *cp2 = '\0'; } else @@ -535,13 +534,13 @@ rename_chain (struct msgs *mp, struct smsg **mlist, int msg, int endmsg) if (verbose) printf ("message %d becomes message %d\n", old, new); - if (rename (oldname, newname) == NOTOK) - adios (newname, "unable to rename %s to", oldname); - (void)snprintf(oldname, sizeof (oldname), "%s/%d", mp->foldpath, old); (void)snprintf(newbuf, sizeof (newbuf), "%s/%d", mp->foldpath, new); ext_hook("ref-hook", oldname, newbuf); + if (rename (oldname, newname) == NOTOK) + adios (newname, "unable to rename %s to", oldname); + copy_msg_flags (mp, new, old); if (mp->curmsg == old) seq_setcur (mp, new); @@ -586,24 +585,22 @@ rename_msgs (struct msgs *mp, struct smsg **mlist) if (verbose) printf ("renaming message chain from %d to %d\n", old, new); - if (rename (f1, tmpfil) == NOTOK) - adios (tmpfil, "unable to rename %s to ", f1); - /* - * Run the external hook to refile the old message as message - * number 2147483647. This is our way of making a temporary - * message number. I don't really like this. + * Run the external hook to refile the old message as the + * temporary message number that is off of the end of the + * messages in the folder. */ (void)snprintf(f1, sizeof (f1), "%s/%d", mp->foldpath, old); - (void)snprintf(newbuf, sizeof (newbuf), "%s/2147483647", mp->foldpath); + (void)snprintf(newbuf, sizeof (newbuf), "%s/%d", mp->foldpath, mp->hghmsg + 1); ext_hook("ref-hook", f1, newbuf); + if (rename (f1, tmpfil) == NOTOK) + adios (tmpfil, "unable to rename %s to ", f1); + get_msg_flags (mp, &tmpset, old); rename_chain (mp, mlist, j, i); - if (rename (tmpfil, m_name(new)) == NOTOK) - adios (m_name(new), "unable to rename %s to", tmpfil); /* * Run the external hook to refile the temorary message number @@ -613,6 +610,9 @@ rename_msgs (struct msgs *mp, struct smsg **mlist) (void)snprintf(f1, sizeof (f1), "%s/%d", mp->foldpath, new); ext_hook("ref-hook", newbuf, f1); + if (rename (tmpfil, m_name(new)) == NOTOK) + adios (m_name(new), "unable to rename %s to", tmpfil); + set_msg_flags (mp, &tmpset, new); mp->msgflags |= SEQMOD; }