summaryrefslogtreecommitdiff
path: root/builtin-for-each-ref.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2008-06-25 12:08:15 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-06-25 11:05:26 -0700
commit87412ec1f17bc2705595ebabc010d94cb46478b7 (patch)
treef4196f5d730493c8c5b7f783127750a0b3df37cc /builtin-for-each-ref.c
parentgit-svn: make rebuild respect rewriteRoot option (diff)
downloadtgif-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>
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;
+ }
}
}