X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fsortm.c;h=4b8048f854f462e1a4baa13b70b5427f594d76ca;hp=8f9bf813afdb1d910f5b3d16ca2ae04fbfa85110;hb=150eda989f39dde2dd6112b46c50558cd9bfd5fd;hpb=24414198cc168516126761a3040b71087c5778bc diff --git a/uip/sortm.c b/uip/sortm.c index 8f9bf81..4b8048f 100644 --- a/uip/sortm.c +++ b/uip/sortm.c @@ -534,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); @@ -585,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 @@ -612,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; }