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
11 May, 2025
12 commits
  • Refactor stream filtering logic for empty streams ...
    28e756f1
    Introduced explicit checks for empty streams and refined filtering conditions for improved clarity and correctness.
    m-holger authored
    2025-05-11 14:06:44 +0100  
    Browse Code »
  • Add unit tests for compression handling on empty streams
    3470c5f1
    TinyServal authored
    2025-05-11 13:45:32 +0100  
    Browse Code »
  • Ignore macOS junk files
    dacabd3b
    TinyServal authored
    2025-05-11 13:45:32 +0100  
    Browse Code »
  • Don't apply filters to empty stream objects
    cb85d369
    TinyServal authored
    2025-05-11 13:45:32 +0100  
    Browse Code »
  • Merge pull request #1457 from m-holger/stream ...
    2a4495dd
    Refactor Stream::filterable and Stream::pipeStreamData
    m-holger authored
    2025-05-11 13:42:08 +0100  
    Browse Code »
  • I SF_FlateLzwDecode switch from shared_ptr to unique_ptr for pipeline management ...
    5c1a5d43
    Replaced `std::shared_ptr` with `std::unique_ptr` in `SF_FlateLzwDecode` to improve memory management and clarify ownership semantics. Adjusted related code and function logic to accommodate the change, including moving pipelines into the vector.
    m-holger authored
    2025-05-11 11:46:14 +0100  
    Browse Code »
  • Refactor SF_Crypt to use `final` and improve `setDecodeParms`. ...
    5806e305
    Updated `SF_Crypt` class methods and destructor to use the `final` specifier for clarity and stricter override rules. Refactored `setDecodeParms` logic for better readability and accurate handling of dictionary keys. Other minor adjustments contribute to code maintainability and correctness.
    m-holger authored
    2025-05-11 11:41:25 +0100  
    Browse Code »
  • Refactor filter name expansion logic in QPDF_Stream ...
    f126bfa7
    Removed `expand_filter_name` method and integrated its functionality directly into `filter_factory` for improved clarity and maintainability. Consolidated filter handling logic to eliminate redundant operations and streamline code execution.
    m-holger authored
    2025-05-11 11:37:33 +0100  
    Browse Code »
  • Refactor stream filtering to simplify decode-level handling. ...
    96228864
    Replaced individual compression flags with a unified decode-level parameter for stream filtering. Introduced a helper function to handle filtering conditions, reducing redundancy and improving readability. Removed unused code and updated related tests to reflect these changes.
    m-holger authored
    2025-05-11 11:36:45 +0100  
    Browse Code »
  • Refactor stream logic for clarity and reliability ...
    1527bf29
    Stream provider logic has been streamlined by removing unnecessary variables and conditional checks. Adjusted handling of mismatched or missing stream lengths to improve code readability and maintainability.
    m-holger authored
    2025-05-11 11:27:29 +0100  
    Browse Code »
  • Refactor stream handling for clarity and efficiency ...
    98925989
    Replaced shared_ptr with unique_ptr for pipeline management, reducing overhead and improving ownership semantics. Simplified conditional checks and modernized code to enhance readability by removing redundant variables and adjusting pointer usages. This refactor ensures better maintainability and minor performance gains in stream processing.
    m-holger authored
    2025-05-11 11:15:39 +0100  
    Browse Code »
  • Refactor ContentNormalizer to use inline method definitions ...
    1a05b099
    Moved `anyBadTokens` and `lastTokenWasBad` methods to inline definitions within the header file for improved readability and maintainability. Also marked the class and relevant methods as `final` to prevent further inheritance and overrides.
    m-holger authored
    2025-05-11 11:14:34 +0100  
    Browse Code »

