[Scummvm-git-logs] scummvm master -> acf0b1fbcfc0ee0f0da71567a52543aad271b5e6
djsrv
dservilla at gmail.com
Mon Jul 12 19:46:46 UTC 2021
This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
68426370f3 GRAPHICS: MACGUI: Don't register font name in loadFonts
354e344b4d GRAPHICS: MACGUI: Start IDs for new font registrations at 100
671fdf8cd9 COMMON: Add MacRoman codepage
0b7af4209f GRAPHICS: MACGUI: Remove MacButton ctor with encodeType
74836ac8bb DIRECTOR: Replace kMacCentralEurope with kMacRoman
0c053d20ba GRAPHICS: MACGUI: Replace kMacCentralEurope with kMacRoman
e6a5380989 COMMON: Add U32String version of toPrintable
acf0b1fbcf DIRECTOR: Escape non-printable STXT characters before logging
Commit: 68426370f3a08f2b57caf54178a702806014dbb3
https://github.com/scummvm/scummvm/commit/68426370f3a08f2b57caf54178a702806014dbb3
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:15-04:00
Commit Message:
GRAPHICS: MACGUI: Don't register font name in loadFonts
We don't know a font's preferred ID at this point. We must get that from
the Director movie's font map.
Changed paths:
graphics/macgui/macfontmanager.cpp
diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp
index e403b2b7c8..e4e020f481 100644
--- a/graphics/macgui/macfontmanager.cpp
+++ b/graphics/macgui/macfontmanager.cpp
@@ -305,8 +305,6 @@ void MacFontManager::loadFonts(Common::MacResManager *fontFile) {
familyName = cleanFontName(familyName);
}
- registerFontName(familyName);
-
Graphics::MacFontFamily *fontFamily = new MacFontFamily();
fontFamily->load(*fond);
Commit: 354e344b4d87f98d3351f14a014a8a5417991b19
https://github.com/scummvm/scummvm/commit/354e344b4d87f98d3351f14a014a8a5417991b19
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:21-04:00
Commit Message:
GRAPHICS: MACGUI: Start IDs for new font registrations at 100
Makes it clearer that these are not system fonts.
Changed paths:
graphics/macgui/macfontmanager.cpp
diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp
index e4e020f481..7f84ee556d 100644
--- a/graphics/macgui/macfontmanager.cpp
+++ b/graphics/macgui/macfontmanager.cpp
@@ -483,7 +483,7 @@ int MacFontManager::registerFontName(Common::String name, int preferredId) {
id = preferredId;
} else {
// Preferred ID is already registered, find an unused one.
- id = 0;
+ id = 100;
while (_fontInfo.contains(id))
id++;
}
Commit: 671fdf8cd9de652996b577c5dea7406fac3ea9f1
https://github.com/scummvm/scummvm/commit/671fdf8cd9de652996b577c5dea7406fac3ea9f1
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:21-04:00
Commit Message:
COMMON: Add MacRoman codepage
Changed paths:
common/enc-internal.h
common/encodings/singlebyte.cpp
common/str-enc.cpp
common/str-enc.h
diff --git a/common/enc-internal.h b/common/enc-internal.h
index 4282f0ff78..4a9d52deb0 100644
--- a/common/enc-internal.h
+++ b/common/enc-internal.h
@@ -35,6 +35,7 @@ extern const uint16 kWindows1255ConversionTable[128];
extern const uint16 kWindows1256ConversionTable[128];
extern const uint16 kWindows1257ConversionTable[128];
extern const uint16 kMacCentralEuropeConversionTable[128];
+extern const uint16 kMacRomanConversionTable[128];
extern const uint16 kLatin1ConversionTable[128];
extern const uint16 kLatin2ConversionTable[128];
extern const uint16 kISO5ConversionTable[128];
diff --git a/common/encodings/singlebyte.cpp b/common/encodings/singlebyte.cpp
index 5314ec05ca..e9fdaff549 100644
--- a/common/encodings/singlebyte.cpp
+++ b/common/encodings/singlebyte.cpp
@@ -166,6 +166,25 @@ const uint16 kMacCentralEuropeConversionTable[128] = {
0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7
};
+const uint16 kMacRomanConversionTable[128] = {
+ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
+ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+ 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
+ 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8,
+ 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
+ 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8,
+ 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
+ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
+ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
+ 0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0xFB01, 0xFB02,
+ 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
+ 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
+ 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
+ 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7
+};
+
const uint16 kLatin1ConversionTable[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
diff --git a/common/str-enc.cpp b/common/str-enc.cpp
index c990529e49..04fcd54e79 100644
--- a/common/str-enc.cpp
+++ b/common/str-enc.cpp
@@ -715,6 +715,8 @@ getConversionTable(CodePage page) {
return kWindows1257ConversionTable;
case kMacCentralEurope:
return kMacCentralEuropeConversionTable;
+ case kMacRoman:
+ return kMacRomanConversionTable;
case kISO8859_1:
return kLatin1ConversionTable;
case kISO8859_2:
diff --git a/common/str-enc.h b/common/str-enc.h
index 0c0304f0e9..5d35d1a8b6 100644
--- a/common/str-enc.h
+++ b/common/str-enc.h
@@ -46,6 +46,7 @@ enum CodePage {
kISO8859_2,
kISO8859_5,
kMacCentralEurope,
+ kMacRoman,
kDos850,
kDos866,
kASCII,
Commit: 0b7af4209fd73704eac38a36a4f83ea600d694a4
https://github.com/scummvm/scummvm/commit/0b7af4209fd73704eac38a36a4f83ea600d694a4
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:21-04:00
Commit Message:
GRAPHICS: MACGUI: Remove MacButton ctor with encodeType
Encoding is handled in MacFontRun now, so this is no longer needed.
Changed paths:
engines/director/castmember.cpp
graphics/macgui/macbutton.cpp
graphics/macgui/macbutton.h
diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 4e7b581f69..da091272d8 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -775,7 +775,7 @@ Graphics::MacWidget *TextCastMember::createWidget(Common::Rect &bbox, Channel *c
case kCastButton:
// note that we use _initialRect for the dimensions of the button;
// the values provided in the sprite bounding box are ignored
- widget = new Graphics::MacButton(Graphics::MacButtonType(_buttonType), getAlignment(), g_director->getCurrentWindow(), bbox.left, bbox.top, _initialRect.width(), _initialRect.height(), g_director->_wm, _ftext, macFont, getForeColor(), 0xff, Common::kMacCentralEurope);
+ widget = new Graphics::MacButton(Graphics::MacButtonType(_buttonType), getAlignment(), g_director->getCurrentWindow(), bbox.left, bbox.top, _initialRect.width(), _initialRect.height(), g_director->_wm, _ftext, macFont, getForeColor(), 0xff);
widget->_focusable = true;
((Graphics::MacButton *)widget)->setHilite(_hilite);
diff --git a/graphics/macgui/macbutton.cpp b/graphics/macgui/macbutton.cpp
index de8e097a9e..b43730ce89 100644
--- a/graphics/macgui/macbutton.cpp
+++ b/graphics/macgui/macbutton.cpp
@@ -40,12 +40,6 @@ MacButton::MacButton(MacButtonType buttonType, TextAlign textAlignment, MacWidge
init();
}
-MacButton::MacButton(MacButtonType buttonType, TextAlign textAlignment, MacWidget *parent, int x, int y, int w, int h, MacWindowManager *wm, const Common::String &s, const MacFont *macFont, int fgcolor, int bgcolor, Common::CodePage encodeType) : MacText(parent, x, y, w, h, wm, s, macFont, fgcolor, bgcolor, w, textAlignment, 0, 0, 0, 0, 0, encodeType), _pd(Graphics::MacPlotData(_composeSurface, nullptr, &_wm->getPatterns(), 1, 0, 0, 1, 0, true)) {
-
- _buttonType = buttonType;
- init();
-}
-
void MacButton::init() {
_invertInner = false;
_checkBoxType = 0;
diff --git a/graphics/macgui/macbutton.h b/graphics/macgui/macbutton.h
index 6046aca380..d8fee07375 100644
--- a/graphics/macgui/macbutton.h
+++ b/graphics/macgui/macbutton.h
@@ -48,7 +48,6 @@ enum CheckBoxType {
class MacButton : public MacText {
public:
MacButton(MacButtonType buttonType, TextAlign textAlignment, MacWidget *parent, int x, int y, int w, int h, MacWindowManager *wm, const Common::U32String &s, const MacFont *macFont, int fgcolor, int bgcolor);
- MacButton(MacButtonType buttonType, TextAlign textAlignment, MacWidget *parent, int x, int y, int w, int h, MacWindowManager *wm, const Common::String &s, const MacFont *macFont, int fgcolor, int bgcolor, Common::CodePage encodeType = Common::kMacCentralEurope);
virtual void setActive(bool active) override;
Commit: 74836ac8bb2da26c9406f9d4d4c72dd9f863764b
https://github.com/scummvm/scummvm/commit/74836ac8bb2da26c9406f9d4d4c72dd9f863764b
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:21-04:00
Commit Message:
DIRECTOR: Replace kMacCentralEurope with kMacRoman
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo.cpp
engines/director/util.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index fb151a2e4d..b1170e78a8 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1658,7 +1658,7 @@ void LB::b_installMenu(int nargs) {
}
TextCastMember *field = static_cast<TextCastMember *>(member);
- Common::String menuStxt = g_lingo->_compiler->codePreprocessor(field->getText().encode(Common::kMacCentralEurope).c_str(), field->getCast()->_lingoArchive, kNoneScript, memberID, true); // FIXME: Properly handle encoding
+ Common::String menuStxt = g_lingo->_compiler->codePreprocessor(field->getText().encode(Common::kMacRoman).c_str(), field->getCast()->_lingoArchive, kNoneScript, memberID, true); // FIXME: Properly handle encoding
Common::String line;
int linenum = -1; // We increment it before processing
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 04668c6c9a..99e7d57961 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -883,7 +883,7 @@ Datum TextCastMember::getField(int field) {
d = _hilite;
break;
case kTheText:
- d = getText().encode(Common::kMacCentralEurope); // FIXME: Properly handle encoding
+ d = getText().encode(Common::kMacRoman); // FIXME: Properly handle encoding
break;
case kTheTextAlign:
d.type = STRING;
@@ -944,7 +944,7 @@ bool TextCastMember::setField(int field, const Datum &d) {
}
break;
case kTheText:
- setText(Common::U32String(d.asString(), Common::kMacCentralEurope)); // FIXME: Properly handle encoding
+ setText(Common::U32String(d.asString(), Common::kMacRoman)); // FIXME: Properly handle encoding
return true;
case kTheTextAlign:
{
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 4e7938c24c..9385c7b84c 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -1166,7 +1166,7 @@ void Lingo::varAssign(const Datum &var, const Datum &value) {
}
switch (member->_type) {
case kCastText:
- ((TextCastMember *)member)->setText(Common::U32String(value.asString(), Common::kMacCentralEurope)); // FIXME: Properly handle encoding
+ ((TextCastMember *)member)->setText(Common::U32String(value.asString(), Common::kMacRoman)); // FIXME: Properly handle encoding
break;
default:
warning("varAssign: Unhandled cast type %d", member->_type);
@@ -1287,7 +1287,7 @@ Datum Lingo::varFetch(const Datum &var, bool silent) {
switch (member->_type) {
case kCastText:
result.type = STRING;
- result.u.s = new Common::String(((TextCastMember *)member)->getText().encode(Common::kMacCentralEurope)); // FIXME: Properly handle encoding
+ result.u.s = new Common::String(((TextCastMember *)member)->getText().encode(Common::kMacRoman)); // FIXME: Properly handle encoding
break;
default:
warning("varFetch: Unhandled cast type %d", member->_type);
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index e89a65e789..c722163fd5 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -778,7 +778,7 @@ Common::CodePage detectEncoding(Common::Platform platform, uint16 fontId) {
}
return (platform == Common::kPlatformWindows)
? Common::kWindows1252
- : Common::kMacCentralEurope;
+ : Common::kMacRoman;
}
} // End of namespace Director
Commit: 0c053d20ba5230803cbf6a1c1420acc6f4b5501b
https://github.com/scummvm/scummvm/commit/0c053d20ba5230803cbf6a1c1420acc6f4b5501b
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:21-04:00
Commit Message:
GRAPHICS: MACGUI: Replace kMacCentralEurope with kMacRoman
Changed paths:
graphics/macgui/macfontmanager.cpp
diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp
index 7f84ee556d..60791be8b6 100644
--- a/graphics/macgui/macfontmanager.cpp
+++ b/graphics/macgui/macfontmanager.cpp
@@ -42,42 +42,42 @@ static struct FontProto {
const char *name;
} defaultFonts[] = {
// Latin
- { 0, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Chicago" }, // system font
- { 1, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Geneva" }, // application font
- { 2, Common::UNK_LANG, Common::kMacCentralEurope, -1, "New York" },
- { 3, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Geneva" },
- { 4, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Monaco" },
- { 5, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Venice" },
- { 6, Common::UNK_LANG, Common::kMacCentralEurope, -1, "London" },
- { 7, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Athens" },
- { 8, Common::UNK_LANG, Common::kMacCentralEurope, -1, "San Francisco" },
- { 9, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Toronto" },
- { 11, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Cairo" },
- { 12, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Los Angeles" },
- { 13, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Zapf Dingbats" },
- { 14, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Bookman" },
- { 15, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Helvetica Narrow" },
- { 16, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Palatino" },
- { 18, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Zapf Chancery" },
- { 20, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Times" }, // 20
- { 21, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Helvetica" },
- { 22, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Courier" },
- { 23, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Symbol" },
- { 24, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Taliesin" }, // mobile?
- { 33, Common::UNK_LANG, Common::kMacCentralEurope, -1, "Avant Garde" },
- { 34, Common::UNK_LANG, Common::kMacCentralEurope, -1, "New Century Schoolbook" },
+ { 0, Common::UNK_LANG, Common::kMacRoman, -1, "Chicago" }, // system font
+ { 1, Common::UNK_LANG, Common::kMacRoman, -1, "Geneva" }, // application font
+ { 2, Common::UNK_LANG, Common::kMacRoman, -1, "New York" },
+ { 3, Common::UNK_LANG, Common::kMacRoman, -1, "Geneva" },
+ { 4, Common::UNK_LANG, Common::kMacRoman, -1, "Monaco" },
+ { 5, Common::UNK_LANG, Common::kMacRoman, -1, "Venice" },
+ { 6, Common::UNK_LANG, Common::kMacRoman, -1, "London" },
+ { 7, Common::UNK_LANG, Common::kMacRoman, -1, "Athens" },
+ { 8, Common::UNK_LANG, Common::kMacRoman, -1, "San Francisco" },
+ { 9, Common::UNK_LANG, Common::kMacRoman, -1, "Toronto" },
+ { 11, Common::UNK_LANG, Common::kMacRoman, -1, "Cairo" },
+ { 12, Common::UNK_LANG, Common::kMacRoman, -1, "Los Angeles" },
+ { 13, Common::UNK_LANG, Common::kMacRoman, -1, "Zapf Dingbats" },
+ { 14, Common::UNK_LANG, Common::kMacRoman, -1, "Bookman" },
+ { 15, Common::UNK_LANG, Common::kMacRoman, -1, "Helvetica Narrow" },
+ { 16, Common::UNK_LANG, Common::kMacRoman, -1, "Palatino" },
+ { 18, Common::UNK_LANG, Common::kMacRoman, -1, "Zapf Chancery" },
+ { 20, Common::UNK_LANG, Common::kMacRoman, -1, "Times" }, // 20
+ { 21, Common::UNK_LANG, Common::kMacRoman, -1, "Helvetica" },
+ { 22, Common::UNK_LANG, Common::kMacRoman, -1, "Courier" },
+ { 23, Common::UNK_LANG, Common::kMacRoman, -1, "Symbol" },
+ { 24, Common::UNK_LANG, Common::kMacRoman, -1, "Taliesin" }, // mobile?
+ { 33, Common::UNK_LANG, Common::kMacRoman, -1, "Avant Garde" },
+ { 34, Common::UNK_LANG, Common::kMacRoman, -1, "New Century Schoolbook" },
// Japanese (names are Shift JIS encoded)
- { 16384, Common::JA_JPN, Common::kUtf8, -1, "Osaka" },
- { 16396, Common::JA_JPN, Common::kUtf8, 16384, "\x96\x7B\x96\xBE\x92\xA9\x81\x7C\x82\x6C" }, // Book Mincho - M
- { 16433, Common::JA_JPN, Common::kUtf8, 16436, "\x93\x99\x95\x9D\x83\x53\x83\x56\x83\x62\x83\x4E" }, // Mono Gothic
- { 16435, Common::JA_JPN, Common::kUtf8, 16436, "\x93\x99\x95\x9D\x96\xBE\x92\xA9" }, // Mono Ming
- { 16436, Common::JA_JPN, Common::kUtf8, -1, "Osaka\x81\x7C\x93\x99\x95\x9D" }, // Osaka Mono
- { 16436, Common::JA_JPN, Common::kUtf8, -1, "OsakaMono" }, // redundant entry is to register English name
- { 16640, Common::JA_JPN, Common::kUtf8, 16384, "\x92\x86\x83\x53\x83\x56\x83\x62\x83\x4E\x91\xCC" }, // Medium Gothic
- { 16641, Common::JA_JPN, Common::kUtf8, 16384, "\x8D\xD7\x96\xBE\x92\xA9\x91\xCC" }, // Ming
- { 16700, Common::JA_JPN, Common::kUtf8, 16384, "\x95\xBD\x90\xAC\x96\xBE\x92\xA9" }, // Heisi Mincho
- { 16701, Common::JA_JPN, Common::kUtf8, 16384, "\x95\xBD\x90\xAC\x8A\x70\x83\x53\x83\x56\x83\x62\x83\x4E" }, // Heisei Kaku Gothic
+ { 16384, Common::JA_JPN, Common::kUtf8, -1, "Osaka" },
+ { 16396, Common::JA_JPN, Common::kUtf8, 16384, "\x96\x7B\x96\xBE\x92\xA9\x81\x7C\x82\x6C" }, // Book Mincho - M
+ { 16433, Common::JA_JPN, Common::kUtf8, 16436, "\x93\x99\x95\x9D\x83\x53\x83\x56\x83\x62\x83\x4E" }, // Mono Gothic
+ { 16435, Common::JA_JPN, Common::kUtf8, 16436, "\x93\x99\x95\x9D\x96\xBE\x92\xA9" }, // Mono Ming
+ { 16436, Common::JA_JPN, Common::kUtf8, -1, "Osaka\x81\x7C\x93\x99\x95\x9D" }, // Osaka Mono
+ { 16436, Common::JA_JPN, Common::kUtf8, -1, "OsakaMono" }, // redundant entry is to register English name
+ { 16640, Common::JA_JPN, Common::kUtf8, 16384, "\x92\x86\x83\x53\x83\x56\x83\x62\x83\x4E\x91\xCC" }, // Medium Gothic
+ { 16641, Common::JA_JPN, Common::kUtf8, 16384, "\x8D\xD7\x96\xBE\x92\xA9\x91\xCC" }, // Ming
+ { 16700, Common::JA_JPN, Common::kUtf8, 16384, "\x95\xBD\x90\xAC\x96\xBE\x92\xA9" }, // Heisi Mincho
+ { 16701, Common::JA_JPN, Common::kUtf8, 16384, "\x95\xBD\x90\xAC\x8A\x70\x83\x53\x83\x56\x83\x62\x83\x4E" }, // Heisei Kaku Gothic
{ -1, Common::UNK_LANG, Common::kCodePageInvalid, -1, NULL }
};
@@ -494,7 +494,7 @@ int MacFontManager::registerFontName(Common::String name, int preferredId) {
info->lang = Common::JA_JPN;
info->encoding = Common::kWindows932; // default to Shift JIS
} else {
- info->encoding = Common::kMacCentralEurope;
+ info->encoding = Common::kMacRoman;
}
_fontInfo[id] = info;
_fontIds[name] = id;
Commit: e6a53809894534ca6f3957788ffe1289cfd19252
https://github.com/scummvm/scummvm/commit/e6a53809894534ca6f3957788ffe1289cfd19252
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:21-04:00
Commit Message:
COMMON: Add U32String version of toPrintable
This only escapes ASCII control characters, not characters wih
codepoints > 127.
Changed paths:
common/ustr.cpp
common/ustr.h
diff --git a/common/ustr.cpp b/common/ustr.cpp
index 8f43349eab..15368c565f 100644
--- a/common/ustr.cpp
+++ b/common/ustr.cpp
@@ -267,4 +267,41 @@ char* U32String::itoa(int num, char* str, int base) {
return str;
}
+U32String toPrintable(const U32String &in, bool keepNewLines) {
+ U32String res;
+
+ const char *tr = "\x01\x01\x02\x03\x04\x05\x06" "a"
+ //"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f";
+ "b" "t" "n" "v" "f" "r\x0e\x0f"
+ "\x10\x11\x12\x13\x14\x15\x16\x17"
+ "\x18\x19\x1a" "e\x1c\x1d\x1e\x1f";
+
+ for (const u32char_type_t *p = in.c_str(); *p; p++) {
+ if (*p == '\n') {
+ if (keepNewLines)
+ res += *p;
+ else
+ res += U32String("\\n");
+
+ continue;
+ }
+
+ if (*p < 0x20 || *p == '\'' || *p == '\"' || *p == '\\') {
+ res += '\\';
+
+ if (*p < 0x20) {
+ if (tr[*p] < 0x20)
+ res += Common::String::format("x%02x", *p);
+ else
+ res += tr[*p];
+ } else {
+ res += *p; // We will escape it
+ }
+ } else
+ res += *p;
+ }
+
+ return res;
+}
+
} // End of namespace Common
diff --git a/common/ustr.h b/common/ustr.h
index 82906df302..ad7745f6cb 100644
--- a/common/ustr.h
+++ b/common/ustr.h
@@ -200,6 +200,18 @@ U32String operator+(const U32String &x, const U32String &y);
/** Append the given @p y character to the given @p x string. */
U32String operator+(const U32String &x, U32String::value_type y);
+/**
+ * Converts string with all non-printable characters properly escaped
+ * with use of C++ escape sequences.
+ * Unlike the String version, this does not escape characters with
+ * codepoints > 127.
+ *
+ * @param src The source string.
+ * @param keepNewLines Whether keep newlines or convert them to '\n', default: true.
+ * @return The converted string.
+ */
+U32String toPrintable(const U32String &src, bool keepNewLines = true);
+
/** @} */
} // End of namespace Common
Commit: acf0b1fbcfc0ee0f0da71567a52543aad271b5e6
https://github.com/scummvm/scummvm/commit/acf0b1fbcfc0ee0f0da71567a52543aad271b5e6
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-12T15:41:21-04:00
Commit Message:
DIRECTOR: Escape non-printable STXT characters before logging
Changed paths:
engines/director/stxt.cpp
diff --git a/engines/director/stxt.cpp b/engines/director/stxt.cpp
index 4ae00a2919..0daef8f36e 100644
--- a/engines/director/stxt.cpp
+++ b/engines/director/stxt.cpp
@@ -88,7 +88,7 @@ Stxt::Stxt(Cast *cast, Common::SeekableReadStreamEndian &textStream) : _cast(cas
Common::U32String u32TextPart(textPart, encoding);
_ptext += u32TextPart;
_ftext += u32TextPart;
- logText += u32TextPart;
+ logText += Common::toPrintable(u32TextPart);
Common::String format = Common::String::format("\001\016%04x%02x%04x%04x%04x%04x", _style.fontId, _style.textSlant, _style.fontSize, _style.r, _style.g, _style.b);
_ftext += format;
@@ -101,9 +101,9 @@ Stxt::Stxt(Cast *cast, Common::SeekableReadStreamEndian &textStream) : _cast(cas
Common::U32String u32Text(text, encoding);
_ptext += u32Text;
_ftext += u32Text;
- logText += u32Text;
+ logText += Common::toPrintable(u32Text);
- debugC(4, kDebugText, "#### text:\n%s\n####", logText.encode().c_str());
+ debugC(4, kDebugText, "#### text:\n%s\n####", logText.encode(Common::kUtf8).c_str());
}
FontStyle::FontStyle() {
More information about the Scummvm-git-logs
mailing list