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);
|
memmove(&_iconsole_buffer[0], &_iconsole_buffer[1], sizeof(_iconsole_buffer[0]) * ICON_BUFFER);
|
||||||
_iconsole_buffer[ICON_BUFFER] = strdup(string);
|
_iconsole_buffer[ICON_BUFFER] = strdup(string);
|
||||||
|
|
||||||
|
str_strip_colours(_iconsole_buffer[ICON_BUFFER]);
|
||||||
str_validate(_iconsole_buffer[ICON_BUFFER]);
|
str_validate(_iconsole_buffer[ICON_BUFFER]);
|
||||||
|
|
||||||
memmove(&_iconsole_cbuffer[0], &_iconsole_cbuffer[1], sizeof(_iconsole_cbuffer[0]) * 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 = '?';
|
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
|
* 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.
|
* sure no invalid keys can get into an editbox, like BELL.
|
||||||
|
|
3
string.h
3
string.h
|
@ -29,6 +29,9 @@ char* CDECL str_fmt(const char* str, ...);
|
||||||
* replaces them with a question mark '?' */
|
* replaces them with a question mark '?' */
|
||||||
void str_validate(char *str);
|
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.
|
* Valid filter types for IsValidAsciiChar.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue