From 03e67a28fed49594c4f20718ce17d4852b40c83d Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Tue, 1 Feb 2022 07:49:00 -0500 Subject: [PATCH] Move QTC::TC for qpdf to QPDFJob All the coverage cases that used to be in qpdf.cc are now in QPDFJob*.cc. It doesn't really matter, but better to follow the convention of starting with the class that includes the coverage call. --- libqpdf/QPDFJob.cc | 82 ++++++++++++++++++------------------ libqpdf/QPDFJob_argv.cc | 10 ++--- qpdf/qpdf.testcov | 92 ++++++++++++++++++++--------------------- 3 files changed, 92 insertions(+), 92 deletions(-) diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index bea8e358..ccdf5158 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -141,7 +141,7 @@ ImageOptimizer::makePipeline(std::string const& description, Pipeline* next) QPDFObjectHandle components_obj = dict.getKey("/BitsPerComponent"); if (! (components_obj.isInteger() && (components_obj.getIntValue() == 8))) { - QTC::TC("qpdf", "qpdf image optimize bits per component"); + QTC::TC("qpdf", "QPDFJob image optimize bits per component"); if (! description.empty()) { o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) { @@ -194,7 +194,7 @@ ImageOptimizer::makePipeline(std::string const& description, Pipeline* next) } else { - QTC::TC("qpdf", "qpdf image optimize colorspace"); + QTC::TC("qpdf", "QPDFJob image optimize colorspace"); if (! description.empty()) { o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) { @@ -209,7 +209,7 @@ ImageOptimizer::makePipeline(std::string const& description, Pipeline* next) ((this->oi_min_height > 0) && (h <= this->oi_min_height)) || ((this->oi_min_area > 0) && ((w * h) <= this->oi_min_area))) { - QTC::TC("qpdf", "qpdf image optimize too small"); + QTC::TC("qpdf", "QPDFJob image optimize too small"); if (! description.empty()) { o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) { @@ -231,7 +231,7 @@ ImageOptimizer::evaluate(std::string const& description) { if (! image.pipeStreamData(0, 0, qpdf_dl_specialized, true)) { - QTC::TC("qpdf", "qpdf image optimize no pipeline"); + QTC::TC("qpdf", "QPDFJob image optimize no pipeline"); o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) { cout << prefix << ": " << description << ": not optimizing because unable to decode data" @@ -255,7 +255,7 @@ ImageOptimizer::evaluate(std::string const& description) long long orig_length = image.getDict().getKey("/Length").getIntValue(); if (c.getCount() >= orig_length) { - QTC::TC("qpdf", "qpdf image optimize no shrink"); + QTC::TC("qpdf", "QPDFJob image optimize no shrink"); o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) { cout << prefix << ": " << description << ": not optimizing because DCT compression does not" @@ -668,12 +668,12 @@ QPDFJob::getExitCode() const { if (this->m->encryption_status & qpdf_es_encrypted) { - QTC::TC("qpdf", "qpdf check encrypted encrypted"); + QTC::TC("qpdf", "QPDFJob check encrypted encrypted"); return 0; } else { - QTC::TC("qpdf", "qpdf check encrypted not encrypted"); + QTC::TC("qpdf", "QPDFJob check encrypted not encrypted"); return EXIT_IS_NOT_ENCRYPTED; } } @@ -683,18 +683,18 @@ QPDFJob::getExitCode() const { if (this->m->encryption_status & qpdf_es_password_incorrect) { - QTC::TC("qpdf", "qpdf check password password incorrect"); + QTC::TC("qpdf", "QPDFJob check password password incorrect"); return 0; } else { - QTC::TC("qpdf", "qpdf check password password correct"); + QTC::TC("qpdf", "QPDFJob check password password correct"); return EXIT_CORRECT_PASSWORD; } } else { - QTC::TC("qpdf", "qpdf check password not encrypted"); + QTC::TC("qpdf", "QPDFJob check password not encrypted"); return EXIT_IS_NOT_ENCRYPTED; } } @@ -782,7 +782,7 @@ QPDFJob::checkConfiguration() if ((! m->split_pages) && QUtil::same_file(m->infilename.get(), m->outfilename.get())) { - QTC::TC("qpdf", "qpdf same file error"); + QTC::TC("qpdf", "QPDFJob same file error"); usage("input file and output file are the same;" " use --replace-input to intentionally" " overwrite the input file"); @@ -1028,7 +1028,7 @@ QPDFJob::doShowObj(QPDF& pdf) if (filter && (! obj.pipeStreamData(0, 0, qpdf_dl_all))) { - QTC::TC("qpdf", "qpdf unable to filter"); + QTC::TC("qpdf", "QPDFJob unable to filter"); obj.warnIfPossible("unable to filter stream data"); error = true; } @@ -1969,7 +1969,7 @@ QPDFJob::doInspection(QPDF& pdf) } if (m->show_npages) { - QTC::TC("qpdf", "qpdf npages"); + QTC::TC("qpdf", "QPDFJob npages"); *(this->m->cout) << pdf.getRoot().getKey("/Pages"). getKey("/Count").getIntValue() << std::endl; } @@ -2067,7 +2067,7 @@ QPDFJob::doProcess( { // Special case: handle --password-mode=hex-bytes for input // password as well as output password - QTC::TC("qpdf", "qpdf input password hex-bytes"); + QTC::TC("qpdf", "QPDFJob input password hex-bytes"); ptemp = QUtil::hex_decode(password); password = ptemp.c_str(); } @@ -2182,7 +2182,7 @@ QPDFJob::validateUnderOverlay(QPDF& pdf, UnderOverlay* uo) { if (uo->from_nr.empty()) { - QTC::TC("qpdf", "qpdf from_nr from repeat_nr"); + QTC::TC("qpdf", "QPDFJob from_nr from repeat_nr"); uo->from_nr = uo->repeat_nr; } uo->from_pagenos = @@ -2244,7 +2244,7 @@ QPDFJob::doUnderOverlayForPage( QPDFObjectHandle resources = dest_page.getAttribute("/Resources", true); if (! resources.isDictionary()) { - QTC::TC("qpdf", "qpdf overlay page with no resources"); + QTC::TC("qpdf", "QPDFJob overlay page with no resources"); resources = QPDFObjectHandle::newDictionary(); dest_page.getObjectHandle().replaceKey("/Resources", resources); } @@ -2668,7 +2668,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) // This is a non-leaf node. if (dict.hasKey("/Resources")) { - QTC::TC("qpdf", "qpdf found resources in non-leaf"); + QTC::TC("qpdf", "QPDFJob found resources in non-leaf"); doIfVerbose([&](std::ostream& cout, std::string const& prefix) { cout << " found resources in non-leaf page node " @@ -2692,7 +2692,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) QPDFObjGen resources_og = resources.getObjGen(); if (resources_seen.count(resources_og)) { - QTC::TC("qpdf", "qpdf found shared resources in leaf"); + QTC::TC("qpdf", "QPDFJob found shared resources in leaf"); doIfVerbose([&](std::ostream& cout, std::string const& prefix) { cout << " found shared resources in leaf node " @@ -2714,7 +2714,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) QPDFObjGen xobject_og = xobject.getObjGen(); if (resources_seen.count(xobject_og)) { - QTC::TC("qpdf", "qpdf found shared xobject in leaf"); + QTC::TC("qpdf", "QPDFJob found shared xobject in leaf"); doIfVerbose([&](std::ostream& cout, std::string const& prefix) { cout << " found shared xobject in leaf node " @@ -2802,7 +2802,7 @@ QPDFJob::handlePageSpecs( filenames.insert(page_spec.filename); } m->keep_files_open = (filenames.size() <= m->keep_files_open_threshold); - QTC::TC("qpdf", "qpdf automatically set keep files open", + QTC::TC("qpdf", "QPDFJob automatically set keep files open", m->keep_files_open ? 0 : 1); doIfVerbose([&](std::ostream& cout, std::string const& prefix) { cout << prefix << ": selecting --keep-open-files=" @@ -2837,7 +2837,7 @@ QPDFJob::handlePageSpecs( if ((! m->encryption_file.empty()) && (password == 0) && (page_spec.filename == m->encryption_file)) { - QTC::TC("qpdf", "qpdf pages encryption password"); + QTC::TC("qpdf", "QPDFJob pages encryption password"); password = m->encryption_file_password.get(); } doIfVerbose([&](std::ostream& cout, std::string const& prefix) { @@ -2848,14 +2848,14 @@ QPDFJob::handlePageSpecs( ClosedFileInputSource* cis = 0; if (! m->keep_files_open) { - QTC::TC("qpdf", "qpdf keep files open n"); + QTC::TC("qpdf", "QPDFJob keep files open n"); cis = new ClosedFileInputSource(page_spec.filename.c_str()); is = cis; cis->stayOpen(true); } else { - QTC::TC("qpdf", "qpdf keep files open y"); + QTC::TC("qpdf", "QPDFJob keep files open y"); FileInputSource* fis = new FileInputSource(); is = fis; fis->setFilename(page_spec.filename.c_str()); @@ -3005,7 +3005,7 @@ QPDFJob::handlePageSpecs( unsigned long long from_uuid = page_data.qpdf->getUniqueId(); if (copied_pages[from_uuid].count(to_copy_og)) { - QTC::TC("qpdf", "qpdf copy same page more than once", + QTC::TC("qpdf", "QPDFJob copy same page more than once", (page_data.qpdf == &pdf) ? 0 : 1); to_copy = to_copy.shallowCopyPage(); } @@ -3043,11 +3043,11 @@ QPDFJob::handlePageSpecs( { if (! this_file) { - QTC::TC("qpdf", "qpdf copy fields not this file"); + QTC::TC("qpdf", "QPDFJob copy fields not this file"); } else if (! first_copy_from_orig) { - QTC::TC("qpdf", "qpdf copy fields non-first from orig"); + QTC::TC("qpdf", "QPDFJob copy fields non-first from orig"); } try { @@ -3094,7 +3094,7 @@ QPDFJob::handlePageSpecs( { for (auto field: this_afdh->getFormFieldsForPage(page)) { - QTC::TC("qpdf", "qpdf pages keeping field from original"); + QTC::TC("qpdf", "QPDFJob pages keeping field from original"); referenced_fields.insert(field.getObjectHandle().getObjGen()); } } @@ -3126,12 +3126,12 @@ QPDFJob::handlePageSpecs( } if (new_fields.getArrayNItems() > 0) { - QTC::TC("qpdf", "qpdf keep some fields in pages"); + QTC::TC("qpdf", "QPDFJob keep some fields in pages"); acroform.replaceKey("/Fields", new_fields); } else { - QTC::TC("qpdf", "qpdf no more fields in pages"); + QTC::TC("qpdf", "QPDFJob no more fields in pages"); pdf.getRoot().removeKey("/AcroForm"); } } @@ -3172,11 +3172,11 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password) switch (m->password_mode) { case QPDFJob::pm_bytes: - QTC::TC("qpdf", "qpdf password mode bytes"); + QTC::TC("qpdf", "QPDFJob password mode bytes"); break; case QPDFJob::pm_hex_bytes: - QTC::TC("qpdf", "qpdf password mode hex-bytes"); + QTC::TC("qpdf", "QPDFJob password mode hex-bytes"); password = QUtil::hex_decode(password); break; @@ -3198,7 +3198,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password) { if (! is_valid_utf8) { - QTC::TC("qpdf", "qpdf password not unicode"); + QTC::TC("qpdf", "QPDFJob password not unicode"); throw std::runtime_error( "supplied password is not valid UTF-8"); } @@ -3207,7 +3207,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password) std::string encoded; if (! QUtil::utf8_to_pdf_doc(password, encoded)) { - QTC::TC("qpdf", "qpdf password not encodable"); + QTC::TC("qpdf", "QPDFJob password not encodable"); throw std::runtime_error( "supplied password cannot be encoded for" " 40-bit or 128-bit encryption formats"); @@ -3222,7 +3222,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password) std::string encoded; if (QUtil::utf8_to_pdf_doc(password, encoded)) { - QTC::TC("qpdf", "qpdf auto-encode password"); + QTC::TC("qpdf", "QPDFJob auto-encode password"); doIfVerbose([&](std::ostream& cout, std::string const& prefix) { cout @@ -3236,7 +3236,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password) } else { - QTC::TC("qpdf", "qpdf bytes fallback warning"); + QTC::TC("qpdf", "QPDFJob bytes fallback warning"); *(this->m->cerr) << this->m->message_prefix << ": WARNING: " << "supplied password looks like a Unicode" @@ -3251,7 +3251,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password) } else if ((R >= 5) && (! is_valid_utf8)) { - QTC::TC("qpdf", "qpdf invalid utf-8 in auto"); + QTC::TC("qpdf", "QPDFJob invalid utf-8 in auto"); throw std::runtime_error( "supplied password is not a valid Unicode password," " which is required for 256-bit encryption; to" @@ -3313,7 +3313,7 @@ QPDFJob::setEncryptionOptions(QPDF& pdf, QPDFWriter& w) { // Do not set warnings = true for this case as this does // not reflect a potential problem with the input file. - QTC::TC("qpdf", "qpdf weak crypto warning"); + QTC::TC("qpdf", "QPDFJob weak crypto warning"); *(this->m->cerr) << this->m->message_prefix << ": writing a file with RC4, a weak cryptographic algorithm" @@ -3501,7 +3501,7 @@ QPDFJob::doSplitPages(QPDF& pdf, bool& warnings) char* num_spot = strstr(const_cast(m->outfilename.get()), "%d"); if (num_spot != 0) { - QTC::TC("qpdf", "qpdf split-pages %d"); + QTC::TC("qpdf", "QPDFJob split-pages %d"); before = std::string(m->outfilename.get(), QIntC::to_size(num_spot - m->outfilename.get())); after = num_spot + 2; @@ -3510,13 +3510,13 @@ QPDFJob::doSplitPages(QPDF& pdf, bool& warnings) (QUtil::str_compare_nocase( m->outfilename.get() + len - 4, ".pdf") == 0)) { - QTC::TC("qpdf", "qpdf split-pages .pdf"); + QTC::TC("qpdf", "QPDFJob split-pages .pdf"); before = std::string(m->outfilename.get(), len - 4) + "-"; after = m->outfilename.get() + len - 4; } else { - QTC::TC("qpdf", "qpdf split-pages other"); + QTC::TC("qpdf", "QPDFJob split-pages other"); before = std::string(m->outfilename.get()) + "-"; } @@ -3556,7 +3556,7 @@ QPDFJob::doSplitPages(QPDF& pdf, bool& warnings) auto new_page = added_page(outpdf, page); if (out_afdh.get()) { - QTC::TC("qpdf", "qpdf copy form fields in split_pages"); + QTC::TC("qpdf", "QPDFJob copy form fields in split_pages"); try { out_afdh->fixCopiedAnnotations(new_page, page, afdh); diff --git a/libqpdf/QPDFJob_argv.cc b/libqpdf/QPDFJob_argv.cc index ed37dbce..203e4b27 100644 --- a/libqpdf/QPDFJob_argv.cc +++ b/libqpdf/QPDFJob_argv.cc @@ -248,12 +248,12 @@ ArgParser::argPagesPassword(char* parameter) { if (this->pages_password != nullptr) { - QTC::TC("qpdf", "qpdf duplicated pages password"); + QTC::TC("qpdf", "QPDFJob duplicated pages password"); usage("--password already specified for this file"); } if (this->accumulated_args.size() != 1) { - QTC::TC("qpdf", "qpdf misplaced pages password"); + QTC::TC("qpdf", "QPDFJob misplaced pages password"); usage("in --pages, --password must immediately follow a file name"); } this->pages_password = parameter; @@ -291,7 +291,7 @@ ArgParser::argPagesPositional(char* arg) if (arg == nullptr) { // The filename or password was the last argument - QTC::TC("qpdf", "qpdf pages range omitted at end", + QTC::TC("qpdf", "QPDFJob pages range omitted at end", this->pages_password == nullptr ? 0 : 1); } else @@ -312,11 +312,11 @@ ArgParser::argPagesPositional(char* arg) if (strcmp(range, ".") == 0) { // "." means the input file. - QTC::TC("qpdf", "qpdf pages range omitted with ."); + QTC::TC("qpdf", "QPDFJob pages range omitted with ."); } else if (QUtil::file_can_be_opened(range)) { - QTC::TC("qpdf", "qpdf pages range omitted in middle"); + QTC::TC("qpdf", "QPDFJob pages range omitted in middle"); // Yup, it's a file. } else diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index 6d33d628..28af71cb 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -105,7 +105,7 @@ QPDF found wrong endstream in recovery 0 QPDF_Stream pipeStreamData with null pipeline 0 QPDFWriter not recompressing /FlateDecode 0 QPDF_encryption xref stream from encrypted file 0 -qpdf unable to filter 0 +QPDFJob unable to filter 0 QUtil non-trivial UTF-16 0 QPDF xref overwrite object 0 QPDF decoding error warning 0 @@ -226,7 +226,7 @@ QPDFWriter foreign object 0 QPDFWriter copy use_aes 1 QPDFObjectHandle indirect without context 0 QPDFObjectHandle trailing data in parse 0 -qpdf pages encryption password 0 +QPDFJob pages encryption password 0 QPDFTokenizer EOF reading token 0 QPDFTokenizer EOF reading appendable token 0 QPDFWriter extra header text no newline 0 @@ -255,9 +255,9 @@ QPDF not caching overridden objstm object 0 QPDFWriter original obj non-zero gen 0 QPDF_optimization indirect outlines 0 QPDF xref space 2 -qpdf pages range omitted at end 1 -qpdf pages range omitted in middle 0 -qpdf npages 0 +QPDFJob pages range omitted at end 1 +QPDFJob pages range omitted in middle 0 +QPDFJob npages 0 QPDF already reserved object 0 QPDFWriter standard deterministic ID 1 QPDFWriter linearized deterministic ID 1 @@ -272,10 +272,10 @@ QPDFObjectHandle no val for last key 0 QPDF resolve failure to null 0 QPDFWriter preserve unreferenced standard 0 QPDFObjectHandle errors in parsecontent 0 -qpdf same file error 0 -qpdf split-pages %d 0 -qpdf split-pages .pdf 0 -qpdf split-pages other 0 +QPDFJob same file error 0 +QPDFJob split-pages %d 0 +QPDFJob split-pages .pdf 0 +QPDFJob split-pages other 0 QPDFTokenizer allowing bad token 0 QPDF ignore first space in xref entry 0 QPDF ignore first extra space in xref entry 0 @@ -349,9 +349,9 @@ QPDFAcroFormDocumentHelper non-dictionary field 0 QPDFAcroFormDocumentHelper loop 0 QPDFAcroFormDocumentHelper field found 1 QPDFAcroFormDocumentHelper annotation found 1 -qpdf keep files open n 0 -qpdf keep files open y 0 -qpdf automatically set keep files open 1 +QPDFJob keep files open n 0 +QPDFJob keep files open y 0 +QPDFJob automatically set keep files open 1 QPDFPageLabelDocumentHelper skip first 0 QPDFOutlineObjectHelper direct dest 0 QPDFOutlineObjectHelper action dest 0 @@ -392,24 +392,24 @@ QPDFFormFieldObjectHelper list found 0 QPDFFormFieldObjectHelper list first too low 0 QPDFFormFieldObjectHelper list last too high 0 QPDF detected dangling ref 0 -qpdf image optimize no pipeline 0 -qpdf image optimize no shrink 0 -qpdf image optimize too small 0 +QPDFJob image optimize no pipeline 0 +QPDFJob image optimize no shrink 0 +QPDFJob image optimize too small 0 QPDFFormFieldObjectHelper WinAnsi 0 QPDF pipe foreign encrypted stream 0 QPDF copy foreign stream with provider 0 QPDF copy foreign stream with buffer 0 QPDF immediate copy stream data 0 -qpdf copy same page more than once 1 +QPDFJob copy same page more than once 1 QPDFPageObjectHelper bad token finding names 0 -qpdf password mode bytes 0 -qpdf password mode hex-bytes 0 -qpdf password not unicode 0 -qpdf password not encodable 0 -qpdf auto-encode password 0 -qpdf bytes fallback warning 0 -qpdf invalid utf-8 in auto 0 -qpdf input password hex-bytes 0 +QPDFJob password mode bytes 0 +QPDFJob password mode hex-bytes 0 +QPDFJob password not unicode 0 +QPDFJob password not encodable 0 +QPDFJob auto-encode password 0 +QPDFJob bytes fallback warning 0 +QPDFJob invalid utf-8 in auto 0 +QPDFJob input password hex-bytes 0 QPDFPageDocumentHelper ignore annotation with no appearance 0 QPDFFormFieldObjectHelper create AS from scratch 0 QPDFFormFieldObjectHelper create AP from scratch 0 @@ -417,7 +417,7 @@ QPDFFormFieldObjectHelper replaced BMC at EOF 0 QPDFFormFieldObjectHelper fallback Tf 0 QPDFPageObjectHelper non-trivial inheritance 0 QPDFPageObjectHelper copy shared attribute 1 -qpdf from_nr from repeat_nr 0 +QPDFJob from_nr from repeat_nr 0 QPDF resolve duplicated page object 0 QPDF handle direct page object 0 QPDFTokenizer finder found wrong word 0 @@ -425,8 +425,8 @@ QPDFTokenizer found EI by byte count 0 QPDFTokenizer found EI after more than one try 0 QPDFPageObjectHelper externalize inline image 0 QPDFPageObjectHelper keep inline image 0 -qpdf image optimize colorspace 0 -qpdf image optimize bits per component 0 +QPDFJob image optimize colorspace 0 +QPDFJob image optimize bits per component 0 QPDFWriter remove empty DecodeParms 0 QPDFObjectHandle uint returning 0 0 QPDFObjectHandle int returning INT_MIN 0 @@ -443,13 +443,13 @@ QPDFWriter no encryption sig contents 0 QPDFPageObjectHelper colorspace lookup 0 QPDFWriter ignore XRef in qdf mode 0 QPDFPageObjectHelper filter form xobject 0 -qpdf found resources in non-leaf 0 -qpdf found shared resources in leaf 0 -qpdf found shared xobject in leaf 0 +QPDFJob found resources in non-leaf 0 +QPDFJob found shared resources in leaf 0 +QPDFJob found shared xobject in leaf 0 QPDF copy foreign with data 1 QPDF copy foreign with foreign_stream 1 QPDFObjectHandle need_newline 1 -qpdf pages range omitted with . 0 +QPDFJob pages range omitted with . 0 qpdf-c invalid object handle 0 qpdf-c called qpdf_oh_release 0 qpdf-c called qpdf_oh_release_all 0 @@ -573,10 +573,10 @@ QPDFPageObjectHelper flatten inherit rotate 0 QPDFAcroFormDocumentHelper copy annotation 3 QPDFAcroFormDocumentHelper field with parent 3 QPDFAcroFormDocumentHelper modify ap matrix 0 -qpdf copy form fields in split_pages 0 -qpdf keep some fields in pages 0 -qpdf pages keeping field from original 0 -qpdf no more fields in pages 0 +QPDFJob copy form fields in split_pages 0 +QPDFJob keep some fields in pages 0 +QPDFJob pages keeping field from original 0 +QPDFJob no more fields in pages 0 QPDFObjectHandle merge reuse 0 QPDFObjectHandle merge generate 0 QPDFFormFieldObjectHelper get font from /DR 0 @@ -587,15 +587,15 @@ QPDFAcroFormDocumentHelper ap conflict 0 QPDFAcroFormDocumentHelper ap rename 0 QPDFAcroFormDocumentHelper /DA parse error 0 QPDFAcroFormDocumentHelper AP parse error 0 -qpdf copy fields not this file 0 -qpdf copy fields non-first from orig 0 +QPDFJob copy fields not this file 0 +QPDFJob copy fields non-first from orig 0 QPDF resolve duplicated page in insert 0 QPDFWriter preserve object streams 1 QPDFWriter exclude from object stream 0 QPDF_pages findPage not found 0 -qpdf overlay page with no resources 0 +QPDFJob overlay page with no resources 0 QPDFObjectHandle check ownership 0 -qpdf weak crypto warning 0 +QPDFJob weak crypto warning 0 qpdf-c called qpdf_oh_is_initialized 0 qpdf-c registered progress reporter 0 qpdf-c called qpdf_oh_new_uninitialized 0 @@ -621,13 +621,13 @@ qpdf-c called qpdf_oh_replace_stream_data 0 qpdf-c silence oh errors 0 qpdf-c called qpdf_oh_get_binary_string_value 0 qpdf-c called qpdf_oh_new_binary_string 0 -qpdf duplicated pages password 0 -qpdf misplaced pages password 0 -qpdf check encrypted encrypted 0 -qpdf check encrypted not encrypted 0 -qpdf check password password incorrect 0 -qpdf check password password correct 0 -qpdf check password not encrypted 0 +QPDFJob duplicated pages password 0 +QPDFJob misplaced pages password 0 +QPDFJob check encrypted encrypted 0 +QPDFJob check encrypted not encrypted 0 +QPDFJob check password password incorrect 0 +QPDFJob check password password correct 0 +QPDFJob check password not encrypted 0 QPDFJob_config password file 0 QPDFJob_config password stdin 0 QPDFJob json bare not empty 0