blob: 7ae3d5b85695fbd015dd3a023a8f442779f3f5d0 [file] [log] [blame]
Elijah Newrencb2a5132023-04-22 20:17:09 +00001#ifndef SYMLINKS_H
2#define SYMLINKS_H
3
4#include "strbuf.h"
5
6struct cache_def {
7 struct strbuf path;
8 int flags;
9 int track_flags;
10 int prefix_len_stat_func;
11};
12#define CACHE_DEF_INIT { \
13 .path = STRBUF_INIT, \
14}
15static inline void cache_def_clear(struct cache_def *cache)
16{
17 strbuf_release(&cache->path);
18}
19
20int has_symlink_leading_path(const char *name, int len);
21int threaded_has_symlink_leading_path(struct cache_def *, const char *, int);
22int check_leading_path(const char *name, int len, int warn_on_lstat_err);
23int has_dirs_only_path(const char *name, int len, int prefix_len);
24void invalidate_lstat_cache(void);
25void schedule_dir_for_removal(const char *name, int len);
26void remove_scheduled_dirs(void);
27
28#endif /* SYMLINKS_H */