]> granicus.if.org Git - mutt/commitdiff
Make <set-flag> and <clear-flag> work in the pager, too. Closes #3212.
authorRocco Rutte <pdmef@gmx.net>
Fri, 17 Apr 2009 13:37:07 +0000 (15:37 +0200)
committerRocco Rutte <pdmef@gmx.net>
Fri, 17 Apr 2009 13:37:07 +0000 (15:37 +0200)
UPDATING
functions.h
pager.c

index 28bd489ae68d9b8641afe0393381701d24ce02b0..6f0f1994de85f9ae774e0e61da83595eea6ee6bb 100644 (file)
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,7 @@ The keys used are:
   !: modified feature, -: deleted feature, +: new feature
 
 hg tip:
+  + <set-flag> and <clear-flag> work in the pager, too
   + ~x pattern also matches against In-Reply-To
   + lower case patterns for string searches perform case-insensitive
     search as regex patterns do (except IMAP)
index f0add788d58b7193ffca9af29b240103fe063a6b..552a0a3f402d2434765af98e4ed7b3ee86be05f9 100644 (file)
@@ -183,6 +183,8 @@ struct binding_t OpPager[] = { /* map: pager */
   { "delete-message",  OP_DELETE,                      "d" },
   { "delete-thread",   OP_DELETE_THREAD,               "\004" },
   { "delete-subthread",        OP_DELETE_SUBTHREAD,            "\033d" },
+  { "set-flag",        OP_MAIN_SET_FLAG,               "w" },
+  { "clear-flag",       OP_MAIN_CLEAR_FLAG,            "W" },
   { "edit",            OP_EDIT_MESSAGE,                "e" },
   { "edit-type",       OP_EDIT_TYPE,                   "\005" },
   { "forward-message", OP_FORWARD_MESSAGE,             "f" },
diff --git a/pager.c b/pager.c
index 7c3f19420588fa799f351f0289674cc79592a370..367fc6c98ba801d789c2fe27861716aed893dc7f 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -2289,6 +2289,20 @@ search_next:
        }
        break;
 
+      case OP_MAIN_SET_FLAG:
+      case OP_MAIN_CLEAR_FLAG:
+       CHECK_MODE(IsHeader (extra));
+       CHECK_READONLY;
+
+       if (mutt_change_flag (extra->hdr, (ch == OP_MAIN_SET_FLAG)) == 0)
+         redraw |= REDRAW_STATUS | REDRAW_INDEX;
+       if (extra->hdr->deleted && option (OPTRESOLVE))
+       {
+         ch = -1;
+         rc = OP_MAIN_NEXT_UNDELETED;
+       }
+       break;
+
       case OP_DELETE_THREAD:
       case OP_DELETE_SUBTHREAD:
        CHECK_MODE(IsHeader (extra));