]> granicus.if.org Git - neomutt/commitdiff
refactor the purge-thread code for clarity
authorRichard Russon <rich@flatcap.org>
Fri, 2 Sep 2016 21:46:17 +0000 (22:46 +0100)
committerRichard Russon <rich@flatcap.org>
Fri, 2 Sep 2016 23:29:26 +0000 (00:29 +0100)
curs_main.c
pager.c

index ee68997f3635b76fcce1fcb25ff908ae0bf11a7a..a1ad012bab9fe2bda28db5dea43fa7df6b16bfa4 100644 (file)
@@ -2580,26 +2580,25 @@ int mutt_index_menu (void)
       case OP_PURGE_THREAD:
 
        CHECK_MSGCOUNT;
-        CHECK_VISIBLE;
+       CHECK_VISIBLE;
        CHECK_READONLY;
-        /* L10N: CHECK_ACL */
+       /* L10N: CHECK_ACL */
        CHECK_ACL(MUTT_ACL_DELETE, _("Cannot delete message(s)"));
 
        {
-         int subthread = ((op != OP_DELETE_THREAD) && (op != OP_PURGE_THREAD));
+         int subthread = (op == OP_DELETE_SUBTHREAD);
          rc = mutt_thread_set_flag (CURHDR, MUTT_DELETE, 1, subthread);
          if (rc == -1)
            break;
-         rc = mutt_thread_set_flag (CURHDR, MUTT_PURGE, (op == OP_PURGE_THREAD), subthread);
-       }
-
-       if (rc != -1)
-       {
-         if (option (OPTDELETEUNTAG))
+         if (op == OP_PURGE_THREAD)
          {
-           mutt_thread_set_flag (CURHDR, MUTT_TAG, 0,
-                                 (op == OP_PURGE_THREAD) ? 0 : 1);
+           rc = mutt_thread_set_flag (CURHDR, MUTT_PURGE, 1, subthread);
+           if (rc == -1)
+             break;
          }
+
+         if (option (OPTDELETEUNTAG))
+           mutt_thread_set_flag (CURHDR, MUTT_TAG, 0, subthread);
          if (option (OPTRESOLVE))
            if ((menu->current = ci_next_undeleted (menu->current)) == -1)
              menu->current = menu->oldcurrent;
diff --git a/pager.c b/pager.c
index 322cd7079816e462bd55403a207aee50c6d968bd..82858c6f2b7552595a96a9424b905471c064cee1 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -2474,20 +2474,19 @@ search_next:
        CHECK_ACL(MUTT_ACL_DELETE, _("Cannot delete message(s)"));
 
        {
-         int subthread = ((ch != OP_DELETE_THREAD) && (ch != OP_PURGE_THREAD));
+         int subthread = (ch == OP_DELETE_SUBTHREAD);
          r = mutt_thread_set_flag (extra->hdr, MUTT_DELETE, 1, subthread);
          if (r == -1)
            break;
-         r = mutt_thread_set_flag (extra->hdr, MUTT_PURGE, (ch == OP_PURGE_THREAD), subthread);
-       }
-
-       if (r != -1)
-       {
-         if (option (OPTDELETEUNTAG))
+         if (ch == OP_PURGE_THREAD)
          {
-               mutt_thread_set_flag (extra->hdr, MUTT_TAG, 0,
-                                 (ch == OP_PURGE_THREAD) ? 0 : 1);
+           r = mutt_thread_set_flag (extra->hdr, MUTT_PURGE, 1, subthread);
+           if (r == -1)
+             break;
          }
+
+         if (option (OPTDELETEUNTAG))
+           mutt_thread_set_flag (extra->hdr, MUTT_TAG, 0, subthread);
          if (option (OPTRESOLVE))
          {
            rc = OP_MAIN_NEXT_UNDELETED;