src/lib/CDRParser.cpp |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

New commits:
commit 528018f253d8e01cd5507eed1b3f852346887a5f
Author:     Fridrich Štrba <fridrich.st...@bluewin.ch>
AuthorDate: Mon Mar 22 11:47:35 2021 +0100
Commit:     Fridrich Štrba <fridrich.st...@bluewin.ch>
CommitDate: Mon Mar 22 11:47:35 2021 +0100

    A possible fix of multi-paragraph text in frame
    
    Change-Id: I8a6a455b2dd57b9aa0d2fa3a0e3298f623f1586d

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index ca881fc..36b6aff 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2631,7 +2631,9 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
   {
 #endif
     unsigned frameFlag = readU32(input);
-    input->seek(41, librevenge::RVNG_SEEK_CUR);
+    input->seek(37, librevenge::RVNG_SEEK_CUR);
+
+    unsigned numFrame = readU32(input);
 
     unsigned textId = readU32(input);
 
@@ -2643,6 +2645,17 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
       if (m_version < 1700)
         tlen *= 2;
       input->seek(tlen, librevenge::RVNG_SEEK_CUR);
+      if (numFrame > 1)
+      {
+        for (unsigned i = 0; i < numFrame-1; i++)
+        {
+          input->seek(80, librevenge::RVNG_SEEK_CUR);
+          tlen = readU32(input);
+          if (m_version < 1700)
+            tlen *= 2;
+          input->seek(tlen, librevenge::RVNG_SEEK_CUR);
+        }
+      }
     }
     else
     {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to