All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Couder <christian.couder@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Karsten Blees" <karsten.blees@gmail.com>,
	"Nguyen Thai Ngoc Duy" <pclouds@gmail.com>,
	"Stefan Beller" <sbeller@google.com>,
	"Eric Sunshine" <sunshine@sunshineco.com>,
	"Ramsay Jones" <ramsay@ramsayjones.plus.com>,
	"Johannes Sixt" <j6t@kdbg.org>, "René Scharfe" <l.s.r@web.de>,
	"Christian Couder" <chriscool@tuxfamily.org>
Subject: [PATCH v8 15/41] builtin/apply: make parse_traditional_patch() return -1 on error
Date: Mon, 27 Jun 2016 20:24:03 +0200	[thread overview]
Message-ID: <20160627182429.31550-16-chriscool@tuxfamily.org> (raw)
In-Reply-To: <20160627182429.31550-1-chriscool@tuxfamily.org>

To libify `git apply` functionality we have to signal errors to the
caller instead of die()ing.

To do that in a compatible manner with the rest of the error handling
in "builtin/apply.c", parse_traditional_patch() should return -1
instead of calling die().

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 builtin/apply.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/builtin/apply.c b/builtin/apply.c
index 29ca524..174dbf3 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -755,10 +755,10 @@ static int has_epoch_timestamp(const char *nameline)
  * files, we can happily check the index for a match, but for creating a
  * new file we should try to match whatever "patch" does. I have no idea.
  */
-static void parse_traditional_patch(struct apply_state *state,
-				    const char *first,
-				    const char *second,
-				    struct patch *patch)
+static int parse_traditional_patch(struct apply_state *state,
+				   const char *first,
+				   const char *second,
+				   struct patch *patch)
 {
 	char *name;
 
@@ -803,7 +803,9 @@ static void parse_traditional_patch(struct apply_state *state,
 		}
 	}
 	if (!name)
