builtin/apply: read_patch_file() return -1 instead of die()ing
authorChristian Couder <christian.couder@gmail.com>
Mon, 8 Aug 2016 21:03:01 +0000 (23:03 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 Aug 2016 19:41:46 +0000 (12:41 -0700)
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/apply.c
index 435030a989f10ea4319340afb95c353728349efa..dd7afee09f61e8e33376a10b804e3626d442804c 100644 (file)
@@ -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;