Previously, on MS-Windows this function converted slash characters in
file names into backslashes. It no longer does that.
+** GUI sessions now treat SIGINT like Posix platforms do.
+The effect of delivering a Ctrl-C (SIGINT) signal to a GUI Emacs on
+MS-Windows is now the same as on Posix platforms -- Emacs saves the
+session and exits. In particular, this will happen if you start
+emacs.exe from the Windows shell, then type Ctrl-C into that shell's
+window.
+
\f
* Installation Changes in Emacs 25.1
#undef HAVE_RINT
#endif /* HPUX */
+#ifdef WINDOWSNT
+# define DEV_TTY "CONOUT$"
+#endif
+
#ifdef MSDOS
#ifndef __DJGPP__
You lose; /* Emacs for DOS must be compiled with DJGPP */
#include <string.h>
#include <stdlib.h>
+#ifndef DEV_TTY
+# define DEV_TTY "/dev/tty"
+#endif
+
+
#if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */
#define NO_INLINE __attribute__((noinline))
#else
handle_interrupt_signal (int sig)
{
/* See if we have an active terminal on our controlling tty. */
- struct terminal *terminal = get_named_terminal ("/dev/tty");
+ struct terminal *terminal = get_named_terminal (DEV_TTY);
if (!terminal)
{
/* If there are no frames there, let's pretend that we are a
/* The name of the default console device. */
#ifdef WINDOWSNT
-#define DEV_TTY "CONOUT$"
#include "w32term.h"
-#else
-#define DEV_TTY "/dev/tty"
#endif
static void tty_set_scroll_region (struct frame *f, int start, int stop);
/* SIGCHLD is needed for supporting subprocesses, see sys_kill
below. SIGALRM and SIGPROF are used by setitimer. All the
others are the only ones supported by the MS runtime. */
- if (!(sig == SIGCHLD || sig == SIGSEGV || sig == SIGILL
+ if (!(sig == SIGINT || sig == SIGSEGV || sig == SIGILL
|| sig == SIGFPE || sig == SIGABRT || sig == SIGTERM
- || sig == SIGALRM || sig == SIGPROF))
+ || sig == SIGCHLD || sig == SIGALRM || sig == SIGPROF))
{
errno = EINVAL;
return SIG_ERR;