return buf;
}
-static char *parse_user(char *t, char **name, char **email, unsigned long *date)
+static const char *parse_user(const char *t, char **name, char **email, unsigned long *date)
{
- char *p = t;
+ const char *p = t;
int mode = 1;
while (p && *p) {
struct commitinfo *cgit_parse_commit(struct commit *commit)
{
struct commitinfo *ret;
- char *p = commit->buffer, *t;
+ const char *p = get_cached_commit_buffer(commit, NULL);
+ const char *t;
ret = xmalloc(sizeof(*ret));
ret->commit = commit;
if (p == NULL)
return ret;
- if (prefixcmp(p, "tree "))
+ if (!starts_with(p, "tree "))
die("Bad commit: %s", sha1_to_hex(commit->object.sha1));
else
p += 46; // "tree " + hex[40] + "\n"
- while (!prefixcmp(p, "parent "))
+ while (starts_with(p, "parent "))
p += 48; // "parent " + hex[40] + "\n"
- if (p && !prefixcmp(p, "author ")) {
+ if (p && starts_with(p, "author ")) {
p = parse_user(p + 7, &ret->author, &ret->author_email,
&ret->author_date);
}
- if (p && !prefixcmp(p, "committer ")) {
+ if (p && starts_with(p, "committer ")) {
p = parse_user(p + 10, &ret->committer, &ret->committer_email,
&ret->committer_date);
}
- if (p && !prefixcmp(p, "encoding ")) {
+ if (p && starts_with(p, "encoding ")) {
p += 9;
t = strchr(p, '\n');
if (t) {
void *data;
enum object_type type;
unsigned long size;
- char *p;
+ const char *p;
struct taginfo *ret;
data = read_sha1_file(tag->object.sha1, &type, &size);
if (*p == '\n')
break;
- if (!prefixcmp(p, "tagger ")) {
+ if (starts_with(p, "tagger ")) {
p = parse_user(p + 7, &ret->tagger, &ret->tagger_email,
&ret->tagger_date);
} else {