[Libreoffice-commits] libvisio.git: configure.ac src/lib

Fridrich Å trba fridrich.strba at bluewin.ch
Thu Nov 14 05:18:27 PST 2013


 configure.ac                     |    4 ----
 src/lib/VDXParser.cpp            |    2 +-
 src/lib/VSDContentCollector.cpp  |   19 ++++++++++---------
 src/lib/VSDOutputElementList.cpp |   15 +++++++--------
 src/lib/VSDOutputElementList.h   |    2 +-
 src/lib/libvisio_utils.cpp       |   24 ------------------------
 src/lib/libvisio_utils.h         |    2 --
 7 files changed, 19 insertions(+), 49 deletions(-)

New commits:
commit 160bf0730eccf727d59b6ad41417631c48844915
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Thu Nov 14 14:18:02 2013 +0100

    Adapt to API change in librevenge
    
    Change-Id: I5a705cc554d6bedbbf93cd1bf798461dc50f376a

diff --git a/configure.ac b/configure.ac
index 673af7c..7fa0150 100644
--- a/configure.ac
+++ b/configure.ac
@@ -104,11 +104,7 @@ AC_SUBST(ZLIB_LIBS)
 
 AC_CHECK_HEADERS(
 	boost/algorithm/string.hpp \
-	boost/archive/iterators/binary_from_base64.hpp \
-	boost/archive/iterators/remove_whitespace.hpp \
-	boost/archive/iterators/transform_width.hpp \
 	boost/optional.hpp \
-	boost/range/iterator_range.hpp \
 	boost/spirit/include/classic.hpp,
 	[],
 	[AC_MSG_ERROR(Required boost headers not found. install boost >= 1.36)],
diff --git a/src/lib/VDXParser.cpp b/src/lib/VDXParser.cpp
index 292243e..2136636 100644
--- a/src/lib/VDXParser.cpp
+++ b/src/lib/VDXParser.cpp
@@ -843,7 +843,7 @@ void libvisio::VDXParser::getBinaryData(xmlTextReaderPtr reader)
       if (!m_shape.m_foreign)
         m_shape.m_foreign = new ForeignData();
       m_shape.m_foreign->data.clear();
-      appendFromBase64(m_shape.m_foreign->data, data, xmlStrlen(data));
+      m_shape.m_foreign->data.append(librevenge::RVNGString((const char *)data));
     }
   }
 }
diff --git a/src/lib/VSDContentCollector.cpp b/src/lib/VSDContentCollector.cpp
index 68cb54f..a9537d3 100644
--- a/src/lib/VSDContentCollector.cpp
+++ b/src/lib/VSDContentCollector.cpp
@@ -707,7 +707,8 @@ void libvisio::VSDContentCollector::_flushCurrentForeignData()
   if (m_currentForeignData.size() && m_currentForeignProps["librevenge:mime-type"] && m_foreignWidth != 0.0 && m_foreignHeight != 0.0)
   {
     m_shapeOutputDrawing->addStyle(styleProps, librevenge::RVNGPropertyListVector());
-    m_shapeOutputDrawing->addGraphicObject(m_currentForeignProps, m_currentForeignData);
+    m_currentForeignProps.insert("office:binary-data", m_currentForeignData);
+    m_shapeOutputDrawing->addGraphicObject(m_currentForeignProps);
   }
   m_currentForeignData.clear();
   m_currentForeignProps.clear();
@@ -1111,15 +1112,15 @@ void libvisio::VSDContentCollector::_handleForeignData(const librevenge::RVNGBin
       m_currentForeignData.append((unsigned char)(((binaryData.size() + 14) & 0x00ff0000) >> 16));
       m_currentForeignData.append((unsigned char)(((binaryData.size() + 14) & 0xff000000) >> 24));
 
-      m_currentForeignData.append(0x00);
-      m_currentForeignData.append(0x00);
-      m_currentForeignData.append(0x00);
-      m_currentForeignData.append(0x00);
+      m_currentForeignData.append((unsigned char)0x00);
+      m_currentForeignData.append((unsigned char)0x00);
+      m_currentForeignData.append((unsigned char)0x00);
+      m_currentForeignData.append((unsigned char)0x00);
 
-      m_currentForeignData.append(0x36);
-      m_currentForeignData.append(0x00);
-      m_currentForeignData.append(0x00);
-      m_currentForeignData.append(0x00);
+      m_currentForeignData.append((unsigned char)0x36);
+      m_currentForeignData.append((unsigned char)0x00);
+      m_currentForeignData.append((unsigned char)0x00);
+      m_currentForeignData.append((unsigned char)0x00);
     }
     m_currentForeignData.append(binaryData);
 
diff --git a/src/lib/VSDOutputElementList.cpp b/src/lib/VSDOutputElementList.cpp
index af6275f..9fe4a66 100644
--- a/src/lib/VSDOutputElementList.cpp
+++ b/src/lib/VSDOutputElementList.cpp
@@ -77,16 +77,15 @@ private:
 class VSDGraphicObjectOutputElement : public VSDOutputElement
 {
 public:
-  VSDGraphicObjectOutputElement(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGBinaryData &binaryData);
+  VSDGraphicObjectOutputElement(const librevenge::RVNGPropertyList &propList);
   virtual ~VSDGraphicObjectOutputElement() {}
   virtual void draw(librevenge::RVNGDrawingInterface *painter);
   virtual VSDOutputElement *clone()
   {
-    return new VSDGraphicObjectOutputElement(m_propList, m_binaryData);
+    return new VSDGraphicObjectOutputElement(m_propList);
   }
 private:
   librevenge::RVNGPropertyList m_propList;
-  librevenge::RVNGBinaryData m_binaryData;
 };
 
 
