X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fnotmuch-private.h;h=02e24ee8eb20d9c763c14d25454f86ad741a8133;hb=b825bce61d24963f5b9c9c94d89e306640ac104b;hp=a1b82b3e0eb6c4ff7809781b4aab47a397c81b70;hpb=99cfa2703080c2474e6b8aec0cae86135ae23f1d;p=notmuch diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index a1b82b3e..02e24ee8 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -81,6 +81,12 @@ _internal_error (const char *format, ...) PRINTF_ATTRIBUTE (1, 2); #define unused(x) x __attribute__ ((unused)) +#ifdef __cplusplus +# define visible __attribute__((visibility("default"))) +#else +# define visible +#endif + /* Thanks to Andrew Tridgell's (SAMBA's) talloc for this definition of * unlikely. The talloc source code comes to us via the GNU LGPL v. 3. */ @@ -405,7 +411,7 @@ typedef struct _notmuch_message_list { * somewhere with some nasty C++ objects in it. We'll try to maintain * ignorance of that here. (See notmuch_mset_messages_t in query.cc) */ -struct _notmuch_messages { +struct visible _notmuch_messages { notmuch_bool_t is_of_list_type; notmuch_message_node_t *iterator; }; @@ -457,48 +463,45 @@ notmuch_sha1_of_string (const char *str); char * notmuch_sha1_of_file (const char *filename); -/* tags.c */ - -notmuch_tags_t * -_notmuch_tags_create (void *ctx); - -void -_notmuch_tags_add_tag (notmuch_tags_t *tags, const char *tag); - -void -_notmuch_tags_prepare_iterator (notmuch_tags_t *tags); - -/* filenames.c */ +/* string-list.c */ -typedef struct _notmuch_filename_node { - char *filename; - struct _notmuch_filename_node *next; -} notmuch_filename_node_t; +typedef struct _notmuch_string_node { + char *string; + struct _notmuch_string_node *next; +} notmuch_string_node_t; -typedef struct _notmuch_filename_list { - notmuch_filename_node_t *head; - notmuch_filename_node_t **tail; -} notmuch_filename_list_t; +typedef struct _notmuch_string_list { + int length; + notmuch_string_node_t *head; + notmuch_string_node_t **tail; +} notmuch_string_list_t; -notmuch_filename_list_t * -_notmuch_filename_list_create (const void *ctx); +notmuch_string_list_t * +_notmuch_string_list_create (const void *ctx); -/* Add 'filename' to 'list'. +/* Add 'string' to 'list'. * - * The list will create its own talloced copy of 'filename'. + * The list will create its own talloced copy of 'string'. */ void -_notmuch_filename_list_add_filename (notmuch_filename_list_t *list, - const char *filename); +_notmuch_string_list_append (notmuch_string_list_t *list, + const char *string); void -_notmuch_filename_list_destroy (notmuch_filename_list_t *list); +_notmuch_string_list_sort (notmuch_string_list_t *list); + +/* tags.c */ + +notmuch_tags_t * +_notmuch_tags_create (const void *ctx, notmuch_string_list_t *list); + +/* filenames.c */ -/* The notmuch_filenames_t is an iterator object for a - * notmuch_filename_list_t */ +/* The notmuch_filenames_t iterates over a notmuch_string_list_t of + * file names */ notmuch_filenames_t * _notmuch_filenames_create (const void *ctx, - notmuch_filename_list_t *list); + notmuch_string_list_t *list); #pragma GCC visibility pop