All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Sixt <j.sixt@viscovery.net>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	git@vger.kernel.org
Subject: Re: Funny: git -p submodule summary
Date: Mon, 12 Jan 2009 11:59:04 +0100	[thread overview]
Message-ID: <496B2278.9050905@viscovery.net> (raw)
In-Reply-To: <20090111112222.GA29656@coredump.intra.peff.net>

From: Johannes Sixt <j6t@kdbg.org>

Jeff King schrieb:
> On Fri, Jan 09, 2009 at 11:36:41AM +0100, Johannes Sixt wrote:
> 
>> I'll test your other patch (that replaces the execvp in git.c by
>> run_command).
> 
> There is something funny with it that I have not diagnosed: aliases are
> broken, and "git foobar" does not return an error. Presumably just
> checking the "we did not exec succesfully" case is not triggering
> properly.  However, I think the right solution is actually to refactor
> git.c to figure out ahead of time whether we have a builtin, external,
> or alias. I can work on that, but not tonight, as my git-time is up for
> now.
> 
> But other than that, did it work for you on Windows?

It passed the test suite. This should already work better on Windows,
because we already *do* look-up the program, and exit from
mingw_spawnvpe() before the equivalent of fork+exec happens.

> However, here is a 4-patch series that handles the separate signal
> delivery problem. It should fix the "^C makes funny things happen"
> problems you were seeing. Please test and let me know how it works on
> Windows.

It does help a bit. The interesting thing is that the only case where I
can now reproduces the unwanted behavior with the unpatched version is
when all output was completely read by 'less' and git already waits in
wait_for_pager(), such as in 'git show'. But Ctrl-C'ing a 'git log -p'
works as expected even without these patches. With the patches, the 'git
show' case now works as well.

> The patches are:
>   1/4: Makefile: clean up TEST_PROGRAMS definition
>   2/4: chain kill signals for cleanup functions
>   3/4: refactor signal handling for cleanup functions
>   4/4: pager: do wait_for_pager on signal death

But we need to insert the patch below *before* 2/4. The test case needs a
change, too,(exit code on Windows is 3, not 130) but I'll keep that in my
repository, like with all other Windows related test suite changes.

-- Hannes

-- 8< --
From: Johannes Sixt <j6t@kdbg.org>
Subject: Windows: Fix signal numbers

We had defined some SIG_FOO macros that appear in the code, but that are
not supported on Windows, in order to make the code compile.  But a
subsequent change will assert that a signal number is non-zero.  We now
use the signal numbers that are commonly used on POSIX systems.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 compat/mingw.h |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/compat/mingw.h b/compat/mingw.h
index 4f275cb..a255898 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -21,12 +21,12 @@ typedef int pid_t;
 #define WEXITSTATUS(x) ((x) & 0xff)
 #define WIFSIGNALED(x) ((unsigned)(x) > 259)

-#define SIGKILL 0
-#define SIGCHLD 0
-#define SIGPIPE 0
-#define SIGHUP 0
-#define SIGQUIT 0
-#define SIGALRM 100
+#define SIGHUP 1
+#define SIGQUIT 3
+#define SIGKILL 9
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGCHLD 17

 #define F_GETFD 1
 #define F_SETFD 2
-- 
1.6.1.rc4.959.gcece.dirty

  parent reply	other threads:[~2009-01-12 11:00 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             ` Johannes Sixt [this message]
2009-01-12 11:21               ` Funny: git -p submodule summary 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   ` [RFC/PATCH 0/3] fix "Funny: git -p submodule summary" Johannes Sixt
2009-01-27 12:23     ` 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=496B2278.9050905@viscovery.net \
    --to=j.sixt@viscovery.net \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.