aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2008-06-25 12:08:15 -0400
committerJunio C Hamano <gitster@pobox.com>2008-06-25 11:05:26 -0700
commit87412ec1f17bc2705595ebabc010d94cb46478b7 (patch)
treef4196f5d730493c8c5b7f783127750a0b3df37cc
parent74b1e1235781bbe5c90b802c1551446a5f5d69f1 (diff)
downloadgit-87412ec1f17bc2705595ebabc010d94cb46478b7.tar.gz
git-87412ec1f17bc2705595ebabc010d94cb46478b7.tar.xz
for-each-ref: implement missing tag values
The "type" and "object" fields for tags were accepted as valid atoms, but never implemented. Consequently, they simply returned the empty string, even for valid tags. Noticed by Lea Wiemann. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-for-each-ref.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c
index 07d9c5721..fef93d748 100644
--- a/builtin-for-each-ref.c
+++ b/builtin-for-each-ref.c
@@ -234,6 +234,13 @@ static void grab_tag_values(struct atom_value *val, int deref, struct object *ob
name++;
if (!strcmp(name, "tag"))
v->s = tag->tag;
+ else if (!strcmp(name, "type") && tag->tagged)
+ v->s = typename(tag->tagged->type);
+ else if (!strcmp(name, "object") && tag->tagged) {
+ char *s = xmalloc(41);
+ strcpy(s, sha1_to_hex(tag->tagged->sha1));
+ v->s = s;
+ }
}
}