From e740ffef1d4868b1642ab5efe0f41d5a0189ab46 Mon Sep 17 00:00:00 2001 From: Michael Sartain Date: Tue, 5 Feb 2013 12:10:54 -0800 Subject: [PATCH] Add defines to disable setlocale and fork. Disable that code by default for now. --- src/video/x11/SDL_x11messagebox.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/video/x11/SDL_x11messagebox.c b/src/video/x11/SDL_x11messagebox.c index e6165026f..0bc7a89b6 100644 --- a/src/video/x11/SDL_x11messagebox.c +++ b/src/video/x11/SDL_x11messagebox.c @@ -31,7 +31,8 @@ #include -#define SDL_FORK_MESSAGEBOX 1 +#define SDL_FORK_MESSAGEBOX 0 +#define SDL_SET_LOCALE 0 #if SDL_FORK_MESSAGEBOX #include @@ -645,13 +646,16 @@ X11_ShowMessageBoxImpl(const SDL_MessageBoxData *messageboxdata, int *buttonid) { int ret; SDL_MessageBoxDataX11 data; +#if SDL_SET_LOCALE char *origlocale; +#endif SDL_zero(data); if ( !SDL_X11_LoadSymbols() ) return -1; +#if SDL_SET_LOCALE origlocale = setlocale(LC_ALL, NULL); if (origlocale != NULL) { origlocale = SDL_strdup(origlocale); @@ -661,6 +665,7 @@ X11_ShowMessageBoxImpl(const SDL_MessageBoxData *messageboxdata, int *buttonid) } setlocale(LC_ALL, ""); } +#endif /* This code could get called from multiple threads maybe? */ XInitThreads(); @@ -682,10 +687,12 @@ X11_ShowMessageBoxImpl(const SDL_MessageBoxData *messageboxdata, int *buttonid) X11_MessageBoxShutdown( &data ); +#if SDL_SET_LOCALE if (origlocale) { setlocale(LC_ALL, origlocale); SDL_free(origlocale); } +#endif return ret; } @@ -700,6 +707,9 @@ X11_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid) int fds[2]; int status = 0; + /* Need to flush here in case someone has turned grab off and it hasn't gone through yet, etc. */ + XFlush(data->display); + if (pipe(fds) == -1) { return X11_ShowMessageBoxImpl(messageboxdata, buttonid); /* oh well. */ }