diff --git a/ChangeLog b/ChangeLog index dc6e3cf6..52209824 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-08-05 Jay Berkenbilt + + * Process --pages options earlier so that certain inspection + options, like --show-pages, can show the state after the merging + operations. + 2017-08-02 Jay Berkenbilt * Fix off-by-one error in parsing pages options. Fixes #129. diff --git a/qpdf/qpdf.cc b/qpdf/qpdf.cc index 680e81e8..2d123d85 100644 --- a/qpdf/qpdf.cc +++ b/qpdf/qpdf.cc @@ -1874,12 +1874,6 @@ static void set_encryption_options(QPDF& pdf, Options& o, QPDFWriter& w) static void write_outfile(QPDF& pdf, Options& o) { QPDF encryption_pdf; - std::vector > page_heap; - if (! o.page_specs.empty()) - { - handle_page_specs(pdf, o, page_heap); - } - if (strcmp(o.outfilename, "-") == 0) { o.outfilename = 0; @@ -2020,6 +2014,12 @@ int main(int argc, char* argv[]) pdf.processFile(o.infilename, o.password); } + std::vector > page_heap; + if (! o.page_specs.empty()) + { + handle_page_specs(pdf, o, page_heap); + } + if (o.outfilename == 0) { do_inspection(pdf, o); diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test index 807014db..2fff85b6 100644 --- a/qpdf/qtest/qpdf.test +++ b/qpdf/qtest/qpdf.test @@ -206,7 +206,7 @@ $td->runtest("remove page we don't have", show_ntests(); # ---------- $td->notify("--- Miscellaneous Tests ---"); -$n_tests += 94; +$n_tests += 95; $td->runtest("qpdf version", {$td->COMMAND => "qpdf --version"}, @@ -652,6 +652,13 @@ $td->runtest("don't overwrite self", {$td->REGEXP => "input file and output file are the same.*", $td->EXIT_STATUS => 2}); +$td->runtest("combine show and --pages", + {$td->COMMAND => + "qpdf --empty --pages minimal.pdf -- --show-pages"}, + {$td->FILE => "show-pages-pages.out", + $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); + show_ntests(); # ---------- $td->notify("--- Numeric range parsing tests ---"); diff --git a/qpdf/qtest/qpdf/show-pages-pages.out b/qpdf/qtest/qpdf/show-pages-pages.out new file mode 100644 index 00000000..429dadf3 --- /dev/null +++ b/qpdf/qtest/qpdf/show-pages-pages.out @@ -0,0 +1,3 @@ +page 1: 3 0 R + content: + 4 0 R