aboutsummaryrefslogtreecommitdiffstats
path: root/include
AgeCommit message (Collapse)Author
2022-05-16Add --create-from-json and --update-from-json argumentsJay Berkenbilt
Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON)
2022-05-16Add QUtil::is_long_longJay Berkenbilt
2022-05-14JSON reactor: improve handling of nested containersJay Berkenbilt
Call the parent container's item method before calling the child item's start method so we can easily know the current nesting level when nested items are added.
2022-05-08Add --to-json optionJay Berkenbilt
2022-05-08Implement JSON v2 outputJay Berkenbilt
2022-05-08Fix typo in json output key nameJay Berkenbilt
moddify -> modify. Also carefully spell checked all remaining keys by splitting them into words and running a spell checker, not just relying on visual proofreading. That was the only one.
2022-05-08Implement JSON v2 for StreamJay Berkenbilt
Not fully exercised in this commit
2022-05-07Prepare code for JSON v2Jay Berkenbilt
Update getJSON() methods and calls to them
2022-05-07Objects json: write incrementally and in numeric orderJay Berkenbilt
The following script was used to adjust test data: ---------- #!/usr/bin/env python3 import json import sys import re def json_dumps(data): return json.dumps(data, ensure_ascii=False, indent=2, separators=(',', ': ')) for filename in sys.argv[1:]: with open(filename, 'r') as f: data = json.loads(f.read()) if 'objects' not in data: continue trailer = None to_sort = [] for k, v in data['objects'].items(): if k == 'trailer': trailer = v else: m = re.match(r'^(\d+) \d+ R', k) if m: to_sort.append([int(m.group(1)), k, v]) newobjects = {x[1]: x[2] for x in sorted(to_sort)} if trailer is not None: newobjects['trailer'] = trailer data['objects'] = newobjects print(json_dumps(data)) ----------
2022-05-07Make JSON::writeNext publicJay Berkenbilt
2022-05-07Top-level json: write incrementallyJay Berkenbilt
This commit just changes the order in which fields are written to the json without changing their content. All the json files in the test suite were modified with this script to ensure that we didn't get any changes other than ordering. ---------- #!/usr/bin/env python3 import json import sys def json_dumps(data): return json.dumps(data, ensure_ascii=False, indent=2, separators=(',', ': ')) for filename in sys.argv[1:]: with open(filename, 'r') as f: data = json.loads(f.read()) newdata = {} for i in ('version', 'parameters', 'pages', 'pagelabels', 'acroform', 'attachments', 'encrypt', 'outlines', 'objects', 'objectinfo'): if i in data: newdata[i] = data[i] print(json_dumps(newdata)) ----------
2022-05-07Add next to Pl_String and fix commentsJay Berkenbilt
2022-05-07Add --test-json-schema command-line optionJay Berkenbilt
2022-05-07QPDFJob: have doJSON write to a pipelineJay Berkenbilt
2022-05-07JSON: add blob type that generates base64-encoded binary dataJay Berkenbilt
2022-05-04Change JSON parser to parse from an InputSourceJay Berkenbilt
2022-05-04Add new FileInputSource constructorsJay Berkenbilt
2022-05-04JSON: add write methods and implement unparse() in terms of thoseJay Berkenbilt
2022-05-04Add new Pl_String PipelineJay Berkenbilt
2022-05-04Add new Pl_OStream PipelineJay Berkenbilt
2022-05-04Add new Pipeline convenience methodsJay 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-02Add reactors to the JSON parserJay Berkenbilt
2022-05-01Spell checkJay Berkenbilt
2022-04-30Mark weak encryption with API changes (fixes #576)Jay Berkenbilt
2022-04-30Remove deprecated (pre-8.4.0) encryption APIsJay Berkenbilt
2022-04-30Add comments around non-security-related uses of MD5Jay Berkenbilt
2022-04-30Revert "Remove QPDFObjectHandle::replaceOrRemoveKey"Jay Berkenbilt
This reverts commit dc059560e73e0b373a6e54e71b07e3af4b692cb4. I changed my mind. There's no harm in leaving it deprecated for a release cycle.
2022-04-30Remove QPDFObjectHandle::replaceOrRemoveKeyJay Berkenbilt
See ChangeLog for rationale for not deprecating it as originally planned.
2022-04-30Add new QPDFObjectHandle methods for more fluent programmingJay 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-24Expose QUtil::get_next_utf8_codepointJay 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-16Remove QPDFAcroFormDocumentHelper::copyFieldsFromForeignPageJay Berkenbilt
2022-04-16Use = default and = delete where possible in classesJay Berkenbilt
2022-04-16Make ABI-breaking changes that don't modify API at allJay Berkenbilt
* Merge overloaded functions by adding default values * Remove non-const methods that are identical to const methods
2022-04-10Fix comments in PointerHolder.hhJay Berkenbilt
2022-04-10Typo: warn -> warningJay Berkenbilt
2022-04-10Mark non-ABI symbols in exported class with QPDF_DLL_PRIVATEJay Berkenbilt
2022-04-10Use QPDF_DLL_CLASS with Pipeline and InputSource subclassesJay Berkenbilt
This enables RTTI so we can use dynamic_cast on them across the shared object boundary.
2022-04-10Clean up/fix DLL.hJay Berkenbilt
* Change DLL_EXPORT to libqpdf_EXPORTS (internal to the build). The new name is cmake's default, is more conventional, and is less likely to clash with other symbols. * Add QPDF_DLL_PRIVATE for non-Windows * Make logic around when to define QPDF_DLL et al more explicit * Add detailed comments
2022-04-10Tweak for clang-format and emacs font-lockJay Berkenbilt
2022-04-09Enable PointerHolder warning and define POINTERHOLDER_IS_SHARED_POINTERJay Berkenbilt
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-09Rewrite PointerHolder as derived from std::shared_ptrJay Berkenbilt
2022-04-09Bump version to 11.0.0, indicating ABI-breaking changesJay Berkenbilt
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