From fa3cdaf1b46dcbb583393f93a02f89207ba21a88 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sun, 3 Sep 2023 08:06:47 -0400 Subject: Check for warnings in files used by --pages --- ChangeLog | 6 ++++++ libqpdf/QPDFJob.cc | 5 +++++ qpdf/qtest/page-errors.test | 2 +- qpdf/qtest/qpdf/page-missing-mediabox.out | 1 + 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2c2bb836..168d8d70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2023-09-03 Jay Berkenbilt + + * Bug fix: with --pages, if one of the external files had warnings + but the main file did not, the warning was previously not taken + into consideration when determining the exit status. + 2023-09-02 Jay Berkenbilt * Bug fix from M. Holger: allow fix-qdf to read from pipe. Fixes #1010. diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index b8ae7787..adce2358 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -2561,6 +2561,11 @@ QPDFJob::handlePageSpecs(QPDF& pdf, std::vector>& page_hea } } } + for (auto const& p: page_spec_qpdfs) { + if (!p.second->getWarnings().empty()) { + m->warnings = true; + } + } } void diff --git a/qpdf/qtest/page-errors.test b/qpdf/qtest/page-errors.test index 60894f96..3f14f24e 100644 --- a/qpdf/qtest/page-errors.test +++ b/qpdf/qtest/page-errors.test @@ -22,7 +22,7 @@ $td->runtest("handle page no with contents", $td->NORMALIZE_NEWLINES); $td->runtest("handle page with missing MediaBox", {$td->COMMAND => "qpdf --static-id --empty --pages page-no-content.pdf -- out.pdf"}, - {$td->FILE => "page-missing-mediabox.out", $td->EXIT_STATUS => 0}, + {$td->FILE => "page-missing-mediabox.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); $td->runtest("check output", {$td->FILE => "out.pdf"}, diff --git a/qpdf/qtest/qpdf/page-missing-mediabox.out b/qpdf/qtest/qpdf/page-missing-mediabox.out index 9db62ed6..91e85707 100644 --- a/qpdf/qtest/qpdf/page-missing-mediabox.out +++ b/qpdf/qtest/qpdf/page-missing-mediabox.out @@ -1 +1,2 @@ WARNING: page-no-content.pdf, object 4 0 at offset 288: kid 1 (from 0) MediaBox is undefined; setting to letter / ANSI A +qpdf: operation succeeded with warnings; resulting file may have some problems -- cgit v1.2.3-54-g00ecf