qt5/src/poppler-private.cc | 4 ++-- qt5/tests/check_strings.cpp | 9 +++++++++ qt6/src/poppler-private.cc | 4 ++-- qt6/tests/check_strings.cpp | 9 +++++++++ 4 files changed, 22 insertions(+), 4 deletions(-)
New commits: commit 2b8692a5a52a8cd997e70f7912ad7cedeb34891b Author: Albert Astals Cid <[email protected]> Date: Tue Aug 25 23:05:51 2020 +0200 qt: Clean as many null characters from the end as possible Not only one Fixes KDE bug #425791 diff --git a/qt5/src/poppler-private.cc b/qt5/src/poppler-private.cc index 827a6345..84cc8c56 100644 --- a/qt5/src/poppler-private.cc +++ b/qt5/src/poppler-private.cc @@ -77,8 +77,8 @@ QString unicodeToQString(const Unicode *u, int len) { const UnicodeMap *utf8Map = globalParams->getUtf8Map(); - // ignore the last character if it is 0x0 - if ((len > 0) && (u[len - 1] == 0)) { + // ignore the last characters if they are 0x0 + while ((len > 0) && (u[len - 1] == 0)) { --len; } diff --git a/qt5/tests/check_strings.cpp b/qt5/tests/check_strings.cpp index 948171f6..4c996c4f 100644 --- a/qt5/tests/check_strings.cpp +++ b/qt5/tests/check_strings.cpp @@ -114,6 +114,15 @@ void TestStrings::check_unicodeToQString_data() u[2] = 0x0; QTest::newRow("\xe5\xb0\x81\xe9\x9d\xa2 + 0") << u << l << QStringLiteral("封面"); } + { + const int l = 4; + Unicode *u = new Unicode[l]; + u[0] = 0x5c01; + u[1] = 0x9762; + u[2] = 0x0; + u[3] = 0x0; + QTest::newRow("\xe5\xb0\x81\xe9\x9d\xa2 + two 0") << u << l << QStringLiteral("封面"); + } } void TestStrings::check_unicodeToQString() diff --git a/qt6/src/poppler-private.cc b/qt6/src/poppler-private.cc index 44a9a6dc..e7566500 100644 --- a/qt6/src/poppler-private.cc +++ b/qt6/src/poppler-private.cc @@ -77,8 +77,8 @@ QString unicodeToQString(const Unicode *u, int len) { const UnicodeMap *utf8Map = globalParams->getUtf8Map(); - // ignore the last character if it is 0x0 - if ((len > 0) && (u[len - 1] == 0)) { + // ignore the last characters if they are 0x0 + while ((len > 0) && (u[len - 1] == 0)) { --len; } diff --git a/qt6/tests/check_strings.cpp b/qt6/tests/check_strings.cpp index fa7c6bab..c887105c 100644 --- a/qt6/tests/check_strings.cpp +++ b/qt6/tests/check_strings.cpp @@ -114,6 +114,15 @@ void TestStrings::check_unicodeToQString_data() u[2] = 0x0; QTest::newRow("\xe5\xb0\x81\xe9\x9d\xa2 + 0") << u << l << QStringLiteral("封面"); } + { + const int l = 4; + Unicode *u = new Unicode[l]; + u[0] = 0x5c01; + u[1] = 0x9762; + u[2] = 0x0; + u[3] = 0x0; + QTest::newRow("\xe5\xb0\x81\xe9\x9d\xa2 + two 0") << u << l << QStringLiteral("封面"); + } } void TestStrings::check_unicodeToQString() _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
