[PATCH v2 2/6] range-diff: libify the read_patches() function again
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Feb 5, 2021, 14:46 UTC
- Message-ID
- <99e466ef32d77f45de5c3aae5f44bea017b622cf.1612536373.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.869.v2.git.1612536373.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
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 <johannes.schindelin@gmx.de> --- range-diff.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/range-diff.c b/range-diff.c index 9972808fe4cf..8844359d416f 100644 --- a/range-diff.c +++ b/range-diff.c @@ -136,9 +136,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);
-- gitgitgadget