]> gitweb.ps.run Git - ps-cgit/blobdiff - parsing.c
git: update to v2.42.0
[ps-cgit] / parsing.c
index e224564dc5346e74300ca35b567a6799f701ca57..dc44ffde3ae5000f4297b866484db99ddaa97c72 100644 (file)
--- a/parsing.c
+++ b/parsing.c
@@ -77,7 +77,7 @@ static void parse_user(const char *t, char **name, char **email, unsigned long *
 
                email_len = ident.mail_end - ident.mail_begin;
                *email = xmalloc(strlen("<") + email_len + strlen(">") + 1);
-               sprintf(*email, "<%.*s>", email_len, ident.mail_begin);
+               xsnprintf(*email, email_len + 3, "<%.*s>", email_len, ident.mail_begin);
 
                if (ident.date_begin)
                        *date = strtoul(ident.date_begin, NULL, 10);
@@ -127,9 +127,8 @@ static int end_of_header(const char *p)
 
 struct commitinfo *cgit_parse_commit(struct commit *commit)
 {
-       const int sha1hex_len = 40;
        struct commitinfo *ret;
-       const char *p = get_cached_commit_buffer(commit, NULL);
+       const char *p = repo_get_commit_buffer(the_repository, commit, NULL);
        const char *t;
 
        ret = xcalloc(1, sizeof(struct commitinfo));
@@ -140,10 +139,10 @@ struct commitinfo *cgit_parse_commit(struct commit *commit)
 
        if (!skip_prefix(p, "tree ", &p))
                die("Bad commit: %s", oid_to_hex(&commit->object.oid));
-       p += sha1hex_len + 1;
+       p += the_hash_algo->hexsz + 1;
 
        while (skip_prefix(p, "parent ", &p))
-               p += sha1hex_len + 1;
+               p += the_hash_algo->hexsz + 1;
 
        if (p && skip_prefix(p, "author ", &p)) {
                parse_user(p, &ret->author, &ret->author_email,
@@ -199,7 +198,7 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
        const char *p;
        struct taginfo *ret = NULL;
 
-       data = read_object_file(&tag->object.oid, &type, &size);
+       data = repo_read_object_file(the_repository, &tag->object.oid, &type, &size);
        if (!data || type != OBJ_TAG)
                goto cleanup;