diff options
| author | Junio C Hamano <gitster@pobox.com> | 2023-06-29 16:43:20 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2023-06-29 16:43:21 -0700 |
| commit | a1264a08a1a6e0cd7e510c899cd0ba42dcf1045d (patch) | |
| tree | d6a22be96e39e1284d9838ce5e8ad58941c5099b /read-cache.h | |
| parent | b2166b0d496c2f3df96929da300039a01227e719 (diff) | |
| parent | 68d686460f58e45f2eb080e0cdf314987eca5ce5 (diff) | |
| download | git-a1264a08a1a6e0cd7e510c899cd0ba42dcf1045d.tar.xz | |
Merge branch 'en/header-split-cache-h-part-3'
Header files cleanup.
* en/header-split-cache-h-part-3: (28 commits)
fsmonitor-ll.h: split this header out of fsmonitor.h
hash-ll, hashmap: move oidhash() to hash-ll
object-store-ll.h: split this header out of object-store.h
khash: name the structs that khash declares
merge-ll: rename from ll-merge
git-compat-util.h: remove unneccessary include of wildmatch.h
builtin.h: remove unneccessary includes
list-objects-filter-options.h: remove unneccessary include
diff.h: remove unnecessary include of oidset.h
repository: remove unnecessary include of path.h
log-tree: replace include of revision.h with simple forward declaration
cache.h: remove this no-longer-used header
read-cache*.h: move declarations for read-cache.c functions from cache.h
repository.h: move declaration of the_index from cache.h
merge.h: move declarations for merge.c from cache.h
diff.h: move declaration for global in diff.c from cache.h
preload-index.h: move declarations for preload-index.c from elsewhere
sparse-index.h: move declarations for sparse-index.c from cache.h
name-hash.h: move declarations for name-hash.c from cache.h
run-command.h: move declarations for run-command.c from cache.h
...
Diffstat (limited to 'read-cache.h')
| -rw-r--r-- | read-cache.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/read-cache.h b/read-cache.h new file mode 100644 index 0000000000..043da1f1aa --- /dev/null +++ b/read-cache.h @@ -0,0 +1,45 @@ +#ifndef READ_CACHE_H +#define READ_CACHE_H + +#include "read-cache-ll.h" +#include "object.h" +#include "pathspec.h" + +static inline unsigned int ce_mode_from_stat(const struct cache_entry *ce, + unsigned int mode) +{ + extern int trust_executable_bit, has_symlinks; + if (!has_symlinks && S_ISREG(mode) && + ce && S_ISLNK(ce->ce_mode)) + return ce->ce_mode; + if (!trust_executable_bit && S_ISREG(mode)) { + if (ce && S_ISREG(ce->ce_mode)) + return ce->ce_mode; + return create_ce_mode(0666); + } + return create_ce_mode(mode); +} + +static inline int ce_to_dtype(const struct cache_entry *ce) +{ + unsigned ce_mode = ntohl(ce->ce_mode); + if (S_ISREG(ce_mode)) + return DT_REG; + else if (S_ISDIR(ce_mode) || S_ISGITLINK(ce_mode)) + return DT_DIR; + else if (S_ISLNK(ce_mode)) + return DT_LNK; + else + return DT_UNKNOWN; +} + +static inline int ce_path_match(struct index_state *istate, + const struct cache_entry *ce, + const struct pathspec *pathspec, + char *seen) +{ + return match_pathspec(istate, pathspec, ce->name, ce_namelen(ce), 0, seen, + S_ISDIR(ce->ce_mode) || S_ISGITLINK(ce->ce_mode)); +} + +#endif /* READ_CACHE_H */ |