10 May, 2025
12 commits
  • Simplify decode parameters handling in streams ...
    5f347f35
    Refactored the handling of /DecodeParms by removing unnecessary vector creation and directly accessing elements in the decode array. This improves code clarity and maintains consistency with filters processing.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Refactor decode parameters handling in QPDF_Stream. ...
    36e92e03
    Simplified and reorganized logic for handling /DecodeParms in streams. Ensured proper initialization and updated filter checks for lossy and specialized compression, improving code clarity and maintainability.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Fix /DecodeParms handling logic inconsistency ...
    d9ae41b0
    Moved the conditional check for /DecodeParms inconsistency into the loop to ensure clearer handling when filters are non-empty. This improves code structure and maintains robustness for edge cases encountered in the wild.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Refactor decode object handling in QPDF_Stream.cc ...
    9cdf980f
    Simplified the logic for handling /DecodeParms by using `as_array` and modernized code with `auto` and `emplace_back`. This improves code readability and aligns with modern C++ practices.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Simplify stream filtering logic and remove unused variable. ...
    a03c5fce
    Removed the unnecessary `filterable` variable and streamlined the logic for handling stream decoding parameters. These changes eliminate redundant checks, improve readability, and ensure clarity in flow control for filter processing.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Refactor stream filter handling for better array support ...
    9a84ef3b
    Replaced manual array handling with cleaner iteration using `as_array`. This improves code readability and ensures more robust processing of stream filter arrays.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Refactor stream filter handling for improved validation. ...
    56c43934
    Simplify and reorganize parsing logic to replace explicit filter name collection with direct filter creation. Added validation for unsupported filters, ensuring filters are cleared and errors returned when necessary. This improves code clarity and robustness.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Refactor stream filter handling for improved modularity ...
    772cd8d5
    Moved stream filter factory logic into `Members::filter_factory` for better encapsulation and maintainability. Removed redundant static filter factory map and improved error handling for invalid stream filter configurations.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Refactor filter name handling in QPDF_Stream. ...
    ab806259
    Moved `expand_filter_name` calls to maintain uniformity and avoid redundant processing in filter handling. This ensures cleaner and more structured code without changing functionality.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Refactor filter name expansion logic into a dedicated method ...
    c82c6d0a
    Moved the filter abbreviation expansion logic from a static map to a new `expand_filter_name` method in `QPDF_Stream::Members`. This simplifies the code, improves maintainability, and consolidates the logic for easier testing and updates.
    m-holger authored
    2025-05-10 20:37:20 +0100  
    Browse Code »
  • Merge pull request #1459 from jberkenbilt/c++20 ...
    e9359c72
    Bump version to 12.3.0 and C++ to C++-20
    Jay Berkenbilt authored
    2025-05-10 15:32:33 -0400  
    Browse Code »
  • Bump version to 12.3.0 and C++ to C++-20
    86bead36
    m-holger authored
    2025-05-10 15:07:42 -0400  
    Browse Code »

06 May, 2025
1 commit
  • Merge pull request #1455 from m-holger/fuzz ...
    dbf9f15f
    During xref recovery reject /Page objects with multiple errors
    m-holger authored
    2025-05-06 00:04:23 +0100  
    Browse Code »

05 May, 2025
3 commits
  • During xref recovery reject /Page objects with multiple errors ...
    e4be0d58
    When validating the pages tree after xref recovery do not tree dictionaries
    as page objects if more than 2 of the following are true:
    
    - the dictionary is direct
    - the /Type entry is missing or is not /Page
    - the dictionary does not contain a valid /Parent entry
    - the dictionary does not contain or inherit a valid /MediaBox
    - the dictionary does not contain or inherit a /Resources dictionary
    
    Such dictionaries are very unlikely to be page objects and trying to
    process them may cause excessive run time and memory usage.
    m-holger authored
    2025-05-05 13:30:37 +0100  
    Browse Code »
  • Merge pull request #1451 from m-holger/fuzz ...
    3427df9b
    Refine xref table reconstruction
    m-holger authored
    2025-05-05 11:27:31 +0100  
    Browse Code »
  • Merge pull request #1454 from m-holger/hc ...
    e637d843
    Bump version to 12.2.1
    m-holger authored
    2025-05-05 11:26:59 +0100  
    Browse Code »

