src/lib/VSDContentCollector.cpp | 11 ++++++----- src/lib/VSDMetaData.cpp | 4 ++-- src/lib/VSDParser.cpp | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-)
New commits: commit 57777755a70ac2e9522963ff037f55edccb483e6 Author: David Tardon <dtar...@redhat.com> Date: Sat Jul 29 13:17:39 2017 +0200 do not append UTF-8 chars by code unit Change-Id: I9b0279b99d59ab69c1d720e865462b4e03b671bc diff --git a/src/lib/VSDContentCollector.cpp b/src/lib/VSDContentCollector.cpp index bc7fa42..b3a5ffc 100644 --- a/src/lib/VSDContentCollector.cpp +++ b/src/lib/VSDContentCollector.cpp @@ -3572,11 +3572,12 @@ void libvisio::VSDContentCollector::appendCharacters(librevenge::RVNGString &tex return appendCharacters(text, characters); if (format == VSD_TEXT_UTF8) { - for (std::vector<unsigned char>::const_iterator iter = characters.begin(); - iter != characters.end(); ++iter) - { - text.append((const char)*iter); - } + // TODO: revisit for librevenge 0.1 + std::vector<unsigned char> buf; + buf.reserve(characters.size() + 1); + buf.assign(characters.begin(), characters.end()); + buf.push_back(0); + text.append(reinterpret_cast<const char *>(buf.data())); return; } diff --git a/src/lib/VSDMetaData.cpp b/src/lib/VSDMetaData.cpp index 7241b00..1b5bb88 100644 --- a/src/lib/VSDMetaData.cpp +++ b/src/lib/VSDMetaData.cpp @@ -253,8 +253,8 @@ librevenge::RVNGString libvisio::VSDMetaData::readCodePageString(librevenge::RVN { // http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130%28v=vs.85%29.aspx // says this is UTF-8. - for (std::vector<unsigned char>::const_iterator i = characters.begin(); i != characters.end(); ++i) - string.append((const char)*i); + characters.push_back(0); + string.append(reinterpret_cast<const char *>(characters.data())); } else { commit 0a7e952f63add0b2127be11dc8371f9c037160c5 Author: David Tardon <dtar...@redhat.com> Date: Sat Jul 29 13:21:37 2017 +0200 fix debug build Change-Id: Ic475c5808bae006d34a95d530c0a7f7e69e399f4 diff --git a/src/lib/VSDParser.cpp b/src/lib/VSDParser.cpp index 3827313..aae8cb6 100644 --- a/src/lib/VSDParser.cpp +++ b/src/lib/VSDParser.cpp @@ -188,9 +188,9 @@ catch (...) bool libvisio::VSDParser::parseDocument(librevenge::RVNGInputStream *input, unsigned shift) { + std::set<unsigned> visited; try { - std::set<unsigned> visited; handleStreams(input, VSD_TRAILER_STREAM, shift, 0, visited); assert(visited.empty()); return true; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits