X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=lib%2Fnotmuch-private.h;h=6fc5b366c539712c6ddd2b2fd3778080b0b8958e;hb=5c3a44681f2fffbd3a7d76e424c134a82470ddd2;hp=9eca07896b353f409a39507e60b777fdc446c219;hpb=46dce33abc82ea6ebd3be2e0887506af4185c739;p=notmuch diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 9eca0789..6fc5b366 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -136,6 +136,7 @@ typedef enum _notmuch_private_status { /* Then add our own private values. */ NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG = NOTMUCH_STATUS_LAST_STATUS, NOTMUCH_PRIVATE_STATUS_NO_DOCUMENT_FOUND, + NOTMUCH_PRIVATE_STATUS_BAD_PREFIX, NOTMUCH_PRIVATE_STATUS_LAST_STATUS } notmuch_private_status_t; @@ -181,6 +182,11 @@ typedef struct _notmuch_doc_id_set notmuch_doc_id_set_t; const char * _find_prefix (const char *name); +/* Lookup a prefix value by name, including possibly user defined prefixes + */ +const char * +_notmuch_database_prefix (notmuch_database_t *notmuch, const char *name); + char * _notmuch_message_id_compressed (void *ctx, const char *message_id); @@ -319,6 +325,10 @@ _notmuch_message_set_header_values (notmuch_message_t *message, const char *from, const char *subject); +void +_notmuch_message_update_subject (notmuch_message_t *message, + const char *subject); + void _notmuch_message_upgrade_last_mod (notmuch_message_t *message); @@ -533,6 +543,20 @@ _notmuch_query_count_documents (notmuch_query_t *query, char * _notmuch_message_id_parse (void *ctx, const char *message_id, const char **next); +/* Parse a message-id, discarding leading and trailing whitespace, and + * '<' and '>' delimiters. + * + * Apply a probably-stricter-than RFC definition of what is allowed in + * a message-id. In particular, forbid whitespace. + * + * Returns a newly talloc'ed string belonging to 'ctx'. + * + * Returns NULL if there is any error parsing the message-id. + */ + +char * +_notmuch_message_id_parse_strict (void *ctx, const char *message_id); + /* message.cc */ @@ -632,6 +656,11 @@ _notmuch_string_map_iterator_value (notmuch_string_map_iterator_t *iterator); void _notmuch_string_map_iterator_destroy (notmuch_string_map_iterator_t *iterator); +/* Create an iterator for user headers. Destroy with + * _notmuch_string_map_iterator_destroy. Actually in database.cc*/ +notmuch_string_map_iterator_t * +_notmuch_database_user_headers (notmuch_database_t *notmuch); + /* tags.c */ notmuch_tags_t * @@ -662,6 +691,10 @@ struct _notmuch_indexopts { _notmuch_crypto_t crypto; }; +#define CONFIG_HEADER_PREFIX "index.header." + +#define EMPTY_STRING(s) ((s)[0] == '\0') + NOTMUCH_END_DECLS #ifdef __cplusplus