#ifndef SYMLINKS_H #define SYMLINKS_H #include "strbuf.h" struct cache_def { struct strbuf path; int flags; int track_flags; int prefix_len_stat_func; }; #define CACHE_DEF_INIT { \ .path = STRBUF_INIT, \ } static inline void cache_def_clear(struct cache_def *cache) { strbuf_release(&cache->path); } int has_symlink_leading_path(const char *name, int len); int threaded_has_symlink_leading_path(struct cache_def *, const char *, int); int check_leading_path(const char *name, int len, int warn_on_lstat_err); int has_dirs_only_path(const char *name, int len, int prefix_len); void invalidate_lstat_cache(void); void schedule_dir_for_removal(const char *name, int len); void remove_scheduled_dirs(void); #endif /* SYMLINKS_H */