diff options
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFJob_argv.cc | 3 | ||||
-rw-r--r-- | libqpdf/QPDFJob_config.cc | 6 | ||||
-rw-r--r-- | libqpdf/QPDFJob_json.cc | 13 |
3 files changed, 12 insertions, 10 deletions
diff --git a/libqpdf/QPDFJob_argv.cc b/libqpdf/QPDFJob_argv.cc index 619c5a58..73d1ec21 100644 --- a/libqpdf/QPDFJob_argv.cc +++ b/libqpdf/QPDFJob_argv.cc @@ -64,6 +64,7 @@ ArgParser::initOptionTables() { # include <qpdf/auto_job_init.hh> + this->ap.addFinalCheck([this](){c_main->checkConfiguration();}); // add_help is defined in auto_job_help.hh add_help(this->ap); } @@ -496,7 +497,5 @@ QPDFJob::initializeFromArgv(int argc, char* argv[], char const* progname_env) QPDFArgParser qap(argc, argv, progname_env); setMessagePrefix(qap.getProgname()); ArgParser ap(qap, config()); - qap.addFinalCheck( - QPDFArgParser::bindBare(&QPDFJob::checkConfiguration, this)); ap.parseOptions(); } diff --git a/libqpdf/QPDFJob_config.cc b/libqpdf/QPDFJob_config.cc index 53032cea..81d7d09b 100644 --- a/libqpdf/QPDFJob_config.cc +++ b/libqpdf/QPDFJob_config.cc @@ -3,6 +3,12 @@ #include <qpdf/QTC.hh> #include <cstring> +void +QPDFJob::Config::checkConfiguration() +{ + o.checkConfiguration(); +} + QPDFJob::Config* QPDFJob::Config::inputFile(char const* filename) { diff --git a/libqpdf/QPDFJob_json.cc b/libqpdf/QPDFJob_json.cc index 2d6b265e..ddd63dcd 100644 --- a/libqpdf/QPDFJob_json.cc +++ b/libqpdf/QPDFJob_json.cc @@ -12,7 +12,7 @@ namespace class Handlers { public: - Handlers(JSONHandler& jh, std::shared_ptr<QPDFJob::Config> c_main); + Handlers(std::shared_ptr<QPDFJob::Config> c_main); void handle(JSON&); private: @@ -21,7 +21,7 @@ namespace void usage(std::string const& message); void initHandlers(); - JSONHandler& jh; + JSONHandler jh; std::shared_ptr<QPDFJob::Config> c_main; std::shared_ptr<QPDFJob::CopyAttConfig> c_copy_att; std::shared_ptr<QPDFJob::AttConfig> c_att; @@ -31,8 +31,7 @@ namespace }; } -Handlers::Handlers(JSONHandler& jh, std::shared_ptr<QPDFJob::Config> c_main) : - jh(jh), +Handlers::Handlers(std::shared_ptr<QPDFJob::Config> c_main) : c_main(c_main) { initHandlers(); @@ -44,7 +43,7 @@ Handlers::initHandlers() //# include <qpdf/auto_job_json_init.hh> jh.addDictHandlers( [](std::string const&){}, - [](std::string const&){}); + [this](std::string const&){c_main->checkConfiguration();}); auto input = std::make_shared<JSONHandler>(); auto input_file = std::make_shared<JSONHandler>(); @@ -118,7 +117,5 @@ QPDFJob::initializeFromJson(std::string const& json) throw std::runtime_error(msg.str()); } - JSONHandler jh; - Handlers h(jh, config()); - h.handle(j); + Handlers(config()).handle(j); } |