mirror of https://github.com/OpenTTD/OpenTTD.git
(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.
This commit is contained in:
parent
81b84c9091
commit
edcbb10565
|
@ -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);
|
||||
|
|
13
string.c
13
string.c
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue