From: Paul Eggert Date: Fri, 7 Sep 2012 08:46:44 +0000 (-0700) Subject: More signal-handler cleanup. X-Git-Tag: emacs-24.2.90~381 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1a4f1e9b4805cd80952946b5f4461eeb467d9509;p=emacs.git More signal-handler cleanup. * configure.ac (FLOAT_CHECK_DOMAIN): Comment fix (Bug#12327). * src/floatfns.c: Comment fix. * src/lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER. SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right, and anyway the declaration is harmless even if SIGDANGER is not defined. * src/syssignal.h (SIGIO): Also #undef if (! defined FIONREAD || defined BROKEN_FIONREAD). systty.h formerly did this, but other source files not surprisingly expected syssignal.h to define, or not define, SIGIO, and it's cleaner to do it that way, for consistency. Include , for FIONREAD. * src/systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job. This eliminates a problem whereby other files mysteriously had to include "syssignal.h" before including "systty.h" if they wanted to use "#ifdef SIGIO". --- diff --git a/ChangeLog b/ChangeLog index 112532e7ece..e20edc893e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-09-07 Paul Eggert + + More signal-handler cleanup (Bug#12327). + * configure.ac (FLOAT_CHECK_DOMAIN): Comment fix (Bug#12327). + 2012-09-06 Paul Eggert Signal-handler cleanup (Bug#12327). diff --git a/configure.ac b/configure.ac index dd5e322194a..5fecea724dc 100644 --- a/configure.ac +++ b/configure.ac @@ -3212,7 +3212,7 @@ AC_DEFINE(CLASH_DETECTION, 1, [Define if you want lock files to be written, someone else has modified in his/her Emacs.]) AH_TEMPLATE(FLOAT_CHECK_DOMAIN, [Define if the float library doesn't - handle errors by either setting errno, or signaling SIGFPE/SIGILL.]) + handle errors by either setting errno, or signaling SIGFPE.]) AH_TEMPLATE(HAVE_INVERSE_HYPERBOLIC, [Define if you have the functions acosh, asinh, and atanh.]) diff --git a/src/ChangeLog b/src/ChangeLog index 068584969f7..8cab03fca50 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,20 @@ +2012-09-07 Paul Eggert + + More signal-handler cleanup (Bug#12327). + * floatfns.c: Comment fix. + * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER. + SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right, + and anyway the declaration is harmless even if SIGDANGER is not defined. + * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD || + defined BROKEN_FIONREAD). systty.h formerly did this, but other + source files not surprisingly expected syssignal.h to define, or + not define, SIGIO, and it's cleaner to do it that way, for consistency. + Include , for FIONREAD. + * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job. + This eliminates a problem whereby other files mysteriously had + to include "syssignal.h" before including "systty.h" if they + wanted to use "#ifdef SIGIO". + 2012-09-07 Eli Zaretskii * w32proc.c (sigaction): New function, emulates Posix 'sigaction'. diff --git a/src/floatfns.c b/src/floatfns.c index e956dc22353..3a95d828c0c 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -38,7 +38,7 @@ along with GNU Emacs. If not, see . */ This has no effect if HAVE_MATHERR is defined. Define FLOAT_CHECK_DOMAIN if the float library doesn't handle errors by - either setting errno, or signaling SIGFPE/SIGILL. Otherwise, domain and + either setting errno, or signaling SIGFPE. Otherwise, domain and range checking will happen before calling the float routines. This has no effect if HAVE_MATHERR is defined (since matherr will be called when a domain error occurs.) diff --git a/src/lisp.h b/src/lisp.h index 28e8c1cd1e8..e6594b5890c 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3221,9 +3221,7 @@ extern void cmd_error_internal (Lisp_Object, const char *); extern Lisp_Object command_loop_1 (void); extern Lisp_Object recursive_edit_1 (void); extern void record_auto_save (void); -#ifdef SIGDANGER extern void force_auto_save_soon (void); -#endif extern void init_keyboard (void); extern void syms_of_keyboard (void); extern void keys_of_keyboard (void); diff --git a/src/syssignal.h b/src/syssignal.h index fe7b5f0e150..c5529ae718a 100644 --- a/src/syssignal.h +++ b/src/syssignal.h @@ -38,9 +38,12 @@ extern void emacs_sigaction_init (struct sigaction *, signal_handler_t); _Noreturn void croak (char *); #endif -#if defined (SIGIO) && defined (BROKEN_SIGIO) +/* Interrupt input is not used if there is no FIONREAD. */ +#include +#if defined BROKEN_SIGIO || ! defined FIONREAD || defined BROKEN_FIONREAD # undef SIGIO #endif + /* These are only used by AIX */ #if defined (SIGPOLL) && defined (BROKEN_SIGPOLL) #undef SIGPOLL diff --git a/src/systty.h b/src/systty.h index ae98f123f2a..b660441a91e 100644 --- a/src/systty.h +++ b/src/systty.h @@ -47,11 +47,6 @@ along with GNU Emacs. If not, see . */ #undef ASYNC #endif -/* Interrupt input is not used if there is no FIONREAD. */ -#ifndef FIONREAD -#undef SIGIO -#endif - /* Try to establish the correct character to disable terminal functions in a system-independent manner. Note that USG (at least) define