summaryrefslogtreecommitdiff
path: root/string-list.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-03-17 18:55:06 -0700
committerJunio C Hamano <gitster@pobox.com>2009-03-17 18:55:06 -0700
commitca8a36e6e0cf6ee952df16160bc853630c56b997 (patch)
treea7a0cc36a4aac48173264e8d84dbe4ba1dcd7fad /string-list.c
parenta57ca9dd400c8459a3cd3d769bab317f57d1e9ac (diff)
parent8321c56b6bae25a2d70790f452df894be536b32c (diff)
downloadgit-ca8a36e6e0cf6ee952df16160bc853630c56b997.tar.gz
Merge branch 'js/remote-improvements'
* js/remote-improvements: (23 commits) builtin-remote.c: no "commented out" code, please builtin-remote: new show output style for push refspecs builtin-remote: new show output style remote: make guess_remote_head() use exact HEAD lookup if it is available builtin-remote: add set-head subcommand builtin-remote: teach show to display remote HEAD builtin-remote: fix two inconsistencies in the output of "show <remote>" builtin-remote: make get_remote_ref_states() always populate states.tracked builtin-remote: rename variables and eliminate redundant function call builtin-remote: remove unused code in get_ref_states builtin-remote: refactor duplicated cleanup code string-list: new for_each_string_list() function remote: make match_refs() not short-circuit remote: make match_refs() copy src ref before assigning to peer_ref remote: let guess_remote_head() optionally return all matches remote: make copy_ref() perform a deep copy remote: simplify guess_remote_head() move locate_head() to remote.c move duplicated ref_newer() to remote.c move duplicated get_local_heads() to remote.c ... Conflicts: builtin-clone.c
Diffstat (limited to 'string-list.c')
-rw-r--r--string-list.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/string-list.c b/string-list.c
index 15e14cf47a..1ac536e638 100644
--- a/string-list.c
+++ b/string-list.c
@@ -92,6 +92,16 @@ struct string_list_item *string_list_lookup(const char *string, struct string_li
return list->items + i;
}
+int for_each_string_list(string_list_each_func_t fn,
+ struct string_list *list, void *cb_data)
+{
+ int i, ret = 0;
+ for (i = 0; i < list->nr; i++)
+ if ((ret = fn(&list->items[i], cb_data)))
+ break;
+ return ret;
+}
+
void string_list_clear(struct string_list *list, int free_util)
{
if (list->items) {