summaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-29 15:01:20 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-31 21:57:45 +0100
commit8a9100f674dcfe8b865641a37c3b303798129917 (patch)
tree021ed9a0c233c029f997e412b0487b7ad7534fae /libqpdf
parent0c8e9e591268983765dd510c02d259ac7733b664 (diff)
downloadqpdf-8a9100f674dcfe8b865641a37c3b303798129917.tar.zst
QPDFJob: add checkConfiguration to Config
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDFJob_argv.cc3
-rw-r--r--libqpdf/QPDFJob_config.cc6
-rw-r--r--libqpdf/QPDFJob_json.cc13
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);
}