aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdf
AgeCommit message (Collapse)Author
2022-05-21Change default decode level to "none" with --json-outputJay Berkenbilt
2022-05-20Make version default to latest for --json-output (like --json)Jay Berkenbilt
2022-05-20Major rework -- see long commentsJay Berkenbilt
* Replace --create-from-json=file with --json-input, which causes the regular input to be treated as json. * Eliminate --to-json * In --json=2, bring back "objects" and eliminate "objectinfo". Stream data is never present. * In --json-output=2, write "qpdf-v2" with "objects" and include stream data.
2022-05-16Add --create-from-json and --update-from-json argumentsJay Berkenbilt
Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON)
2022-05-08Add --to-json optionJay Berkenbilt
2022-05-08Implement JSON v2 outputJay Berkenbilt
2022-05-08Implement JSON v2 for StreamJay Berkenbilt
Not fully exercised in this commit
2022-05-08Implement JSON v2 for StringJay Berkenbilt
Also refine the herustic for deciding whether to use hexadecimal notation for a string.
2022-05-07Prepare code for JSON v2Jay Berkenbilt
Update getJSON() methods and calls to them
2022-05-07Add --test-json-schema command-line optionJay Berkenbilt
2022-05-04Make Pipeline::write take an unsigned char const* (API change)Jay Berkenbilt
2022-05-04Make assert handling less error-proneJay Berkenbilt
Prevent my future self or other contributors from using assert in tests and then having that assert not do anything because of the NDEBUG macro.
2022-05-04Add internal Pl_Base64Jay Berkenbilt
Bidirectional base64; will be used by JSON v2.
2022-04-24QPDFJob json: make removeAttachment take an array (fixes #693)Jay Berkenbilt
2022-04-24Deprecate replaceOrRemoveKey -- it's the same as replaceKeyJay Berkenbilt
2022-04-24Have dictionary/streams mutators take const& where possibleJay Berkenbilt
2022-04-24Add new QPDF::warn that takes most of QPDFExc's argumentsJay Berkenbilt
2022-04-16Remove deprecated name/number tree constructorsJay Berkenbilt
Remove the name/number tree object helper constructors that don't take a QPDF&.
2022-04-16Use = default and = delete where possible in classesJay Berkenbilt
2022-04-09Remove methods of private classes from ABIJay Berkenbilt
Prior to the cmake conversion, several private classes had methods that were exported into the shared library so they could be tested with libtests. With cmake, we build libtests using an object library, so this is no longer necessary. The methods that are disappearing from the ABI were never exposed through public headers, so no code should be using them. Removal had to wait until the window for ABI-breaking changes was open.
2022-04-09Remove PointerHolder.hh from other than public header filesJay Berkenbilt
Increase to POINTERHOLDER_TRANSITION=4
2022-04-09Replace PointerHolder with std::shared_ptr in library sources onlyJay Berkenbilt
(patrepl and cleanpatch are my own utilities) patrepl s/PointerHolder/std::shared_ptr/g {include,libqpdf}/qpdf/*.hh patrepl s/PointerHolder/std::shared_ptr/g libqpdf/*.cc patrepl s/make_pointer_holder/std::make_shared/g libqpdf/*.cc patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g libqpdf/*.cc patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh git restore include/qpdf/PointerHolder.hh cleanpatch ./format-code
2022-04-04Programmatically apply new formatting to codeJay Berkenbilt
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done
2022-04-04Protect gnutls headers from clang-format rearranging themJay Berkenbilt
2022-03-19Switch variables to cmake in qpdf-config.hJay Berkenbilt
2022-03-08Rename bits_include.cc to qpdf/bits_functions.hhJay Berkenbilt
It's better to just make it a .hh file to reduce confusion.
2022-02-26generate_auto_job: protect generated files from formattingJay Berkenbilt
2022-02-08WHITESPACE ONLY -- expand tabs in source codeJay Berkenbilt
This comment expands all tabs using an 8-character tab-width. You should ignore this commit when using git blame or use git blame -w. In the early days, I used to use tabs where possible for indentation, since emacs did this automatically. In recent years, I have switched to only using spaces, which means qpdf source code has been a mixture of spaces and tabs. I have avoided cleaning this up because of not wanting gratuitous whitespaces change to cloud the output of git blame, but I changed my mind after discussing with users who view qpdf source code in editors/IDEs that have other tab widths by default and in light of the fact that I am planning to start applying automatic code formatting soon.
2022-02-05Stop using std::iterator (fixes #618)Jay Berkenbilt
Create the typedefs directly in iterators rather than deriving from the deprecated std::iterator class.
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-01QPDFJob: documentationJay Berkenbilt
2022-02-01generate_auto_job: generate overloaded config decls for optionalJay Berkenbilt
For optional parameter/choices, generate an overloaded config method that takes no arguments. This makes it possible to convert from a bare argument to one that takes an optional parameter without breaking binary compatibility.
2022-02-01Clean up documentation and help around json optionsJay Berkenbilt
2022-02-01Tweak short text for job schema helpJay 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-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-31job json: move deterministic-id into output optionsJay Berkenbilt
2022-01-31QPDFJob: fix logic errors in handling arraysJay Berkenbilt
The code was assuming everything was happening inside dictionaries. Instead, make the dictionary key handler creatino explicit only when iterating through dictionary keys.
2022-01-31QPDFJob: remove from json a few things that only make sense from CLIJay Berkenbilt
2022-01-31QDPFJob: incorporate change to JSONHandler for array start functionJay Berkenbilt
2022-01-31JSONHandler: pass JSON object to array start functionJay Berkenbilt
2022-01-31QPDFJob_json: implement handlers except pagesJay Berkenbilt
2022-01-31QPDFJob: incorporate change to JSONHandler for dict start functionJay Berkenbilt
2022-01-31JSONHandler: pass JSON object to dict start functionJay Berkenbilt
If some keys depend on others, we have to check up front since there is no control of what order key handlers will be called. Anyway, keys are unordered in json, so we don't want to depend on ordering.
2022-01-31QPDFJob: autogenerate json init and declarationsJay Berkenbilt
Now still have to go through and implement the handlers.
2022-01-31Keep JSONHandler and QPDFArgParser privateJay Berkenbilt
Since the functionality of argument parsing has moved into QPDFJob, these classes no longer need to be public. Their methods still have to be in the library's binary interface so they can be tested in libtests.
2022-01-31QPDFJob: generate json decl and init file skeletonsJay Berkenbilt
2022-01-30More doc tweaksJay Berkenbilt