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

David Tardon dtardon at redhat.com
Thu Dec 28 16:20:21 UTC 2017


 src/lib/MSPUBCollector.cpp |    6 +++---
 src/lib/libmspub_utils.cpp |    2 +-
 src/lib/libmspub_utils.h   |    2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

New commits:
commit 522860ad23e1aa368fe09885e7973fafc4d456e5
Author: David Tardon <dtardon at redhat.com>
Date:   Thu Dec 28 17:16:44 2017 +0100

    fix copypasta
    
    Regression since commit 860883fa6fa861f808c091a3cecd03aa351d87a8 .
    
    Change-Id: I36d26d8971891150afca060f86e73af953fab840

diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp
index 062b7dd..dafe561 100644
--- a/src/lib/MSPUBCollector.cpp
+++ b/src/lib/MSPUBCollector.cpp
@@ -312,7 +312,7 @@ void MSPUBCollector::setShapeStretchBorderArt(unsigned seqNum)
 void MSPUBCollector::setRectCoordProps(Coordinate coord, librevenge::RVNGPropertyList *props) const
 {
   props->insert("svg:x", coord.getXIn(m_width));
-  props->insert("svg:y", coord.getYIn(m_width));
+  props->insert("svg:y", coord.getYIn(m_height));
   props->insert("svg:width", coord.getWidthIn());
   props->insert("svg:height", coord.getHeightIn());
 }
commit 713bf6adc28bf34fa308e3139e8cb2c6bb462ba0
Author: David Tardon <dtardon at redhat.com>
Date:   Thu Dec 28 12:31:51 2017 +0100

    avoid unnecessary copying
    
    Change-Id: I39c19a1782ab99b64c873f8352833217e0e06f13

diff --git a/src/lib/libmspub_utils.cpp b/src/lib/libmspub_utils.cpp
index ba34cc5..b2e1391 100644
--- a/src/lib/libmspub_utils.cpp
+++ b/src/lib/libmspub_utils.cpp
@@ -380,7 +380,7 @@ unsigned long getLength(librevenge::RVNGInputStream *const input)
 #define SURROGATE_VALUE(h,l) (((h) - 0xd800) * 0x400 + (l) - 0xdc00 + 0x10000)
 
 
-void appendCharacters(librevenge::RVNGString &text, const std::vector<unsigned char> characters,
+void appendCharacters(librevenge::RVNGString &text, const std::vector<unsigned char> &characters,
                       const char *encoding)
 {
   if (characters.empty())
diff --git a/src/lib/libmspub_utils.h b/src/lib/libmspub_utils.h
index dba757e..3d1c712 100644
--- a/src/lib/libmspub_utils.h
+++ b/src/lib/libmspub_utils.h
@@ -75,7 +75,7 @@ void readNBytes(librevenge::RVNGInputStream *input, unsigned long length, std::v
 
 unsigned long getLength(librevenge::RVNGInputStream *input);
 
-void appendCharacters(librevenge::RVNGString &text, std::vector<unsigned char> characters, const char *encoding);
+void appendCharacters(librevenge::RVNGString &text, const std::vector<unsigned char> &characters, const char *encoding);
 
 bool stillReading(librevenge::RVNGInputStream *input, unsigned long until);
 
commit 5409761baa20c34286620adcf23d2388ea40cc93
Author: David Tardon <dtardon at redhat.com>
Date:   Thu Dec 28 11:11:58 2017 +0100

    tdf#89393 handle multiple paragraphs in cell correctly
    
    Change-Id: If621c41aaa624ed1a61e8e659a2326efb66a2eba

diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp
index d40070d..062b7dd 100644
--- a/src/lib/MSPUBCollector.cpp
+++ b/src/lib/MSPUBCollector.cpp
@@ -222,13 +222,16 @@ void mapTableTextToCells(
 
     assert(paraTexts.back().size() <= text[para].spans.size());
 
-    if (offset > tableCellTextEnds[paraToCellMap.size()])
+    if (offset >= tableCellTextEnds[paraToCellMap.size()])
     {
-      MSPUB_DEBUG_MSG(("text of cell %u ends in the middle of a paragraph!\n", unsigned(paraToCellMap.size())));
-    }
+      if (offset > tableCellTextEnds[paraToCellMap.size()])
+      {
+        MSPUB_DEBUG_MSG(("text of cell %u ends in the middle of a paragraph!\n", unsigned(paraToCellMap.size())));
+      }
 
-    paraToCellMap.push_back(std::make_pair(firstPara, para));
-    firstPara = para + 1;
+      paraToCellMap.push_back(std::make_pair(firstPara, para));
+      firstPara = para + 1;
+    }
   }
 
   assert(paraTexts.size() == text.size());
commit 1964f1b56f26b902a54f3b499f44a9c5dadfc808
Author: David Tardon <dtardon at redhat.com>
Date:   Wed Dec 27 21:21:54 2017 +0100

    stop after processing all cells
    
    Change-Id: Ic0df0ed2d6773d4be74aca3d7b6b64664fe8d73e

diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp
index 1ccd15e..d40070d 100644
--- a/src/lib/MSPUBCollector.cpp
+++ b/src/lib/MSPUBCollector.cpp
@@ -204,7 +204,7 @@ void mapTableTextToCells(
 
   unsigned firstPara = 0;
   unsigned offset = 1;
-  for (unsigned para = 0; para != text.size(); ++para)
+  for (unsigned para = 0; para != text.size() && paraToCellMap.size() < tableCellTextEnds.size(); ++para)
   {
     paraTexts.push_back(SpanTexts_t());
     paraTexts.back().reserve(text[para].spans.size());
@@ -222,16 +222,13 @@ void mapTableTextToCells(
 
     assert(paraTexts.back().size() <= text[para].spans.size());
 
-    if ((paraToCellMap.size() < tableCellTextEnds.size()))
+    if (offset > tableCellTextEnds[paraToCellMap.size()])
     {
-      if (offset > tableCellTextEnds[paraToCellMap.size()])
-      {
-        MSPUB_DEBUG_MSG(("text of cell %u ends in the middle of a paragraph!\n", unsigned(paraToCellMap.size())));
-      }
-
-      paraToCellMap.push_back(std::make_pair(firstPara, para));
-      firstPara = para + 1;
+      MSPUB_DEBUG_MSG(("text of cell %u ends in the middle of a paragraph!\n", unsigned(paraToCellMap.size())));
     }
+
+    paraToCellMap.push_back(std::make_pair(firstPara, para));
+    firstPara = para + 1;
   }
 
   assert(paraTexts.size() == text.size());


More information about the Libreoffice-commits mailing list