summaryrefslogtreecommitdiff
path: root/path-list.h
diff options
context:
space:
mode:
Diffstat (limited to 'path-list.h')
-rw-r--r--path-list.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/path-list.h b/path-list.h
new file mode 100644
index 0000000000..ca2cbbaa4d
--- /dev/null
+++ b/path-list.h
@@ -0,0 +1,28 @@
+#ifndef PATH_LIST_H
+#define PATH_LIST_H
+
+struct path_list_item {
+ char *path;
+ void *util;
+};
+struct path_list
+{
+ struct path_list_item *items;
+ unsigned int nr, alloc;
+ unsigned int strdup_paths:1;
+};
+
+void print_path_list(const char *text, const struct path_list *p);
+void path_list_clear(struct path_list *list, int free_util);
+
+/* Use these functions only on sorted lists: */
+int path_list_has_path(const struct path_list *list, const char *path);
+struct path_list_item *path_list_insert(const char *path, struct path_list *list);
+struct path_list_item *path_list_lookup(const char *path, struct path_list *list);
+
+/* Use these functions only on unsorted lists: */
+struct path_list_item *path_list_append(const char *path, struct path_list *list);
+void sort_path_list(struct path_list *list);
+int unsorted_path_list_has_path(struct path_list *list, const char *path);
+
+#endif /* PATH_LIST_H */