diff src/signal.c @ 613:023b83f4e54b

[xemacs-hg @ 2001-06-10 10:42:16 by ben] ------ signal-code changes ------ data.c, device-tty.c, emacs.c, floatfns.c, linuxplay.c, nas.c, process-unix.c, signal.c, sunplay.c, sysdep.c, syssignal.h: use EMACS_SIGNAL everywhere instead of playing preprocessing games with signal(). s\windowsnt.h, s\mingw32.h, syssignal.h: Remove mswindows signal code from s+m headers and move to syssignal.h as one of the five ways of signal handling, instead of playing preprocessing games. fileio.c, sysdep.c: Rename sys_do_signal to qxe_reliable_signal. signal.c, process-unix.c, profile.c: Create set_timeout_signal(); use instead of just EMACS_SIGNAL to establish a signal handler on a timeout signal; this does special things under Cygwin. nt.c: Eliminate term_ntproc(), which is blank; used as a SIGABRT handler, which was wrong anyway. nt.c, win32.c: Move signal code from nt.c to win32.c, since Cygwin needs it too when dealing with timeout signals. s\cygwin32.h: Define CYGWIN_BROKEN_SIGNALS. ------ other changes ------ s\mingw32.h: Fix problems with NOT_C_CODE being in the wrong place and excluding defines needed when building Makefile.in.in. filelock.c, mule-canna.c, mule-ccl.c, mule-ccl.h, ralloc.c, unexalpha.c, unexapollo.c, unexcw.c, unexelfsgi.c, unexnt.c, unexsni.c, s\aix3-1.h, s\bsd4-1.h, s\bsd4-2.h, s\bsd4-3.h, s\cxux.h, s\cygwin32.h, s\dgux.h, s\dgux5-4r2.h, s\dgux5-4r3.h, s\dgux5-4r4.h, s\ewsux5r4.h, s\gnu.h, s\hpux.h, s\iris3-5.h, s\iris3-6.h, s\irix3-3.h, s\linux.h, s\mingw32.h, s\newsos5.h, s\nextstep.h, s\ptx.h, s\riscix1-1.h, s\riscix1-2.h, s\rtu.h, s\sco4.h, s\sco5.h, s\template.h, s\ultrix.h, s\umax.h, s\umips.h, s\unipl5-0.h, s\unipl5-2.h, s\usg5-0.h, s\usg5-2-2.h, s\usg5-2.h, s\usg5-3.h, s\usg5-4.h, s\windowsnt.h, s\xenix.h: Rename 'GNU Emacs' to XEmacs in the copyright and comments. nas.c: Stylistic cleanup. Avoid preprocessing games with names such as play_sound_file. ------ signal-code changes ------ data.c, device-tty.c, emacs.c, floatfns.c, linuxplay.c, nas.c, process-unix.c, signal.c, sunplay.c, sysdep.c, syssignal.h: use EMACS_SIGNAL everywhere instead of playing preprocessing games with signal(). s\windowsnt.h, s\mingw32.h, syssignal.h: Remove mswindows signal code from s+m headers and move to syssignal.h as one of the five ways of signal handling, instead of playing preprocessing games. fileio.c, sysdep.c: Rename sys_do_signal to qxe_reliable_signal. signal.c, process-unix.c, profile.c: Create set_timeout_signal(); use instead of just EMACS_SIGNAL to establish a signal handler on a timeout signal; this does special things under Cygwin. nt.c: Eliminate term_ntproc(), which is blank; used as a SIGABRT handler, which was wrong anyway. nt.c, win32.c: Move signal code from nt.c to win32.c, since Cygwin needs it too when dealing with timeout signals. s\cygwin32.h: Define CYGWIN_BROKEN_SIGNALS. ------ other changes ------ s\mingw32.h: Fix problems with NOT_C_CODE being in the wrong place and excluding defines needed when building Makefile.in.in. filelock.c, mule-canna.c, mule-ccl.c, mule-ccl.h, ralloc.c, unexalpha.c, unexapollo.c, unexcw.c, unexelfsgi.c, unexnt.c, unexsni.c, s\aix3-1.h, s\bsd4-1.h, s\bsd4-2.h, s\bsd4-3.h, s\cxux.h, s\cygwin32.h, s\dgux.h, s\dgux5-4r2.h, s\dgux5-4r3.h, s\dgux5-4r4.h, s\ewsux5r4.h, s\gnu.h, s\hpux.h, s\iris3-5.h, s\iris3-6.h, s\irix3-3.h, s\linux.h, s\mingw32.h, s\newsos5.h, s\nextstep.h, s\ptx.h, s\riscix1-1.h, s\riscix1-2.h, s\rtu.h, s\sco4.h, s\sco5.h, s\template.h, s\ultrix.h, s\umax.h, s\umips.h, s\unipl5-0.h, s\unipl5-2.h, s\usg5-0.h, s\usg5-2-2.h, s\usg5-2.h, s\usg5-3.h, s\usg5-4.h, s\windowsnt.h, s\xenix.h: Rename 'GNU Emacs' to XEmacs in the copyright and comments. nas.c: Stylistic cleanup. Avoid preprocessing games with names such as play_sound_file. xemacs-faq.texi: Update sections on Windows and MacOS availability. alist.el, apropos.el, autoload.el, bytecomp.el, cl-compat.el, cl-extra.el, cl-macs.el, cl-seq.el, cl.el, cmdloop.el, cus-edit.el, derived.el, gpm.el, itimer.el, lisp-mode.el, shadow.el, version.el, wid-browse.el: Rename 'GNU Emacs' to XEmacs in the copyright. Fix other references to GNU Emacs that should be XEmacs or just Emacs. files.el: Fix warning. simple.el: transpose-line-up/down will now move the region up or down by a line if active. cvtmail.c, fakemail.c, gnuserv.c, gnuserv.h, gnuslib.c, make-msgfile.c, make-path.c, pop.c, pop.h, profile.c, tcp.c: Rename 'GNU Emacs' to XEmacs in the copyright. Fix comments in similar ways. digest-doc.c, sorted-doc.c: Fix program and author name to reflect XEmacs.
author ben
date Sun, 10 Jun 2001 10:42:39 +0000
parents 38db05db9cb5
children af57a77cbc92
line wrap: on
line diff
--- a/src/signal.c	Sat Jun 09 09:02:04 2001 +0000
+++ b/src/signal.c	Sun Jun 10 10:42:39 2001 +0000
@@ -142,7 +142,7 @@
 static void
 init_async_timeouts (void)
 {
-  signal (SIGALRM, alarm_signal);
+  set_timeout_signal (SIGALRM, alarm_signal);
   async_timer_suppress_count = 0;
 }
 
