diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-03-11 22:33:51 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-03-11 22:33:51 -0700 |
commit | ae90e16a3a7586bc25b7c7de50e4c3ba4806b3b9 (patch) | |
tree | b868ef92c090819f91ced2de2c179f40030934ae /path-list.c | |
parent | b85997d14d1873a4baa3d04966cd5947e6134acd (diff) | |
parent | 3000658f7c15c880f976aac0ade73efd3b1e9790 (diff) | |
download | git-ae90e16a3a7586bc25b7c7de50e4c3ba4806b3b9.tar.gz |
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.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/path-list.c b/path-list.c index 3d83b7ba9e..92e5cf20fe 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; +} + |