X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Ffilenames.c;h=f1ea243012095d19eccf334e54e02ade3b59c089;hp=50e1435488d04ae5c5bd59faa9f451a4dfba5d8f;hb=75a05526334b721d719d6c8a8098ff64573e6c1e;hpb=1d02dd64afe245a2b5a8461feeba975e61f0c233 diff --git a/lib/filenames.c b/lib/filenames.c index 50e14354..f1ea2430 100644 --- a/lib/filenames.c +++ b/lib/filenames.c @@ -21,56 +21,14 @@ #include "notmuch-private.h" struct _notmuch_filenames { - notmuch_filename_node_t *iterator; + notmuch_string_node_t *iterator; }; -/* Create a new notmuch_filename_list_t object, with 'ctx' as its - * talloc owner. - * - * This function can return NULL in case of out-of-memory. - */ -notmuch_filename_list_t * -_notmuch_filename_list_create (const void *ctx) -{ - notmuch_filename_list_t *list; - - list = talloc (ctx, notmuch_filename_list_t); - if (unlikely (list == NULL)) - return NULL; - - list->head = NULL; - list->tail = &list->head; - - return list; -} - -void -_notmuch_filename_list_add_filename (notmuch_filename_list_t *list, - const char *filename) -{ - /* Create and initialize new node. */ - notmuch_filename_node_t *node = talloc (list, - notmuch_filename_node_t); - - node->filename = talloc_strdup (node, filename); - node->next = NULL; - - /* Append the node to the list. */ - *(list->tail) = node; - list->tail = &node->next; -} - -void -_notmuch_filename_list_destroy (notmuch_filename_list_t *list) -{ - talloc_free (list); -} - -/* 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) { notmuch_filenames_t *filenames; @@ -79,6 +37,7 @@ _notmuch_filenames_create (const void *ctx, return NULL; filenames->iterator = list->head; + (void) talloc_reference (filenames, list); return filenames; } @@ -98,7 +57,7 @@ notmuch_filenames_get (notmuch_filenames_t *filenames) if (filenames->iterator == NULL) return NULL; - return filenames->iterator->filename; + return filenames->iterator->string; } void