From d0e55bab8b6909dc253c5d89baf1b7d2600d6796 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Wed, 29 Nov 2006 21:38:19 +0000 Subject: (svn r7292) -Codechange: Also validate an strip of colours the console string passed to the dedicated console or logfile. --- console.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'console.c') diff --git a/console.c b/console.c index 7f5b3a336..b08fb7486 100644 --- a/console.c +++ b/console.c @@ -369,6 +369,7 @@ static void IConsoleHistoryNavigate(int direction) */ void IConsolePrint(uint16 color_code, const char *string) { + char *str; #ifdef ENABLE_NETWORK if (_redirect_console_to_client != 0) { /* Redirect the string to the client */ @@ -377,9 +378,16 @@ void IConsolePrint(uint16 color_code, const char *string) } #endif + /* Create a copy of the string, strip if of colours and invalid + * characters and (when applicable) assign it to the console buffer */ + str = strdup(string); + str_strip_colours(str); + str_validate(str); + if (_network_dedicated) { - printf("%s\n", string); - IConsoleWriteToLogFile(string); + printf("%s\n", str); + IConsoleWriteToLogFile(str); + free(str); // free duplicated string since it's not used anymore return; } @@ -387,15 +395,12 @@ void IConsolePrint(uint16 color_code, const char *string) * to accomodate for the new command/message */ free(_iconsole_buffer[0]); memmove(&_iconsole_buffer[0], &_iconsole_buffer[1], sizeof(_iconsole_buffer[0]) * ICON_BUFFER); - _iconsole_buffer[ICON_BUFFER] = strdup(string); - - str_strip_colours(_iconsole_buffer[ICON_BUFFER]); - str_validate(_iconsole_buffer[ICON_BUFFER]); + _iconsole_buffer[ICON_BUFFER] = str; memmove(&_iconsole_cbuffer[0], &_iconsole_cbuffer[1], sizeof(_iconsole_cbuffer[0]) * ICON_BUFFER); _iconsole_cbuffer[ICON_BUFFER] = color_code; - IConsoleWriteToLogFile(string); + IConsoleWriteToLogFile(_iconsole_buffer[ICON_BUFFER]); SetWindowDirty(FindWindowById(WC_CONSOLE, 0)); } -- cgit v1.2.3-54-g00ecf