summaryrefslogtreecommitdiff
path: root/src/tree.c
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2011-02-27 22:09:36 +0200
committerVicent Marti <tanoku@gmail.com>2011-03-03 20:23:50 +0200
commitccef1c9dc22b07398970f26eb9fd3be669db7734 (patch)
tree9f201c3eacac3a70a3a3a2529ccd4aaec640eee2 /src/tree.c
parentda7c3c71c0cc3a2d5408a7e9885ae8a1b3b928ef (diff)
downloadlibgit2-ccef1c9dc22b07398970f26eb9fd3be669db7734.tar.gz
Move the path comparison method to fileops.c
Signed-off-by: Vicent Marti <tanoku@gmail.com>
Diffstat (limited to 'src/tree.c')
-rw-r--r--src/tree.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/src/tree.c b/src/tree.c
index e8cf17979..a23be9151 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -40,30 +40,12 @@ int entry_search_cmp(const void *key, const void *array_member)
return strcmp(filename, entry->filename);
}
-static int cache_name_compare(const char *name1, int len1, int isdir1,
- const char *name2, int len2, int isdir2)
-{
- int len = len1 < len2 ? len1 : len2;
- int cmp;
-
- cmp = memcmp(name1, name2, len);
- if (cmp)
- return cmp;
- if (len1 < len2)
- return ((!isdir1 && !isdir2) ? -1 :
- (isdir1 ? '/' - name2[len1] : name2[len1] - '/'));
- if (len1 > len2)
- return ((!isdir1 && !isdir2) ? 1 :
- (isdir2 ? name1[len2] - '/' : '/' - name1[len2]));
- return 0;
-}
-
int entry_sort_cmp(const void *a, const void *b)
{
const git_tree_entry *entry_a = *(const git_tree_entry **)(a);
const git_tree_entry *entry_b = *(const git_tree_entry **)(b);
- return cache_name_compare(entry_a->filename, strlen(entry_a->filename),
+ return gitfo_cmp_path(entry_a->filename, strlen(entry_a->filename),
entry_a->attr & 040000,
entry_b->filename, strlen(entry_b->filename),
entry_b->attr & 040000);