21 #include "../SDL_internal.h"
34 #if defined(HAVE_SIGNAL_H) || defined(HAVE_SIGACTION)
35 #define HAVE_SIGNAL_SUPPORT 1
38 #ifdef HAVE_SIGNAL_SUPPORT
42 #ifdef SDL_BACKGROUNDING_SIGNAL
46 #ifdef SDL_FOREGROUNDING_SIGNAL
58 if ((sig == SIGINT) || (sig == SIGTERM)) {
62 #ifdef SDL_BACKGROUNDING_SIGNAL
63 else if (sig == SDL_BACKGROUNDING_SIGNAL) {
64 send_backgrounding_pending =
SDL_TRUE;
68 #ifdef SDL_FOREGROUNDING_SIGNAL
69 else if (sig == SDL_FOREGROUNDING_SIGNAL) {
70 send_foregrounding_pending =
SDL_TRUE;
79 struct sigaction action;
81 sigaction(sig,
NULL, &action);
82 #ifdef HAVE_SA_SIGACTION
83 if ( action.sa_handler == SIG_DFL && (
void (*)(
int))action.sa_sigaction == SIG_DFL ) {
85 if ( action.sa_handler == SIG_DFL ) {
88 sigaction(sig, &action,
NULL);
92 if (ohandler != SIG_DFL) {
93 signal(sig, ohandler);
101 #ifdef HAVE_SIGACTION
102 struct sigaction action;
103 sigaction(sig,
NULL, &action);
105 action.sa_handler = SIG_DFL;
106 sigaction(sig, &action,
NULL);
109 void (*ohandler) (int) = signal(sig, SIG_DFL);
111 signal(sig, ohandler);
125 #ifdef SDL_BACKGROUNDING_SIGNAL
129 #ifdef SDL_FOREGROUNDING_SIGNAL
143 #ifdef SDL_BACKGROUNDING_SIGNAL
147 #ifdef SDL_FOREGROUNDING_SIGNAL
156 #ifdef HAVE_SIGNAL_SUPPORT
167 #ifdef HAVE_SIGNAL_SUPPORT
177 #ifdef HAVE_SIGNAL_SUPPORT
183 #ifdef SDL_BACKGROUNDING_SIGNAL
184 if (send_backgrounding_pending) {
190 #ifdef SDL_FOREGROUNDING_SIGNAL
191 if (send_foregrounding_pending) {
203 #ifdef HAVE_SIGNAL_SUPPORT