From: Miriam Rubio Date: Wed, 26 Feb 2020 10:14:20 GMT Subject: [PATCH 01/10] bisect--helper: introduce new `write_in_file()` function Message-ID: <20200226101429.81327-2-mirucam@gmail.com> In-Reply-To: <20200226101429.81327-1-mirucam@gmail.com> Let's refactor code adding a new `write_in_file()` function that opens a file for writing a message and closes it. This removes some duplicated code and makes the code simpler, clearer and easier to understand. Mentored-by: Christian Couder Mentored-by: Johannes Schindelin Signed-off-by: Miriam Rubio --- builtin/bisect--helper.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c index c1c40b516d..ee1be630da 100644 --- a/builtin/bisect--helper.c +++ b/builtin/bisect--helper.c @@ -74,6 +74,19 @@ static int one_of(const char *term, ...) return res; } +static int write_in_file(const char *filepath, const char *content, int append) +{ + FILE *fp = NULL; + const char *mode = append ? "a" : "w"; + + fp = fopen(filepath, mode); + if (!fp) + return error_errno(_("could not open the file '%s'"), filepath); + if (!fprintf(fp, "%s\n", content)) + return error_errno(_("could not write in file '%s'"), filepath); + return fclose(fp); +} + static int check_term_format(const char *term, const char *orig_term) { int res; @@ -104,7 +117,7 @@ static int check_term_format(const char *term, const char *orig_term) static int write_terms(const char *bad, const char *good) { - FILE *fp = NULL; + char *content = xstrfmt("%s\n%s", bad, good); int res; if (!strcmp(bad, good)) @@ -113,12 +126,9 @@ static int write_terms(const char *bad, const char *good) if (check_term_format(bad, "bad") || check_term_format(good, "good")) return -1; - fp = fopen(git_path_bisect_terms(), "w"); - if (!fp) - return error_errno(_("could not open the file BISECT_TERMS")); + res = write_in_file(git_path_bisect_terms(), content, 0); + free(content); - res = fprintf(fp, "%s\n%s\n", bad, good); - res |= fclose(fp); return (res < 0) ? -1 : 0; } -- 2.25.0