X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=name-hash.c;h=225dd769954fa0fcb6e70da58b2ce5ed88e9451e;hb=2548183b;hp=c6b6a3fe4cd94e48893b172c17b6e7df3bfa36f8;hpb=1538f21bfb33dcaa65fe84b9823a8963bf1e6443;p=git.git diff --git a/name-hash.c b/name-hash.c index c6b6a3fe4..225dd7699 100644 --- a/name-hash.c +++ b/name-hash.c @@ -57,12 +57,10 @@ static void hash_index_entry_directories(struct index_state *istate, struct cach if (*ptr == '/') { ++ptr; hash = hash_name(ce->name, ptr - ce->name); - if (!lookup_hash(hash, &istate->name_hash)) { - pos = insert_hash(hash, ce, &istate->name_hash); - if (pos) { - ce->next = *pos; - *pos = ce; - } + pos = insert_hash(hash, ce, &istate->name_hash); + if (pos) { + ce->dir_next = *pos; + *pos = ce; } } } @@ -166,7 +164,10 @@ struct cache_entry *index_name_exists(struct index_state *istate, const char *na if (same_name(ce, name, namelen, icase)) return ce; } - ce = ce->next; + if (icase && name[namelen - 1] == '/') + ce = ce->dir_next; + else + ce = ce->next; } /*