commit: replace the raw buffer with strbuf in read_graft_line
authorPatryk Obara <patryk.obara@gmail.com>
Fri, 18 Aug 2017 18:33:12 +0000 (20:33 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 18 Aug 2017 19:18:10 +0000 (12:18 -0700)
This simplifies function declaration and allows for use of strbuf_rtrim
instead of modifying buffer directly.

Signed-off-by: Patryk Obara <patryk.obara@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/blame.c
commit.c
commit.h
index bda1a787265e6d44d2ec0bec1e4dee5bf8de9c3b..d4472e9548c8ab293a1b5a46182e4f17d339f6c3 100644 (file)
@@ -488,7 +488,7 @@ static int read_ancestry(const char *graft_file)
                return -1;
        while (!strbuf_getwholeline(&buf, fp, '\n')) {
                /* The format is just "Commit Parent1 Parent2 ...\n" */
-               struct commit_graft *graft = read_graft_line(buf.buf, buf.len);
+               struct commit_graft *graft = read_graft_line(&buf);
                if (graft)
                        register_commit_graft(graft, 0);
        }
index 8b28415939035e2b40153013e6f8805422094d84..1a0a9f23e9b4c99c0346e28de7fe58cb67fa0229 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -134,34 +134,33 @@ int register_commit_graft(struct commit_graft *graft, int ignore_dups)
        return 0;
 }
 
-struct commit_graft *read_graft_line(char *buf, int len)
+struct commit_graft *read_graft_line(struct strbuf *line)
 {
        /* The format is just "Commit Parent1 Parent2 ...\n" */
        int i;
        struct commit_graft *graft = NULL;
        const int entry_size = GIT_SHA1_HEXSZ + 1;
 
-       while (len && isspace(buf[len-1]))
-               buf[--len] = '\0';
-       if (buf[0] == '#' || buf[0] == '\0')
+       strbuf_rtrim(line);
+       if (!line->len || line->buf[0] == '#')
                return NULL;
-       if ((len + 1) % entry_size)
+       if ((line->len + 1) % entry_size)
                goto bad_graft_data;
-       i = (len + 1) / entry_size - 1;
+       i = (line->len + 1) / entry_size - 1;
        graft = xmalloc(st_add(sizeof(*graft), st_mult(GIT_SHA1_RAWSZ, i)));
        graft->nr_parent = i;
-       if (get_oid_hex(buf, &graft->oid))
+       if (get_oid_hex(line->buf, &graft->oid))
                goto bad_graft_data;
-       for (i = GIT_SHA1_HEXSZ; i < len; i += entry_size) {
-               if (buf[i] != ' ')
+       for (i = GIT_SHA1_HEXSZ; i < line->len; i += entry_size) {
+               if (line->buf[i] != ' ')
                        goto bad_graft_data;
-               if (get_sha1_hex(buf + i + 1, graft->parent[i/entry_size].hash))
+               if (get_sha1_hex(line->buf + i + 1, graft->parent[i/entry_size].hash))
                        goto bad_graft_data;
        }
        return graft;
 
 bad_graft_data:
-       error("bad graft data: %s", buf);
+       error("bad graft data: %s", line->buf);
        free(graft);
        return NULL;
 }
@@ -174,7 +173,7 @@ static int read_graft_file(const char *graft_file)
                return -1;
        while (!strbuf_getwholeline(&buf, fp, '\n')) {
                /* The format is just "Commit Parent1 Parent2 ...\n" */
-               struct commit_graft *graft = read_graft_line(buf.buf, buf.len);
+               struct commit_graft *graft = read_graft_line(&buf);
                if (!graft)
                        continue;
                if (register_commit_graft(graft, 1))
index 6d857f06c16c0dfc3a447355d9a185b416e4e664..baecc0a78f67dfeef107d1bb58870b5f0d23a551 100644 (file)
--- a/commit.h
+++ b/commit.h
@@ -247,7 +247,7 @@ struct commit_graft {
 };
 typedef int (*each_commit_graft_fn)(const struct commit_graft *, void *);
 
-struct commit_graft *read_graft_line(char *buf, int len);
+struct commit_graft *read_graft_line(struct strbuf *line);
 int register_commit_graft(struct commit_graft *, int);
 struct commit_graft *lookup_commit_graft(const struct object_id *oid);