mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-20 22:16:49 +01:00
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.
This commit is contained in:
parent
0b576962ca
commit
6f11545a2d
@ -324,7 +324,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
|
|||||||
size_t length;
|
size_t length;
|
||||||
LPTSTR tstr;
|
LPTSTR tstr;
|
||||||
|
|
||||||
#ifndef __WINRT__
|
#if !defined(HAVE_STDIO_H) && !defined(__WINRT__)
|
||||||
BOOL attachResult;
|
BOOL attachResult;
|
||||||
DWORD attachError;
|
DWORD attachError;
|
||||||
unsigned long charsWritten;
|
unsigned long charsWritten;
|
||||||
@ -356,7 +356,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
|
|||||||
stderrHandle = GetStdHandle(STD_ERROR_HANDLE);
|
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;
|
length = SDL_strlen(SDL_priority_prefixes[priority]) + 2 + SDL_strlen(message) + 1 + 1 + 1;
|
||||||
output = SDL_stack_alloc(char, length);
|
output = SDL_stack_alloc(char, length);
|
||||||
@ -366,7 +366,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
|
|||||||
/* Output to debugger */
|
/* Output to debugger */
|
||||||
OutputDebugString(tstr);
|
OutputDebugString(tstr);
|
||||||
|
|
||||||
#ifndef __WINRT__
|
#if !defined(HAVE_STDIO_H) && !defined(__WINRT__)
|
||||||
/* Screen output to stderr, if console was attached. */
|
/* Screen output to stderr, if console was attached. */
|
||||||
if (consoleAttached == 1) {
|
if (consoleAttached == 1) {
|
||||||
if (!WriteConsole(stderrHandle, tstr, lstrlen(tstr), &charsWritten, NULL)) {
|
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_free(tstr);
|
||||||
SDL_stack_free(output);
|
SDL_stack_free(output);
|
||||||
|
Loading…
Reference in New Issue
Block a user