bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#7225: 23.2.50; [PATCH] C-c C-c doesn't work in shell mode (Cygwin)


From: Eli Zaretskii
Subject: bug#7225: 23.2.50; [PATCH] C-c C-c doesn't work in shell mode (Cygwin)
Date: Sat, 16 Oct 2010 09:32:32 +0200

> Date: Fri, 15 Oct 2010 19:36:36 -0400
> From: Ken Brown <kbrown@cornell.edu>
> Cc: 
> 
> I think I can fix a longstanding bug in the Cygwin build of emacs, in 
> which C-c C-c doesn't work to interrupt a process in shell mode.  Since 
> the problem doesn't seem to be in the bug database, I'm reporting it 
> first for documentation purposes, and then I'll give the proposed fix. 
> To reproduce:
> 
> emacs -Q
> M-x shell
> cat
> C-c C-c
> (The cat process doesn't get killed.)

Is the reason for this known?  It looks like the `kill' syscall isn't
doing its job, but if that's so, there should be a good reason for
that.

> The following patch seems to fix it:
> 
> === modified file 'src/s/cygwin.h'
> --- src/s/cygwin.h      2010-01-13 08:35:10 +0000
> +++ src/s/cygwin.h      2010-10-15 22:20:39 +0000
> @@ -132,6 +132,9 @@
>      returns ENOSYS.  A workaround is to set G_SLICE=always-malloc. */
>   #define G_SLICE_ALWAYS_MALLOC
> 
> +/* Send signals to subprocesses by "typing" special chars at them.  */
> +#define SIGNALS_VIA_CHARACTERS
> +
>   /* the end */
> 
>   /* arch-tag: 5ae7ba00-83b0-4ab3-806a-3e845779191b
> 
> I'd like to apply this to the emacs-23 branch.  Does anyone see a 
> problem with it or anything further I should test?

Did you test it with a subprogram that puts its stdin into a mode
where (speaking in termios terms) the ISIG flag in c_lflag passed to
tcsetattr is unset?

In any case, I wouldn't recommend to take this workaround unless we
understand why this doesn't work without it.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]