X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fnotmuch-private.h;h=5a0cf92540619ff5fa50951c5326c84e191051b8;hb=8369ed31d0d687c35dc2464b347dadf16962cd27;hp=8b582640aacdf54e6e1518a5d00d8228b1b6b982;hpb=d807e28f43579ecc91aa40ae3e42760991c2f810;p=notmuch diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 8b582640..5a0cf925 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -108,11 +108,21 @@ typedef enum { * 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, NOTMUCH_PRIVATE_STATUS_OUT_OF_MEMORY = NOTMUCH_STATUS_OUT_OF_MEMORY, - NOTMUCH_PRIVATE_STATUS_READONLY_DATABASE = NOTMUCH_STATUS_READONLY_DATABASE, + NOTMUCH_PRIVATE_STATUS_READ_ONLY_DATABASE = NOTMUCH_STATUS_READ_ONLY_DATABASE, NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION = NOTMUCH_STATUS_XAPIAN_EXCEPTION, NOTMUCH_PRIVATE_STATUS_FILE_NOT_EMAIL = NOTMUCH_STATUS_FILE_NOT_EMAIL, NOTMUCH_PRIVATE_STATUS_NULL_POINTER = NOTMUCH_STATUS_NULL_POINTER, @@ -151,6 +161,9 @@ typedef enum _notmuch_private_status { const char * _find_prefix (const char *name); +notmuch_status_t +_notmuch_database_ensure_writable (notmuch_database_t *notmuch); + const char * _notmuch_database_relative_path (notmuch_database_t *notmuch, const char *path); @@ -164,6 +177,9 @@ _notmuch_database_split_path (void *ctx, 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, @@ -202,7 +218,8 @@ notmuch_thread_t * _notmuch_thread_create (void *ctx, notmuch_database_t *notmuch, const char *thread_id, - const char *query_string); + const char *query_string, + notmuch_sort_t sort); /* message.cc */ @@ -235,6 +252,9 @@ _notmuch_message_gen_terms (notmuch_message_t *message, const char *prefix_name, const char *text); +void +_notmuch_message_upgrade_filename_storage (notmuch_message_t *message); + notmuch_status_t _notmuch_message_add_filename (notmuch_message_t *message, const char *filename); @@ -252,6 +272,32 @@ _notmuch_message_sync (notmuch_message_t *message); void _notmuch_message_close (notmuch_message_t *message); +/* Get a copy of the data in this message document. + * + * Caller should talloc_free the result when done. + * + * This function is intended to support database upgrade and really + * shouldn't be used otherwise. */ +char * +_notmuch_message_talloc_copy_data (notmuch_message_t *message); + +/* Clear the data in this message document. + * + * This function is intended to support database upgrade and really + * shouldn't be used otherwise. */ +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 @@ -311,6 +357,9 @@ notmuch_message_file_restrict_headersv (notmuch_message_file_t *message, * * 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. @@ -360,13 +409,13 @@ _notmuch_messages_create (notmuch_message_list_t *list); /* query.cc */ notmuch_bool_t -_notmuch_mset_messages_has_more (notmuch_messages_t *messages); +_notmuch_mset_messages_valid (notmuch_messages_t *messages); notmuch_message_t * _notmuch_mset_messages_get (notmuch_messages_t *messages); void -_notmuch_mset_messages_advance (notmuch_messages_t *messages); +_notmuch_mset_messages_move_to_next (notmuch_messages_t *messages); /* message.cc */