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

David Tardon dtardon at redhat.com
Fri Dec 26 10:35:41 PST 2014


 src/lib/MSPUBParser.cpp |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit 7e994d4632e382df6aeccdab0f3408c8d3dc112b
Author: David Tardon <dtardon at redhat.com>
Date:   Fri Dec 26 19:34:49 2014 +0100

    drop trailing 0 when reading embedded font name
    
    Change-Id: Iaf8a0f9d8a38c9316f9f1e411a8f9d0f4e89e252

diff --git a/src/lib/MSPUBParser.cpp b/src/lib/MSPUBParser.cpp
index f0e8d65..deba5b2 100644
--- a/src/lib/MSPUBParser.cpp
+++ b/src/lib/MSPUBParser.cpp
@@ -484,6 +484,14 @@ bool MSPUBParser::parseFontChunk(
             if (subSubInfo.id == EMBEDDED_FONT_NAME)
             {
               name = librevenge::RVNGString();
+              // drop trailing 0
+              // TODO: This could be a general problem. Check.
+              const std::size_t len = subSubInfo.stringData.size();
+              if ((len > 2) && (subSubInfo.stringData[len - 1] == 0) && (subSubInfo.stringData[len - 2] == 0))
+              {
+                subSubInfo.stringData.pop_back();
+                subSubInfo.stringData.pop_back();
+              }
               appendCharacters(name.get(), subSubInfo.stringData, "UTF-16LE");
             }
             else if (subSubInfo.id == EMBEDDED_EOT)


More information about the Libreoffice-commits mailing list