From: David Aguilar <davvid@gmail.com>
To: Git Mailing List <git@vger.kernel.org>
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Johannes Schindelin" <Johannes.Schindelin@gmx.de>
Subject: [PATCH v6 3/5] difftool: avoid returning -1 to cmd_main() from run_dir_diff()
Date: Thu, 30 Sep 2021 10:01:44 -0700 [thread overview]
Message-ID: <20210930170146.61489-3-davvid@gmail.com> (raw)
In-Reply-To: <20210930170146.61489-1-davvid@gmail.com>
difftool was forwarding the -1 result from error() to cmd_main(), which
is implementation-defined since it is outside of the 0-255 range
specified by POSIX for program exit codes.
Stop assigning the result of error() to `ret`. Assign a value of 1
whenever internal errors are detected instead.
Signed-off-by: David Aguilar <davvid@gmail.com>
---
This patch addresses the note from Ævar about returning -1 to cmd_main().
builtin/difftool.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/builtin/difftool.c b/builtin/difftool.c
index fdaaa86bff..e419bd3cd1 100644
--- a/builtin/difftool.c
+++ b/builtin/difftool.c
@@ -447,7 +447,8 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
if (lmode && status != 'C') {
if (checkout_path(lmode, &loid, src_path, &lstate)) {
- ret = error("could not write '%s'", src_path);
+ ret = 1;
+ error("could not write '%s'", src_path);
goto finish;
}
}
@@ -468,8 +469,8 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
if (!use_wt_file(workdir, dst_path, &roid)) {
if (checkout_path(rmode, &roid, dst_path,
&rstate)) {
- ret = error("could not write '%s'",
- dst_path);
+ ret = 1;
+ error("could not write '%s'", dst_path);
goto finish;
}
} else if (!is_null_oid(&roid)) {
@@ -487,15 +488,16 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
add_path(&rdir, rdir_len, dst_path);
if (ensure_leading_directories(rdir.buf)) {
- ret = error("could not create "
- "directory for '%s'",
- dst_path);
+ ret = 1;
+ error("could not create directory for '%s'",
+ dst_path);
goto finish;
}
add_path(&wtdir, wtdir_len, dst_path);
if (symlinks) {
if (symlink(wtdir.buf, rdir.buf)) {
- ret = error_errno("could not symlink '%s' to '%s'", wtdir.buf, rdir.buf);
+ ret = 1;
+ error_errno("could not symlink '%s' to '%s'", wtdir.buf, rdir.buf);
goto finish;
}
} else {
@@ -504,7 +506,8 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
st.st_mode = 0644;
if (copy_file(rdir.buf, wtdir.buf,
st.st_mode)) {
- ret = error("could not copy '%s' to '%s'", wtdir.buf, rdir.buf);
+ ret = 1;
+ error("could not copy '%s' to '%s'", wtdir.buf, rdir.buf);
goto finish;
}
}
@@ -515,7 +518,8 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
fclose(fp);
fp = NULL;
if (finish_command(child)) {
- ret = error("error occurred running diff --raw");
+ ret = 1;
+ error("error occurred running diff --raw");
goto finish;
}
--
2.33.0.887.g8db6ae3373
next prev parent reply other threads:[~2021-09-30 17:02 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-30 17:01 [PATCH v6 1/5] difftool: create a tmpdir path without repeated slashes David Aguilar
2021-09-30 17:01 ` [PATCH v6 2/5] difftool: add a missing space to the run_dir_diff() comments David Aguilar
2021-09-30 17:01 ` David Aguilar [this message]
2021-09-30 22:06 ` [PATCH v6 3/5] difftool: avoid returning -1 to cmd_main() from run_dir_diff() Junio C Hamano
2021-09-30 23:25 ` David Aguilar
2021-10-01 0:12 ` Junio C Hamano
2021-09-30 17:01 ` [PATCH v6 4/5] difftool: refactor dir-diff to write files using a helper function David Aguilar
2021-09-30 22:17 ` Junio C Hamano
2021-09-30 23:34 ` David Aguilar
2021-09-30 17:01 ` [PATCH v6 5/5] difftool: remove an unnecessary call to strbuf_release() David Aguilar
2021-09-30 21:45 ` [PATCH v6 1/5] difftool: create a tmpdir path without repeated slashes Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210930170146.61489-3-davvid@gmail.com \
--to=davvid@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).