diff options
author | Marc Pegon <pegon.marc@gmail.com> | 2011-05-27 22:37:10 +0200 |
---|---|---|
committer | Vicent Marti <tanoku@gmail.com> | 2011-06-01 23:40:41 +0200 |
commit | 53c0bd81a2915d6f82ef2f9c0703770783a3dc89 (patch) | |
tree | e34fd5f5cd97b9738a49588fa889c8ee6819a63a /src/oid.c | |
parent | ecd6fdf1f70b785f24e2d17bec516ac88be0cf2c (diff) | |
download | libgit2-53c0bd81a2915d6f82ef2f9c0703770783a3dc89.tar.gz |
Added error for ambiguous oid prefixes. Added methods to compare the first nth hexadecimal characters (i.e. packets of 4 bits) of OIDs.
Diffstat (limited to 'src/oid.c')
-rw-r--r-- | src/oid.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -173,6 +173,26 @@ int git_oid_cmp(const git_oid *a, const git_oid *b) } +int git_oid_match_raw(unsigned int len, const unsigned char *a, const unsigned char *b) +{ + do { + if (*a != *b) + return 0; + a++; + b++; + len -= 2; + } while (len > 1); + if (len) + if ((*a ^ *b) & 0xf0) + return 0; + return 1; +} + +int gid_oid_match(unsigned int len, git_oid *a, git_oid *b) +{ + return git_oid_match_raw(len, a->id, b->id); +} + typedef short node_index; typedef union { |