[Libreoffice-commits] libvisio.git: 2 commits - src/lib
David Tardon
dtardon at redhat.com
Sat Jul 29 11:34:14 UTC 2017
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 <dtardon at 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 <dtardon at 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;
More information about the Libreoffice-commits
mailing list