diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-11-05 06:33:55 -0800 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-11-05 06:33:55 -0800 |
commit | 189627cd588c2937de7b655595b8ed777f445c85 (patch) | |
tree | a705e86785a06f293aa255a0263ddc25ca1ba202 /attr.h | |
download | git-189627cd588c2937de7b655595b8ed777f445c85.tar.gz git-189627cd588c2937de7b655595b8ed777f445c85.tar.bz2 git-189627cd588c2937de7b655595b8ed777f445c85.zip |
Imported Upstream version 1.7.10.4upstream/1.7.10.4
Diffstat (limited to 'attr.h')
-rw-r--r-- | attr.h | 57 |
1 files changed, 57 insertions, 0 deletions
@@ -0,0 +1,57 @@ +#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_check_attr(), 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; +}; + +/* + * Return the name of the attribute represented by the argument. The + * return value is a pointer to a null-delimited string that is part + * of the internal data structure; it should not be modified or freed. + */ +char *git_attr_name(struct git_attr *); + +int git_check_attr(const char *path, int, struct git_attr_check *); + +/* + * Retrieve all attributes that apply to the specified path. *num + * will be set to the number of attributes on the path; **check will + * be set to point at a newly-allocated array of git_attr_check + * objects describing the attributes and their values. *check must be + * free()ed by the caller. + */ +int git_all_attrs(const char *path, int *num, struct git_attr_check **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 */ |