summaryrefslogtreecommitdiff
path: root/builtin-for-each-ref.c
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 /builtin-for-each-ref.c
parent74b1e1235781bbe5c90b802c1551446a5f5d69f1 (diff)
downloadgit-87412ec1f17bc2705595ebabc010d94cb46478b7.tar.gz
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>
Diffstat (limited to 'builtin-for-each-ref.c')
-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 07d9c57212..fef93d7488 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;
+ }
}
}