]> git.notmuchmail.org Git - notmuch/blobdiff - lib/filenames.c
lib: Add new, public notmuch_message_get_filenames
[notmuch] / lib / filenames.c
index cff9e8302d21c17bc59874a5c229567df33910ca..50e1435488d04ae5c5bd59faa9f451a4dfba5d8f 100644 (file)
 
 #include "notmuch-private.h"
 
-typedef struct _notmuch_filenames_node {
-    char *filename;
-    struct _notmuch_filenames_node *next;
-} notmuch_filenames_node_t;
-
 struct _notmuch_filenames {
-    notmuch_filenames_node_t *head;
-    notmuch_filenames_node_t **tail;
-    notmuch_filenames_node_t *iterator;
+    notmuch_filename_node_t *iterator;
 };
 
-/* Create a new notmuch_filenames_t object, with 'ctx' as its
+/* 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_filenames_t *
-_notmuch_filenames_create (const void *ctx)
+notmuch_filename_list_t *
+_notmuch_filename_list_create (const void *ctx)
 {
-    notmuch_filenames_t *filenames;
+    notmuch_filename_list_t *list;
 
-    filenames = talloc (ctx, notmuch_filenames_t);
-    if (unlikely (filenames == NULL))
+    list = talloc (ctx, notmuch_filename_list_t);
+    if (unlikely (list == NULL))
        return NULL;
 
-    filenames->head = NULL;
-    filenames->tail = &filenames->head;
-
-    filenames->iterator = NULL;
+    list->head = NULL;
+    list->tail = &list->head;
 
-    return filenames;
+    return list;
 }
 
-/* Append a single 'node' to the end of 'filenames'.
- */
 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)
 {
     /* Create and initialize new node. */
-    notmuch_filenames_node_t *node = talloc (filenames,
-                                            notmuch_filenames_node_t);
+    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. */
-    *(filenames->tail) = node;
-    filenames->tail = &node->next;
+    *(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 */
+notmuch_filenames_t *
+_notmuch_filenames_create (const void *ctx,
+                          notmuch_filename_list_t *list)
+{
+    notmuch_filenames_t *filenames;
+
+    filenames = talloc (ctx, notmuch_filenames_t);
+    if (unlikely (filenames == NULL))
+       return NULL;
+
+    filenames->iterator = list->head;
+
+    return filenames;
 }
 
 notmuch_bool_t
@@ -89,12 +101,6 @@ notmuch_filenames_get (notmuch_filenames_t *filenames)
     return filenames->iterator->filename;
 }
 
-void
-_notmuch_filenames_move_to_first (notmuch_filenames_t *filenames)
-{
-    filenames->iterator = filenames->head;
-}
-
 void
 notmuch_filenames_move_to_next (notmuch_filenames_t *filenames)
 {