]>
Commit | Line | Data |
---|---|---|
6f525e71 AS |
1 | #ifndef PATHSPEC_H |
2 | #define PATHSPEC_H | |
3 | ||
87323bda NTND |
4 | /* Pathspec magic */ |
5 | #define PATHSPEC_FROMTOP (1<<0) | |
6330a171 NTND |
6 | #define PATHSPEC_MAXDEPTH (1<<1) |
7 | #define PATHSPEC_ALL_MAGIC \ | |
8 | (PATHSPEC_FROMTOP | \ | |
9 | PATHSPEC_MAXDEPTH) | |
87323bda | 10 | |
64acde94 NTND |
11 | #define PATHSPEC_ONESTAR 1 /* the pathspec pattern sastisfies GFNM_ONESTAR */ |
12 | ||
13 | struct pathspec { | |
14 | const char **raw; /* get_pathspec() result, not freed by free_pathspec() */ | |
15 | int nr; | |
16 | unsigned int has_wildcard:1; | |
17 | unsigned int recursive:1; | |
87323bda | 18 | unsigned magic; |
64acde94 NTND |
19 | int max_depth; |
20 | struct pathspec_item { | |
21 | const char *match; | |
d2ce1331 | 22 | const char *original; |
87323bda | 23 | unsigned magic; |
64acde94 NTND |
24 | int len; |
25 | int nowildcard_len; | |
26 | int flags; | |
27 | } *items; | |
28 | }; | |
29 | ||
fc12261f NTND |
30 | /* parse_pathspec flags */ |
31 | #define PATHSPEC_PREFER_CWD (1<<0) /* No args means match cwd */ | |
32 | #define PATHSPEC_PREFER_FULL (1<<1) /* No args means match everything */ | |
6330a171 | 33 | #define PATHSPEC_MAXDEPTH_VALID (1<<2) /* max_depth field is valid */ |
b69bb3fc NTND |
34 | /* strip the trailing slash if the given path is a gitlink */ |
35 | #define PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP (1<<3) | |
fc12261f | 36 | |
64acde94 | 37 | extern int init_pathspec(struct pathspec *, const char **); |
87323bda NTND |
38 | extern void parse_pathspec(struct pathspec *pathspec, |
39 | unsigned magic_mask, | |
40 | unsigned flags, | |
41 | const char *prefix, | |
42 | const char **args); | |
e4d92cdc | 43 | extern void copy_pathspec(struct pathspec *dst, const struct pathspec *src); |
64acde94 NTND |
44 | extern void free_pathspec(struct pathspec *); |
45 | ||
46 | extern int limit_pathspec_to_literal(void); | |
47 | ||
4b78d7bc AS |
48 | extern char *find_pathspecs_matching_against_index(const char **pathspec); |
49 | extern void add_pathspec_matches_against_index(const char **pathspec, char *seen, int specs); | |
9d67b61f | 50 | extern const char *check_path_for_gitlink(const char *path); |
512aaf94 | 51 | extern void die_if_path_beyond_symlink(const char *path, const char *prefix); |
6f525e71 AS |
52 | |
53 | #endif /* PATHSPEC_H */ |