diff options
author | Mark Mitchell <mark@codesourcery.com> | 2005-05-09 19:42:03 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2005-05-09 19:42:03 +0000 |
commit | 430b783269262185201724109a07d3e9a937bca3 (patch) | |
tree | 5e30210c1ab5d3e20eac95a273f7bd0377a6ea60 /readline/signals.c | |
parent | 8b04f8b6efd558d50aec658e812eddba0892b2b5 (diff) | |
download | gdb-430b783269262185201724109a07d3e9a937bca3.zip gdb-430b783269262185201724109a07d3e9a937bca3.tar.gz gdb-430b783269262185201724109a07d3e9a937bca3.tar.bz2 |
* readline/aclocal.m4: Use AC_TRY_LINK to check for mbstate_t.
* readline/complete.c (pwd.h): Guard with HAVE_PWD_H.
(getpwent): Guard with HAVE_GETPWENT.
(rl_username_completion_function): Guard use of getpwent.
(endpwent): Likewise.
* readline/config.h.in (HAVE_FCNTL): New macro.
(HAVE_GETPWENT): Likewise.
(HAVE_GETPWNAM): Likewise.
(HAVE_GETPWUID): Likewise.
(HAVE_KILL): Likewise.
(HAVE_PWD_H): Likewise.
* readline/configure: Regenerated.
* readline/configure.in: Handle MinGW when cross compiling. Check for
getpwnam, getpwent, getpwuid, kill, and pwd.h.
* readline/display.c (rl_clear_screen): Treat Windows like DOS.
(insert_some_chars): Likewise.
(delete_chars): Likewise.
* readline/shell.c (pwd.h): Guard with HAVE_PWD_H.
(getpwuid): Guard with HAVE_GETPWUID.
(sh_unset_nodelay_mode): Guard use of fnctl with HAVE_FNCTL_H.
* readline/signals.c (rl_signal_handler): Don't use SIGALRM or
SIGQUIT if not defined. Use "raise" if "kill" is not available.
(rl_set_signals): Don't set handlers for SIGQUIT or SIGALRM if
they are not defined.
(rl_clear_signals): Likewise.
* readline/tilde.c (pwd.h): Guard with HAVE_PWD_H.
(getpwuid): Guard declaration with HAVE_GETPWUID.
(getpwnam): Guard declaration with HAVE_GETPWNAM.
(tilde_expand_word): Guard use of getpwnam with HAVE_GETPWNAM.
Diffstat (limited to 'readline/signals.c')
-rw-r--r-- | readline/signals.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/readline/signals.c b/readline/signals.c index 9deb076..fa3e26a 100644 --- a/readline/signals.c +++ b/readline/signals.c @@ -127,7 +127,11 @@ rl_signal_handler (sig) #if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS) /* Since the signal will not be blocked while we are in the signal handler, ignore it until rl_clear_signals resets the catcher. */ - if (sig == SIGINT || sig == SIGALRM) + if (sig == SIGINT +#ifdef SIGALRM + || sig == SIGALRM +#endif + ) rl_set_sighandler (sig, SIG_IGN, &dummy_cxt); #endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */ @@ -142,9 +146,13 @@ rl_signal_handler (sig) case SIGTTOU: case SIGTTIN: #endif /* SIGTSTP */ +#ifdef SIGALRM case SIGALRM: +#endif case SIGTERM: +#ifdef SIGQUIT case SIGQUIT: +#endif rl_cleanup_after_signal (); #if defined (HAVE_POSIX_SIGNALS) @@ -160,7 +168,14 @@ rl_signal_handler (sig) signal (sig, SIG_ACK); #endif + /* If we have the POSIX kill function, use it; otherwise, fall + back to the ISO C raise function. (Windows is an example of + a platform that has raise, but not kill.) */ +#ifdef HAVE_KILL kill (getpid (), sig); +#else + raise (sig); +#endif /* Let the signal that we just sent through. */ #if defined (HAVE_POSIX_SIGNALS) @@ -277,8 +292,11 @@ rl_set_signals () { rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int); rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term); +#ifdef SIGQUIT rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit); +#endif +#ifdef SIGALRM oh = rl_set_sighandler (SIGALRM, rl_signal_handler, &old_alrm); if (oh == (SigHandler *)SIG_IGN) rl_sigaction (SIGALRM, &old_alrm, &dummy); @@ -290,6 +308,7 @@ rl_set_signals () if (oh != (SigHandler *)SIG_DFL && (old_alrm.sa_flags & SA_RESTART)) rl_sigaction (SIGALRM, &old_alrm, &dummy); #endif /* HAVE_POSIX_SIGNALS */ +#endif /* SIGALRM */ #if defined (SIGTSTP) rl_maybe_set_sighandler (SIGTSTP, rl_signal_handler, &old_tstp); @@ -328,8 +347,12 @@ rl_clear_signals () rl_sigaction (SIGINT, &old_int, &dummy); rl_sigaction (SIGTERM, &old_term, &dummy); +#ifdef SIGQUIT rl_sigaction (SIGQUIT, &old_quit, &dummy); +#endif +#ifdef SIGALRM rl_sigaction (SIGALRM, &old_alrm, &dummy); +#endif #if defined (SIGTSTP) rl_sigaction (SIGTSTP, &old_tstp, &dummy); |