diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-02-01 19:37:31 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-02-01 19:50:58 +0100 |
commit | b02d37bc0ae0b7af6077637f855be8579c768c22 (patch) | |
tree | a1dbfdd033951afcd41e7a7e36dfbaa0dd903776 /libqpdf/QUtil.cc | |
parent | bc4e2320e7dafea8b6d6b6150c808ed2a98d7d03 (diff) | |
download | qpdf-b02d37bc0ae0b7af6077637f855be8579c768c22.tar.zst |
Make QPDFArgParser accept const argv
This makes it much more convention to use the initializeFromArgv
functions since you can use string literals.
Diffstat (limited to 'libqpdf/QUtil.cc')
-rw-r--r-- | libqpdf/QUtil.cc | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/libqpdf/QUtil.cc b/libqpdf/QUtil.cc index cfd1bb1e..e8170823 100644 --- a/libqpdf/QUtil.cc +++ b/libqpdf/QUtil.cc @@ -2615,9 +2615,9 @@ QUtil::possible_repaired_encodings(std::string supplied) } #ifndef QPDF_NO_WCHAR_T -int -QUtil::call_main_from_wmain(int argc, wchar_t* argv[], - std::function<int(int, char*[])> realmain) +static int +call_main_from_wmain(bool, int argc, wchar_t const* const argv[], + std::function<int(int, char*[])> realmain) { // argv contains UTF-16-encoded strings with a 16-bit wchar_t. // Convert this to UTF-8-encoded strings for compatibility with @@ -2640,7 +2640,8 @@ QUtil::call_main_from_wmain(int argc, wchar_t* argv[], utf8_argv.push_back(QUtil::make_shared_cstr(utf8)); } auto utf8_argv_sp = - std::shared_ptr<char*>(new char*[1+utf8_argv.size()], std::default_delete<char*[]>()); + std::shared_ptr<char*>( + new char*[1+utf8_argv.size()], std::default_delete<char*[]>()); char** new_argv = utf8_argv_sp.get(); for (size_t i = 0; i < utf8_argv.size(); ++i) { @@ -2650,4 +2651,23 @@ QUtil::call_main_from_wmain(int argc, wchar_t* argv[], new_argv[argc] = 0; return realmain(argc, new_argv); } + +int +QUtil::call_main_from_wmain(int argc, wchar_t* argv[], + std::function<int(int, char*[])> realmain) +{ + return ::call_main_from_wmain(true, argc, argv, realmain); +} + +int +QUtil::call_main_from_wmain( + int argc, wchar_t const* const argv[], + std::function<int(int, char const* const[])> realmain) +{ + return ::call_main_from_wmain( + true, argc, argv, [realmain](int new_argc, char* new_argv[]) { + return realmain(new_argc, new_argv); + }); +} + #endif // QPDF_NO_WCHAR_T |