]> git.ipfire.org Git - thirdparty/git.git/commitdiff
range-diff: libify the read_patches() function again
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 4 Feb 2021 20:07:50 +0000 (20:07 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Feb 2021 01:16:42 +0000 (17:16 -0800)
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>
range-diff.c

index a4d7a90ddeaa170da48df51cbe79b8537be81c1c..a83c386ffc54f949bdc8b50e2b28335ac98c7dbb 100644 (file)
@@ -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);