-		die(_("unable to find filename in patch at line %d"), state->linenr);
+		return error(_("unable to find filename in patch at line %d"), state->linenr);
+
+	return 0;
 }
 
 static int gitdiff_hdrend(struct apply_state *state,
@@ -1467,7 +1469,8 @@ static int find_header(struct apply_state *state,
 			continue;
 
 		/* Ok, we'll consider it a patch */
-		parse_traditional_patch(state, line, line+len, patch);
+		if (parse_traditional_patch(state, line, line+len, patch))
+			return -128;
 		*hdrsize = len + nextlen;
 		state->linenr += 2;
 		return offset;
-- 
2.9.0.172.gfb57a78


  parent reply	other threads:[~2016-06-27 18:26 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-27 18:23 [PATCH v8 00/41] libify apply and use lib in am, part 2 Christian Couder
2016-06-27 18:23 ` [PATCH v8 01/41] apply: make some names more specific Christian Couder
2016-06-27 18:23 ` [PATCH v8 02/41] apply: move 'struct apply_state' to apply.h Christian Couder
2016-06-27 18:23 ` [PATCH v8 03/41] builtin/apply: make apply_patch() return -1 or -128 instead of die()ing Christian Couder
2016-06-27 18:23 ` [PATCH v8 04/41] builtin/apply: read_patch_file() return -1 " Christian Couder
2016-06-27 18:23 ` [PATCH v8 05/41] builtin/apply: make find_header() return -128 " Christian Couder
2016-06-27 18:23 ` [PATCH v8 06/41] builtin/apply: make parse_chunk() return a negative integer on error Christian Couder
2016-06-27 18:23 ` [PATCH v8 07/41] builtin/apply: make parse_single_patch() return -1 " Christian Couder
2016-06-27 18:23 ` [PATCH v8 08/41] builtin/apply: make parse_whitespace_option() return -1 instead of die()ing Christian Couder
2016-06-27 18:23 ` [PATCH v8 09/41] builtin/apply: make parse_ignorewhitespace_option() " Christian Couder
2016-06-27 18:23 ` [PATCH v8 10/41] builtin/apply: move init_apply_state() to apply.c Christian Couder
2016-06-27 18:23 ` [PATCH v8 11/41] apply: make init_apply_state() return -1 instead of exit()ing Christian Couder
2016-06-27 18:24 ` [PATCH v8 12/41] builtin/apply: make check_apply_state() return -1 instead of die()ing Christian Couder
2016-06-27 18:24 ` [PATCH v8 13/41] builtin/apply: move check_apply_state() to apply.c Christian Couder
2016-06-27 18:24 ` [PATCH v8 14/41] builtin/apply: make apply_all_patches() return 128 or 1 on error Christian Couder
2016-06-27 18:24 ` Christian Couder [this message]
2016-06-27 18:24 ` [PATCH v8 16/41] builtin/apply: make gitdiff_*() return 1 at end of header Christian Couder
2016-06-27 18:24 ` [PATCH v8 17/41] builtin/apply: make gitdiff_*() return -1 on error Christian Couder
2016-06-27 18:24 ` [PATCH v8 18/41] builtin/apply: change die_on_unsafe_path() to check_unsafe_path() Christian Couder
2016-06-27 18:24 ` [PATCH v8 19/41] builtin/apply: make build_fake_ancestor() return -1 on error Christian Couder
2016-06-27 18:24 ` [PATCH v8 20/41] builtin/apply: make remove_file() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 21/41] builtin/apply: make add_conflicted_stages_file() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 22/41] builtin/apply: make add_index_file() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 23/41] builtin/apply: make create_file() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 24/41] builtin/apply: make write_out_one_result() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 25/41] builtin/apply: make write_out_results() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 26/41] builtin/apply: make try_create_file() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 27/41] builtin/apply: make create_one_file() " Christian Couder
2016-06-27 18:24 ` [PATCH v8 28/41] builtin/apply: rename option parsing functions Christian Couder
2016-06-27 18:24 ` [PATCH v8 29/41] apply: rename and move opt constants to apply.h Christian Couder
2016-06-27 18:24 ` [PATCH v8 31/41] apply: make some parsing functions static again Christian Couder
2016-06-27 18:24 ` [PATCH v8 32/41] environment: add set_index_file() Christian Couder
2016-07-26 19:28   ` Junio C Hamano
2016-07-27 15:14     ` Duy Nguyen
2016-07-29 14:21       ` Christian Couder
2016-07-29 15:34         ` Duy Nguyen
2016-07-29 18:23           ` Christian Couder
2016-07-29 18:35             ` Duy Nguyen
2016-07-29 18:58               ` Junio C Hamano
2016-06-27 18:24 ` [PATCH v8 33/41] write_or_die: use warning() instead of fprintf(stderr, ...) Christian Couder
2016-06-28 21:39   ` Junio C Hamano
2016-06-30  9:50     ` Christian Couder
2016-06-27 18:24 ` [PATCH v8 34/41] apply: add 'be_silent' variable to 'struct apply_state' Christian Couder
2016-07-26 19:34   ` Junio C Hamano
2016-06-27 18:24 ` [PATCH v8 35/41] apply: make 'be_silent' incompatible with 'apply_verbosely' Christian Couder
2016-07-26 19:37   ` Junio C Hamano
2016-06-27 18:24 ` [PATCH v8 36/41] apply: don't print on stdout when be_silent is set Christian Couder
2016-07-26 19:41   ` Junio C Hamano
2016-06-27 18:24 ` [PATCH v8 37/41] usage: add set_warn_routine() Christian Couder
2016-06-27 18:24 ` [PATCH v8 38/41] usage: add get_error_routine() and get_warn_routine() Christian Couder
2016-06-27 18:24 ` [PATCH v8 39/41] apply: change error_routine when be_silent is set Christian Couder
2016-06-27 18:24 ` [PATCH v8 40/41] builtin/am: use apply api in run_apply() Christian Couder
2016-07-26 19:48   ` Junio C Hamano
2016-06-27 18:24 ` [PATCH v8 41/41] apply: use error_errno() where possible Christian Couder
2016-06-27 18:33 ` [PATCH v8 00/41] libify apply and use lib in am, part 2 Christian Couder
2016-07-26 21:18 ` Junio C Hamano
2016-07-27  6:15   ` Christian Couder
2016-07-27 16:24     ` Junio C Hamano
2016-07-30 17:39       ` Christian Couder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160627182429.31550-16-chriscool@tuxfamily.org \
    --to=christian.couder@gmail.com \
    --cc=avarab@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j6t@kdbg.org \
    --cc=karsten.blees@gmail.com \
    --cc=l.s.r@web.de \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    --cc=ramsay@ramsayjones.plus.com \
    --cc=sbeller@google.com \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.