diff options
author | Jay Berkenbilt <ejb@ql.org> | 2018-06-21 19:05:48 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2018-06-21 21:57:13 +0200 |
commit | e44c395c51518bafbf8f8466ea5a0f4b1f2b2efe (patch) | |
tree | 95da31b1da0055ee2b605272f7079c7ea230584c /libtests | |
parent | 44674a3e58882ea95d6ee54fa3e16c553c0afb3e (diff) | |
download | qpdf-e44c395c51518bafbf8f8466ea5a0f4b1f2b2efe.tar.zst |
QUtil::toUTF16
Diffstat (limited to 'libtests')
-rw-r--r-- | libtests/qtest/qutil/qutil.out | 8 | ||||
-rw-r--r-- | libtests/qutil.cc | 26 |
2 files changed, 34 insertions, 0 deletions
diff --git a/libtests/qtest/qutil/qutil.out b/libtests/qtest/qutil/qutil.out index c0ca1ce0..8223bf5b 100644 --- a/libtests/qtest/qutil/qutil.out +++ b/libtests/qtest/qutil/qutil.out @@ -39,6 +39,14 @@ HAGOOGAMAGOOGLE: 0 0x16059 -> f0 96 81 99 0x7fffffff -> fd bf bf bf bf bf 0x80000000: bounds error in QUtil::toUTF8 +---- utf16 +0x41 -> 00 41 +0xf7 -> 00 f7 +0x3c0 -> 03 c0 +0x16059 -> d8 18 dc 59 +0xdead -> ff fd +0x7fffffff -> ff fd +0x80000000 -> ff fd ---- whoami quack1 quack2 diff --git a/libtests/qutil.cc b/libtests/qutil.cc index ddb5815d..a7479fb5 100644 --- a/libtests/qutil.cc +++ b/libtests/qutil.cc @@ -193,6 +193,30 @@ void to_utf8_test() } } +static void print_utf16(unsigned long val) +{ + std::string result = QUtil::toUTF16(val); + std::cout << "0x" << QUtil::int_to_string_base(val, 16) << " ->"; + for (std::string::iterator iter = result.begin(); + iter != result.end(); ++iter) + { + std::cout << " " << QUtil::int_to_string_base( + static_cast<int>(static_cast<unsigned char>(*iter)), 16, 2); + } + std::cout << std::endl; +} + +void to_utf16_test() +{ + print_utf16(0x41UL); + print_utf16(0xF7UL); + print_utf16(0x3c0UL); + print_utf16(0x16059UL); + print_utf16(0xdeadUL); + print_utf16(0x7fffffffUL); + print_utf16(0x80000000UL); +} + void print_whoami(char const* str) { PointerHolder<char> dup(true, QUtil::copy_string(str)); @@ -299,6 +323,8 @@ int main(int argc, char* argv[]) getenv_test(); std::cout << "---- utf8" << std::endl; to_utf8_test(); + std::cout << "---- utf16" << std::endl; + to_utf16_test(); std::cout << "---- whoami" << std::endl; get_whoami_test(); std::cout << "---- file" << std::endl; |