* The library version number. This must agree with the soname
* version in Makefile.local.
*/
-#define LIBNOTMUCH_MAJOR_VERSION 3
+#define LIBNOTMUCH_MAJOR_VERSION 4
#define LIBNOTMUCH_MINOR_VERSION 1
#define LIBNOTMUCH_MICRO_VERSION 0
notmuch_database_t **database);
/**
- * Close the given notmuch database.
+ * Commit changes and close the given notmuch database.
*
* After notmuch_database_close has been called, calls to other
* functions on objects derived from this database may either behave
* notmuch_database_close can be called multiple times. Later calls
* have no effect.
*
+ * For writable databases, notmuch_database_close commits all changes
+ * to disk before closing the database. If the caller is currently in
+ * an atomic section (there was a notmuch_database_begin_atomic
+ * without a matching notmuch_database_end_atomic), this will discard
+ * changes made in that atomic section (but still commit changes made
+ * prior to entering the atomic section).
+ *
* Return value:
*
* NOTMUCH_STATUS_SUCCESS: Successfully closed the database.
* to call it if the query is about to be destroyed).
*
* If a Xapian exception occurs this function will return NULL.
+ * For better error reporting, use the _st variant.
*/
notmuch_threads_t *
notmuch_query_search_threads (notmuch_query_t *query);
+/**
+ * Like notmuch_query_search_threads, but with a status return.
+ */
+notmuch_status_t
+notmuch_query_search_threads_st (notmuch_query_t *query,
+ notmuch_threads_t **out);
+
/**
* Execute a query for messages, returning a notmuch_messages_t object
* which can be used to iterate over the results. The returned
* reason to call it if the query is about to be destroyed).
*
* If a Xapian exception occurs this function will return NULL.
+ * For better error reporting, use the _st variant.
*/
notmuch_messages_t *
notmuch_query_search_messages (notmuch_query_t *query);
+/**
+ * Like notmuch_query_search_messages, but with a status return.
+ */
+notmuch_status_t
+notmuch_query_search_messages_st (notmuch_query_t *query,
+ notmuch_messages_t **out);
+
/**
* Destroy a notmuch_query_t along with any associated resources.
*
* authors of mail messages in the query results that belong to this
* thread.
*
+ * The string contains authors of messages matching the query first, then
+ * non-matched authors (with the two groups separated by '|'). Within
+ * each group, authors are ordered by date.
+ *
* The returned string belongs to 'thread' and as such, should not be
* modified by the caller and will only be valid for as long as the
* thread is valid, (which is until notmuch_thread_destroy or until
*/
typedef enum _notmuch_message_flag {
NOTMUCH_MESSAGE_FLAG_MATCH,
- NOTMUCH_MESSAGE_FLAG_EXCLUDED
+ NOTMUCH_MESSAGE_FLAG_EXCLUDED,
+
+ /* This message is a "ghost message", meaning it has no filenames
+ * or content, but we know it exists because it was referenced by
+ * some other message. A ghost message has only a message ID and
+ * thread ID.
+ */
+ NOTMUCH_MESSAGE_FLAG_GHOST,
} notmuch_message_flag_t;
/**