04 May, 2025
6 commits
  • Bump version to 12.2.1
    62e20198
    m-holger authored
    2025-05-04 19:31:42 +0100  
    Browse Code »
  • Prepare 12.2.0 release
    856d32c6
    Jay Berkenbilt authored
    2025-05-04 12:40:46 -0400  
    Browse Code »
  • Spell check
    593eb5a5
    Jay Berkenbilt authored
    2025-05-04 12:26:57 -0400  
    Browse Code »
  • Use C API correctly for jpeglib (fixes #1424)
    d2f06937
    Jay Berkenbilt authored
    2025-05-04 12:05:25 -0400  
    Browse Code »
  • Merge pull request #1447 from m-holger/i1433 ...
    7242adca
    Fix QPDFFormFieldObjectHelper::getChoices (fixes #1433)
    m-holger authored
    2025-05-04 16:57:04 +0100  
    Browse Code »
  • Refine xref table reconstruction ...
    b3c4b4db
    During xref table reconstruction ignore uncompressed object entries found
    in xref streams. The xref table gets populated with entries for the
    objects actually found in the file. The entries for uncompressed object in
    xref streams are redundant and potentially incorrect.
    m-holger authored
    2025-05-04 16:53:27 +0100  
    Browse Code »

27 Apr, 2025
5 commits
  • Merge pull request #1446 from m-holger/fuzz ...
    ad3bac2c
    Add additional sanity check during xref recovery
    m-holger authored
    2025-04-27 22:53:57 +0100  
    Browse Code »
  • Add release note for Windows build improvement
    c7779175
    Jay Berkenbilt authored
    2025-04-27 10:40:39 -0400  
    Browse Code »
  • Merge pull request #1448 from jberkenbilt/improve-windows-build ...
    56bb66f2
    Enhance Windows build for local dev
    Jay Berkenbilt authored
    2025-04-27 10:30:42 -0400  
    Browse Code »
  • Enhance Windows build for local dev ...
    d51bdcf6
    * Remove dependency on `perl`, now only required for maintenance
      activities and running the test suite.
    * Exercise building qpdf and running executables from JetBrains CLion
      without any special additional tooling beyond pre-built external
      libraries.
    
    This replaces the `copy_dlls` with a powershell script, written mostly
    by ChatGPT, starting from the bash script below. The copy_dlls script
    had a lot of logic that was no longer needed.
    
    ```bash
    #!/bin/bash
    set -eo pipefail
    exe="$1"
    dest="$2"
    mingw_bin_dir="$3"
    if [[ $mingw_bin_dir == "" ]]; then
        echo >&2 "Usage: $(basename $0) exe dest mingw-bin-dir"
        exit 2
    fi
    
    get_dlls() {
        objdump -p "$1" | grep 'DLL Name:' | awk '{print $NF}'
    }
    declare -a dlls
    dlls=($(get_dlls "$exe"))
    declare -A seen
    while [[ ${#dlls[@]} -gt 0 ]]; do
        i="${dlls[0]}"
        dlls=("${dlls[@]:1}")
        if [[ ${seen[$i]} == 1 ]]; then
            continue
        fi
        seen[$i]=1
        full="$mingw_bin_dir/$i"
        if [[ -f "$full" ]]; then
            cp "$full" $dest/
            dlls+=($(get_dlls "$full"))
        fi
    done
    ```
    Jay Berkenbilt authored
    2025-04-27 09:56:38 -0400  
    Browse Code »
  • Fix QPDFFormFieldObjectHelper::getChoices (fixes #1433) ...
    c46cfae7
    Return the display value if the choices entry is an array of strings rather
    than a single string.
    
    Test file is need-appearances.pdf modified to contain one array entry.
    m-holger authored
    2025-04-27 10:54:06 +0100  
    Browse Code »

26 Apr, 2025
1 commit
  • Add additional sanity check during xref recovery ...
    df9633de
    Do not copy duplicate pages during xref recovery.
    m-holger authored
    2025-04-26 12:14:47 +0100  
    Browse Code »