X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fnotmuch-private.h;h=592cfb2b40d029aa19597b1a659efac436adb6ca;hb=b88e6abccd91fcce00409633aeddbccdc57f32b7;hp=6a9d5ddd1811795198916874d91179f7ca35f698;hpb=d87db8843266caf6b11c1f2f1874328830b23878;p=notmuch diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 6a9d5ddd..592cfb2b 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -57,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). @@ -450,15 +453,35 @@ _notmuch_tags_prepare_iterator (notmuch_tags_t *tags); /* filenames.c */ -notmuch_filenames_t * -_notmuch_filenames_create (const void *ctx); +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_filenames_add_filename (notmuch_filenames_t *filenames, - const char *filename); +_notmuch_filename_list_add_filename (notmuch_filename_list_t *list, + const char *filename); void -_notmuch_filenames_move_to_first (notmuch_filenames_t *filenames); +_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