Brian Bray <[EMAIL PROTECTED]> wrote:
>
> just wondering about the easiest way to go about makeing deleted mail
> transfer to a"trash" folder before for later retrival/deletion.

I have been using this patch to get a trash-folder effect; unfortunately
I have lost the author's name.

It was created for Mutt 0.94.3, but seems to work very well with 0.95,
since it is not very obtrusive.

-- 
David DeSimone   | "The doctrine of human equality reposes on this:
[EMAIL PROTECTED]   |  that there is no man really clever who has not
Hewlett-Packard  |  found that he is stupid." -- Gilbert K. Chesterson
Convex Division  |    PGP: 5B 47 34 9F 3B 9A B0 0D  AB A6 15 F1 BB BE 8C 44
diff -u mutt-0.94.3i/Muttrc.in mutt-0.94.3i-trash/Muttrc.in
--- mutt-0.94.3i/Muttrc.in      Fri Jun 26 06:31:19 1998
+++ mutt-0.94.3i-trash/Muttrc.in        Sun Aug 23 22:02:42 1998
@@ -144,6 +144,7 @@
 # set timeout=600
 # set tmpdir=""
 # set to_chars="+TCF"
+# set trash=""
 # unset use_8bitmime
 # set use_domain
 # set use_from
Common subdirectories: mutt-0.94.3i/doc and mutt-0.94.3i-trash/doc
diff -u mutt-0.94.3i/globals.h mutt-0.94.3i-trash/globals.h
--- mutt-0.94.3i/globals.h      Fri Jul 17 03:47:13 1998
+++ mutt-0.94.3i-trash/globals.h        Sun Aug 23 22:02:42 1998
@@ -77,6 +77,7 @@
 WHERE char *Status;
 WHERE char *Tempdir;
 WHERE char *Tochars;
+WHERE char *Trash;
 WHERE char *Username;
 WHERE char *Visual;
 
diff -u mutt-0.94.3i/init.h mutt-0.94.3i-trash/init.h
--- mutt-0.94.3i/init.h Mon Aug 10 11:28:31 1998
+++ mutt-0.94.3i-trash/init.h   Sun Aug 23 22:02:42 1998
@@ -255,6 +255,7 @@
   { "timeout",         DT_NUM,  R_NONE, UL &Timeout, 600 },
   { "tmpdir",          DT_PATH, R_NONE, UL &Tempdir, 0 },
   { "to_chars",                DT_STR,  R_BOTH, UL &Tochars, UL " +TCF" },
+  { "trash",           DT_PATH, R_NONE, UL &Trash, UL "" },
   { "use_8bitmime",    DT_BOOL, R_NONE, OPTUSE8BITMIME, 0 },
   { "use_domain",      DT_BOOL, R_NONE, OPTUSEDOMAIN, 1 },
   { "use_from",                DT_BOOL, R_NONE, OPTUSEFROM, 1 },
diff -u mutt-0.94.3i/mx.c mutt-0.94.3i-trash/mx.c
--- mutt-0.94.3i/mx.c   Tue Jul 28 04:16:01 1998
+++ mutt-0.94.3i-trash/mx.c     Sun Aug 23 22:02:42 1998
@@ -23,7 +23,7 @@
 #include "mailbox.h"
 #include "copy.h"
 #include "keymap.h"
-
+#include "globals.h"
 
 #ifdef _PGPPATH
 #include "pgp.h"
@@ -666,9 +666,41 @@
   BUFFY *tmp = NULL;
 #endif
   int rc = -1;
+  int i, nosave = 0;
+  CONTEXT trash;
+  struct stat st;
+  char tmp[_POSIX_PATH_MAX+20];
 
   if (!ctx->quiet)
     mutt_message ("Writing %s...", ctx->path);
+    
+  /* Only save messages to trash if there are deleted messages, 
+     the Trash variable has been set,
+     and the current folder isn't the trash. */
+  if (ctx->deleted && strlen(Trash) && strncmp(ctx->path, Trash, _POSIX_PATH_MAX)) {
+    errno = 0;
+    stat(Trash, &st);
+    if (errno == ENOENT && option (OPTCONFIRMCREATE)) {
+      snprintf (tmp, sizeof (tmp), "Create trash mailbox, %s?", Trash);
+      if (mutt_yesorno (tmp, 1) < 1) {
+        if (mutt_yesorno("Purge deleted messages without saving?",1) < 1)
+         return (-1);
+       else
+         nosave = 1;
+      }
+    }
+    if (!nosave) {
+      if (mx_open_mailbox (Trash, M_APPEND | M_QUIET, &trash) == NULL) {
+        dprint (1, (debugfile, "sync_mailbox(): unable to open mailbox %s in 
+append-mode, aborting.\n", Trash));        
+        return (-1);
+      }
+      for (i = 0; i < ctx->msgcount; i++)
+        if (ctx->hdrs[i]->deleted)
+          mutt_append_message(&trash, ctx, ctx->hdrs[i], 0, CH_UPDATE_LEN);
+      mx_close_mailbox(&trash);
+    }
+  }
+
   switch (ctx->magic)
   {
     case M_MBOX:
Common subdirectories: mutt-0.94.3i/rx and mutt-0.94.3i-trash/rx

Reply via email to