Junio C Hamano | d0bfd02 | 2007-04-12 01:07:32 -0700 | [diff] [blame] | 1 | #ifndef ATTR_H |
| 2 | #define ATTR_H |
| 3 | |
| 4 | /* An attribute is a pointer to this opaque structure */ |
| 5 | struct git_attr; |
| 6 | |
Junio C Hamano | a5e92ab | 2007-04-18 16:16:37 -0700 | [diff] [blame] | 7 | /* |
| 8 | * Given a string, return the gitattribute object that |
| 9 | * corresponds to it. |
| 10 | */ |
Junio C Hamano | 7fb0eaa | 2010-01-16 20:39:59 -0800 | [diff] [blame] | 11 | struct git_attr *git_attr(const char *); |
Junio C Hamano | d0bfd02 | 2007-04-12 01:07:32 -0700 | [diff] [blame] | 12 | |
Junio C Hamano | 515106f | 2007-04-16 21:33:31 -0700 | [diff] [blame] | 13 | /* Internal use */ |
Junio C Hamano | a5e92ab | 2007-04-18 16:16:37 -0700 | [diff] [blame] | 14 | extern const char git_attr__true[]; |
| 15 | extern const char git_attr__false[]; |
Junio C Hamano | 515106f | 2007-04-16 21:33:31 -0700 | [diff] [blame] | 16 | |
| 17 | /* For public to check git_attr_check results */ |
Junio C Hamano | a5e92ab | 2007-04-18 16:16:37 -0700 | [diff] [blame] | 18 | #define ATTR_TRUE(v) ((v) == git_attr__true) |
| 19 | #define ATTR_FALSE(v) ((v) == git_attr__false) |
| 20 | #define ATTR_UNSET(v) ((v) == NULL) |
Junio C Hamano | 515106f | 2007-04-16 21:33:31 -0700 | [diff] [blame] | 21 | |
Junio C Hamano | a5e92ab | 2007-04-18 16:16:37 -0700 | [diff] [blame] | 22 | /* |
| 23 | * Send one or more git_attr_check to git_checkattr(), and |
| 24 | * each 'value' member tells what its value is. |
| 25 | * Unset one is returned as NULL. |
| 26 | */ |
Junio C Hamano | d0bfd02 | 2007-04-12 01:07:32 -0700 | [diff] [blame] | 27 | struct git_attr_check { |
| 28 | struct git_attr *attr; |
Junio C Hamano | a5e92ab | 2007-04-18 16:16:37 -0700 | [diff] [blame] | 29 | const char *value; |
Junio C Hamano | d0bfd02 | 2007-04-12 01:07:32 -0700 | [diff] [blame] | 30 | }; |
| 31 | |
| 32 | int git_checkattr(const char *path, int, struct git_attr_check *); |
| 33 | |
Junio C Hamano | 06f33c1 | 2009-03-13 21:24:08 -0700 | [diff] [blame] | 34 | enum git_attr_direction { |
| 35 | GIT_ATTR_CHECKIN, |
Nguyễn Thái Ngọc Duy | 4191e80 | 2009-04-18 00:17:58 +0200 | [diff] [blame] | 36 | GIT_ATTR_CHECKOUT, |
| 37 | GIT_ATTR_INDEX, |
Junio C Hamano | 06f33c1 | 2009-03-13 21:24:08 -0700 | [diff] [blame] | 38 | }; |
| 39 | void git_attr_set_direction(enum git_attr_direction, struct index_state *); |
| 40 | |
Junio C Hamano | d0bfd02 | 2007-04-12 01:07:32 -0700 | [diff] [blame] | 41 | #endif /* ATTR_H */ |