]> git.notmuchmail.org Git - notmuch/blobdiff - lib/notmuch.h
lib: Document that absence of maildir flags can also remove/add tags
[notmuch] / lib / notmuch.h
index ca8707e80e8d59229e9316ff17c8849b9ac898db..4295cbd09e0d626409869ed548b80c17fe2e000d 100644 (file)
@@ -772,15 +772,27 @@ notmuch_message_get_replies (notmuch_message_t *message);
  * Note: If this message corresponds to multiple files in the mail
  * store, (that is, multiple files contain identical message IDs),
  * this function will arbitrarily return a single one of those
- * filenames.
+ * filenames. See notmuch_message_get_filenames for returning the
+ * complete list of filenames.
  */
 const char *
 notmuch_message_get_filename (notmuch_message_t *message);
 
+/* Get all filenames for the email corresponding to 'message'.
+ *
+ * Returns a notmuch_filenames_t iterator listing all the filenames
+ * associated with 'message'. These files may not have identical
+ * content, but each will have the identical Message-ID.
+ *
+ * Each filename in the iterator is an absolute filename, (the initial
+ * component will match notmuch_database_get_path() ).
+ */
+notmuch_filenames_t *
+notmuch_message_get_filenames (notmuch_message_t *message);
+
 /* Message flags */
 typedef enum _notmuch_message_flag {
-    NOTMUCH_MESSAGE_FLAG_MATCH,
-    NOTMUCH_MESSAGE_FLAG_TAGS_INVALID,
+    NOTMUCH_MESSAGE_FLAG_MATCH
 } notmuch_message_flag_t;
 
 /* Get a value of a flag for the email corresponding to 'message'. */
@@ -903,14 +915,17 @@ notmuch_message_remove_all_tags (notmuch_message_t *message);
  * flags, and adds or removes tags on 'message' as follows when these
  * flags are present:
  *
- *     Flag    Action
- *     ----    ------
+ *     Flag    Action if present
+ *     ----    -----------------
  *     'D'     Adds the "draft" tag to the message
  *     'F'     Adds the "flagged" tag to the message
  *     'P'     Adds the "passed" tag to the message
  *     'R'     Adds the "replied" tag to the message
  *     'S'     Removes the "unread" tag from the message
  *
+ * For each flag that is not present, the opposite action (add/remove)
+ * is performed for the corresponding tags.
+ *
  * The only filenames examined for flags are filenames which appear to
  * be within a maildir directory, (the file must be in a directory
  * named "new" or "cur" and there must be a neighboring directory
@@ -944,11 +959,11 @@ notmuch_message_maildir_flags_to_tags (notmuch_message_t *message);
  * its filename ends with the sequence ":2," followed by zero or more
  * of the following single-character flags (in ASCII order):
  *
- *   'D' if the message has the "draft" tag
- *   'F' if the message has the "flagged" tag
- *   'P' if the message has the "passed" tag
- *   'R' if the message has the "replied" tag
- *   'S' if the message does not have the "unread" tag
+ *   'D' iff the message has the "draft" tag
+ *   'F' iff the message has the "flagged" tag
+ *   'P' iff the message has the "passed" tag
+ *   'R' iff the message has the "replied" tag
+ *   'S' iff the message does not have the "unread" tag
  *
  * Any existing flags unmentioned in the list above are left
  * unaffected by the rename.