aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf
AgeCommit message (Collapse)Author
2022-02-05Add new QPDFObjectHandle::getValueAs... accessorsm-holger
2022-02-04PointerHolder: deprecate getPointer() and getRefcount()Jay Berkenbilt
Use get() and use_count() instead. Add #define NO_POINTERHOLDER_DEPRECATION to remove deprecation markers for these only. This commit also removes all deprecated PointerHolder API calls from qpdf's code except in PointerHolder's test suite, which must continue to test the deprecated APIs.
2022-02-04C-API add two binary UTF8 funtionsm-holger
add qpdf_oh_new_binary_unicode_string and qpdf_oh_get_binary_utf8_value
2022-02-04Fix --check-linearization of non-linearized files (fixes #615)m-holger
2022-02-01QPDFJob: let initializeFromArgv just take argv, not argcJay Berkenbilt
Let argv be a null-terminated array. There is already code that assumes this, and it makes it easier to construct the arguments.
2022-02-01Make QPDFArgParser accept const argvJay Berkenbilt
This makes it much more convention to use the initializeFromArgv functions since you can use string literals.
2022-02-01Add qpdfjob-c.h -- simple C API around parts of QPDFJobJay Berkenbilt
2022-02-01Move QTC::TC for qpdf to QPDFJobJay Berkenbilt
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.
2022-02-01Move more code from qpdf.cc into QPDFJobJay Berkenbilt
2022-02-01QPDFJob json: make bare arguments expect the empty stringJay Berkenbilt
Changing from bool requiring true to string requiring the empty string is more consistent with the CLI and makes it possible to add an optional parameter or choices later without breaking compatibility.
2022-02-01QPDFJob json: flatten json structureJay Berkenbilt
Flatten everything to make it easier to map command-line flags to json. The old structure was an illusion anyway because there was no mechanism to enforce that things were in the right place. This also helps with future flexibility.
2022-01-31QPDFJob: add test casesJay Berkenbilt
2022-01-31Add optional version to --jsonJay Berkenbilt
2022-01-31Change filename or path to file in json and QPDFJobJay Berkenbilt
Use "file" consistently for specifying a file path. We use "filename" when adding attachments for a completely different purpose.
2022-01-30More editorial changes from m-holger + spell checkJay Berkenbilt
2022-01-30Improve top-level help informationJay Berkenbilt
2022-01-30Use QPDFUsage exception for cli, json, and QPDFJob errorsJay Berkenbilt
2022-01-30QPDFJob: move more top-level trivial handlers into configJay Berkenbilt
2022-01-30Add QPDFJob::ConfigError exceptionJay Berkenbilt
2022-01-30QPDFJob: allocate QPDFArgParser on stackJay Berkenbilt
The previous commits have removed all references to memory from QPDFArgParser from QPDFJob. This commit removes the constraint that QPDFArgParser remain in scope. This is a prerequisite to allowing JSON as an alternative way to initialize QPDFJob and to initialize it directly using a public API.
2022-01-30Add missing \f support for JSON string encoderJay Berkenbilt
2022-01-30Document how to add a command-line argumentJay Berkenbilt
2022-01-30Minor code cleanupJay Berkenbilt
2022-01-30QPDFJob increment: move arg parsing into QPDFJobJay Berkenbilt
Move ArgParser from qpdf.cc into QPDFJob.cc. It still works with millions of public member variables, but now qpdf.cc is minimal and just calls stable library functions.
2022-01-30Remove qpdf.cc version checkJay Berkenbilt
Remove comparison of qpdf CLI version with library. With almost all the functionality moving into the library, this check is no longer meaningful.
2022-01-30QPDFJob increment: get rid of exit, handle verboseJay Berkenbilt
Remove all calls to exit() from QPDFJob. Handle code that runs in verbose mode to enable it to make use of output streams and message prefix (whoami) from QPDFJob. This removes temporarily duplicated exit code logic and most access to whoami/std::cout outside of QPDFJob proper.
2022-01-30QPDFJob increment: basic QPDFJob structureJay Berkenbilt
Move most of the methods called from qpdf.cc after argument parsing into QPDFJob. In this increment, enough QPDFJob API has been added to handle the branch of QPDFJob::run() that creates output with an appropriate division between qpdf.cc and QPDFJob. There are temporary bits of code to enable everything to compile and pass the test suite, including some duplication and hard-coded values.
2022-01-30Prefix program name before exception message in qpdf CLIJay Berkenbilt
2022-01-30Refactor arg parsing in qpdf.cc to use QPDFArgParserJay Berkenbilt
2022-01-30Implement QPDFArgParser based on ArgParser from qpdf.ccJay Berkenbilt
2022-01-27Fix QPDFObjectHandle::isOrHasNamem-holger
Ensure isOrHasName returns true if object is an array and the name is present anywhere in the array.
2022-01-27Allow testing for subtype without specifying type in isDictionaryOfType etcm-holger
Accept empty string as type parameter in QPDFObjectHandle::isDictionaryOfType and isStreamOfType to allow for dictionaries with optional type.
2022-01-22Make a few whitespace fixes from last commitm-holger
Commit by ejb@ql.org using m-holger as author so git annotate gives proper credit for changes.
2022-01-22Add new convenience methods QPDFObjectHandle::isNameAndEquals, etcm-holger
Add methods isNameAndEquals, isDictionaryOfType, isStreamOfType
2022-01-11Add missing characters from PDF doc encoding (fixes #606)Jay Berkenbilt
2022-01-06Move bash/zsh completion helpers to libtests/arg_parserJay Berkenbilt
2022-01-06Move filter-completion.pl to libtests/arg_parserJay Berkenbilt
2021-12-29Add QUtil::file_can_be_openedJay Berkenbilt
2021-12-29Refactor arg parsing to allow help option with parameterJay Berkenbilt
2021-12-20Prepare 10.5.0 releaseJay Berkenbilt
2021-12-20Change names of qpdf_object_type_e enumerationsJay Berkenbilt
They have to be ot_* rather than qpdf_ot_* for compatibility. * Different enumerated types are not assignment-compatible in C++, at least with strict compiler settings * While you can do `constexpr ot_xyz = ::qpdf_ot_xyz` in QPDFObject.hh to make QPDFObject::ot_xyz work, QPDFObject::object_type_e::ot_xyz will only work if the enumerated type names are the same.
2021-12-20test_driver: split runtest into separate functionsJay Berkenbilt
Too bad about git annotate but it was pretty crazy to have all those test cases together like that.
2021-12-19Further improvements to handling binary stringsJay Berkenbilt
2021-12-18Fix LGTM alertsJay Berkenbilt
2021-12-17C API: simplify new error handling and improve documentationJay Berkenbilt
2021-12-17C-API expose QPDFObjectHandle::getTypeCode and getTypeName (fixes #597)m-holger
2021-12-17C API: add several stream functions (fixes #596)Jay Berkenbilt
2021-12-16Output C test n done at the end of each qpdf-ctestJay Berkenbilt
2021-12-16C API: add functions for working with pages (fixes #594)Jay Berkenbilt
2021-12-16qpdf-ctest: outfile2 -> xargJay Berkenbilt