Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Strip newlines from messages in SDL_Log*() before calling logging fun…
Browse files Browse the repository at this point in the history
…ction.
  • Loading branch information
icculus committed Jul 5, 2013
1 parent 04db109 commit d8b384d
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/SDL_log.c
Expand Up @@ -266,6 +266,7 @@ void
SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
{
char *message;
size_t len;

/* Nothing to do if we don't have an output function */
if (!SDL_log_function) {
Expand All @@ -286,7 +287,18 @@ SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list
if (!message) {
return;
}

SDL_vsnprintf(message, SDL_MAX_LOG_MESSAGE, fmt, ap);

/* Chop off final endline. */
len = SDL_strlen(message);
if ((len > 0) && (message[len-1] == '\n')) {
message[--len] = '\0';
if ((len > 0) && (message[len-1] == '\r')) { /* catch "\r\n", too. */
message[--len] = '\0';
}
}

SDL_log_function(SDL_log_userdata, category, priority, message);
SDL_stack_free(message);
}
Expand Down Expand Up @@ -390,9 +402,9 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
char* output;
FILE* pFile;
/* !!! FIXME: is there any reason we didn't just use fprintf() here? */
length = SDL_strlen(SDL_priority_prefixes[priority]) + 2 + SDL_strlen(message) + 1;
length = SDL_strlen(SDL_priority_prefixes[priority]) + 2 + SDL_strlen(message) + 2;
output = SDL_stack_alloc(char, length);
SDL_snprintf(output, length, "%s: %s", SDL_priority_prefixes[priority], message);
SDL_snprintf(output, length, "%s: %s\n", SDL_priority_prefixes[priority], message);
pFile = fopen ("SDL_Log.txt", "a");
fwrite (output, strlen (output), 1, pFile);
SDL_stack_free(output);
Expand Down

0 comments on commit d8b384d

Please sign in to comment.