diff options
author | Jeff King <peff@peff.net> | 2008-06-25 12:08:15 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-06-25 11:05:26 -0700 |
commit | 87412ec1f17bc2705595ebabc010d94cb46478b7 (patch) | |
tree | f4196f5d730493c8c5b7f783127750a0b3df37cc /builtin-for-each-ref.c | |
parent | 74b1e1235781bbe5c90b802c1551446a5f5d69f1 (diff) | |
download | git-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>
Diffstat (limited to 'builtin-for-each-ref.c')
-rw-r--r-- | builtin-for-each-ref.c | 7 |
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; + } } } |