From 96a8fdb8b141aecc1732615454fdabc584c0142c Mon Sep 17 00:00:00 2001 From: Jon Steinhart Date: Tue, 16 Nov 2004 18:14:34 +0000 Subject: [PATCH] Fixed problem where the refile hook was being called after a message was renamed so that it wasn't around for the hook. The hook is now called before the message file is renamed. --- sbr/folder_pack.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sbr/folder_pack.c b/sbr/folder_pack.c index bebc145..2bddb0d 100644 --- a/sbr/folder_pack.c +++ b/sbr/folder_pack.c @@ -53,20 +53,22 @@ folder_pack (struct msgs **mpp, int verbose) if (verbose) printf ("message %s becomes %s\n", oldmsg, newmsg); - /* move the message file */ - if (rename (oldmsg, newmsg) == -1) { - advise (newmsg, "unable to rename %s to", oldmsg); - return -1; - } - /* * Invoke the external refile hook for each message being renamed. + * This is done before the file is renamed so that the old message + * file is around for the hook. */ (void)snprintf(oldmsg, sizeof (oldmsg), "%s/%d", mp->foldpath, msgnum); (void)snprintf(newmsg, sizeof (newmsg), "%s/%d", mp->foldpath, hole); ext_hook("ref-hook", oldmsg, newmsg); + /* move the message file */ + if (rename (oldmsg, newmsg) == -1) { + advise (newmsg, "unable to rename %s to", oldmsg); + return -1; + } + /* check if this is the current message */ if (msgnum == mp->curmsg) newcurrent = hole; -- 1.7.10.4