Code

for-each-ref: implement missing tag values
authorJeff King <peff@peff.net>
Wed, 25 Jun 2008 16:08:15 +0000 (12:08 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Jun 2008 18:05:26 +0000 (11:05 -0700)
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>
builtin-for-each-ref.c

index 07d9c572125523e2eb8f82e4cab907ee7dc94348..fef93d7488d15fac28e96f887f26556755cc6ca8 100644 (file)
@@ -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;
+               }
        }
 }