aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2022-05-31Add conversions to ISO-8601 date formatJay Berkenbilt
2022-05-31TODO notesJay Berkenbilt
2022-05-23Fix minor doc typom-holger
2022-05-23Fix minor doc typom-holger
2022-05-22TODO: clean up remaining work for json v2Jay Berkenbilt
2022-05-21Change default decode level to "none" with --json-outputJay Berkenbilt
2022-05-21Add another binary utf8 to JSON testJay Berkenbilt
2022-05-21Allow empty b: binary JSON stringsJay Berkenbilt
2022-05-21TODO: notes on QPDFPagesTreeJay Berkenbilt
2022-05-21Format codeJay Berkenbilt
2022-05-21Code clean up: use range-style for loops wherever possiblem-holger
Remove variables obsoleted by commit 4f24617.
2022-05-21Add json to performance testsJay Berkenbilt
2022-05-21Tweak cmake-winJay Berkenbilt
Avoid running generate_auto_job -- rather than using maintainer mode, just enable WERROR.
2022-05-21Add json to large file testJay Berkenbilt
2022-05-21JSON: Fix large file supportJay Berkenbilt
2022-05-21Replace std::regex with validators for better performanceJay Berkenbilt
2022-05-20Exercise object description in testsJay Berkenbilt
2022-05-20Add test for bad data and bad datafileJay Berkenbilt
2022-05-20Test --update-from-jsonJay Berkenbilt
2022-05-20Bug fix: don't clobber stream length with replaceDictJay Berkenbilt
2022-05-20JSON: detect duplicate dictionary keys while parsingJay Berkenbilt
2022-05-20Test (and fix) handling of dangling referencesJay Berkenbilt
2022-05-20Bug fix: isReserved() true for indirect reference to reserved objectJay Berkenbilt
2022-05-20Explicitly test ignoring unknown keys in JSON inputJay Berkenbilt
2022-05-20Make version default to latest for --json-output (like --json)Jay Berkenbilt
2022-05-20Round-trip tests with --json-stream-data=fileJay Berkenbilt
2022-05-20Tests with manually constructed qpdf jsonJay Berkenbilt
2022-05-20Add tests for --json-inputJay Berkenbilt
2022-05-20JSON fix: correctly parse UTF-16 surrogate pairsJay Berkenbilt
2022-05-20Add more names and strings in good13Jay 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-20Rename all test files: _ to -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-20Add QUtil::FileCloser to the public APIJay Berkenbilt
2022-05-20Support stream data -- not testedJay Berkenbilt
There are no automated tests yet, but committing work so far in preparation for some refactoring.
2022-05-20replaceStreamData: accept uninitialized filter/decode_parmsJay 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-20Back 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-20Parse objects; stream data is not yet handledJay Berkenbilt
2022-05-20Add new error type for JSONJay Berkenbilt
2022-05-20Add private methods for reserving specific objectsJay Berkenbilt
2022-05-16Implement top-level qpdf json parsingJay Berkenbilt
2022-05-16Add scaffolding for QPDF JSON reactorJay Berkenbilt
2022-05-16Add --create-from-json and --update-from-json argumentsJay Berkenbilt
Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON)
2022-05-16TODO: solidify work for JSON to PDFJay Berkenbilt
2022-05-16Remove offset from missing /Root errorJay Berkenbilt
The last offset is irrelevant to not being able to find /Root.
2022-05-16Improve handling of replacing stream data with empty stringsJay 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-16Add QUtil::is_long_longJay Berkenbilt
2022-05-14Split qpdf.test into multiple test suitesJay Berkenbilt
This makes it a lot easier to run parts of the test suite.
2022-05-14Update qtest-driver to log invalid testsJay Berkenbilt
This is taken from an unrelased change to qtest.
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 maxobjectid to JSONJay Berkenbilt