return o;
}
+struct object *deref_tag_noverify(struct object *o)
+{
+ while (o && o->type == OBJ_TAG) {
+ o = parse_object(o->sha1);
+ if (o && o->type == OBJ_TAG && ((struct tag *)o)->tagged)
+ o = ((struct tag *)o)->tagged;
+ else
+ o = NULL;
+ }
+ return o;
+}
+
struct tag *lookup_tag(const unsigned char *sha1)
{
struct object *obj = lookup_object(sha1);
return -1;
bufptr += 48; /* "object " + sha1 + "\n" */
- if (prefixcmp(bufptr, "type "))
+ if (!starts_with(bufptr, "type "))
return -1;
bufptr += 5;
nl = memchr(bufptr, '\n', tail - bufptr);
item->tagged = NULL;
}
- if (bufptr + 4 < tail && !prefixcmp(bufptr, "tag "))
+ if (bufptr + 4 < tail && starts_with(bufptr, "tag "))
; /* good */
else
return -1;
item->tag = xmemdupz(bufptr, nl - bufptr);
bufptr = nl + 1;
- if (bufptr + 7 < tail && !prefixcmp(bufptr, "tagger "))
+ if (bufptr + 7 < tail && starts_with(bufptr, "tagger "))
item->date = parse_tag_date(bufptr, tail);
else
item->date = 0;
{
char *eol;
size_t len = 0;
- while (len < size && prefixcmp(buf + len, PGP_SIGNATURE) &&
- prefixcmp(buf + len, PGP_MESSAGE)) {
+ while (len < size && !starts_with(buf + len, PGP_SIGNATURE) &&
+ !starts_with(buf + len, PGP_MESSAGE)) {
eol = memchr(buf + len, '\n', size - len);
len += eol ? eol - (buf + len) + 1 : size - len;
}