aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf
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 /qpdf
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 'qpdf')
-rw-r--r--qpdf/qpdf.testcov3
-rw-r--r--qpdf/qtest/arg-parsing.test18
-rw-r--r--qpdf/qtest/merge-and-split.test6
3 files changed, 17 insertions, 10 deletions
diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov
index df2555d6..8d242f43 100644
--- a/qpdf/qpdf.testcov
+++ b/qpdf/qpdf.testcov
@@ -249,7 +249,6 @@ QPDF not caching overridden objstm object 0
QPDFWriter original obj non-zero gen 0
QPDF_optimization indirect outlines 0
QPDF xref space 2
-QPDFJob pages range omitted at end 1
QPDFJob pages range omitted in middle 0
QPDFJob npages 0
QPDF already reserved object 0
@@ -690,3 +689,5 @@ QPDF skipping cache for known unchecked object 0
QPDF fix dangling triggered xref reconstruction 0
QPDFPageDocumentHelper flatten resources missing or invalid 0
QPDF recover xref stream 0
+QPDFJob misplaced page range 0
+QPDFJob duplicated range 0
diff --git a/qpdf/qtest/arg-parsing.test b/qpdf/qtest/arg-parsing.test
index 297141d4..238f19cf 100644
--- a/qpdf/qtest/arg-parsing.test
+++ b/qpdf/qtest/arg-parsing.test
@@ -15,7 +15,7 @@ cleanup();
my $td = new TestDriver('arg-parsing');
-my $n_tests = 24;
+my $n_tests = 25;
$td->runtest("required argument",
{$td->COMMAND => "qpdf --password minimal.pdf"},
@@ -62,14 +62,20 @@ $td->runtest("bad file detected as unclosed --pages",
{$td->REGEXP => ".*pages options must be terminated with --.*",
$td->EXIT_STATUS => 2},
$td->NORMALIZE_NEWLINES);
-$td->runtest("misplaced pages password 1",
- {$td->COMMAND => "qpdf --pages . 1 --password=z --"},
- {$td->REGEXP => ".*password must immediately follow a file name.*",
+$td->runtest("misplaced pages range",
+ {$td->COMMAND => "qpdf --pages --range=1 . --password=z --"},
+ {$td->REGEXP => ".*range must follow a file name.*",
$td->EXIT_STATUS => 2},
$td->NORMALIZE_NEWLINES);
-$td->runtest("misplaced pages password 2",
+$td->runtest("duplicate pages range",
+ {$td->COMMAND => "qpdf --pages --file=." .
+ " --range=1 --range=2 . --password=z --"},
+ {$td->REGEXP => ".*range already specified.*",
+ $td->EXIT_STATUS => 2},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("misplaced pages password",
{$td->COMMAND => "qpdf --pages --password=z . 1 --"},
- {$td->REGEXP => ".*password must immediately follow a file name.*",
+ {$td->REGEXP => ".*password must follow a file name.*",
$td->EXIT_STATUS => 2},
$td->NORMALIZE_NEWLINES);
$td->runtest("duplicated pages password",
diff --git a/qpdf/qtest/merge-and-split.test b/qpdf/qtest/merge-and-split.test
index a0b72ead..33935e71 100644
--- a/qpdf/qtest/merge-and-split.test
+++ b/qpdf/qtest/merge-and-split.test
@@ -21,9 +21,9 @@ my $n_tests = 28;
# first time. The file 20-pages.pdf is specified with two different
# paths to duplicate a page.
my $pages_options = "--pages page-labels-and-outlines.pdf 1,3,5-7,z" .
- " 20-pages.pdf --password=user z-15" .
- " page-labels-and-outlines.pdf 12" .
- " 20-pages.pdf 10" .
+ " --file=20-pages.pdf --range=z-15 --password=user" .
+ " page-labels-and-outlines.pdf --range=12" .
+ " --file=20-pages.pdf 10" .
" ./20-pages.pdf --password=owner 10" .
" minimal.pdf 1 --";