aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFJob_json.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2024-01-09 17:41:18 +0100
committerJay Berkenbilt <ejb@ql.org>2024-01-10 22:44:17 +0100
commit34f013c1be56abac1104812938eb0af568df99e1 (patch)
treed3778a78539b58013b36ede9260e5a5efc86d093 /libqpdf/QPDFJob_json.cc
parent20a134826c6f33fab81b0cdb9ba2d75fb03d1b59 (diff)
downloadqpdf-34f013c1be56abac1104812938eb0af568df99e1.tar.zst
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.
Diffstat (limited to 'libqpdf/QPDFJob_json.cc')
-rw-r--r--libqpdf/QPDFJob_json.cc31
1 files changed, 4 insertions, 27 deletions
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
@@ -495,24 +487,9 @@ Handlers::endPages()
}
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