-
Part of #729
-
Part of #729
-
Part of #729
-
Now --json-output just changes defaults. Allow output file with --json.
-
Add additional parameters that will be needed to call QPDF::writeJSON in partial mode.
-
Change method signatures to use QPDFObjGen. Replace QPDF_Stream::objid and generation with QPDF_Stream::og.
-
Move responsibility for creating shared pointers to objects and cloning from QPDFObjectHandle to QPDFObject.
-
* 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.
-
Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON)
-
Not fully exercised in this commit
-
Also refine the herustic for deciding whether to use hexadecimal notation for a string.
-
Update getJSON() methods and calls to them
-
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.
-
Bidirectional base64; will be used by JSON v2.
-
Remove the name/number tree object helper constructors that don't take a QPDF&.
-
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.
-
Increase to POINTERHOLDER_TRANSITION=4
-
(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
-
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done
-
It's better to just make it a .hh file to reduce confusion.