@@ -240,13 +239,13 @@ void libvisio::VSDPathOutputElement::draw(librevenge::RVNGDrawingInterface *pain
 }
 
 
-libvisio::VSDGraphicObjectOutputElement::VSDGraphicObjectOutputElement(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGBinaryData &binaryData) :
-  m_propList(propList), m_binaryData(binaryData) {}
+libvisio::VSDGraphicObjectOutputElement::VSDGraphicObjectOutputElement(const librevenge::RVNGPropertyList &propList) :
+  m_propList(propList) {}
 
 void libvisio::VSDGraphicObjectOutputElement::draw(librevenge::RVNGDrawingInterface *painter)
 {
   if (painter)
-    painter->drawGraphicObject(m_propList, m_binaryData);
+    painter->drawGraphicObject(m_propList);
 }
 
 
@@ -389,9 +388,9 @@ void libvisio::VSDOutputElementList::addPath(const librevenge::RVNGPropertyListV
   m_elements.push_back(new VSDPathOutputElement(propListVec));
 }
 
-void libvisio::VSDOutputElementList::addGraphicObject(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGBinaryData &binaryData)
+void libvisio::VSDOutputElementList::addGraphicObject(const librevenge::RVNGPropertyList &propList)
 {
-  m_elements.push_back(new VSDGraphicObjectOutputElement(propList, binaryData));
+  m_elements.push_back(new VSDGraphicObjectOutputElement(propList));
 }
 
 void libvisio::VSDOutputElementList::addStartTextObject(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGPropertyListVector &propListVec)
diff --git a/src/lib/VSDOutputElementList.h b/src/lib/VSDOutputElementList.h
index c86e5f9..d65e946 100644
--- a/src/lib/VSDOutputElementList.h
+++ b/src/lib/VSDOutputElementList.h
@@ -52,7 +52,7 @@ public:
   void draw(librevenge::RVNGDrawingInterface *painter) const;
   void addStyle(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGPropertyListVector &propListVec);
   void addPath(const librevenge::RVNGPropertyListVector &propListVec);
-  void addGraphicObject(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGBinaryData &binaryData);
+  void addGraphicObject(const librevenge::RVNGPropertyList &propList);
   void addStartTextObject(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGPropertyListVector &propListVec);
   void addOpenParagraph(const librevenge::RVNGPropertyList &propList, const librevenge::RVNGPropertyListVector &propListVec);
   void addOpenSpan(const librevenge::RVNGPropertyList &propList);
diff --git a/src/lib/libvisio_utils.cpp b/src/lib/libvisio_utils.cpp
index a5c12d0..818933f 100644
--- a/src/lib/libvisio_utils.cpp
+++ b/src/lib/libvisio_utils.cpp
@@ -34,11 +34,6 @@
 #include "VSDInternalStream.h"
 #include "libvisio_utils.h"
 
-#include <boost/archive/iterators/binary_from_base64.hpp>
-#include <boost/archive/iterators/remove_whitespace.hpp>
-#include <boost/archive/iterators/transform_width.hpp>
-#include <boost/range/iterator_range.hpp>
-
 uint8_t libvisio::readU8(librevenge::RVNGInputStream *input)
 {
   if (!input || input->isEnd())
@@ -126,25 +121,6 @@ double libvisio::readDouble(librevenge::RVNGInputStream *input)
   return tmpUnion.d;
 }
 
-void libvisio::appendFromBase64(librevenge::RVNGBinaryData &data, const unsigned char *base64Data, size_t base64DataLength)
-{
-  std::string base64String((const char *)base64Data, base64DataLength);
-  unsigned numPadding = std::count(base64String.begin(), base64String.end(), '=');
-  std::replace(base64String.begin(),base64String.end(),'=','A'); // replace '=' by base64 encoding of '\0'
-  typedef boost::archive::iterators::transform_width<
-  boost::archive::iterators::binary_from_base64<
-  boost::archive::iterators::remove_whitespace< std::string::const_iterator > >, 8, 6 > base64_decoder;
-
-  std::vector<unsigned char> buffer;
-  std::copy(base64_decoder(base64String.begin()), base64_decoder(base64String.end()), std::back_inserter(buffer));
-  if (!buffer.empty())
-  {
-    buffer.erase(buffer.end()-numPadding,buffer.end());  // erase padding '\0' characters
-    if (!buffer.empty())
-      data.append(&buffer[0], buffer.size());
-  }
-}
-
 const librevenge::RVNGString libvisio::getColourString(const Colour &c)
 {
   librevenge::RVNGString sColour;
diff --git a/src/lib/libvisio_utils.h b/src/lib/libvisio_utils.h
index 1ffb386..9916502 100644
--- a/src/lib/libvisio_utils.h
+++ b/src/lib/libvisio_utils.h
@@ -98,8 +98,6 @@ uint64_t readU64(librevenge::RVNGInputStream *input);
 
 double readDouble(librevenge::RVNGInputStream *input);
 
-void appendFromBase64(librevenge::RVNGBinaryData &data, const unsigned char *base64Data, size_t base64DataLength);
-
 const librevenge::RVNGString getColourString(const Colour &c);
 
 class EndOfStreamException


More information about the Libreoffice-commits mailing list