From 98c983628726359ee2ccb9053b394fb0e04dbb8f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 10 Nov 2021 11:04:51 -0800 Subject: [PATCH] Don't clobber the error in SDL_ShowMessageBox() if one has been set at the platform level Fixes https://github.com/libsdl-org/SDL/issues/4760 --- src/video/SDL_video.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index af9302be4..4404d963e 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -4271,6 +4271,8 @@ SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid) if (!mbdata.message) mbdata.message = ""; messageboxdata = &mbdata; + SDL_ClearError(); + if (_this && _this->ShowMessageBox) { retval = _this->ShowMessageBox(_this, messageboxdata, buttonid); } @@ -4352,7 +4354,11 @@ SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid) } #endif if (retval == -1) { - SDL_SetError("No message system available"); + const char *error = SDL_GetError(); + + if (!*error) { + SDL_SetError("No message system available"); + } } if (current_window) {