#include "xutil.h"
+#pragma GCC visibility push(hidden)
+
#ifdef DEBUG
# define DEBUG_DATABASE_SANITY 1
# define DEBUG_QUERY 1
* programmatically. */
#define NOTMUCH_TERM_MAX 245
+#define NOTMUCH_METADATA_THREAD_ID_PREFIX "thread_id_"
+
+/* For message IDs we have to be even more restrictive. Beyond fitting
+ * into the term limit, we also use message IDs to construct
+ * metadata-key values. And the documentation says that these should
+ * be restricted to about 200 characters. (The actual limit for the
+ * chert backend at least is 252.)
+ */
+#define NOTMUCH_MESSAGE_ID_MAX (200 - sizeof (NOTMUCH_METADATA_THREAD_ID_PREFIX))
+
typedef enum _notmuch_private_status {
/* First, copy all the public status values. */
NOTMUCH_PRIVATE_STATUS_SUCCESS = NOTMUCH_STATUS_SUCCESS,
const char *
_notmuch_database_get_directory_db_path (const char *path);
+unsigned int
+_notmuch_database_generate_doc_id (notmuch_database_t *notmuch);
+
notmuch_private_status_t
_notmuch_database_find_unique_doc_id (notmuch_database_t *notmuch,
const char *prefix_name,
void
_notmuch_message_clear_data (notmuch_message_t *message);
+/* Set the author member of 'message' - this is the representation used
+ * when displaying the message */
+void
+notmuch_message_set_author (notmuch_message_t *message, const char *author);
+
+/* Get the author member of 'message' */
+const char *
+notmuch_message_get_author (notmuch_message_t *message);
+
+
/* index.cc */
notmuch_status_t
*
* The header name is case insensitive.
*
+ * The Received: header is special - for it all Received: headers in
+ * the message are concatenated
+ *
* The returned value is owned by the notmuch message and is valid
* only until the message is closed. The caller should copy it if
* needing to modify the value or to hold onto it for longer.
void
_notmuch_tags_prepare_iterator (notmuch_tags_t *tags);
+#pragma GCC visibility pop
+
NOTMUCH_END_DECLS
#endif