Logo white

OpenSystemsDevelopment / qpdf

Sign in
  • Sign in
  • Project
  • Files
  • Commits
  • Network
  • Graphs
  • Milestones
  • Issues 0
  • Merge Requests 0
  • Labels
  • Wiki
  • Commits 4,691
  • Compare
  • Branches 1
  • Tags 0
  • qpdf
  • libqpdf
07 May, 2022
7 commits
  • Objects json: write incrementally and in numeric order ...
    948de609
    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))
    ----------
    Jay Berkenbilt authored
    2022-05-07 08:26:31 -0400  
    Browse Dir »
  • Pages json: write each page incrementally
    f50274ef
    Jay Berkenbilt authored
    2022-05-07 08:26:31 -0400  
    Browse Dir »
  • Top-level json: write incrementally ...
    dc9b7287
    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))
    ----------
    Jay Berkenbilt authored
    2022-05-07 08:26:31 -0400  
    Browse Dir »
  • Test json against schema only on demand ...
    7f65a5c2
    Testing json against schema requires an in-memory copy, so do it only
    when requested by the test suite.
    Jay Berkenbilt authored
    2022-05-07 08:26:31 -0400  
    Browse Dir »
  • Add next to Pl_String and fix comments
    a3c99803
    Jay Berkenbilt authored
    2022-05-07 08:26:31 -0400  
    Browse Dir »
  • Add --test-json-schema command-line option
    b361c5ce
    Jay Berkenbilt authored
    2022-05-07 08:26:31 -0400  
    Browse Dir »
  • QPDFJob: have doJSON write to a pipeline
    7604ac5c
    Jay Berkenbilt authored
    2022-05-07 08:26:31 -0400  
    Browse Dir »

06 May, 2022
1 commit
  • JSON: add blob type that generates base64-encoded binary data
    0500d434
    Jay Berkenbilt authored
    2022-05-06 19:14:52 -0400  
    Browse Dir »

04 May, 2022
5 commits
  • Change JSON parser to parse from an InputSource
    05fda4af
    Jay Berkenbilt authored
    2022-05-04 12:07:11 -0400  
    Browse Dir »
  • Add new FileInputSource constructors
    e5f3910c
    Jay Berkenbilt authored
    2022-05-04 12:07:11 -0400  
    Browse Dir »
  • JSON: add write methods and implement unparse() in terms of those
    e2596359
    Jay Berkenbilt authored
    2022-05-04 12:07:11 -0400  
    Browse Dir »
  • Make "objects" and "pages" consistent in JSON output
    8b25de24
    Jay Berkenbilt authored
    2022-05-04 08:32:44 -0400  
    Browse Dir »
  • Don't call pushInheritedAttributesToPage in json mode ...
    6b576797
    We used to have to do that, but for quite some time, the code that
    gets images has no longer required it.
    Jay Berkenbilt authored
    2022-05-04 07:11:13 -0400  
    Browse Dir »

03 May, 2022
9 commits
  • Add new Pl_String Pipeline
    f4206a09
    Jay Berkenbilt authored
    2022-05-03 18:54:51 -0400  
    Browse Dir »
  • Add new Pl_OStream Pipeline
    16139d97
    Jay Berkenbilt authored
    2022-05-03 18:54:51 -0400  
    Browse Dir »
  • Make use of the new Pipeline methods in some places
    21d6e323
    Jay Berkenbilt authored
    2022-05-03 18:31:23 -0400  
    Browse Dir »
  • Add new Pipeline convenience methods
    f1c6bb97
    Jay Berkenbilt authored
    2022-05-03 18:31:22 -0400  
    Browse Dir »
  • Make Pipeline::write take an unsigned char const* (API change)
    59f3e09e
    Jay Berkenbilt authored
    2022-05-03 18:31:22 -0400  
    Browse Dir »
  • Make assert handling less error-prone ...
    62bf296a
    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.
    Jay Berkenbilt authored
    2022-05-03 18:31:22 -0400  
    Browse Dir »
  • Remove remaining incorrect assert calls from implementation
    92b69246
    Jay Berkenbilt authored
    2022-05-03 18:31:22 -0400  
    Browse Dir »
  • Add internal Pl_Base64 ...
    3d9bac43
    Bidirectional base64; will be used by JSON v2.
    Jay Berkenbilt authored
    2022-05-03 18:31:22 -0400  
    Browse Dir »
  • Move generate_auto_job to the top-level CMakeLists.txt
    6724a362
    Jay Berkenbilt authored
    2022-05-03 08:39:50 -0400  
    Browse Dir »

