(svn r11622) -Codechange: support the unicode version of the 'control' characters.

pull/155/head
rubidium 17 years ago
parent 745da6563f
commit ad022c535c

@ -207,9 +207,13 @@ char *TranslateTTDPatchCodes(const char *str)
}
for (;;) {
const char *tmp = str; // Used for UTF-8 decoding
c = (byte)*str++;
if (unicode && Utf8EncodedCharLen(*str) != 0) {
c = Utf8Consume(&str);
/* 'Magic' range of control codes. */
if (GB(c, 8, 8) == 0xE0) c = GB(c, 0, 8);
} else {
c = (byte)*str++;
}
if (c == 0) break;
switch (c) {
@ -290,12 +294,6 @@ char *TranslateTTDPatchCodes(const char *str)
case 0xB7: d += Utf8Encode(d, SCC_PLANE); break;
case 0xB8: d += Utf8Encode(d, SCC_SHIP); break;
default:
if (unicode) {
d += Utf8Encode(d, Utf8Consume(&tmp));
str = tmp;
break;
}
/* Validate any unhandled character */
if (!IsValidChar(c, CS_ALPHANUMERAL)) c = '?';
d += Utf8Encode(d, c);

Loading…
Cancel
Save