From: Michael Haggerty Date: Thu, 4 Aug 2011 04:36:17 +0000 (+0200) Subject: Provide access to the name attribute of git_attr X-Git-Tag: v1.7.7-rc0~23^2~22 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=352404ac4ccab144cd866b1f24c90b8f29ca33c2;p=git.git Provide access to the name attribute of git_attr It will be present in any likely future reimplementation, and its availability simplifies other code. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- diff --git a/Documentation/technical/api-gitattributes.txt b/Documentation/technical/api-gitattributes.txt index 916720f7a..ab3a84d2f 100644 --- a/Documentation/technical/api-gitattributes.txt +++ b/Documentation/technical/api-gitattributes.txt @@ -13,7 +13,8 @@ Data Structure An attribute is an opaque object that is identified by its name. Pass the name to `git_attr()` function to obtain the object of this type. The internal representation of this structure is - of no interest to the calling programs. + of no interest to the calling programs. The name of the + attribute can be retrieved by calling `git_attr_name()`. `struct git_attr_check`:: diff --git a/attr.c b/attr.c index b1d1d6d79..bfa1f4379 100644 --- a/attr.c +++ b/attr.c @@ -36,6 +36,11 @@ static int attr_nr; static struct git_attr_check *check_all_attr; static struct git_attr *(git_attr_hash[HASHSIZE]); +char *git_attr_name(struct git_attr *attr) +{ + return attr->name; +} + static unsigned hash_name(const char *name, int namelen) { unsigned val = 0, c; diff --git a/attr.h b/attr.h index 8b3f19be6..d4f875a3d 100644 --- a/attr.h +++ b/attr.h @@ -29,6 +29,13 @@ struct git_attr_check { 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_checkattr(const char *path, int, struct git_attr_check *); enum git_attr_direction {