struct taginfo *cgit_parse_tag(struct tag *tag)
{
void *data;
- char type[20];
+ enum object_type type;
unsigned long size;
char *p, *t;
struct taginfo *ret;
- data = read_sha1_file(tag->object.sha1, type, &size);
- if (!data || strcmp(type, tag_type)) {
+ data = read_sha1_file(tag->object.sha1, &type, &size);
+ if (!data || type != OBJ_TAG) {
free(data);
return 0;
}
p = data;
- while (p) {
+ while (p && *p) {
if (*p == '\n')
break;
while (p && (*p == '\n'))
p = strchr(p, '\n') + 1;
- if (p)
+ if (p && *p)
ret->msg = xstrdup(p);
free(data);
return ret;