From: Johannes Sixt <j6t@kdbg.org>
To: Jeff King <peff@peff.net>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>, git@vger.kernel.org
Subject: Re: [RFC/PATCH 0/3] fix "Funny: git -p submodule summary"
Date: Tue, 27 Jan 2009 11:06:40 +0100 [thread overview]
Message-ID: <497EDCB0.8080806@kdbg.org> (raw)
In-Reply-To: <20090127062512.GA10487@coredump.intra.peff.net>
Jeff King schrieb:
> JSixt, there are some tweaks to the Windows code to report back the exec
> error. They look obviously correct to me, but I have no box to test
> (even compile test) them on.
Generally, I like this series, in particular since it does not degrade
performance on Windows ;)
But the following is needed in addition.
- Note that run_command returns the negated exit code, therefore, we
must negate it again in the call to exit(). Without this t6030 failed.
(And negative exit codes causes grief on Windows because bash for some
reason does not recognize that as failure.)
- The close() calls can overwrite errno. And since fork() should not
(cannot?) fail with ENOENT, it's safe to remove the #ifdef __MINGW32__.
-- Hannes
diff --git a/git.c b/git.c
index 79a836c..35635d1 100644
--- a/git.c
+++ b/git.c
@@ -414,7 +414,7 @@ static void execv_dashed_external
*/
status = run_command_v_opt(argv, 0);
if (status != -ERR_RUN_COMMAND_EXEC)
- exit(status);
+ exit(-status);
errno = ENOENT; /* as if we called execvp */
argv[0] = tmp;
diff --git a/run-command.c b/run-command.c
index 2437798..b05c734 100644
--- a/run-command.c
+++ b/run-command.c
@@ -187,27 +187,24 @@ int start_command
if (s2 >= 0)
dup2(s2, 2), close(s2);
#endif
if (cmd->pid < 0) {
+ int err = errno;
if (need_in)
close_pair(fdin);
else if (cmd->in)
close(cmd->in);
if (need_out)
close_pair(fdout);
else if (cmd->out)
close(cmd->out);
if (need_err)
close_pair(fderr);
-#ifndef __MINGW32__
- return -ERR_RUN_COMMAND_FORK;
-#else
- return errno == ENOENT ?
+ return err == ENOENT ?
-ERR_RUN_COMMAND_EXEC :
-ERR_RUN_COMMAND_FORK;
-#endif
}
if (need_in)
close(fdin[0]);
else if (cmd->in)
next prev parent reply other threads:[~2009-01-27 10:08 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-08 15:07 Funny: git -p submodule summary Johannes Schindelin
2009-01-08 15:30 ` Johannes Schindelin
2009-01-09 8:38 ` Jeff King
2009-01-09 9:22 ` Jeff King
2009-01-09 9:48 ` Jeff King
2009-01-09 10:09 ` Johannes Sixt
2009-01-09 10:13 ` Jeff King
2009-01-09 10:36 ` Johannes Sixt
2009-01-09 10:47 ` Jeff King
2009-01-11 11:22 ` Jeff King
2009-01-11 11:25 ` [PATCH 1/4] Makefile: clean up TEST_PROGRAMS definition Jeff King
2009-01-11 11:32 ` [PATCH 2/4] chain kill signals for cleanup functions Jeff King
2009-01-11 11:40 ` Jeff King
2009-01-11 11:36 ` [PATCH 3/4] refactor signal handling " Jeff King
2009-01-11 11:36 ` [PATCH 4/4] pager: do wait_for_pager on signal death Jeff King
2009-01-11 21:13 ` Junio C Hamano
2009-01-12 10:59 ` Funny: git -p submodule summary Johannes Sixt
2009-01-12 11:21 ` Jeff King
2009-01-12 12:00 ` Johannes Sixt
2009-01-12 12:03 ` Jeff King
2009-01-12 12:19 ` Johannes Sixt
2009-01-09 9:30 ` Junio C Hamano
2009-01-09 9:33 ` Jeff King
2009-01-09 9:38 ` Junio C Hamano
2009-01-27 6:25 ` [RFC/PATCH 0/3] fix "Funny: git -p submodule summary" Jeff King
2009-01-27 6:26 ` [RFC/PATCH 1/3] git: s/run_command/run_builtin/ Jeff King
2009-01-27 6:27 ` [RFC/PATCH 2/3] run_command: handle missing command errors more gracefully Jeff King
2009-01-27 6:27 ` [RFC/PATCH 3/3] git: use run_command to execute dashed externals Jeff King
2009-01-27 10:06 ` Johannes Sixt [this message]
2009-01-27 12:23 ` [RFC/PATCH 0/3] fix "Funny: git -p submodule summary" Jeff King
2009-01-27 12:46 ` Johannes Sixt
2009-01-28 7:17 ` Jeff King
2009-01-27 16:31 ` Johannes Schindelin
2009-01-28 7:30 ` Jeff King
2009-01-28 7:33 ` [PATCHv2 1/4] git: s/run_command/run_builtin/ Jeff King
2009-01-28 7:35 ` [PATCHv2 2/4] run_command: handle missing command errors more gracefully Jeff King
2009-01-28 7:36 ` [PATCHv2 3/4] run-command: help callers distinguish errors Jeff King
2009-01-28 7:43 ` Jeff King
2009-01-28 7:47 ` Jeff King
2009-01-28 7:38 ` [PATCHv2 4/4] git: use run_command to execute dashed externals Jeff King
2009-01-28 7:54 ` [RFC/PATCH 0/3] fix "Funny: git -p submodule summary" 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=497EDCB0.8080806@kdbg.org \
--to=j6t@kdbg.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/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.
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 NNTP newsgroup(s).