[Libreoffice-commits] libcdr.git: src/lib

Fridrich Å trba fridrich.strba at bluewin.ch
Fri Mar 1 07:16:49 PST 2013


 src/lib/CDRParser.cpp |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 5bcf082f8b15d5af258b4c16dca7177b6762f2b8
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Fri Mar 1 14:05:37 2013 +0100

    Override encodings in stlt

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<unsigned,unsigned> fontIds;
+    std::map<unsigned,unsigned short> fontIds;
+    std::map<unsigned,unsigned short> fontEncodings;
     std::map<unsigned,double> fontSizes;
     for (i=0; i<numFonts; ++i)
     {
@@ -2424,7 +2425,8 @@ void libcdr::CDRParser::readStlt(WPXInputStream *input, unsigned length)
         input->seek(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<unsigned, unsigned>::const_iterator iterFontId = fontIds.find(fontRecordId);
+        std::map<unsigned, unsigned short>::const_iterator iterFontId = fontIds.find(fontRecordId);
         if (iterFontId != fontIds.end())
           tmpCharStyle.m_fontId = iterFontId->second;
+        std::map<unsigned, unsigned short>::const_iterator iterCharSet = fontEncodings.find(fontRecordId);
+        if (iterCharSet != fontEncodings.end())
+          tmpCharStyle.m_charSet = iterCharSet->second;
         std::map<unsigned, double>::const_iterator iterFontSize = fontSizes.find(fontRecordId);
         if (iterFontSize != fontSizes.end())
           tmpCharStyle.m_fontSize = iterFontSize->second;


More information about the Libreoffice-commits mailing list