From 34f013c1be56abac1104812938eb0af568df99e1 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Tue, 9 Jan 2024 11:41:18 -0500 Subject: Allow --file and --range with --pages Accept --file and --range as named parameters in additional to allowing positional arguments. This is in preparation for adding additional flags. --- libqpdf/QPDFJob_json.cc | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) (limited to 'libqpdf/QPDFJob_json.cc') diff --git a/libqpdf/QPDFJob_json.cc b/libqpdf/QPDFJob_json.cc index 754cb81b..5565ea93 100644 --- a/libqpdf/QPDFJob_json.cc +++ b/libqpdf/QPDFJob_json.cc @@ -467,25 +467,17 @@ Handlers::endPagesArray() void Handlers::beginPages(JSON j) { - std::string file; - std::string range("1-z"); - std::string password; bool file_seen = false; - bool password_seen = false; - j.forEachDictItem([&](std::string const& key, JSON value) { + j.forEachDictItem([&](std::string const& key, JSON const& value) { if (key == "file") { - file_seen = value.getString(file); - } else if (key == "range") { - value.getString(range); - } else if (key == "password") { - password_seen = value.getString(password); + std::string v; + file_seen = value.getString(v); } }); if (!file_seen) { QTC::TC("qpdf", "QPDFJob json pages no file"); usage("file is required in page specification"); } - this->c_pages->pageSpec(file, range, password_seen ? password.c_str() : nullptr); } void @@ -494,25 +486,10 @@ Handlers::endPages() // nothing needed } -void -Handlers::setupPagesFile() -{ - // handled in beginPages - ignoreItem(); -} - void Handlers::setupPagesPassword() { - // handled in beginPages - ignoreItem(); -} - -void -Handlers::setupPagesRange() -{ - // handled in beginPages - ignoreItem(); + addParameter([this](char const* p) { c_pages->password(p); }); } void -- cgit v1.2.3-54-g00ecf