Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-05-21 | Code clean up: use range-style for loops wherever possible | m-holger | |
Remove variables obsoleted by commit 4f24617. | |||
2022-05-21 | Add json to performance tests | Jay Berkenbilt | |
2022-05-21 | Tweak cmake-win | Jay Berkenbilt | |
Avoid running generate_auto_job -- rather than using maintainer mode, just enable WERROR. | |||
2022-05-21 | Add json to large file test | Jay Berkenbilt | |
2022-05-21 | JSON: Fix large file support | Jay Berkenbilt | |
2022-05-21 | Replace std::regex with validators for better performance | Jay Berkenbilt | |
2022-05-20 | Exercise object description in tests | Jay Berkenbilt | |
2022-05-20 | Add test for bad data and bad datafile | Jay Berkenbilt | |
2022-05-20 | Test --update-from-json | Jay Berkenbilt | |
2022-05-20 | Bug fix: don't clobber stream length with replaceDict | Jay Berkenbilt | |
2022-05-20 | JSON: detect duplicate dictionary keys while parsing | Jay Berkenbilt | |
2022-05-20 | Test (and fix) handling of dangling references | Jay Berkenbilt | |
2022-05-20 | Bug fix: isReserved() true for indirect reference to reserved object | Jay Berkenbilt | |
2022-05-20 | Explicitly test ignoring unknown keys in JSON input | Jay Berkenbilt | |
2022-05-20 | Make version default to latest for --json-output (like --json) | Jay Berkenbilt | |
2022-05-20 | Round-trip tests with --json-stream-data=file | Jay Berkenbilt | |
2022-05-20 | Tests with manually constructed qpdf json | Jay Berkenbilt | |
2022-05-20 | Add tests for --json-input | Jay Berkenbilt | |
2022-05-20 | JSON fix: correctly parse UTF-16 surrogate pairs | Jay Berkenbilt | |
2022-05-20 | Add more names and strings in good13 | Jay Berkenbilt | |
* native UTF-8 strings * names whose PDF and canonical syntax differ in both dictionary key positions and other positions For json, names are converted both as names and directly when used as dictionary keys. | |||
2022-05-20 | Rename all test files: _ to - | Jay Berkenbilt | |
2022-05-20 | Major rework -- see long comments | Jay 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-20 | Add QUtil::FileCloser to the public API | Jay Berkenbilt | |
2022-05-20 | Support stream data -- not tested | Jay Berkenbilt | |
There are no automated tests yet, but committing work so far in preparation for some refactoring. | |||
2022-05-20 | replaceStreamData: accept uninitialized filter/decode_parms | Jay Berkenbilt | |
These mean to leave the original values alone. This is needed for reconstructing streams from JSON given that the stream data and stream dictionary may appear in any order in the JSON. | |||
2022-05-20 | Back out fluent QPDFObjectHandle methods. Keep the andGet methods. | Jay Berkenbilt | |
I decided these were confusing and inconsistent with how JSON works. They muddle the API rather than improving it. | |||
2022-05-20 | Parse objects; stream data is not yet handled | Jay Berkenbilt | |
2022-05-20 | Add new error type for JSON | Jay Berkenbilt | |
2022-05-20 | Add private methods for reserving specific objects | Jay Berkenbilt | |
2022-05-16 | Implement top-level qpdf json parsing | Jay Berkenbilt | |
2022-05-16 | Add scaffolding for QPDF JSON reactor | Jay Berkenbilt | |
2022-05-16 | Add --create-from-json and --update-from-json arguments | Jay Berkenbilt | |
Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON) | |||
2022-05-16 | TODO: solidify work for JSON to PDF | Jay Berkenbilt | |
2022-05-16 | Remove offset from missing /Root error | Jay Berkenbilt | |
The last offset is irrelevant to not being able to find /Root. | |||
2022-05-16 | Improve handling of replacing stream data with empty strings | Jay Berkenbilt | |
When an empty string was passed to replaceStreamData, the code was passing a null pointer to memcpy. Since a 0 size was also passed, this was harmless, but it triggers sanitizer errors. The code properly handles a null pointer as the buffer in other places. | |||
2022-05-16 | Add QUtil::is_long_long | Jay Berkenbilt | |
2022-05-14 | Split qpdf.test into multiple test suites | Jay Berkenbilt | |
This makes it a lot easier to run parts of the test suite. | |||
2022-05-14 | Update qtest-driver to log invalid tests | Jay Berkenbilt | |
This is taken from an unrelased change to qtest. | |||
2022-05-14 | JSON reactor: improve handling of nested containers | Jay 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-08 | Add maxobjectid to JSON | Jay Berkenbilt | |
2022-05-08 | TODO note about linux binary distribution runpath | Jay Berkenbilt | |
2022-05-08 | Add --to-json option | Jay Berkenbilt | |
2022-05-08 | Test inline stream data with different decode levels | Jay Berkenbilt | |
2022-05-08 | Test json v2 with invalid stream data | Jay Berkenbilt | |
2022-05-08 | Implement JSON v2 output | Jay Berkenbilt | |
2022-05-08 | Apply script across future v2 test files | Jay Berkenbilt | |
There is one unexpected pass in this commit. This script was applied to the files changed in this commit: ---------- #!/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()) data['version'] = 2 objectinfo = {} if 'objectinfo' in data: objectinfo = data['objectinfo'] del data['objectinfo'] if 'objects' not in data: continue qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}} for k, v in data['objects'].items(): is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False) if k.endswith(' R'): k = 'obj:' + k if is_stream: v = {'stream': {'dict': v}} else: v = {'value': v} qpdf['objects'][k] = v data['qpdf'] = qpdf del data['objects'] print(json_dumps(data)) ---------- | |||
2022-05-08 | Prepare test suite for json v2 | Jay Berkenbilt | |
2022-05-08 | Fix typo in json output key name | Jay 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-08 | Implement JSON v2 for Stream | Jay Berkenbilt | |
Not fully exercised in this commit | |||
2022-05-08 | Implement JSON v2 for String | Jay Berkenbilt | |
Also refine the herustic for deciding whether to use hexadecimal notation for a string. |