1#ifndef ATTR_H2#define ATTR_H34/* An attribute is a pointer to this opaque structure */5struct git_attr;67/*8* Given a string, return the gitattribute object that9* corresponds to it.10*/11struct git_attr *git_attr(const char *);1213/* Internal use */14extern const char git_attr__true[];15extern const char git_attr__false[];1617/* For public to check git_attr_check results */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)2122/*23* Send one or more git_attr_check to git_checkattr(), and24* each 'value' member tells what its value is.25* Unset one is returned as NULL.26*/27struct git_attr_check {28struct git_attr *attr;29const char *value;30};3132int git_checkattr(const char *path, int, struct git_attr_check *);3334enum git_attr_direction {35GIT_ATTR_CHECKIN,36GIT_ATTR_CHECKOUT,37GIT_ATTR_INDEX38};39void git_attr_set_direction(enum git_attr_direction, struct index_state *);4041#endif /* ATTR_H */