X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=read-cache.c;h=b3eec846731b3c3b8b61f94ba0dff3e80fc1407d;hb=d6db01075b65da2b8584a0450619390893aae103;hp=732f483cda5cf88db59470fd17cc219580f12409;hpb=415e96c8b7e7d47f98a45ae1b6d524418245a3b4;p=git.git diff --git a/read-cache.c b/read-cache.c index 732f483c..b3eec846 100644 --- a/read-cache.c +++ b/read-cache.c @@ -74,6 +74,25 @@ int ce_match_stat(struct cache_entry *ce, struct stat *st) return changed; } +int base_name_compare(const char *name1, int len1, int mode1, + const char *name2, int len2, int mode2) +{ + unsigned char c1, c2; + int len = len1 < len2 ? len1 : len2; + int cmp; + + cmp = memcmp(name1, name2, len); + if (cmp) + return cmp; + c1 = name1[len]; + c2 = name2[len]; + if (!c1 && S_ISDIR(mode1)) + c1 = '/'; + if (!c2 && S_ISDIR(mode2)) + c2 = '/'; + return (c1 < c2) ? -1 : (c1 > c2) ? 1 : 0; +} + int cache_name_compare(const char *name1, int flags1, const char *name2, int flags2) { int len1 = flags1 & CE_NAMEMASK;