aboutsummaryrefslogtreecommitdiffstats
path: root/libtests/main_from_wmain.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2020-04-04 03:34:45 +0200
committerJay Berkenbilt <ejb@ql.org>2020-04-04 03:39:44 +0200
commit2100b4ce152e9c70b3ce8760112d5a24ead4e52d (patch)
tree0dc298af6870f9635dd4b52b9ec8a528b01e01f6 /libtests/main_from_wmain.cc
parent6a4117add996eeaaf330bd700e30380295daab93 (diff)
downloadqpdf-2100b4ce152e9c70b3ce8760112d5a24ead4e52d.tar.zst
Allow qpdf to be built on systems without wchar_t (fixes #406)
Diffstat (limited to 'libtests/main_from_wmain.cc')
-rw-r--r--libtests/main_from_wmain.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/libtests/main_from_wmain.cc b/libtests/main_from_wmain.cc
new file mode 100644
index 00000000..c3e2a716
--- /dev/null
+++ b/libtests/main_from_wmain.cc
@@ -0,0 +1,34 @@
+#include <qpdf/QUtil.hh>
+#include <iostream>
+
+#ifndef QPDF_NO_WCHAR_T
+void wmain_test()
+{
+ auto realmain = [](int argc, char* argv[]) {
+ for (int i = 0; i < argc; ++i) {
+ std::cout << argv[i] << std::endl;
+ } return 0;
+ };
+ wchar_t* argv[3];
+ argv[0] = const_cast<wchar_t*>(L"ascii");
+ argv[1] = const_cast<wchar_t*>(L"10 \xf7 2 = 5");
+ argv[2] = const_cast<wchar_t*>(L"qwww\xf7\x03c0");
+ QUtil::call_main_from_wmain(3, argv, realmain);
+}
+#endif // QPDF_NO_WCHAR_T
+
+int main(int argc, char* argv[])
+{
+#ifndef QPDF_NO_WCHAR_T
+ try
+ {
+ wmain_test();
+ }
+ catch (std::exception& e)
+ {
+ std::cout << "unexpected exception: " << e.what() << std::endl;
+ }
+#endif // QPDF_NO_WCHAR_T
+
+ return 0;
+}