summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2013-01-22 15:31:44 -0800
committerVicent Martí <vicent@github.com>2013-01-22 15:31:44 -0800
commitf0f073b740f0fa9f4d090f237b4667a92e4d5d74 (patch)
tree34eb15ccbb5b17c316065ad52725b80e09857f1b /src
parent2a707d0e24e206666626ae858e5ba618ffef0547 (diff)
parentcce548e3e0c14b5d46c8d886c9954f4b66533ecd (diff)
downloadlibgit2-f0f073b740f0fa9f4d090f237b4667a92e4d5d74.tar.gz
Merge pull request #1269 from arrbee/tree-iterator-case-sensitivity-bug
Fix case sensitivity bug with tree iterators
Diffstat (limited to 'src')
-rw-r--r--src/iterator.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/iterator.c b/src/iterator.c
index 56b262975..1c36cac78 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -255,15 +255,17 @@ static int tree_iterator__icase_map_cmp(const void *a, const void *b, void *data
git_tree *tree = data;
const git_tree_entry *te1 = git_tree_entry_byindex(tree, (size_t)a);
const git_tree_entry *te2 = git_tree_entry_byindex(tree, (size_t)b);
+
return te1 ? (te2 ? git_tree_entry_icmp(te1, te2) : 1) : -1;
}
-static int tree_iterator__frame_start_icmp(const void *key, const void *element)
+static int tree_iterator__frame_start_icmp(const void *key, const void *el)
{
const tree_iterator_frame *tf = (const tree_iterator_frame *)key;
- const git_tree_entry *te = git_tree_entry_byindex(tf->tree, (size_t)element);
+ const git_tree_entry *te = git_tree_entry_byindex(tf->tree, (size_t)el);
+ size_t minlen = min(tf->startlen, te->filename_len);
- return memcmp(tf->start, te->filename, min(tf->startlen, te->filename_len));
+ return git__strncasecmp(tf->start, te->filename, minlen);
}
static void tree_iterator__frame_seek_start(tree_iterator_frame *tf)