aboutsummaryrefslogtreecommitdiff
path: root/path-list.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-03-11 22:33:51 -0700
committerJunio C Hamano <gitster@pobox.com>2008-03-11 22:33:51 -0700
commitae90e16a3a7586bc25b7c7de50e4c3ba4806b3b9 (patch)
treeb868ef92c090819f91ced2de2c179f40030934ae /path-list.c
parentb85997d14d1873a4baa3d04966cd5947e6134acd (diff)
parent3000658f7c15c880f976aac0ade73efd3b1e9790 (diff)
downloadgit-ae90e16a3a7586bc25b7c7de50e4c3ba4806b3b9.tar.gz
git-ae90e16a3a7586bc25b7c7de50e4c3ba4806b3b9.tar.xz
Merge branch 'js/remote'
* js/remote: "remote update": print remote name being fetched from builtin remote rm: remove symbolic refs, too remote: fix "update [group...]" remote show: Clean up connection correctly if object fetch wasn't done builtin-remote: prune remotes correctly that were added with --mirror Make git-remote a builtin Test "git remote show" and "git remote prune" parseopt: add flag to stop on first non option path-list: add functions to work with unsorted lists Conflicts: parse-options.c
Diffstat (limited to 'path-list.c')
-rw-r--r--path-list.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/path-list.c b/path-list.c
index 3d83b7ba9..92e5cf20f 100644
--- a/path-list.c
+++ b/path-list.c
@@ -102,3 +102,33 @@ void print_path_list(const char *text, const struct path_list *p)
for (i = 0; i < p->nr; i++)
printf("%s:%p\n", p->items[i].path, p->items[i].util);
}
+
+struct path_list_item *path_list_append(const char *path, struct path_list *list)
+{
+ ALLOC_GROW(list->items, list->nr + 1, list->alloc);
+ list->items[list->nr].path =
+ list->strdup_paths ? xstrdup(path) : (char *)path;
+ return list->items + list->nr++;
+}
+
+static int cmp_items(const void *a, const void *b)
+{
+ const struct path_list_item *one = a;
+ const struct path_list_item *two = b;
+ return strcmp(one->path, two->path);
+}
+
+void sort_path_list(struct path_list *list)
+{
+ qsort(list->items, list->nr, sizeof(*list->items), cmp_items);
+}
+
+int unsorted_path_list_has_path(struct path_list *list, const char *path)
+{
+ int i;
+ for (i = 0; i < list->nr; i++)
+ if (!strcmp(path, list->items[i].path))
+ return 1;
+ return 0;
+}
+