lib: add notmuch_message_has_maildir_flag
authorDavid Bremner <david@tethera.net>
Sun, 20 Aug 2017 01:07:26 +0000 (22:07 -0300)
committerDavid Bremner <david@tethera.net>
Wed, 30 Aug 2017 00:56:21 +0000 (21:56 -0300)
I considered a higher level interface where the caller passes a tag
name rather than a flag character, but the role of the "unread" tag is
particularly confusing with such an interface.

lib/message.cc
lib/notmuch.h

index 75f36bdda55fc193e71c91741c42c6d74fa47508..63d67cfe84947de37ea03564f99d451d6382d40c 100644 (file)
@@ -1560,6 +1560,13 @@ _ensure_maildir_flags (notmuch_message_t *message, notmuch_bool_t force)
        message->maildir_flags = combined_flags;
 }
 
+notmuch_bool_t
+notmuch_message_has_maildir_flag (notmuch_message_t *message, char flag)
+{
+    _ensure_maildir_flags (message, FALSE);
+    return message->maildir_flags && (strchr (message->maildir_flags, flag) != NULL);
+}
+
 notmuch_status_t
 notmuch_message_maildir_flags_to_tags (notmuch_message_t *message)
 {
index e025bc1fb455a6f4fe2c53ea60908a4e5d489a71..66ecb5fc4f65ceee2b4df424855c8cf9df4f2238 100644 (file)
@@ -1612,6 +1612,14 @@ notmuch_message_remove_all_tags (notmuch_message_t *message);
 notmuch_status_t
 notmuch_message_maildir_flags_to_tags (notmuch_message_t *message);
 
+/**
+ * return TRUE if any filename of 'message' has maildir flag 'flag',
+ * FALSE otherwise.
+ *
+ */
+notmuch_bool_t
+notmuch_message_has_maildir_flag (notmuch_message_t *message, char flag);
+
 /**
  * Rename message filename(s) to encode tags as maildir flags.
  *