01 May, 2022
3 commits
  • Add reactors to the JSON parser
    8d2a0eda
    Jay Berkenbilt authored
    2022-05-01 19:55:52 -0400  
    Browse Dir »
  • Limit parser depth for json parser
    72e5c734
    Jay Berkenbilt authored
    2022-05-01 12:56:22 -0400  
    Browse Dir »
  • Spell check
    e34dbbfa
    Jay Berkenbilt authored
    2022-05-01 12:56:22 -0400  
    Browse Dir »

30 Apr, 2022
9 commits
  • Mark weak encryption with API changes (fixes #576)
    8ccd3a8a
    Jay Berkenbilt authored
    2022-04-30 17:24:15 -0400  
    Browse Dir »
  • Remove deprecated (pre-8.4.0) encryption APIs
    2213ed0c
    Jay Berkenbilt authored
    2022-04-30 17:23:58 -0400  
    Browse Dir »
  • Using insecure crytpo from the CLI is now an error by default
    cff26040
    Jay Berkenbilt authored
    2022-04-30 17:23:58 -0400  
    Browse Dir »
  • Add comments around non-security-related uses of MD5
    ce19471f
    Jay Berkenbilt authored
    2022-04-30 14:15:07 -0400  
    Browse Dir »
  • Revert "Remove QPDFObjectHandle::replaceOrRemoveKey" ...
    c365a26e
    This reverts commit dc059560e73e0b373a6e54e71b07e3af4b692cb4.
    
    I changed my mind. There's no harm in leaving it deprecated for a
    release cycle.
    Jay Berkenbilt authored
    2022-04-30 14:15:07 -0400  
    Browse Dir »
  • Remove QPDFObjectHandle::replaceOrRemoveKey ...
    dc059560
    See ChangeLog for rationale for not deprecating it as originally
    planned.
    Jay Berkenbilt authored
    2022-04-30 13:39:45 -0400  
    Browse Dir »
  • Code clean up: use range-style for loops wherever possible ...
    4f24617e
    Where not possible, use "auto" to get the iterator type.
    
    Editorial note: I have avoid this change for a long time because of
    not wanting to make gratuitous changes to version history, which can
    obscure when certain changes were made, but with having recently
    touched every single file to apply automatic code formatting and with
    making several broad changes to the API, I decided it was time to take
    the plunge and get rid of the older (pre-C++11) verbose iterator
    syntax. The new code is just easier to read and understand, and in
    many cases, it will be more effecient as fewer temporary copies are
    being made.
    
    m-holger, if you're reading, you can see that I've finally come
    around. :-)
    Jay Berkenbilt authored
    2022-04-30 13:27:18 -0400  
    Browse Dir »
  • Formatting: remove space in range-style for loops ...
    7f023701
    Change .clang-format and commit automated changes from a fresh run of
    format-code
    Jay Berkenbilt authored
    2022-04-30 13:26:43 -0400  
    Browse Dir »
  • Use fluent appendItem
    2878c186
    Jay Berkenbilt authored
    2022-04-30 10:54:16 -0400  
    Browse Dir »

29 Apr, 2022
3 commits
  • Use fluent replaceKey
    ab9d557c
    Jay Berkenbilt authored
    2022-04-29 20:39:54 -0400  
    Browse Dir »
  • Use replaceKeyAndGet in a few places in existing code
    d8fdf632
    Jay Berkenbilt authored
    2022-04-29 20:28:02 -0400  
    Browse Dir »
  • Add new QPDFObjectHandle methods for more fluent programming
    e80fad86
    Jay Berkenbilt authored
    2022-04-29 20:09:10 -0400  
    Browse Dir »

24 Apr, 2022
3 commits
  • QPDFJob json: make removeAttachment take an array (fixes #693)
    d0b7cc8a
    Jay Berkenbilt authored
    2022-04-24 13:06:19 -0400  
    Browse Dir »
  • Fix build logic around generate_auto_job ...
    63c5a56f
    It was being run at configuration time, not build time.
    Jay Berkenbilt authored
    2022-04-24 13:06:16 -0400  
    Browse Dir »
  • Fix some bugs around null values in dictionaries ...
    08ba21cf
    Make it so that a key with a null value is always treated as not being
    present. This was inconsistent before.
    Jay Berkenbilt authored
    2022-04-24 10:08:32 -0400  
    Browse Dir »