src/lib/VSDContentCollector.cpp | 20 ++++++++++---------- src/lib/VSDParser.cpp | 2 +- src/lib/VSDXMLParserBase.cpp | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-)
New commits: commit ee46486937222c9715b9a7c2c6ceddd116a79296 Author: Fridrich Å trba <fridrich.st...@bluewin.ch> Date: Tue Apr 16 17:40:50 2013 +0200 Don't collect empty foreign data diff --git a/src/lib/VSDContentCollector.cpp b/src/lib/VSDContentCollector.cpp index 2d2fb1d..eb1e2d3 100644 --- a/src/lib/VSDContentCollector.cpp +++ b/src/lib/VSDContentCollector.cpp @@ -1161,22 +1161,22 @@ void libvisio::VSDContentCollector::_handleForeignData(const WPXBinaryData &bina { case 0: case 255: - filename.sprintf("binarydump%i.bmp", bitmapId++); + filename.sprintf("binarydump%08u.bmp", bitmapId++); break; case 1: - filename.sprintf("binarydump%i.jpeg", bitmapId++); + filename.sprintf("binarydump%08u.jpeg", bitmapId++); break; case 2: - filename.sprintf("binarydump%i.gif", bitmapId++); + filename.sprintf("binarydump%08u.gif", bitmapId++); break; case 3: - filename.sprintf("binarydump%i.tiff", bitmapId++); + filename.sprintf("binarydump%08u.tiff", bitmapId++); break; case 4: - filename.sprintf("binarydump%i.png", bitmapId++); + filename.sprintf("binarydump%08u.png", bitmapId++); break; default: - filename.sprintf("binarydump%i.bin", bitmapId++); + filename.sprintf("binarydump%08u.bin", bitmapId++); break; } } @@ -1185,14 +1185,14 @@ void libvisio::VSDContentCollector::_handleForeignData(const WPXBinaryData &bina const unsigned char *tmpBinData = m_currentForeignData.getDataBuffer(); // Check for EMF signature if (m_currentForeignData.size() > 0x2B && tmpBinData[0x28] == 0x20 && tmpBinData[0x29] == 0x45 && tmpBinData[0x2A] == 0x4D && tmpBinData[0x2B] == 0x46) - filename.sprintf("binarydump%i.emf", bitmapId++); + filename.sprintf("binarydump%08u.emf", bitmapId++); else - filename.sprintf("binarydump%i.wmf", bitmapId++); + filename.sprintf("binarydump%08u.wmf", bitmapId++); } else if (m_foreignType == 2) - filename.sprintf("binarydump%i.ole", bitmapId++); + filename.sprintf("binarydump%08u.ole", bitmapId++); else - filename.sprintf("binarydump%i.bin", bitmapId++); + filename.sprintf("binarydump%08u.bin", bitmapId++); FILE *f = fopen(filename.cstr(), "wb"); if (f) diff --git a/src/lib/VSDParser.cpp b/src/lib/VSDParser.cpp index 4232e5a..083e7c9 100644 --- a/src/lib/VSDParser.cpp +++ b/src/lib/VSDParser.cpp @@ -619,7 +619,7 @@ void libvisio::VSDParser::_flushShape() for (std::map<unsigned, VSDName>::const_iterator iterName = m_shape.m_names.begin(); iterName != m_shape.m_names.end(); ++iterName) m_collector->collectName(iterName->first, m_currentShapeLevel+2, iterName->second.m_data, iterName->second.m_format); - if (m_shape.m_foreign) + if (m_shape.m_foreign && m_shape.m_foreign->data.size()) m_collector->collectForeignData(m_currentShapeLevel+1, m_shape.m_foreign->data); if (!m_shape.m_fields.empty()) diff --git a/src/lib/VSDXMLParserBase.cpp b/src/lib/VSDXMLParserBase.cpp index 2e76ec4..287df0a 100644 --- a/src/lib/VSDXMLParserBase.cpp +++ b/src/lib/VSDXMLParserBase.cpp @@ -1765,7 +1765,7 @@ void libvisio::VSDXMLParserBase::_flushShape() } } - if (m_shape.m_foreign) + if (m_shape.m_foreign && m_shape.m_foreign->data.size()) m_collector->collectForeignData(m_currentShapeLevel+1, m_shape.m_foreign->data); if (!m_shape.m_fields.empty())
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits