Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-02-01 | Refactor end of input handling in JSONParser | m-holger | |
2023-02-01 | Refactor handling of ls_number in JSONParser::getToken | m-holger | |
Reflect that the ls_number case only handles the digits after an 'e'. Also, change state to ls_number for all 'ready' numbers. | |||
2023-02-01 | In JSONParser add lex_state ls_number_e_sign | m-holger | |
2023-02-01 | In JSONParser add lex_state ls_number_e | m-holger | |
Also, allow 'E' as alternative to 'e'. | |||
2023-02-01 | In JSONParser add lex_state ls_number_after_point | m-holger | |
2023-02-01 | In JSONParser add lex_state ls_number_point | m-holger | |
Also. remove '.' as starting char in lsTop. | |||
2023-02-01 | In JSONParser add lex_state ls_number_before_point | m-holger | |
2023-02-01 | In JSONParser add lex_state ls_number_leading_zero | m-holger | |
2023-02-01 | In JSONParser add lex_state ls_number_minus | m-holger | |
2023-02-01 | Add new method JSONParser::numberError | m-holger | |
2023-01-28 | Refactor JSON::addDictionaryMember | m-holger | |
2023-01-28 | Refactor JSON::JSON_string::write | m-holger | |
2023-01-28 | Refactor JSON::writeDictionaryKey | m-holger | |
2023-01-28 | Refactor JSON::writeNext | m-holger | |
2023-01-28 | Refactor JSON::writeClose | m-holger | |
2022-09-21 | Replace calls to QUtil::int_to_string with std::to_string | m-holger | |
2022-08-07 | Code tidy: remove redundant calls to smart_ptrs get() method | m-holger | |
2022-07-31 | Fix/clarify meaning of depth parameter to json write methods | Jay Berkenbilt | |
2022-07-31 | Merge pull request #734 from m-holger/nullptr | Jay Berkenbilt | |
Code tidy : replace 0 with nullptr or true | |||
2022-07-26 | Code tidy : replace 0 with nullptr or true | m-holger | |
2022-07-24 | JSON schema: support multi-element array validation | Jay Berkenbilt | |
2022-07-24 | JSON schema -- accept single item in place of array | Jay Berkenbilt | |
When the schema wants a variable-length array, allow a single item as well as allowing an array. | |||
2022-05-21 | JSON: Fix large file support | Jay Berkenbilt | |
2022-05-20 | JSON: detect duplicate dictionary keys while parsing | Jay Berkenbilt | |
2022-05-20 | JSON fix: correctly parse UTF-16 surrogate pairs | Jay Berkenbilt | |
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-07 | Objects json: write incrementally and in numeric order | Jay 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-07 | Add next to Pl_String and fix comments | Jay Berkenbilt | |
2022-05-07 | JSON: add blob type that generates base64-encoded binary data | Jay Berkenbilt | |
2022-05-04 | Change JSON parser to parse from an InputSource | Jay Berkenbilt | |
2022-05-04 | JSON: add write methods and implement unparse() in terms of those | Jay Berkenbilt | |
2022-05-02 | Add reactors to the JSON parser | Jay Berkenbilt | |
2022-05-01 | Limit parser depth for json parser | Jay Berkenbilt | |
2022-04-30 | Formatting: remove space in range-style for loops | Jay Berkenbilt | |
Change .clang-format and commit automated changes from a fresh run of format-code | |||
2022-04-16 | Use = default and = delete where possible in classes | Jay Berkenbilt | |
2022-04-04 | Programmatically apply new formatting to code | Jay Berkenbilt | |
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done | |||
2022-02-25 | Allow \/ in a json string | Jay Berkenbilt | |
2022-02-04 | Add a blank line after the first header included in each source | Jay Berkenbilt | |
2022-02-04 | JSON: use std::shared_ptr internally | Jay Berkenbilt | |
2022-02-04 | PointerHolder: deprecate getPointer() and getRefcount() | Jay Berkenbilt | |
Use get() and use_count() instead. Add #define NO_POINTERHOLDER_DEPRECATION to remove deprecation markers for these only. This commit also removes all deprecated PointerHolder API calls from qpdf's code except in PointerHolder's test suite, which must continue to test the deprecated APIs. | |||
2022-01-30 | More editorial changes from m-holger + spell check | Jay Berkenbilt | |
2022-01-30 | Allow optional fields in json "schema" checks | Jay Berkenbilt | |
2022-01-30 | Implement JSONHandler for recursively processing JSON | Jay Berkenbilt | |
2022-01-30 | Add JSON::parse | Jay Berkenbilt | |
2022-01-30 | Add missing \f support for JSON string encoder | Jay Berkenbilt | |
2022-01-30 | Add JSON::isDictionary and JSON::isArray | Jay Berkenbilt | |
2020-04-09 | Fix unnecessary copies in auto iter (fixes #426) | Jay Berkenbilt | |
Also switch to colon-style iteration in some cases. Thanks to Dean Scarff for drawing this to my attention after detecting some unnecessary copies with https://clang.llvm.org/extra/clang-tidy/checks/performance-for-range-copy.html | |||
2020-04-05 | JSON: implement pattern keys in schema | Jay Berkenbilt | |
2019-06-21 | Fix sign and conversion warnings (major) | Jay Berkenbilt | |
This makes all integer type conversions that have potential data loss explicit with calls that do range checks and raise an exception. After this commit, qpdf builds with no warnings when -Wsign-conversion -Wconversion is used with gcc or clang or when -W3 -Wd4800 is used with MSVC. This significantly reduces the likelihood of potential crashes from bogus integer values. There are some parts of the code that take int when they should take size_t or an offset. Such places would make qpdf not support files with more than 2^31 of something that usually wouldn't be so large. In the event that such a file shows up and is valid, at least qpdf would raise an error in the right spot so the issue could be legitimately addressed rather than failing in some weird way because of a silent overflow condition. | |||
2018-12-25 | JSON::serialize -> unparse | Jay Berkenbilt | |
Unparse is admittedly strange, but I'd rather be strange and consistent, and everything else in the qpdf library uses unparse to serialize. (If you're reading this, the convention of using "unparse" comes from the "clu" programming language.) |