On Mon, Aug 29, 2016 at 02:33:01PM -0400, Jon LaBadie wrote:
> The message index shows a "D" when a message has been
> deleted or when it has been saved.  Is there a way
> to distinguish which of the two operations (delete
> or save) has been performed?

I wrote a small patch (attached) to provide a '$' indication in the
index for messages that have been successfully saved or copied.  It
exists in a separate column from the deletion indicator.

-- 
Will Fiveash
# HG changeset patch
# User Will Fiveash <[email protected]>
# Date 1355163234 21600
#      Mon Dec 10 12:13:54 2012 -0600
# Node ID 5edf55351321d7dc1e132ae0352f305f835c205a
# Parent  3834da0c024e61f9855e36c9fbbdd9fa578f4b14
my save indication patch

diff --git a/commands.c b/commands.c
--- a/commands.c
+++ b/commands.c
@@ -713,6 +713,8 @@
 
   if ((rc = mutt_append_message (ctx, Context, h, cmflags, chflags)) != 0)
     return rc;
+  else
+    mutt_set_flag (Context, h, MUTT_APPENDED, 1);
 
   if (delete)
   {
diff --git a/curs_main.c b/curs_main.c
--- a/curs_main.c
+++ b/curs_main.c
@@ -1539,7 +1539,7 @@
                               (op == OP_DECRYPT_SAVE) || (op == 
OP_DECRYPT_COPY) ||
                               0,
                               &menu->redraw) == 0 &&
-            (op == OP_SAVE || op == OP_DECODE_SAVE || op == OP_DECRYPT_SAVE)
+            (op == OP_SAVE || op == OP_DECODE_SAVE || op == OP_COPY_MESSAGE || 
op == OP_DECRYPT_SAVE)
            )
        {
          if (tag)
diff --git a/doc/manual.xml.head b/doc/manual.xml.head
--- a/doc/manual.xml.head
+++ b/doc/manual.xml.head
@@ -719,6 +719,7 @@
 <row><entry>s</entry><entry>message is signed</entry></row>
 <row><entry>!</entry><entry>message is flagged</entry></row>
 <row><entry>*</entry><entry>message is tagged</entry></row>
+<row><entry>$</entry><entry>message was successfully appended to another 
folder</entry></row>
 <row><entry>n</entry><entry>thread contains new messages (only if 
collapsed)</entry></row>
 <row><entry>o</entry><entry>thread contains old messages (only if 
collapsed)</entry></row>
 </tbody>
diff --git a/flags.c b/flags.c
--- a/flags.c
+++ b/flags.c
@@ -223,6 +223,13 @@
       }
       break;
 
+    case MUTT_APPENDED:
+
+      if (bf) {
+             h->appended = 1;
+      }
+      break;
+
     case MUTT_FLAG:
 
       if (!mutt_bit_isset(ctx->rights,MUTT_ACL_WRITE))
diff --git a/hdrline.c b/hdrline.c
--- a/hdrline.c
+++ b/hdrline.c
@@ -670,13 +670,14 @@
         ch = 'K';
 
       snprintf (buf2, sizeof (buf2),
-               "%c%c%c", (THREAD_NEW ? 'n' : (THREAD_OLD ? 'o' : 
+               "%c%c%c%c", (THREAD_NEW ? 'n' : (THREAD_OLD ? 'o' : 
                ((hdr->read && (ctx && ctx->msgnotreadyet != hdr->msgno))
                ? (hdr->replied ? 'r' : ' ') : (hdr->old ? 'O' : 'N')))),
                hdr->deleted ? 'D' : (hdr->attach_del ? 'd' : ch),
                hdr->tagged ? '*' :
                (hdr->flagged ? '!' :
-                (Tochars && ((i = mutt_user_is_recipient (hdr)) < mutt_strlen 
(Tochars)) ? Tochars[i] : ' ')));
+                (Tochars && ((i = mutt_user_is_recipient (hdr)) < mutt_strlen 
(Tochars)) ? Tochars[i] : ' ')),
+               hdr->appended ? '$' : ' ');
       mutt_format_s (dest, destlen, prefix, buf2);
       break;
 
diff --git a/mutt.h b/mutt.h
--- a/mutt.h
+++ b/mutt.h
@@ -190,6 +190,7 @@
   MUTT_EXPIRED,
   MUTT_SUPERSEDED,
   MUTT_TRASH,
+  MUTT_APPENDED,
 
   /* actions for mutt_pattern_comp/mutt_pattern_exec */
   MUTT_AND,
@@ -738,6 +739,7 @@
   unsigned int expired : 1;            /* already expired? */
   unsigned int superseded : 1;                 /* got superseded? */
   unsigned int replied : 1;
+  unsigned int appended : 1;
   unsigned int subject_changed : 1;    /* used for threading */
   unsigned int threaded : 1;           /* used for threading */
   unsigned int display_subject : 1;    /* used for threading */
diff --git a/pager.c b/pager.c
--- a/pager.c
+++ b/pager.c
@@ -2681,6 +2681,7 @@
                               (ch == OP_DECRYPT_SAVE) || (ch == 
OP_DECRYPT_COPY) ||
                               0,
                               &redraw) == 0 && (ch == OP_SAVE || ch == 
OP_DECODE_SAVE
+                                                || ch == OP_COPY_MESSAGE
                                                 || ch == OP_DECRYPT_SAVE
                                                 ))
        {

Attachment: signature.asc
Description: PGP signature

Reply via email to