From 94e6323206b42cb7c086edd25ec15d6cea672de8 Mon Sep 17 00:00:00 2001 From: m-holger Date: Sun, 3 Sep 2023 12:27:23 +0100 Subject: [PATCH] Fix exit code when an input other than the primary input generates warnings --- libqpdf/QPDFJob.cc | 6 ++++++ qpdf/qtest/page-errors.test | 2 +- qpdf/qtest/qpdf/page-missing-mediabox.out | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index bb17ae84..a997a49c 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -477,6 +477,12 @@ QPDFJob::createQPDF() } handleUnderOverlay(pdf); handleTransformations(pdf); + + for (auto& foreign: page_heap) { + if (foreign->anyWarnings()) { + m->warnings = true; + } + } return pdf_sp; } 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