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 | |
parent | 74b1e1235781bbe5c90b802c1551446a5f5d69f1 (diff) | |
download | git-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>
-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 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; + } } } |