(svn r7172) -Fix [r6931]: The console showed '?' characters instead of colours. Now strip all

colours for the console. It's a bit magicky (magic numbers) but UTF8 fixes that soon.
pull/155/head
Darkvater 18 years ago
parent 55506a902a
commit 22bfbc8a7a

@ -400,6 +400,7 @@ void IConsolePrint(uint16 color_code, const char *string)
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]);
memmove(&_iconsole_cbuffer[0], &_iconsole_cbuffer[1], sizeof(_iconsole_cbuffer[0]) * ICON_BUFFER);

@ -72,6 +72,19 @@ void str_validate(char *str)
if (!IsValidAsciiChar(*str, CS_ALPHANUMERAL)) *str = '?';
}
void str_strip_colours(char *str)
{
char *dst = str;
for (; *str != '\0';) {
if (*str >= 15 && *str <= 31) { // magic colour codes
str++;
} else {
*dst++ = *str++;
}
}
*dst = '\0';
}
/**
* Only allow certain keys. You can define the filter to be used. This makes
* sure no invalid keys can get into an editbox, like BELL.

@ -29,6 +29,9 @@ char* CDECL str_fmt(const char* str, ...);
* replaces them with a question mark '?' */
void str_validate(char *str);
/** Scans the string for colour codes and strips them */
void str_strip_colours(char *str);
/**
* Valid filter types for IsValidAsciiChar.
*/

Loading…
Cancel
Save