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 <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Feb 4, 2021 at 20:07 UTC a2d474adf32c4ea2585b2c6109c356523124e1f9
1 file changed +10 -3
range-diff.c
+10 -3
@@ -135,9 +135,16 @@ static int read_patches(const char *range, struct string_list *list,
135 orig_len = len;
136 len = parse_git_diff_header(&root, &linenr, 0, line,
137 len, size, &patch);
138 - if (len < 0)
139 - die(_("could not parse git header '%.*s'"),
140 - orig_len, line);
138 + if (len < 0) {
139 + error(_("could not parse git header '%.*s'"),
140 + orig_len, line);
141 + free(util);
142 + free(current_filename);
143 + string_list_clear(list, 1);
144 + strbuf_release(&buf);
145 + strbuf_release(&contents);
146 + return -1;
147 + }
148 strbuf_addstr(&buf, " ## ");
149 if (patch.is_new > 0)
150 strbuf_addf(&buf, "%s (new)", patch.new_name);