From f7888fea6ee8d55778e792fbb4d04f0b3acf6885 Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Thu, 14 Jun 2012 18:08:12 +0200 Subject: WINTERMUTE: Add Ansi->ISO conversion for \' (quick hack to make J.U.L.I.A.-demo look right) --- engines/wintermute/utils/StringUtil.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/engines/wintermute/utils/StringUtil.cpp b/engines/wintermute/utils/StringUtil.cpp index 050f76b3b6..a1525f21b5 100644 --- a/engines/wintermute/utils/StringUtil.cpp +++ b/engines/wintermute/utils/StringUtil.cpp @@ -176,6 +176,19 @@ Utf8String StringUtil::WideToUtf8(const WideString &WideStr) { return ""; } +// Currently this only does Ansi->ISO 8859, and only for carets. +char simpleAnsiToWide(const AnsiString &str, int &offset) { + char c = str[offset]; + + if (c == 92) { + offset++; + return '\''; + } else { + offset++; + return c; + } +} + ////////////////////////////////////////////////////////////////////////// WideString StringUtil::AnsiToWide(const AnsiString &str) { // TODO: This function gets called a lot, so warnings like these drown out the usefull information @@ -184,6 +197,11 @@ WideString StringUtil::AnsiToWide(const AnsiString &str) { hasWarned = true; warning("StringUtil::AnsiToWide - WideString not supported yet"); } + Common::String converted = ""; + int index = 0; + while (index != str.size()) { + converted += simpleAnsiToWide(str, index); + } // using default os locale! /* setlocale(LC_CTYPE, ""); @@ -193,7 +211,7 @@ WideString StringUtil::AnsiToWide(const AnsiString &str) { WideString ResultString(wstr); delete [] wstr; return ResultString;*/ - return WideString(str); + return WideString(converted); } ////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3