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 <sys/ioctl.h>, 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".
This commit is contained in:
Paul Eggert 2012-09-07 01:46:44 -07:00
parent c640e87d07
commit 1a4f1e9b48
7 changed files with 28 additions and 10 deletions

View file

@ -1,3 +1,8 @@
2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
More signal-handler cleanup (Bug#12327).
* configure.ac (FLOAT_CHECK_DOMAIN): Comment fix (Bug#12327).
2012-09-06 Paul Eggert <eggert@cs.ucla.edu>
Signal-handler cleanup (Bug#12327).

View file

@ -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.])

View file

@ -1,3 +1,20 @@
2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
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 <sys/ioctl.h>, 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 <eliz@gnu.org>
* w32proc.c (sigaction): New function, emulates Posix 'sigaction'.

View file

@ -38,7 +38,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
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.)

View file

@ -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);

View file

@ -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 <sys/ioctl.h>
#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

View file

@ -47,11 +47,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#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