diff options
authorMichael Haggerty <>2011-08-04 04:36:17 (GMT)
committerJunio C Hamano <>2011-08-04 22:53:16 (GMT)
commit352404ac4ccab144cd866b1f24c90b8f29ca33c2 (patch)
parent09d7dd7ad62fef60fc223fa74eb04c8dc783c2f6 (diff)
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 <>
3 files changed, 14 insertions, 1 deletions
diff --git a/Documentation/technical/api-gitattributes.txt b/Documentation/technical/api-gitattributes.txt
index 916720f..ab3a84d 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 b1d1d6d..bfa1f43 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 8b3f19b..d4f875a 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 {