X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fnotmuch-private.h;h=af185c7c5ba8838e82ca80931282c3b7dbe55f04;hp=538274f416cbb32b2c5e778c3dea4a2fc0cbc359;hb=8fb16e277e4d6c32bafa79ae7967e1e6ba9258e0;hpb=f69314fbd37f403a395b7c1c44595c8f696b05b7 diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 538274f4..af185c7c 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -136,18 +136,25 @@ typedef enum _notmuch_private_status { * to or greater than NOTMUCH_STATUS_LAST_STATUS. (The idea here is * that the caller has previously handled any expected * notmuch_private_status_t values.) + * + * Note that the function _internal_error does not return. Evaluating + * to NOTMUCH_STATUS_SUCCESS is done purely to appease the compiler. */ #define COERCE_STATUS(private_status, format, ...) \ ((private_status >= (notmuch_private_status_t) NOTMUCH_STATUS_LAST_STATUS)\ ? \ - (notmuch_status_t) _internal_error (format " (%s).\n", \ - ##__VA_ARGS__, \ - __location__) \ + _internal_error (format " (%s).\n", \ + ##__VA_ARGS__, \ + __location__), \ + (notmuch_status_t) NOTMUCH_PRIVATE_STATUS_SUCCESS \ : \ (notmuch_status_t) private_status) /* Flags shared by various lookup functions. */ typedef enum _notmuch_find_flags { + /* Lookup without creating any documents. This is the default + * behavior. */ + NOTMUCH_FIND_LOOKUP = 0, /* If set, create the necessary document (or documents) if they * are missing. Requires a read/write database. */ NOTMUCH_FIND_CREATE = 1<<0, @@ -155,8 +162,6 @@ typedef enum _notmuch_find_flags { typedef struct _notmuch_doc_id_set notmuch_doc_id_set_t; -typedef struct _notmuch_string_list notmuch_string_list_t; - /* database.cc */ /* Lookup a prefix value by name. @@ -195,6 +200,7 @@ _notmuch_database_find_unique_doc_id (notmuch_database_t *notmuch, notmuch_status_t _notmuch_database_find_directory_id (notmuch_database_t *database, const char *path, + notmuch_find_flags_t flags, unsigned int *directory_id); const char * @@ -206,6 +212,7 @@ notmuch_status_t _notmuch_database_filename_to_direntry (void *ctx, notmuch_database_t *notmuch, const char *filename, + notmuch_find_flags_t flags, char **direntry); /* directory.cc */ @@ -219,16 +226,6 @@ _notmuch_directory_create (notmuch_database_t *notmuch, unsigned int _notmuch_directory_get_document_id (notmuch_directory_t *directory); -/* thread.cc */ - -notmuch_thread_t * -_notmuch_thread_create (void *ctx, - notmuch_database_t *notmuch, - unsigned int seed_doc_id, - notmuch_doc_id_set_t *match_set, - notmuch_string_list_t *excluded_terms, - notmuch_sort_t sort); - /* message.cc */ notmuch_message_t * @@ -376,7 +373,7 @@ void notmuch_message_file_restrict_headersv (notmuch_message_file_t *message, va_list va_headers); -/* Get the value of the specified header from the message. +/* Get the value of the specified header from the message as a UTF-8 string. * * The header name is case insensitive. * @@ -419,10 +416,6 @@ struct visible _notmuch_messages { notmuch_message_list_t * _notmuch_message_list_create (const void *ctx); -void -_notmuch_message_list_append (notmuch_message_list_t *list, - notmuch_message_node_t *node); - void _notmuch_message_list_add_message (notmuch_message_list_t *list, notmuch_message_t *message); @@ -453,7 +446,7 @@ _notmuch_doc_id_set_remove (notmuch_doc_id_set_t *doc_ids, void _notmuch_message_add_reply (notmuch_message_t *message, - notmuch_message_node_t *reply); + notmuch_message_t *reply); /* sha1.c */ @@ -470,11 +463,11 @@ typedef struct _notmuch_string_node { struct _notmuch_string_node *next; } notmuch_string_node_t; -struct visible _notmuch_string_list { +typedef struct visible _notmuch_string_list { int length; notmuch_string_node_t *head; notmuch_string_node_t **tail; -}; +} notmuch_string_list_t; notmuch_string_list_t * _notmuch_string_list_create (const void *ctx); @@ -503,6 +496,17 @@ notmuch_filenames_t * _notmuch_filenames_create (const void *ctx, notmuch_string_list_t *list); +/* thread.cc */ + +notmuch_thread_t * +_notmuch_thread_create (void *ctx, + notmuch_database_t *notmuch, + unsigned int seed_doc_id, + notmuch_doc_id_set_t *match_set, + notmuch_string_list_t *excluded_terms, + notmuch_exclude_t omit_exclude, + notmuch_sort_t sort); + NOTMUCH_END_DECLS #ifdef __cplusplus