[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