summaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-04-18 23:16:37 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-04-18 23:17:13 (GMT)
commita5e92abde61d59a8612c5b87d0bae681e90f7fdb (patch)
treee53fefb050e87cb63d06d016ffec73e2a67f2bf2 /diff.c
parent3086486d326b00ce308208e62e0e0de831f3563b (diff)
downloadgit-a5e92abde61d59a8612c5b87d0bae681e90f7fdb.zip
git-a5e92abde61d59a8612c5b87d0bae681e90f7fdb.tar.gz
git-a5e92abde61d59a8612c5b87d0bae681e90f7fdb.tar.bz2
Fix funny types used in attribute value representation
It was bothering me a lot that I abused small integer values casted to (void *) to represent non string values in gitattributes. This corrects it by making the type of attribute values (const char *), and using the address of a few statically allocated character buffer to denote true/false. Unset attributes are represented as having NULLs as their values. Added in-header documentation to explain how git_checkattr() routine should be called. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/diff.c b/diff.c
index a32078e..5f50186 100644
--- a/diff.c
+++ b/diff.c
@@ -1069,7 +1069,7 @@ static int file_is_binary(struct diff_filespec *one)
setup_diff_attr_check(&attr_diff_check);
if (!git_checkattr(one->path, 1, &attr_diff_check)) {
- void *value = attr_diff_check.value;
+ const char *value = attr_diff_check.value;
if (ATTR_TRUE(value))
return 0;
else if (ATTR_FALSE(value))
@@ -1078,7 +1078,7 @@ static int file_is_binary(struct diff_filespec *one)
;
else
die("unknown value %s given to 'diff' attribute",
- (char *)value);
+ value);
}
if (!one->data) {