move intl.h into lib-lib/macros.h
[apps/madmutt.git] / flags.c
diff --git a/flags.c b/flags.c
index bc57bb9..37dca38 100644 (file)
--- a/flags.c
+++ b/flags.c
@@ -11,6 +11,8 @@
 # include "config.h"
 #endif
 
+#include <lib-lib/macros.h>
+
 #include "mutt.h"
 #include "mutt_curses.h"
 #include "mutt_menu.h"
 #include "imap_private.h"
 #endif
 
-#include "lib/intl.h"
 
 void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
 {
   int changed = h->changed;
   int deleted = ctx->deleted;
   int tagged = ctx->tagged;
+  int flagged = ctx->flagged;
 
   if (ctx->readonly && flag != M_TAG)
     return;                     /* don't modify anything if we are read-only */
@@ -36,13 +38,8 @@ void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
   switch (flag) {
   case M_DELETE:
 
-#ifdef USE_IMAP
-    if (ctx && ctx->magic == M_IMAP)
-      if (mutt_bit_isset (((IMAP_DATA *) ctx->data)->capabilities, ACL)
-          && !mutt_bit_isset (((IMAP_DATA *) ctx->data)->rights,
-                              IMAP_ACL_DELETE))
-        return;
-#endif
+    if (!mx_acl_check (ctx, ACL_DELETE))
+      return;
 
     if (bf) {
       if (!h->deleted && !ctx->readonly) {
@@ -110,13 +107,8 @@ void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
 
   case M_NEW:
 
-#ifdef USE_IMAP
-    if (ctx && ctx->magic == M_IMAP)
-      if (mutt_bit_isset (((IMAP_DATA *) ctx->data)->capabilities, ACL)
-          && !mutt_bit_isset (((IMAP_DATA *) ctx->data)->rights,
-                              IMAP_ACL_SEEN))
-        return;
-#endif
+    if (!mx_acl_check (ctx, ACL_SEEN))
+      return;
 
     if (bf) {
       if (h->read || h->old) {
@@ -148,13 +140,8 @@ void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
 
   case M_OLD:
 
-#ifdef USE_IMAP
-    if (ctx && ctx->magic == M_IMAP)
-      if (mutt_bit_isset (((IMAP_DATA *) ctx->data)->capabilities, ACL)
-          && !mutt_bit_isset (((IMAP_DATA *) ctx->data)->rights,
-                              IMAP_ACL_SEEN))
-        return;
-#endif
+    if (!mx_acl_check (ctx, ACL_SEEN))
+      return;
 
     if (bf) {
       if (!h->old) {
@@ -180,13 +167,8 @@ void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
 
   case M_READ:
 
-#ifdef USE_IMAP
-    if (ctx && ctx->magic == M_IMAP)
-      if (mutt_bit_isset (((IMAP_DATA *) ctx->data)->capabilities, ACL)
-          && !mutt_bit_isset (((IMAP_DATA *) ctx->data)->rights,
-                              IMAP_ACL_SEEN))
-        return;
-#endif
+    if (!mx_acl_check (ctx, ACL_SEEN))
+      return;
 
     if (bf) {
       if (!h->read) {
@@ -216,13 +198,8 @@ void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
 
   case M_REPLIED:
 
-#ifdef USE_IMAP
-    if (ctx && ctx->magic == M_IMAP)
-      if (mutt_bit_isset (((IMAP_DATA *) ctx->data)->capabilities, ACL)
-          && !mutt_bit_isset (((IMAP_DATA *) ctx->data)->rights,
-                              IMAP_ACL_WRITE))
-        return;
-#endif
+    if (!mx_acl_check (ctx, ACL_WRITE))
+      return;
 
     if (bf) {
       if (!h->replied) {
@@ -250,13 +227,8 @@ void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
 
   case M_FLAG:
 
-#ifdef USE_IMAP
-    if (ctx && ctx->magic == M_IMAP)
-      if (mutt_bit_isset (((IMAP_DATA *) ctx->data)->capabilities, ACL)
-          && !mutt_bit_isset (((IMAP_DATA *) ctx->data)->rights,
-                              IMAP_ACL_WRITE))
-        return;
-#endif
+    if (!mx_acl_check (ctx, ACL_WRITE))
+      return;
 
     if (bf) {
       if (!h->flagged) {
@@ -300,9 +272,8 @@ void _mutt_set_flag (CONTEXT * ctx, HEADER * h, int flag, int bf, int upd_ctx)
    * search results so that any future search will match the current status
    * of this message and not what it was at the time it was last searched.
    */
-  if (h->searched
-      && (changed != h->changed || deleted != ctx->deleted
-          || tagged != ctx->tagged))
+  if (h->searched && (changed != h->changed || deleted != ctx->deleted ||
+                      tagged != ctx->tagged || flagged != ctx->flagged))
     h->searched = 0;
   sidebar_draw (0);
 }