From: Johannes Schindelin Date: Thu, 4 Feb 2021 20:07:50 +0000 (+0000) Subject: range-diff: libify the read_patches() function again X-Git-Tag: v2.31.0-rc0~42^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a2d474adf32c4ea2585b2c6109c356523124e1f9;p=thirdparty%2Fgit.git range-diff: libify the read_patches() function again In library functions, we do want to avoid the (simple, but rather final) `die()` calls, instead returning with a value indicating an error. Let's do exactly that in the code introduced in b66885a30cb8 (range-diff: add section header instead of diff header, 2019-07-11) that wants to error out if a diff header could not be parsed. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/range-diff.c b/range-diff.c index a4d7a90dde..a83c386ffc 100644 --- a/range-diff.c +++ b/range-diff.c @@ -135,9 +135,16 @@ static int read_patches(const char *range, struct string_list *list, orig_len = len; len = parse_git_diff_header(&root, &linenr, 0, line, len, size, &patch); - if (len < 0) - die(_("could not parse git header '%.*s'"), - orig_len, line); + if (len < 0) { + error(_("could not parse git header '%.*s'"), + orig_len, line); + free(util); + free(current_filename); + string_list_clear(list, 1); + strbuf_release(&buf); + strbuf_release(&contents); + return -1; + } strbuf_addstr(&buf, " ## "); if (patch.is_new > 0) strbuf_addf(&buf, "%s (new)", patch.new_name);