From 5bcf082f8b15d5af258b4c16dca7177b6762f2b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fridrich=20=C5=A0trba?= Date: Fri, 1 Mar 2013 14:05:37 +0100 Subject: [PATCH] Override encodings in stlt --- src/lib/CDRParser.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp index 99526c0..08dcccf 100644 --- a/src/lib/CDRParser.cpp +++ b/src/lib/CDRParser.cpp @@ -2415,7 +2415,8 @@ void libcdr::CDRParser::readStlt(WPXInputStream *input, unsigned length) } unsigned numFonts = readU32(input); CDR_DEBUG_MSG(("CDRParser::readStlt numFonts 0x%x\n", numFonts)); - std::map fontIds; + std::map fontIds; + std::map fontEncodings; std::map fontSizes; for (i=0; iseek(12, WPX_SEEK_CUR); else input->seek(20, WPX_SEEK_CUR); - fontIds[fontStyleId] = readU32(input); + fontIds[fontStyleId] = readU16(input); + fontEncodings[fontStyleId] = readU16(input); input->seek(8, WPX_SEEK_CUR); fontSizes[fontStyleId] = readCoordinate(input); if (m_version < 1000) @@ -2578,9 +2580,12 @@ void libcdr::CDRParser::readStlt(WPXInputStream *input, unsigned length) } if (!fontRecordId) continue; - std::map::const_iterator iterFontId = fontIds.find(fontRecordId); + std::map::const_iterator iterFontId = fontIds.find(fontRecordId); if (iterFontId != fontIds.end()) tmpCharStyle.m_fontId = iterFontId->second; + std::map::const_iterator iterCharSet = fontEncodings.find(fontRecordId); + if (iterCharSet != fontEncodings.end()) + tmpCharStyle.m_charSet = iterCharSet->second; std::map::const_iterator iterFontSize = fontSizes.find(fontRecordId); if (iterFontSize != fontSizes.end()) tmpCharStyle.m_fontSize = iterFontSize->second; -- 1.8.1