diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-01-11 21:06:17 +0100 |
---|---|---|
committer | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2022-01-11 21:55:19 +0100 |
commit | 370710657a7e7c771668107d1b6407fc350a2891 (patch) | |
tree | fe258f61196f155b67d3fcd193d0dd052c72a251 /libtests | |
parent | 77c31305fe1e9fde7ebf221fca94e7628cbf5a28 (diff) | |
download | qpdf-370710657a7e7c771668107d1b6407fc350a2891.tar.zst |
Add missing characters from PDF doc encoding (fixes #606)
Diffstat (limited to 'libtests')
-rw-r--r-- | libtests/qtest/qutil/qutil.out | 3 | ||||
-rw-r--r-- | libtests/qutil.cc | 17 |
2 files changed, 15 insertions, 5 deletions
diff --git a/libtests/qtest/qutil/qutil.out b/libtests/qtest/qutil/qutil.out index 90f1fd16..bcb89def 100644 --- a/libtests/qtest/qutil/qutil.out +++ b/libtests/qtest/qutil/qutil.out @@ -69,6 +69,7 @@ HAGOOGAMAGOOGLE: 0 <c0>Does * have fingers? ---- transcoding bidirectional pdf doc done +bidirectional pdf doc low done bidirectional win ansi done bidirectional mac roman done analysis done @@ -85,6 +86,8 @@ alternatives 2: 83a9e99e 0: 717561636b done alternatives +w˘wˇwˆw˙w˝w˛w˚w˜w�w +done low characters ---- whoami quack1 quack2 diff --git a/libtests/qutil.cc b/libtests/qutil.cc index 46eb840c..cd2b7796 100644 --- a/libtests/qutil.cc +++ b/libtests/qutil.cc @@ -308,12 +308,12 @@ void utf8_to_ascii_test() void transcoding_test(std::string (*to_utf8)(std::string const&), std::string (*from_utf8)(std::string const&, char), - int last, std::string unknown) + int first, int last, std::string unknown) { std::string in(" "); std::string out; std::string back; - for (int i = 128; i <= last; ++i) + for (int i = first; i <= last; ++i) { in.at(0) = static_cast<char>(static_cast<unsigned char>(i)); out = (*to_utf8)(in); @@ -355,13 +355,16 @@ void print_alternatives(std::string const& str) void transcoding_test() { transcoding_test(&QUtil::pdf_doc_to_utf8, - &QUtil::utf8_to_pdf_doc, 160, "\x9f"); + &QUtil::utf8_to_pdf_doc, 127, 160, "\x9f"); std::cout << "bidirectional pdf doc done" << std::endl; + transcoding_test(&QUtil::pdf_doc_to_utf8, + &QUtil::utf8_to_pdf_doc, 24, 31, "?"); + std::cout << "bidirectional pdf doc low done" << std::endl; transcoding_test(&QUtil::win_ansi_to_utf8, - &QUtil::utf8_to_win_ansi, 160, "?"); + &QUtil::utf8_to_win_ansi, 128, 160, "?"); std::cout << "bidirectional win ansi done" << std::endl; transcoding_test(&QUtil::mac_roman_to_utf8, - &QUtil::utf8_to_mac_roman, 255, "?"); + &QUtil::utf8_to_mac_roman, 128, 255, "?"); std::cout << "bidirectional mac roman done" << std::endl; check_analyze("pi = \317\200", true, true, false); check_analyze("pi != \317", true, false, false); @@ -396,6 +399,10 @@ void transcoding_test() print_alternatives(utf8); print_alternatives("quack"); std::cout << "done alternatives" << std::endl; + std::string low = QUtil::pdf_doc_to_utf8( + "w\030w\031w\032w\033w\034w\035w\036w\037w\177w"); + std::cout << low << std::endl; + std::cout << "done low characters" << std::endl; } void print_whoami(char const* str) |