@@ -172,7 +172,7 @@
     {
       /* Some callers turn off async timeouts and then use the alarm
 	 for their own purposes; so reinitialize everything. */
-      signal (SIGALRM, alarm_signal);
+      set_timeout_signal (SIGALRM, alarm_signal);
       reset_interval_timer ();
     }
 }
@@ -296,6 +296,15 @@
 
 #endif /* HAVE_SETITIMER */
 
+signal_handler_t
+set_timeout_signal (int signal_number, signal_handler_t action)
+{
+#ifdef CYGWIN_BROKEN_SIGNALS
+  return mswindows_sigset (signal_number, action);
+#else
+  return EMACS_SIGNAL (signal_number, action);
+#endif
+}
 
 DEFUN ("waiting-for-user-input-p", Fwaiting_for_user_input_p, 0, 0, 0, /*
 Return non-nil if XEmacs is waiting for input from the user.
@@ -732,8 +741,8 @@
 static void
 handle_signal_if_fatal (int signo)
 {
-  if (signal (signo,  fatal_error_signal) == SIG_IGN)
-    signal (signo, SIG_IGN);
+  if (EMACS_SIGNAL (signo,  fatal_error_signal) == SIG_IGN)
+    EMACS_SIGNAL (signo, SIG_IGN);
 }
 
 void
@@ -846,7 +855,7 @@
 
 #ifdef SIGDANGER
   /* This just means available memory is getting low.  */
-  signal (SIGDANGER, memory_warning_signal);
+  EMACS_SIGNAL (SIGDANGER, memory_warning_signal);
 #endif
 }
 
@@ -861,21 +870,21 @@
 {
   if (!noninteractive)
     {
-      signal (SIGINT, interrupt_signal);
+      EMACS_SIGNAL (SIGINT, interrupt_signal);
 #ifdef HAVE_TERMIO
       /* On  systems with TERMIO, C-g is set up for both SIGINT and SIGQUIT
 	 and we can't tell which one it will give us.  */
-      signal (SIGQUIT, interrupt_signal);
+      EMACS_SIGNAL (SIGQUIT, interrupt_signal);
 #endif /* HAVE_TERMIO */
       init_async_timeouts ();
 #ifdef SIGIO
-      signal (SIGIO, input_available_signal);
+      EMACS_SIGNAL (SIGIO, input_available_signal);
 # ifdef SIGPOLL /* XPG5 */
       /* Some systems (e.g. Motorola SVR4) losingly have different
 	 values for SIGIO and SIGPOLL, and send SIGPOLL instead of
 	 SIGIO.  On those same systems, an uncaught SIGPOLL kills the
 	 process. */
-      signal (SIGPOLL, input_available_signal);
+      EMACS_SIGNAL (SIGPOLL, input_available_signal);
 # endif
 #elif !defined (DONT_POLL_FOR_QUIT)
       init_poll_for_quit ();