From 6f11545a2d06bce20ca5d2c1f01cf9483cd574ff Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 1 Oct 2016 12:28:05 -0700 Subject: [PATCH] Fixed bug 3323 - SDL_LogOutput prints message twice on Windows when linked with libc Simon Hug If SDL2 is compiled with HAVE_LIBC on Windows, the SDL_LogOutput function has two ways of printing a message. WriteConsole and fprintf. --- src/SDL_log.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SDL_log.c b/src/SDL_log.c index 60bac9f652299..760cb13de6cb7 100644 --- a/src/SDL_log.c +++ b/src/SDL_log.c @@ -324,7 +324,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority, size_t length; LPTSTR tstr; -#ifndef __WINRT__ +#if !defined(HAVE_STDIO_H) && !defined(__WINRT__) BOOL attachResult; DWORD attachError; unsigned long charsWritten; @@ -356,7 +356,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority, stderrHandle = GetStdHandle(STD_ERROR_HANDLE); } } -#endif /* ifndef __WINRT__ */ +#endif /* !defined(HAVE_STDIO_H) && !defined(__WINRT__) */ length = SDL_strlen(SDL_priority_prefixes[priority]) + 2 + SDL_strlen(message) + 1 + 1 + 1; output = SDL_stack_alloc(char, length); @@ -366,7 +366,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority, /* Output to debugger */ OutputDebugString(tstr); -#ifndef __WINRT__ +#if !defined(HAVE_STDIO_H) && !defined(__WINRT__) /* Screen output to stderr, if console was attached. */ if (consoleAttached == 1) { if (!WriteConsole(stderrHandle, tstr, lstrlen(tstr), &charsWritten, NULL)) { @@ -376,7 +376,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority, } } } -#endif /* ifndef __WINRT__ */ +#endif /* !defined(HAVE_STDIO_H) && !defined(__WINRT__) */ SDL_free(tstr); SDL_stack_free(output);