summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin-tag.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/builtin-tag.c b/builtin-tag.c
index 66e5a58307..4aca3dc79b 100644
--- a/builtin-tag.c
+++ b/builtin-tag.c
@@ -81,17 +81,16 @@ static int show_reference(const char *refname, const unsigned char *sha1,
}
printf("%-15s ", refname);
- sp = buf = read_sha1_file(sha1, &type, &size);
- if (!buf)
+ buf = read_sha1_file(sha1, &type, &size);
+ if (!buf || !size)
return 0;
- if (!size) {
+
+ /* skip header */
+ sp = strstr(buf, "\n\n");
+ if (!sp) {
free(buf);
return 0;
}
- /* skip header */
- while (sp + 1 < buf + size &&
- !(sp[0] == '\n' && sp[1] == '\n'))
- sp++;
/* only take up to "lines" lines, and strip the signature */
for (i = 0, sp += 2;
i < filter->lines && sp < buf + size &&