diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-10-17 15:55:15 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-10-17 15:55:16 -0700 |
commit | d6a58b7773d142ab6da47eca94f83b9c8e6dad5e (patch) | |
tree | 640e0e43df56252aa7712690bbd5a2d21a931360 /read-cache.c | |
parent | be98d915bec9aadcf746192ce0c5ddc19926b8bb (diff) | |
parent | de372b1b46d91ffdcd6eb6e324cb8b586c99c539 (diff) | |
download | git-d6a58b7773d142ab6da47eca94f83b9c8e6dad5e.tar.gz |
Merge branch 'es/name-hash-no-trailing-slash-in-dirs'
Clean up the internal of the name-hash mechanism used to work
around case insensitivity on some filesystems to cleanly fix a
long-standing API glitch where the caller of cache_name_exists()
that ask about a directory with a counted string was required to
have '/' at one location past the end of the string.
* es/name-hash-no-trailing-slash-in-dirs:
dir: revert work-around for retired dangerous behavior
name-hash: stop storing trailing '/' on paths in index_state.dir_hash
employ new explicit "exists in index?" API
name-hash: refactor polymorphic index_name_exists()
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/read-cache.c b/read-cache.c index 6bbe1b1fb3..33dd676ccb 100644 --- a/read-cache.c +++ b/read-cache.c @@ -643,7 +643,7 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st, if (*ptr == '/') { struct cache_entry *foundce; ++ptr; - foundce = index_name_exists(istate, ce->name, ptr - ce->name, ignore_case); + foundce = index_dir_exists(istate, ce->name, ptr - ce->name - 1); if (foundce) { memcpy((void *)startPtr, foundce->name + (startPtr - ce->name), ptr - startPtr); startPtr = ptr; @@ -652,7 +652,7 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st, } } - alias = index_name_exists(istate, ce->name, ce_namelen(ce), ignore_case); + alias = index_file_exists(istate, ce->name, ce_namelen(ce), ignore_case); if (alias && !ce_stage(alias) && !ie_match_stat(istate, alias, st, ce_option)) { /* Nothing changed, really */ free(ce); |