mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-06-02 01:47:41 +00:00
Reset log prefixes on SDL_Quit()
This commit is contained in:
parent
15bfef57cd
commit
fe5dcf79be
1 changed files with 41 additions and 18 deletions
|
@ -50,9 +50,12 @@ typedef struct SDL_LogLevel
|
|||
struct SDL_LogLevel *next;
|
||||
} SDL_LogLevel;
|
||||
|
||||
|
||||
/* The default log output function */
|
||||
static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority, const char *message);
|
||||
|
||||
static void SDL_ResetLogPrefixes(void);
|
||||
|
||||
static SDL_LogLevel *SDL_loglevels;
|
||||
static SDL_bool SDL_forced_priority = SDL_FALSE;
|
||||
static SDL_LogPriority SDL_forced_priority_level;
|
||||
|
@ -77,17 +80,7 @@ static const char * const SDL_priority_names[] = {
|
|||
};
|
||||
SDL_COMPILE_TIME_ASSERT(priority_names, SDL_arraysize(SDL_priority_names) == SDL_NUM_LOG_PRIORITIES);
|
||||
|
||||
/* If this list changes, update the documentation for SDL_HINT_LOGGING */
|
||||
static const char *SDL_priority_prefixes[] = {
|
||||
NULL,
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"WARNING: ",
|
||||
"ERROR: ",
|
||||
"CRITICAL: "
|
||||
};
|
||||
SDL_COMPILE_TIME_ASSERT(priority_prefixes, SDL_arraysize(SDL_priority_prefixes) == SDL_NUM_LOG_PRIORITIES);
|
||||
static const char *SDL_priority_prefixes[SDL_NUM_LOG_PRIORITIES];
|
||||
|
||||
/* If this list changes, update the documentation for SDL_HINT_LOGGING */
|
||||
static const char * const SDL_category_names[] = {
|
||||
|
@ -130,6 +123,7 @@ void SDL_InitLog(void)
|
|||
void SDL_QuitLog(void)
|
||||
{
|
||||
SDL_ResetLogPriorities();
|
||||
SDL_ResetLogPrefixes();
|
||||
|
||||
if (log_function_mutex) {
|
||||
SDL_DestroyMutex(log_function_mutex);
|
||||
|
@ -315,6 +309,35 @@ void SDL_ResetLogPriorities(void)
|
|||
SDL_forced_priority = SDL_FALSE;
|
||||
}
|
||||
|
||||
static void SDL_ResetLogPrefixes(void)
|
||||
{
|
||||
for (int i = 0; i < SDL_arraysize(SDL_priority_prefixes); ++i) {
|
||||
SDL_priority_prefixes[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static const char *SDL_GetLogPriorityPrefix(SDL_LogPriority priority)
|
||||
{
|
||||
if (priority < SDL_LOG_PRIORITY_VERBOSE || priority >= SDL_NUM_LOG_PRIORITIES) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (SDL_priority_prefixes[priority]) {
|
||||
return SDL_priority_prefixes[priority];
|
||||
}
|
||||
|
||||
switch (priority) {
|
||||
case SDL_LOG_PRIORITY_WARN:
|
||||
return "WARNING: ";
|
||||
case SDL_LOG_PRIORITY_ERROR:
|
||||
return "ERROR: ";
|
||||
case SDL_LOG_PRIORITY_CRITICAL:
|
||||
return "ERROR: ";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
int SDL_SetLogPriorityPrefix(SDL_LogPriority priority, const char *prefix)
|
||||
{
|
||||
if (priority < SDL_LOG_PRIORITY_VERBOSE || priority >= SDL_NUM_LOG_PRIORITIES) {
|
||||
|
@ -548,9 +571,9 @@ static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority
|
|||
}
|
||||
#endif /* !defined(HAVE_STDIO_H) && !defined(SDL_PLATFORM_WINRT) && !defined(SDL_PLATFORM_GDK) */
|
||||
|
||||
length = SDL_strlen(SDL_priority_prefixes[priority]) + SDL_strlen(message) + 1 + 1 + 1;
|
||||
length = SDL_strlen(SDL_GetLogPriorityPrefix(priority)) + SDL_strlen(message) + 1 + 1 + 1;
|
||||
output = SDL_small_alloc(char, length, &isstack);
|
||||
(void)SDL_snprintf(output, length, "%s%s\r\n", SDL_priority_prefixes[priority], message);
|
||||
(void)SDL_snprintf(output, length, "%s%s\r\n", SDL_GetLogPriorityPrefix(priority), message);
|
||||
tstr = WIN_UTF8ToString(output);
|
||||
|
||||
/* Output to debugger */
|
||||
|
@ -588,7 +611,7 @@ static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority
|
|||
*/
|
||||
extern void SDL_NSLog(const char *prefix, const char *text);
|
||||
{
|
||||
SDL_NSLog(SDL_priority_prefixes[priority], message);
|
||||
SDL_NSLog(SDL_GetLogPriorityPrefix(priority), message);
|
||||
return;
|
||||
}
|
||||
#elif defined(SDL_PLATFORM_PSP) || defined(SDL_PLATFORM_PS2)
|
||||
|
@ -596,7 +619,7 @@ static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority
|
|||
FILE *pFile;
|
||||
pFile = fopen("SDL_Log.txt", "a");
|
||||
if (pFile) {
|
||||
(void)fprintf(pFile, "%s%s\n", SDL_priority_prefixes[priority], message);
|
||||
(void)fprintf(pFile, "%s%s\n", SDL_GetLogPriorityPrefix(priority), message);
|
||||
(void)fclose(pFile);
|
||||
}
|
||||
}
|
||||
|
@ -605,7 +628,7 @@ static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority
|
|||
FILE *pFile;
|
||||
pFile = fopen("ux0:/data/SDL_Log.txt", "a");
|
||||
if (pFile) {
|
||||
(void)fprintf(pFile, "%s%s\n", SDL_priority_prefixes[priority], message);
|
||||
(void)fprintf(pFile, "%s%s\n", SDL_GetLogPriorityPrefix(priority), message);
|
||||
(void)fclose(pFile);
|
||||
}
|
||||
}
|
||||
|
@ -614,14 +637,14 @@ static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority
|
|||
FILE *pFile;
|
||||
pFile = fopen("sdmc:/3ds/SDL_Log.txt", "a");
|
||||
if (pFile) {
|
||||
(void)fprintf(pFile, "%s%s\n", SDL_priority_prefixes[priority], message);
|
||||
(void)fprintf(pFile, "%s%s\n", SDL_GetLogPriorityPrefix(priority), message);
|
||||
(void)fclose(pFile);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if defined(HAVE_STDIO_H) && \
|
||||
!(defined(SDL_PLATFORM_APPLE) && (defined(SDL_VIDEO_DRIVER_COCOA) || defined(SDL_VIDEO_DRIVER_UIKIT)))
|
||||
(void)fprintf(stderr, "%s%s\n", SDL_priority_prefixes[priority], message);
|
||||
(void)fprintf(stderr, "%s%s\n", SDL_GetLogPriorityPrefix(priority), message);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue