summaryrefslogtreecommitdiff
path: root/src/tree.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-01-09 16:03:35 -0800
committerRussell Belfer <rb@github.com>2013-01-15 09:51:35 -0800
commit98527b5b241ce9d240537f60e87aa9dd084c0f36 (patch)
tree912502b10f4d8ba992647bebff93960c140a303e /src/tree.c
parent23594c1dae08c9a53f571dbf9de7ff0b6a6a0d45 (diff)
downloadlibgit2-98527b5b241ce9d240537f60e87aa9dd084c0f36.tar.gz
Add git_tree_entry_cmp and git_tree_entry_icmp
This adds a new external API git_tree_entry_cmp and a new internal API git_tree_entry_icmp for sorting tree entries. The case insensitive one is internal only because general users should never be seeing case-insensitively sorted trees.
Diffstat (limited to 'src/tree.c')
-rw-r--r--src/tree.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/tree.c b/src/tree.c
index cd1cd6076..c34e9b940 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -55,14 +55,23 @@ static int valid_entry_name(const char *filename)
strcmp(filename, DOT_GIT) != 0));
}
-static int entry_sort_cmp(const void *a, const void *b)
+int git_tree_entry_cmp(const git_tree_entry *e1, const git_tree_entry *e2)
{
- const git_tree_entry *entry_a = (const git_tree_entry *)(a);
- const git_tree_entry *entry_b = (const git_tree_entry *)(b);
-
return git_path_cmp(
- entry_a->filename, entry_a->filename_len, git_tree_entry__is_tree(entry_a),
- entry_b->filename, entry_b->filename_len, git_tree_entry__is_tree(entry_b));
+ e1->filename, e1->filename_len, git_tree_entry__is_tree(e1),
+ e2->filename, e2->filename_len, git_tree_entry__is_tree(e2));
+}
+
+int git_tree_entry_icmp(const git_tree_entry *e1, const git_tree_entry *e2)
+{
+ return git_path_icmp(
+ e1->filename, e1->filename_len, git_tree_entry__is_tree(e1),
+ e2->filename, e2->filename_len, git_tree_entry__is_tree(e2));
+}
+
+static int entry_sort_cmp(const void *a, const void *b)
+{
+ return git_tree_entry_cmp((const git_tree_entry *)a, (const git_tree_entry *)b);
}
static git_tree_entry *alloc_entry(const char *filename)