summaryrefslogtreecommitdiff
path: root/attr.h
blob: 450f49d648a013ffddc6321b7fd79b3fc1b66f7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef ATTR_H
#define ATTR_H
 
/* An attribute is a pointer to this opaque structure */
struct git_attr;
 
/*
 * Given a string, return the gitattribute object that
 * corresponds to it.
 */
struct git_attr *git_attr(const char *);
 
/* Internal use */
extern const char git_attr__true[];
extern const char git_attr__false[];
 
/* For public to check git_attr_check results */
#define ATTR_TRUE(v) ((v) == git_attr__true)
#define ATTR_FALSE(v) ((v) == git_attr__false)
#define ATTR_UNSET(v) ((v) == NULL)
 
/*
 * Send one or more git_attr_check to git_checkattr(), and
 * each 'value' member tells what its value is.
 * Unset one is returned as NULL.
 */
struct git_attr_check {
	struct git_attr *attr;
	const char *value;
};
 
int git_checkattr(const char *path, int, struct git_attr_check *);
 
enum git_attr_direction {
	GIT_ATTR_CHECKIN,
	GIT_ATTR_CHECKOUT,
	GIT_ATTR_INDEX,
};
void git_attr_set_direction(enum git_attr_direction, struct index_state *);
 
#endif /* ATTR_H */