--- builtin/blame.c | 4 ++-- builtin/commit.c | 16 +++++----------- builtin/merge.c | 3 +-- builtin/notes.c | 4 ++-- builtin/tag.c | 7 ++----- strbuf.c | 8 ++++++++ strbuf.h | 1 + 7 files changed, 21 insertions(+), 22 deletions(-) diff --git a/builtin/blame.c b/builtin/blame.c index bc6c899..503595c 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -2193,8 +2193,8 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt, if (DIFF_OPT_TST(opt, ALLOW_TEXTCONV) && textconv_object(read_from, mode, null_sha1, 0, &buf_ptr, &buf_len)) strbuf_attach(&buf, buf_ptr, buf_len, buf_len + 1); - else if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size) - die_errno("cannot open or read '%s'", read_from); + else + strbuf_read_file_or_die(&buf, read_from, st.st_size); break; case S_IFLNK: if (strbuf_readlink(&buf, read_from, st.st_size) < 0) diff --git a/builtin/commit.c b/builtin/commit.c index d6dd3df..dad9acf 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -612,9 +612,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, die_errno(_("could not read log from standard input")); hook_arg1 = "message"; } else if (logfile) { - if (strbuf_read_file(&sb, logfile, 0) < 0) - die_errno(_("could not read log file '%s'"), - logfile); + strbuf_read_file_or_die(&sb, logfile, 0); hook_arg1 = "message"; } else if (use_message) { buffer = strstr(use_message_buffer, "\n\n"); @@ -634,16 +632,13 @@ static int prepare_to_commit(const char *index_file, const char *prefix, &sb, &ctx); hook_arg1 = "message"; } else if (!stat(git_path("MERGE_MSG"), &statbuf)) { - if (strbuf_read_file(&sb, git_path("MERGE_MSG"), 0) < 0) - die_errno(_("could not read MERGE_MSG")); + strbuf_read_file_or_die(&sb, git_path("MERGE_MSG"), 0); hook_arg1 = "merge"; } else if (!stat(git_path("SQUASH_MSG"), &statbuf)) { - if (strbuf_read_file(&sb, git_path("SQUASH_MSG"), 0) < 0) - die_errno(_("could not read SQUASH_MSG")); + strbuf_read_file_or_die(&sb, git_path("SQUASH_MSG"), 0); hook_arg1 = "squash"; } else if (template_file) { - if (strbuf_read_file(&sb, template_file, 0) < 0) - die_errno(_("could not read '%s'"), template_file); + strbuf_read_file_or_die(&sb, template_file, 0); hook_arg1 = "template"; clean_message_contents = 0; } @@ -1497,8 +1492,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix) fclose(fp); strbuf_release(&m); if (!stat(git_path("MERGE_MODE"), &statbuf)) { - if (strbuf_read_file(&sb, git_path("MERGE_MODE"), 0) < 0) - die_errno(_("could not read MERGE_MODE")); + strbuf_read_file_or_die(&sb, git_path("MERGE_MODE"), 0); if (!strcmp(sb.buf, "no-ff")) allow_fast_forward = 0; } diff --git a/builtin/merge.c b/builtin/merge.c index 9307e9c..6babf39 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -769,8 +769,7 @@ static void read_merge_msg(struct strbuf *msg) { const char *filename = git_path("MERGE_MSG"); strbuf_reset(msg); - if (strbuf_read_file(msg, filename, 0) < 0) - die_errno(_("Could not read from '%s'"), filename); + strbuf_read_file_or_die(msg, filename, 0); } static void write_merge_state(struct commit_list *); diff --git a/builtin/notes.c b/builtin/notes.c index 453457a..3210c7f 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -252,8 +252,8 @@ static int parse_file_arg(const struct option *opt, const char *arg, int unset) if (!strcmp(arg, "-")) { if (strbuf_read(&(msg->buf), 0, 1024) < 0) die_errno(_("cannot read '%s'"), arg); - } else if (strbuf_read_file(&(msg->buf), arg, 1024) < 0) - die_errno(_("could not open or read '%s'"), arg); + } else + strbuf_read_file_or_die(&(msg->buf), arg, 0); stripspace(&(msg->buf), 0); msg->given = 1; diff --git a/builtin/tag.c b/builtin/tag.c index 9c3e067..69f4ea3 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -540,11 +540,8 @@ int cmd_tag(int argc, const char **argv, const char *prefix) if (!strcmp(msgfile, "-")) { if (strbuf_read(&buf, 0, 1024) < 0) die_errno(_("cannot read '%s'"), msgfile); - } else { - if (strbuf_read_file(&buf, msgfile, 1024) < 0) - die_errno(_("could not open or read '%s'"), - msgfile); - } + } else + strbuf_read_file_or_die(&buf, msgfile, 0); } } diff --git a/strbuf.c b/strbuf.c index 9a373be..9f50478 100644 --- a/strbuf.c +++ b/strbuf.c @@ -411,6 +411,14 @@ int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint) return len; } +void strbuf_read_file_or_die(struct strbuf *sb, const char *path, size_t size) +{ + int ret; + ret = strbuf_read_file(sb, path, size); + if (ret < 0 || (size && ret != size)) + die_errno(_("could not open or read '%s'"), path); +} + void strbuf_add_lines(struct strbuf *out, const char *prefix, const char *buf, size_t size) { diff --git a/strbuf.h b/strbuf.h index ecae4e2..c1f012d 100644 --- a/strbuf.h +++ b/strbuf.h @@ -152,6 +152,7 @@ extern size_t strbuf_fread(struct strbuf *, size_t, FILE *); /* XXX: if read fails, any partial read is undone */ extern ssize_t strbuf_read(struct strbuf *, int fd, size_t hint); extern int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint); +extern void strbuf_read_file_or_die(struct strbuf *sb, const char *path, size_t size); extern int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint); extern int strbuf_getwholeline(struct strbuf *, FILE *, int); -- 2.3.0.rc1.137.g477eb31 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html