aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFJob_argv.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-26 19:39:22 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-30 19:11:03 +0100
commit1258054543d2956081c40b3166e9d5043deb6640 (patch)
tree16e862c888e780f84c45cfa218cdc4c56b80a418 /libqpdf/QPDFJob_argv.cc
parent901e3e4fbfb22566c44c5ab305c93f70c7b0aa49 (diff)
downloadqpdf-1258054543d2956081c40b3166e9d5043deb6640.tar.zst
QPDFJob: eliminate most access to QPDFJob members from ArgParser
All that's left now is input and output handling.
Diffstat (limited to 'libqpdf/QPDFJob_argv.cc')
-rw-r--r--libqpdf/QPDFJob_argv.cc34
1 files changed, 14 insertions, 20 deletions
diff --git a/libqpdf/QPDFJob_argv.cc b/libqpdf/QPDFJob_argv.cc
index 8882a7d7..c4a7834a 100644
--- a/libqpdf/QPDFJob_argv.cc
+++ b/libqpdf/QPDFJob_argv.cc
@@ -35,7 +35,6 @@ namespace
void usage(std::string const& message);
void initOptionTables();
- void doFinalChecks();
QPDFArgParser ap;
QPDFJob& o;
@@ -67,8 +66,6 @@ ArgParser::initOptionTables()
{
# include <qpdf/auto_job_init.hh>
- this->ap.addFinalCheck(
- QPDFArgParser::bindBare(&ArgParser::doFinalChecks, this));
// add_help is defined in auto_job_help.hh
add_help(this->ap);
}
@@ -91,6 +88,18 @@ ArgParser::argPositional(char* arg)
}
void
+ArgParser::argEmpty()
+{
+ o.infilename = QUtil::make_shared_cstr("");
+}
+
+void
+ArgParser::argReplaceInput()
+{
+ o.replace_input = true;
+}
+
+void
ArgParser::argVersion()
{
auto whoami = this->ap.getProgname();
@@ -247,10 +256,6 @@ ArgParser::argEncPositional(char* arg)
void
ArgParser::argPages()
{
- if (! o.page_specs.empty())
- {
- usage("the --pages may only be specified one time");
- }
this->accumulated_args.clear();
this->c_pages = c_main->pages();
this->ap.selectOptionTable(O_PAGES);
@@ -480,19 +485,6 @@ ArgParser::parseOptions()
}
void
-ArgParser::doFinalChecks()
-{
- try
- {
- o.checkConfiguration();
- }
- catch (std::runtime_error& e)
- {
- usage(e.what());
- }
-}
-
-void
QPDFJob::initializeFromArgv(int argc, char* argv[], char const* progname_env)
{
if (progname_env == nullptr)
@@ -502,6 +494,8 @@ QPDFJob::initializeFromArgv(int argc, char* argv[], char const* progname_env)
QPDFArgParser qap(argc, argv, progname_env);
setMessagePrefix(qap.getProgname());
ArgParser ap(qap, config(), *this);
+ qap.addFinalCheck(
+ QPDFArgParser::bindBare(&QPDFJob::checkConfiguration, this));
ap.parseOptions();
}