Re: [PATCH 3/5] commit: replace the raw buffer with strbuf in read_graft_line
From: Junio C Hamano <hidden>
Date: 2017-08-15 18:25:14
Patryk Obara [off-list ref] writes:
This simplifies function declaration and allows for use of strbuf_rtrim instead of modifying buffer directly. Signed-off-by: Patryk Obara <redacted> --- builtin/blame.c | 2 +- commit.c | 11 ++++++----- commit.h | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-)
Looks good; both existing callers already have strbuf, and we do not expect we will gain a lot more callers to this ancient facility, so there is no point to have a more accomodating API that separately takes <ptr,len>.
quoted hunk
diff --git a/builtin/blame.c b/builtin/blame.c index bda1a78..d4472e9 100644 --- a/builtin/blame.c +++ b/builtin/blame.c@@ -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); }diff --git a/commit.c b/commit.c index 8b28415..499fb14 100644 --- a/commit.c +++ b/commit.c@@ -134,15 +134,16 @@ 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; + int i, len; + char *buf = line->buf; struct commit_graft *graft = NULL; const int entry_size = GIT_SHA1_HEXSZ + 1; - while (len && isspace(buf[len-1])) - buf[--len] = '\0'; + strbuf_rtrim(line); + len = line->len; if (buf[0] == '#' || buf[0] == '\0') return NULL; if ((len + 1) % entry_size)@@ -174,7 +175,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))diff --git a/commit.h b/commit.h index 6d857f0..baecc0a 100644 --- 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);