[PATCH v10 04/40] builtin/apply: read_patch_file() return -1 instead of die()ing
- From
Christian Couder <christian.couder@gmail.com>
- Date
- Aug 8, 2016, 21:03 UTC
- Message-ID
- <20160808210337.5038-5-chriscool@tuxfamily.org>
- In-Reply-To
- <20160808210337.5038-1-chriscool@tuxfamily.org>
To libify `git apply` functionality we have to signal errors to the caller instead of die()ing. Let's do that by returning -1 instead of die()ing in read_patch_file().
Helped-by: Stefan Beller <sbeller@google.com> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> --- builtin/apply.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/builtin/apply.c b/builtin/apply.c index 435030a..dd7afee 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -335,10 +335,10 @@ static void say_patch_name(FILE *output, const char *fmt, struct patch *patch) #define SLOP (16) -static void read_patch_file(struct strbuf *sb, int fd) +static int read_patch_file(struct strbuf *sb, int fd) { if (strbuf_read(sb, fd, 0) < 0) - die_errno("git apply: failed to read"); + return error_errno("git apply: failed to read"); /* * Make sure that we have some slop in the buffer @@ -347,6 +347,7 @@ static void read_patch_file(struct strbuf *sb, int fd) */ strbuf_grow(sb, SLOP); memset(sb->buf + sb->len, 0, SLOP); + return 0; } static unsigned long linelen(const char *buffer, unsigned long size) @@ -4425,7 +4426,8 @@ static int apply_patch(struct apply_state *state, int res = 0; state->patch_input_file = filename; - read_patch_file(&buf, fd); + if (read_patch_file(&buf, fd) < 0) + return -128; offset = 0; while (offset < buf.len) { struct patch *patch;
-- 2.9.2.614.g4980f51