comparison 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
comparison
equal deleted inserted replaced
612:ff0d9e7facba 613:023b83f4e54b
140 140
141 141
142 static void 142 static void
143 init_async_timeouts (void) 143 init_async_timeouts (void)
144 { 144 {
145 signal (SIGALRM, alarm_signal); 145 set_timeout_signal (SIGALRM, alarm_signal);
146 async_timer_suppress_count = 0; 146 async_timer_suppress_count = 0;
147 } 147 }
148 148
149 /* Turn off async timeouts. */ 149 /* Turn off async timeouts. */
150 150
170 async_timer_suppress_count--; 170 async_timer_suppress_count--;
171 if (async_timer_suppress_count == 0) 171 if (async_timer_suppress_count == 0)
172 { 172 {
173 /* Some callers turn off async timeouts and then use the alarm 173 /* Some callers turn off async timeouts and then use the alarm
174 for their own purposes; so reinitialize everything. */ 174 for their own purposes; so reinitialize everything. */
175 signal (SIGALRM, alarm_signal); 175 set_timeout_signal (SIGALRM, alarm_signal);
176 reset_interval_timer (); 176 reset_interval_timer ();
177 } 177 }
178 } 178 }
179 179
180 static void 180 static void
294 #endif 294 #endif
295 } 295 }
296 296
297 #endif /* HAVE_SETITIMER */ 297 #endif /* HAVE_SETITIMER */
298 298
299 signal_handler_t
300 set_timeout_signal (int signal_number, signal_handler_t action)
301 {
302 #ifdef CYGWIN_BROKEN_SIGNALS
303 return mswindows_sigset (signal_number, action);
304 #else
305 return EMACS_SIGNAL (signal_number, action);
306 #endif
307 }
299 308
300 DEFUN ("waiting-for-user-input-p", Fwaiting_for_user_input_p, 0, 0, 0, /* 309 DEFUN ("waiting-for-user-input-p", Fwaiting_for_user_input_p, 0, 0, 0, /*
301 Return non-nil if XEmacs is waiting for input from the user. 310 Return non-nil if XEmacs is waiting for input from the user.
302 This is intended for use by asynchronous timeout callbacks and by 311 This is intended for use by asynchronous timeout callbacks and by
303 asynchronous process output filters and sentinels (not yet implemented 312 asynchronous process output filters and sentinels (not yet implemented
730 different process after having been backgrounded under a 739 different process after having been backgrounded under a
731 non-job-control shell! */ 740 non-job-control shell! */
732 static void 741 static void
733 handle_signal_if_fatal (int signo) 742 handle_signal_if_fatal (int signo)
734 { 743 {
735 if (signal (signo, fatal_error_signal) == SIG_IGN) 744 if (EMACS_SIGNAL (signo, fatal_error_signal) == SIG_IGN)
736 signal (signo, SIG_IGN); 745 EMACS_SIGNAL (signo, SIG_IGN);
737 } 746 }
738 747
739 void 748 void
740 init_signals_very_early (void) 749 init_signals_very_early (void)
741 { 750 {
844 handle_signal_if_fatal (SIGMSG); 853 handle_signal_if_fatal (SIGMSG);
845 #endif /* AIX */ 854 #endif /* AIX */
846 855
847 #ifdef SIGDANGER 856 #ifdef SIGDANGER
848 /* This just means available memory is getting low. */ 857 /* This just means available memory is getting low. */
849 signal (SIGDANGER, memory_warning_signal); 858 EMACS_SIGNAL (SIGDANGER, memory_warning_signal);
850 #endif 859 #endif
851 } 860 }
852 861
853 void 862 void
854 syms_of_signal (void) 863 syms_of_signal (void)
859 void 868 void
860 init_interrupts_late (void) 869 init_interrupts_late (void)
861 { 870 {
862 if (!noninteractive) 871 if (!noninteractive)
863 { 872 {
864 signal (SIGINT, interrupt_signal); 873 EMACS_SIGNAL (SIGINT, interrupt_signal);
865 #ifdef HAVE_TERMIO 874 #ifdef HAVE_TERMIO
866 /* On systems with TERMIO, C-g is set up for both SIGINT and SIGQUIT 875 /* On systems with TERMIO, C-g is set up for both SIGINT and SIGQUIT
867 and we can't tell which one it will give us. */ 876 and we can't tell which one it will give us. */
868 signal (SIGQUIT, interrupt_signal); 877 EMACS_SIGNAL (SIGQUIT, interrupt_signal);
869 #endif /* HAVE_TERMIO */ 878 #endif /* HAVE_TERMIO */
870 init_async_timeouts (); 879 init_async_timeouts ();
871 #ifdef SIGIO 880 #ifdef SIGIO
872 signal (SIGIO, input_available_signal); 881 EMACS_SIGNAL (SIGIO, input_available_signal);
873 # ifdef SIGPOLL /* XPG5 */ 882 # ifdef SIGPOLL /* XPG5 */
874 /* Some systems (e.g. Motorola SVR4) losingly have different 883 /* Some systems (e.g. Motorola SVR4) losingly have different
875 values for SIGIO and SIGPOLL, and send SIGPOLL instead of 884 values for SIGIO and SIGPOLL, and send SIGPOLL instead of
876 SIGIO. On those same systems, an uncaught SIGPOLL kills the 885 SIGIO. On those same systems, an uncaught SIGPOLL kills the
877 process. */ 886 process. */
878 signal (SIGPOLL, input_available_signal); 887 EMACS_SIGNAL (SIGPOLL, input_available_signal);
879 # endif 888 # endif
880 #elif !defined (DONT_POLL_FOR_QUIT) 889 #elif !defined (DONT_POLL_FOR_QUIT)
881 init_poll_for_quit (); 890 init_poll_for_quit ();
882 #endif 891 #endif
883 } 892 }