X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fnotmuch-private.h;h=a1b82b3e0eb6c4ff7809781b4aab47a397c81b70;hb=2fcfb1aa50db0aa5997a94ae8d3bf7bea626712b;hp=5a0cf92540619ff5fa50951c5326c84e191051b8;hpb=7b78eb4af6e87532795d09bd82152002ab4a74b1;p=notmuch diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 5a0cf925..a1b82b3e 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -48,6 +48,8 @@ NOTMUCH_BEGIN_DECLS #include "xutil.h" +#pragma GCC visibility push(hidden) + #ifdef DEBUG # define DEBUG_DATABASE_SANITY 1 # define DEBUG_QUERY 1 @@ -55,6 +57,9 @@ NOTMUCH_BEGIN_DECLS #define COMPILE_TIME_ASSERT(pred) ((void)sizeof(char[1 - 2*!(pred)])) +#define STRNCMP_LITERAL(var, literal) \ + strncmp ((var), (literal), sizeof (literal) - 1) + /* There's no point in continuing when we've detected that we've done * something wrong internally (as opposed to the user passing in a * bogus value). @@ -151,6 +156,8 @@ typedef enum _notmuch_private_status { : \ (notmuch_status_t) private_status) +typedef struct _notmuch_doc_id_set notmuch_doc_id_set_t; + /* database.cc */ /* Lookup a prefix value by name. @@ -217,8 +224,8 @@ _notmuch_directory_get_document_id (notmuch_directory_t *directory); notmuch_thread_t * _notmuch_thread_create (void *ctx, notmuch_database_t *notmuch, - const char *thread_id, - const char *query_string, + unsigned int seed_doc_id, + notmuch_doc_id_set_t *match_set, notmuch_sort_t sort); /* message.cc */ @@ -234,6 +241,9 @@ _notmuch_message_create_for_message_id (notmuch_database_t *notmuch, const char *message_id, notmuch_private_status_t *status); +unsigned int +_notmuch_message_get_doc_id (notmuch_message_t *message); + const char * _notmuch_message_get_in_reply_to (notmuch_message_t *message); @@ -259,6 +269,14 @@ notmuch_status_t _notmuch_message_add_filename (notmuch_message_t *message, const char *filename); +notmuch_status_t +_notmuch_message_remove_filename (notmuch_message_t *message, + const char *filename); + +notmuch_status_t +_notmuch_message_rename (notmuch_message_t *message, + const char *new_filename); + void _notmuch_message_ensure_thread_id (notmuch_message_t *message); @@ -417,6 +435,14 @@ _notmuch_mset_messages_get (notmuch_messages_t *messages); void _notmuch_mset_messages_move_to_next (notmuch_messages_t *messages); +notmuch_bool_t +_notmuch_doc_id_set_contains (notmuch_doc_id_set_t *doc_ids, + unsigned int doc_id); + +void +_notmuch_doc_id_set_remove (notmuch_doc_id_set_t *doc_ids, + unsigned int doc_id); + /* message.cc */ void @@ -442,6 +468,40 @@ _notmuch_tags_add_tag (notmuch_tags_t *tags, const char *tag); void _notmuch_tags_prepare_iterator (notmuch_tags_t *tags); +/* filenames.c */ + +typedef struct _notmuch_filename_node { + char *filename; + struct _notmuch_filename_node *next; +} notmuch_filename_node_t; + +typedef struct _notmuch_filename_list { + notmuch_filename_node_t *head; + notmuch_filename_node_t **tail; +} notmuch_filename_list_t; + +notmuch_filename_list_t * +_notmuch_filename_list_create (const void *ctx); + +/* Add 'filename' to 'list'. + * + * The list will create its own talloced copy of 'filename'. + */ +void +_notmuch_filename_list_add_filename (notmuch_filename_list_t *list, + const char *filename); + +void +_notmuch_filename_list_destroy (notmuch_filename_list_t *list); + +/* The notmuch_filenames_t is an iterator object for a + * notmuch_filename_list_t */ +notmuch_filenames_t * +_notmuch_filenames_create (const void *ctx, + notmuch_filename_list_t *list); + +#pragma GCC visibility pop + NOTMUCH_END_DECLS #endif