aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/JSON.cc
AgeCommit message (Collapse)Author
2023-02-04In JSONParser::handleToken simplify setting of start and endm-holger
2023-02-04In JSONParser::handleToken move processing for ls_end_array and ls_end_dict ↵m-holger
into switch statement
2023-02-04In JSONParser::handleToken move processing for ls_colon and ls_comma into ↵m-holger
switch statement
2023-02-04In JSONParser::handleToken move validation for ls_colon etc into switch ↵m-holger
statement
2023-02-04In JSONParser::handleToken move string decoding into switch statementm-holger
2023-02-04Avoid copying delimiters in JSONParser::getTokenm-holger
2023-02-04Add data member JSONParser::token_startm-holger
2023-02-04In JSONParser add lexer states for delimitersm-holger
2023-02-01Remove redundant JSONParser::before_point etcm-holger
2023-02-01Refactor end of input handling in JSONParserm-holger
2023-02-01Refactor handling of ls_number in JSONParser::getTokenm-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-01In JSONParser add lex_state ls_number_e_signm-holger
2023-02-01In JSONParser add lex_state ls_number_em-holger
Also, allow 'E' as alternative to 'e'.
2023-02-01In JSONParser add lex_state ls_number_after_pointm-holger
2023-02-01In JSONParser add lex_state ls_number_pointm-holger
Also. remove '.' as starting char in lsTop.
2023-02-01In JSONParser add lex_state ls_number_before_pointm-holger
2023-02-01In JSONParser add lex_state ls_number_leading_zerom-holger
2023-02-01In JSONParser add lex_state ls_number_minusm-holger
2023-02-01Add new method JSONParser::numberErrorm-holger
2023-01-28Refactor JSON::addDictionaryMemberm-holger
2023-01-28Refactor JSON::JSON_string::writem-holger
2023-01-28Refactor JSON::writeDictionaryKeym-holger
2023-01-28Refactor JSON::writeNextm-holger
2023-01-28Refactor JSON::writeClosem-holger
2022-09-21Replace calls to QUtil::int_to_string with std::to_stringm-holger
2022-08-07Code tidy: remove redundant calls to smart_ptrs get() methodm-holger
2022-07-31Fix/clarify meaning of depth parameter to json write methodsJay Berkenbilt
2022-07-31Merge pull request #734 from m-holger/nullptrJay Berkenbilt
Code tidy : replace 0 with nullptr or true
2022-07-26Code tidy : replace 0 with nullptr or truem-holger
2022-07-24JSON schema: support multi-element array validationJay Berkenbilt
2022-07-24JSON schema -- accept single item in place of arrayJay Berkenbilt
When the schema wants a variable-length array, allow a single item as well as allowing an array.
2022-05-21JSON: Fix large file supportJay Berkenbilt
2022-05-20JSON: detect duplicate dictionary keys while parsingJay Berkenbilt
2022-05-20JSON fix: correctly parse UTF-16 surrogate pairsJay 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-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-07Add next to Pl_String and fix commentsJay 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-04JSON: add write methods and implement unparse() in terms of thoseJay Berkenbilt
2022-05-02Add reactors to the JSON parserJay Berkenbilt
2022-05-01Limit parser depth for json parserJay Berkenbilt
2022-04-30Formatting: remove space in range-style for loopsJay Berkenbilt
Change .clang-format and commit automated changes from a fresh run of format-code
2022-04-16Use = default and = delete where possible in classesJay 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
2022-02-25Allow \/ in a json stringJay Berkenbilt
2022-02-04Add a blank line after the first header included in each sourceJay Berkenbilt
2022-02-04JSON: use std::shared_ptr internallyJay Berkenbilt
2022-02-04PointerHolder: 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-30More editorial changes from m-holger + spell checkJay Berkenbilt