summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/SDL2/src/events/SDL_quit.c
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/SDL2/src/events/SDL_quit.c')
-rw-r--r--3rdparty/SDL2/src/events/SDL_quit.c152
1 files changed, 0 insertions, 152 deletions
diff --git a/3rdparty/SDL2/src/events/SDL_quit.c b/3rdparty/SDL2/src/events/SDL_quit.c
deleted file mode 100644
index 3cb6b3d4f5f..00000000000
--- a/3rdparty/SDL2/src/events/SDL_quit.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../SDL_internal.h"
-#include "SDL_hints.h"
-#include "SDL_assert.h"
-
-/* General quit handling code for SDL */
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-
-#include "SDL_events.h"
-#include "SDL_events_c.h"
-
-static SDL_bool disable_signals = SDL_FALSE;
-static SDL_bool send_quit_pending = SDL_FALSE;
-
-#ifdef HAVE_SIGNAL_H
-static void
-SDL_HandleSIG(int sig)
-{
- /* Reset the signal handler */
- signal(sig, SDL_HandleSIG);
-
- /* Send a quit event next time the event loop pumps. */
- /* We can't send it in signal handler; malloc() might be interrupted! */
- send_quit_pending = SDL_TRUE;
-}
-#endif /* HAVE_SIGNAL_H */
-
-/* Public functions */
-static int
-SDL_QuitInit_Internal(void)
-{
-#ifdef HAVE_SIGACTION
- struct sigaction action;
- sigaction(SIGINT, NULL, &action);
-#ifdef HAVE_SA_SIGACTION
- if ( action.sa_handler == SIG_DFL && action.sa_sigaction == (void*)SIG_DFL ) {
-#else
- if ( action.sa_handler == SIG_DFL ) {
-#endif
- action.sa_handler = SDL_HandleSIG;
- sigaction(SIGINT, &action, NULL);
- }
- sigaction(SIGTERM, NULL, &action);
-
-#ifdef HAVE_SA_SIGACTION
- if ( action.sa_handler == SIG_DFL && action.sa_sigaction == (void*)SIG_DFL ) {
-#else
- if ( action.sa_handler == SIG_DFL ) {
-#endif
- action.sa_handler = SDL_HandleSIG;
- sigaction(SIGTERM, &action, NULL);
- }
-#elif HAVE_SIGNAL_H
- void (*ohandler) (int);
-
- /* Both SIGINT and SIGTERM are translated into quit interrupts */
- ohandler = signal(SIGINT, SDL_HandleSIG);
- if (ohandler != SIG_DFL)
- signal(SIGINT, ohandler);
- ohandler = signal(SIGTERM, SDL_HandleSIG);
- if (ohandler != SIG_DFL)
- signal(SIGTERM, ohandler);
-#endif /* HAVE_SIGNAL_H */
-
- /* That's it! */
- return 0;
-}
-
-int
-SDL_QuitInit(void)
-{
- if (!SDL_GetHintBoolean(SDL_HINT_NO_SIGNAL_HANDLERS, SDL_FALSE)) {
- return SDL_QuitInit_Internal();
- }
- return 0;
-}
-
-static void
-SDL_QuitQuit_Internal(void)
-{
-#ifdef HAVE_SIGACTION
- struct sigaction action;
- sigaction(SIGINT, NULL, &action);
- if ( action.sa_handler == SDL_HandleSIG ) {
- action.sa_handler = SIG_DFL;
- sigaction(SIGINT, &action, NULL);
- }
- sigaction(SIGTERM, NULL, &action);
- if ( action.sa_handler == SDL_HandleSIG ) {
- action.sa_handler = SIG_DFL;
- sigaction(SIGTERM, &action, NULL);
- }
-#elif HAVE_SIGNAL_H
- void (*ohandler) (int);
-
- ohandler = signal(SIGINT, SIG_DFL);
- if (ohandler != SDL_HandleSIG)
- signal(SIGINT, ohandler);
- ohandler = signal(SIGTERM, SIG_DFL);
- if (ohandler != SDL_HandleSIG)
- signal(SIGTERM, ohandler);
-#endif /* HAVE_SIGNAL_H */
-}
-
-void
-SDL_QuitQuit(void)
-{
- if (!disable_signals) {
- SDL_QuitQuit_Internal();
- }
-}
-
-/* This function returns 1 if it's okay to close the application window */
-int
-SDL_SendQuit(void)
-{
- send_quit_pending = SDL_FALSE;
- return SDL_SendAppEvent(SDL_QUIT);
-}
-
-void
-SDL_SendPendingQuit(void)
-{
- if (send_quit_pending) {
- SDL_SendQuit();
- SDL_assert(!send_quit_pending);
- }
-}
-
-/* vi: set ts=4 sw=4 expandtab: */