commit 45d43f4685d0596abcecd2587d4b821e8e40879b
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Dec 1 18:10:53 2025 +0100

    poppler 25.12.0

 CMakeLists.txt   |  6 +++---
 NEWS             | 16 ++++++++++++++++
 cpp/Doxyfile     |  2 +-
 qt5/src/Doxyfile |  2 +-
 qt6/src/Doxyfile |  2 +-
 5 files changed, 22 insertions(+), 6 deletions(-)

commit 0994338dc4a3015d9e1f8a030ccaf60e020c8c37
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Dec 1 17:56:36 2025 +0100

    Update (C)

 fofi/FoFiIdentifier.cc | 2 +-
 poppler/Annot.h        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f04f81182249ba955ff4e5cef9e101da5d2c95a2
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Nov 30 16:10:13 2025 +0100

    Trick clang-tidy 21 into not complaining

    We know bufSize is 1024 so it fits more than enough in an integer

 fofi/FoFiIdentifier.cc | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit f275e2c7579a0f7c3c131f8e4ce78f9301901ae8
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Nov 30 15:51:12 2025 +0100

    Make param to getIndexVal const & since it's always non null

 fofi/FoFiType1C.cc | 30 +++++++++++++++---------------
 fofi/FoFiType1C.h  |  4 ++--
 2 files changed, 17 insertions(+), 17 deletions(-)

commit a0d06b3018c160580e491f8e3fbb2d2dcdf84da9
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Nov 30 15:31:43 2025 +0100

    Make a variable unsigned to represent the data more correctly

 qt5/tests/check_annotations.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 022d33de2270ac876b9aa4321ff700b22b3cd7bb
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Nov 30 15:16:04 2025 +0100

    CI: Update clang-format to 21

 .gitlab-ci.yml                                    | 4 ++--
 README.contributors                               | 2 +-
 poppler/CourierBoldObliqueWidths.pregenerated.c   | 3 +--
 poppler/CourierBoldWidths.pregenerated.c          | 3 +--
 poppler/CourierObliqueWidths.pregenerated.c       | 3 +--
 poppler/CourierWidths.pregenerated.c              | 3 +--
 poppler/GfxState.cc                               | 8 ++++----
 poppler/HelveticaBoldObliqueWidths.pregenerated.c | 3 +--
 poppler/HelveticaBoldWidths.pregenerated.c        | 3 +--
 poppler/HelveticaObliqueWidths.pregenerated.c     | 3 +--
 poppler/HelveticaWidths.pregenerated.c            | 3 +--
 poppler/SymbolWidths.pregenerated.c               | 3 +--
 poppler/TimesBoldItalicWidths.pregenerated.c      | 3 +--
 poppler/TimesBoldWidths.pregenerated.c            | 3 +--
 poppler/TimesItalicWidths.pregenerated.c          | 3 +--
 poppler/TimesRomanWidths.pregenerated.c           | 3 +--
 poppler/ZapfDingbatsWidths.pregenerated.c         | 3 +--
 17 files changed, 21 insertions(+), 35 deletions(-)

commit 77f36b852541b271bc09f51d88ba2061fe9b175f
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Thu Nov 27 11:51:32 2025 -0400

    Annot.cc: partially revert e674ca64 to fix #1642 regression

    The refactor in commit e674ca64 deleted the code in
    AnnotWidget::draw() that checked if ZaDb font was
    automatically added by AnnotAppearanceBuilder::drawText()
    (after it could not find it in the document Resources)
    and if that was the case then AnnotWidget::draw() added
    a fake ZaDb font to the Gfx Resources prior to calling
    gfx->drawAnnot().

    The deletion of that code was causing pdf form files
    exported from LibreOffice which had checkbuttons and
    radiobuttons to not display them as checked after
    clicking them.

    So this commit brings back that code so those form
    buttons display fine again.

    Fixes #1642

 poppler/Annot.cc | 36 +++++++++++++++++++++++++++++++++---
 poppler/Annot.h  |  4 +++-
 2 files changed, 36 insertions(+), 4 deletions(-)

commit 2a4edaea6a7494c52ecc351214a72e8b4b4b0e89
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Nov 27 12:54:50 2025 +0100

    Do not report pdf syntax error when Suspects or UserProperties have
    false value

 poppler/Catalog.cc | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 9785e34024d6fbd72c421f65dc32ede4eb5870c4
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Nov 27 12:52:19 2025 +0100

    Update (C)

 goo/GooString.cc                  | 1 +
 goo/GooString.h                   | 1 +
 poppler/CairoOutputDev.cc         | 1 +
 poppler/Dict.cc                   | 1 +
 poppler/Dict.h                    | 1 +
 poppler/Form.cc                   | 1 +
 poppler/Hints.cc                  | 1 +
 poppler/Lexer.cc                  | 1 +
 poppler/Lexer.h                   | 1 +
 poppler/Linearization.cc          | 1 +
 poppler/MarkedContentOutputDev.cc | 1 +
 poppler/Object.h                  | 1 +
 poppler/PDFDoc.cc                 | 1 +
 poppler/PDFDoc.h                  | 1 +
 poppler/StructElement.cc          | 2 +-
 poppler/TextOutputDev.cc          | 1 +
 poppler/TextOutputDev.h           | 1 +
 poppler/UTF.cc                    | 1 +
 poppler/UTF.h                     | 1 +
 utils/pdfinfo.cc                  | 1 +
 utils/pdftotext.cc                | 1 +
 21 files changed, 21 insertions(+), 1 deletion(-)

commit ca72340b04906e8748acd46f140048536d65194e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Nov 27 09:39:15 2025 +0100

    roleMapResolve: Fix using object as name before checking it is a name

 poppler/StructElement.cc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 0bc521bbee2c5293d3be4ade5236544fde3a5460
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Nov 26 12:32:58 2025 +0100

    RoleMapResolve: Deal with different circular references

 poppler/StructElement.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 7aa99cf8fe6693e6a7a52adc09fcae613cd04e0d
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Nov 26 11:53:50 2025 +0100

    Don't resolve roleMap by recursion

    This gives the potential for stack exhaustion; It is just a list
    we can
    iterate over instead.

    Fixes: #1646

 poppler/StructElement.cc | 37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

commit bc86aab2b3fe8f060033c94579f456b1b70a120e
Author: Hagen Möbius <hagen.moebius@googlemail.com>
Date:   Thu Nov 27 01:22:41 2025 +0000

    Change default line ending to \n for all API.

 poppler/TextOutputDev.cc       |  4 ++--
 poppler/TextOutputDev.h        |  8 --------
 qt6/tests/CMakeLists.txt       |  1 +
 qt6/tests/check_endoflines.cpp | 29 +++++++++++++++++++++++++++++
 utils/pdftotext.cc             | 11 ++++++++++-
 5 files changed, 42 insertions(+), 11 deletions(-)

commit e2a03b6e39986d061b4eb663023d570d0b64e02c
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Nov 25 19:29:08 2025 +0100

    CI: Add clang 17 CI to simulate xcode 16.2

 .gitlab-ci.yml | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 150e9871a53feecb313295deb928b8bea414b28d
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Tue Nov 25 09:24:33 2025 +0100

    Limit postcript function recursion

    fixes #1643

 poppler/Function.cc | 14 ++++++++++----
 poppler/Function.h  |  2 +-
 2 files changed, 11 insertions(+), 5 deletions(-)

commit 5f9b4545fa390ebdc913506bd58fa35408e17473
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Wed Oct 29 17:07:41 2025 +0100

    [SplashXPathScanner] Remove ineffective xPath sorting

    Sorting of the xPath by lower y coordinate is fairly pointless, as it
    has provides almost no benefit, but comes at a significant cost and
    also has some negative side effects.

    A sorted xPath allows to determine the lowest y coordiate easily, and
    allows to stop processing of later segments which fall outside the
    clipping rectangle. But this causes a O(n log n) overhead for sorting
    (relevant for long paths), and the function call overhead (dominant
    part for short paths).

    Processing the unsorted xPath requires processing each segment twice
    (once to determine the actual upper and lower y bounds, and once to
    compute the intersections), but this is still more effective than
    sorting.

    Skip all segments outside the clipping region completely when
    determining
    the bounding box, as the corresponding scanlines are suppressed
    anyway.
    This occasionally provides a slightly better bounding box (narrower x
    coordinates), and avoid some pointless min/max instructions.

    As a side effect of not sorting the xPaths, the span merging in
    addIntersections becomes more effective, i.e. less allocations
    and faster
    span processing during rendering.

    This improves walltime for the testfile from #1555 from ~11 to ~9.5
    seconds, according to

    /usr/bin/time -v ./utils/pdftoppm  -r 75  ~/Downloads/lyon_metro.pdf
    > lyon_r75.ppm

    CCBUG: #1555

 splash/Splash.cc             |   2 -
 splash/SplashClip.cc         |   3 --
 splash/SplashXPath.cc        |  19 -------
 splash/SplashXPath.h         |   3 --
 splash/SplashXPathScanner.cc | 126
 +++++++++++++++++++++++--------------------
 5 files changed, 69 insertions(+), 84 deletions(-)

commit 6fa694c2bb960f46fefdb83683608304205a6d67
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sun Oct 19 02:09:04 2025 +0200

    [SplashXPathScanner] Reduce variable scope

 splash/SplashXPathScanner.cc | 58
 ++++++++++++++++++--------------------------
 1 file changed, 24 insertions(+), 34 deletions(-)

commit 90439ec2485248528ff7e52d6e006004084ad077
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Nov 19 23:13:34 2025 +0100

    qt6: Replace another qvsnprintf with vsnprintf

    We're already using it 4 lines above and qvsnprintf is deprecated

 qt6/src/poppler-qiodeviceoutstream.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c53ea9ce04ded10b8e5486295f5a100c04a76559
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Nov 19 21:45:14 2025 +0100

    qt6: Use less deprecated funtions

 qt6/tests/check_attachments.cpp    | 21 +++++++++++----------
 qt6/tests/check_dateConversion.cpp |  3 ++-
 qt6/tests/check_metadata.cpp       |  5 +++--
 qt6/tests/poppler-forms.cpp        |  3 ++-
 4 files changed, 18 insertions(+), 14 deletions(-)

commit 211c5663b6aa02ad0d40f2baad3e3096b8dec875
Author: Tau <jonathan.haehne@hotmail.com>
Date:   Tue Oct 28 22:57:56 2025 +0100

    Make some important leaf functions accept std::string_view parameters

    This also fixes a bug in GooString::toLowerCase.

 goo/GooString.cc                  |  6 ++---
 goo/GooString.h                   | 18 ++++++++++++--
 poppler/CairoOutputDev.cc         |  2 +-
 poppler/Dict.cc                   | 43 +++++++++++++++++-----------------
 poppler/Dict.h                    | 47
 +++++++++++++++++--------------------
 poppler/Form.cc                   |  8 +++----
 poppler/Hints.cc                  |  2 +-
 poppler/Lexer.cc                  | 49
 ++++++++++++++++-----------------------
 poppler/Lexer.h                   |  4 +---
 poppler/Linearization.cc          | 12 +++++-----
 poppler/MarkedContentOutputDev.cc |  2 +-
 poppler/Object.h                  | 33 ++++++++++++++------------
 poppler/PDFDoc.cc                 |  6 ++---
 poppler/PDFDoc.h                  | 11 +++++----
 poppler/UTF.cc                    |  8 +++----
 poppler/UTF.h                     |  2 +-
 utils/pdfinfo.cc                  |  2 +-
 17 files changed, 128 insertions(+), 127 deletions(-)

commit d66a78578ef349afdbedd3368df142e95d281a54
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Nov 18 16:48:28 2025 +0100

    Make clang-tidy-21 optional checker happy

 poppler/PSOutputDev.cc       |  2 +-
 qt5/src/QPainterOutputDev.cc | 17 +++++++++--------
 qt6/src/QPainterOutputDev.cc | 17 +++++++++--------
 3 files changed, 19 insertions(+), 17 deletions(-)

commit 86614650f3a22670a26e901409053580f2b1861e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Nov 18 16:28:20 2025 +0100

    Replace finds with proper calls

    Where we did just find, use contains

    Where we did find+insert, use just insert since it already tells us if
    it was in the container

 poppler/Form.cc        |  6 +++---
 poppler/PSOutputDev.cc | 29 +++++++++++++----------------
 2 files changed, 16 insertions(+), 19 deletions(-)

commit 2f96a6f3c16c9688981f9e0a111c59e8e93298c6
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Nov 13 15:47:52 2025 +0100

    Be less strict about the Page Annots object being correct

    Fixes #1641

 poppler/Page.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0888816cf5fdba950133acfb01841b7af1885729
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Nov 10 23:34:40 2025 +0100

    Update (C)

 cpp/poppler-page.cpp       | 2 +-
 poppler/CairoRescaleBox.cc | 2 +-
 poppler/TextOutputDev.h    | 2 +-
 qt5/src/poppler-page.cc    | 2 +-
 qt6/src/poppler-page.cc    | 2 +-
 splash/SplashBitmap.cc     | 2 +-
 utils/pdftotext.cc         | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

commit 8e273cea1cf28dd4b20c0a6e1a56878306f260b0
Author: Pablo Rodríguez <1425-ousia@users.noreply.gitlab.freedesktop.org>
Date:   Mon Nov 10 14:06:50 2025 +0000

    pdfsig: specify search order for NSS certificate database on the
    man page

 utils/pdfsig.1 | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 8f629e50a1b1c71662ed76363515b34c326265b4
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Nov 8 15:50:59 2025 +0100

    Solve a few more clang-tidy >= 20 unsigned/signed warnings

 poppler/CairoRescaleBox.cc | 4 ++--
 splash/SplashBitmap.cc     | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 5d45e4f9f9cbc540396836594df597aa21e72302
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Nov 8 15:36:58 2025 +0100

    TextWordList: just return the vector instead of a size/get

    Saves us from the signed/unsigned trouble on the API

    Also remove checks for makeWordList returning null since it never
    returns null

 cpp/poppler-page.cpp     | 98
 ++++++++++++++++++++++++------------------------
 poppler/TextOutputDev.cc | 13 -------
 poppler/TextOutputDev.h  |  6 +--
 qt5/src/poppler-page.cc  |  9 ++---
 qt6/src/poppler-page.cc  |  9 ++---
 utils/pdftotext.cc       | 23 ++++++------
 6 files changed, 68 insertions(+), 90 deletions(-)

commit eb2415bd963f2f5ab8edc563e7e7f8cadd2ae24d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Sep 4 14:53:53 2025 +0200

    Make a few variables unsigned to represent the data more correctly

 poppler/Annot.cc                |  2 +-
 qt6/tests/check_annotations.cpp |  6 +++---
 utils/pdfunite.cc               | 13 ++++++-------
 3 files changed, 10 insertions(+), 11 deletions(-)

commit c1d41465f959f201c8352c7b1856df6dc4e3944b
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Sep 4 14:22:56 2025 +0200

    Make maxSepComps a size_t instead of int

 poppler/GfxState.cc | 14 +++++++-------
 poppler/GfxState.h  |  8 ++++----
 2 files changed, 11 insertions(+), 11 deletions(-)

commit b5ba726421613527d546b85d6da9174dbdf77bf1
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Oct 24 01:49:08 2025 +0200

    Ignore color operators when painting a Type3 font with d1

    The specification says so

 poppler/Gfx.cc | 71
 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 poppler/Gfx.h  | 14 ++++++++++--
 2 files changed, 77 insertions(+), 8 deletions(-)

commit 7101305372c6a99f463d04ab0064aa997a5bb1d1
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Nov 4 10:51:37 2025 +0000

    CI: Use Fedora 43

 .gitlab-ci.yml | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit dc6e2af2035fe9d1dc4dcaec1d33bc75f61c771d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Nov 4 02:08:14 2025 +0100

    Update pregenerated.c files with new gperf

 poppler/CourierBoldObliqueWidths.pregenerated.c   | 16 ++++++++++++++--
 poppler/CourierBoldWidths.pregenerated.c          | 16 ++++++++++++++--
 poppler/CourierObliqueWidths.pregenerated.c       | 16 ++++++++++++++--
 poppler/CourierWidths.pregenerated.c              | 16 ++++++++++++++--
 poppler/HelveticaBoldObliqueWidths.pregenerated.c | 16 ++++++++++++++--
 poppler/HelveticaBoldWidths.pregenerated.c        | 16 ++++++++++++++--
 poppler/HelveticaObliqueWidths.pregenerated.c     | 16 ++++++++++++++--
 poppler/HelveticaWidths.pregenerated.c            | 16 ++++++++++++++--
 poppler/SymbolWidths.pregenerated.c               | 22
 ++++++++++++++++++++--
 poppler/TimesBoldItalicWidths.pregenerated.c      | 16 ++++++++++++++--
 poppler/TimesBoldWidths.pregenerated.c            | 16 ++++++++++++++--
 poppler/TimesItalicWidths.pregenerated.c          | 16 ++++++++++++++--
 poppler/TimesRomanWidths.pregenerated.c           | 16 ++++++++++++++--
 poppler/ZapfDingbatsWidths.pregenerated.c         | 16 ++++++++++++++--
 14 files changed, 202 insertions(+), 28 deletions(-)

commit 218e25a11a6bbf85cf77ad0f535e81ed0ad982fd
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Aug 9 00:53:03 2025 +0200

    Switch to C++23

 .gitlab-ci.yml | 2 --
 CMakeLists.txt | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

commit aede5dce602cdda81f88aa7d14250fa7c2e8e876
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Nov 4 01:12:13 2025 +0100

    Increase version so people that track master can add ifdefs on version

 CMakeLists.txt   | 2 +-
 cpp/Doxyfile     | 2 +-
 qt5/src/Doxyfile | 2 +-
 qt6/src/Doxyfile | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 51e0b6fee84d09e77ba46d68869ddf913fe92ed6
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Nov 4 00:55:57 2025 +0100

    poppler 25.11.0

 CMakeLists.txt   |  4 ++--
 NEWS             | 11 +++++++++++
 cpp/Doxyfile     |  2 +-
 qt5/src/Doxyfile |  2 +-
 qt6/src/Doxyfile |  2 +-
 5 files changed, 16 insertions(+), 5 deletions(-)

commit b7da5687374e572dd77224989a962a01ef998d67
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Oct 31 13:34:33 2025 +0100

    Update (C)

 glib/poppler-form-field.cc | 1 +
 splash/SplashClip.cc       | 2 +-
 splash/SplashClip.h        | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

commit ef48acc10131300c303a14f4e1b4d69a6c4166bb
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Wed Oct 29 15:07:17 2025 +0100

    [SplashClip] Use ranges::all_of instead of open coded equivalent

    As suggested by clang-tidy.

 splash/SplashClip.cc | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit fd49d61eff79bcd04dcef5f29ad4b083ece37f92
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Mon Oct 20 15:43:00 2025 +0200

    [SplashXPathScanner] Const'ify eo member

 splash/SplashXPathScanner.cc | 5 ++---
 splash/SplashXPathScanner.h  | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)

commit 426ade4e19da0a565d0a93f4189e430e05d12c7d
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Mon Oct 20 15:42:07 2025 +0200

    [SplashXPathScanner] Remove redundant hasPartialClip()

    The calling code already retrieves the bounding box from the scanner,
    notably yMin/yMax, and intersects it with the clip rectangle.

 splash/Splash.cc             | 4 ----
 splash/SplashXPathScanner.cc | 3 ---
 splash/SplashXPathScanner.h  | 5 -----
 3 files changed, 12 deletions(-)

commit 6be9bca95be6eba506823c555dc5a34a4c49fbc2
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Mon Oct 20 15:36:40 2025 +0200

    [SplashClip] Remove no longer used flags array

    The flags array is allocated and initialized, but never evaluated.
    The size (capacity) member also becomes unused, and length can be
    replaced with scanners.size().

 splash/SplashClip.cc | 62
 +++++++++-------------------------------------------
 splash/SplashClip.h  |  7 ++----
 2 files changed, 12 insertions(+), 57 deletions(-)

commit 6a1e5b76867b026dbf316cde705e305325331866
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sun Oct 19 02:10:35 2025 +0200

    [SplashXPathScanner] Remove unused getSpanBounds method

 splash/SplashXPathScanner.cc | 23 -----------------------
 splash/SplashXPathScanner.h  |  3 ---
 2 files changed, 26 deletions(-)

commit 82b93b8c18bb8288a58f6ba0fef6f60c15ba252f
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sat Oct 18 17:28:32 2025 +0200

    [SplashXPathScanner] Try to merge intersection spans early

    Spans which overlap or are adjacent without gap can be merged
    immediately,
    as the Postscript painting model marks all device pixels which are
    partially overlapped by a line.

    This is fairly often the case, as consecutive segments often
    overlap. Also
    tiny features may mark the same location multiple times.

    Merging often avoids (heap) allocation for additional spans, reduces
    time for sorting the spans, and speeds up the collection of
    consecutive
    spans when rendering the scanline.

    CCBUG: #1555

 splash/SplashXPathScanner.cc | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

commit d264aff319620979d77072e1725d8bef20909d9a
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sat Oct 18 17:17:58 2025 +0200

    [SplashXPathScanner] Move even-odd check invariant out of loop

 splash/SplashXPathScanner.cc | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 45e462ffd6a52fb5144baf1db04dd5a5c2608282
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sat Oct 18 14:21:02 2025 +0200

    [SplashXPathScanner] Only adjust x coordinate when necessary

    Most segments are not clipped, so the x start coordinate can be left
    unadjusted, as `(y0 - seg->y0) * dxdy == 0`.

 splash/SplashXPathScanner.cc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit a90efa6da7538cfc4bd07572593608ea3162f03d
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sat Oct 18 13:54:58 2025 +0200

    [SplashXPathScanner] Remove no longer used parameter

 splash/SplashXPathScanner.cc | 8 ++++----
 splash/SplashXPathScanner.h  | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit c6be677581ee77c3b143c206b81c0200f6c187f5
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Fri Feb 7 23:15:34 2025 +0100

    [SplashXPathScanner] Optimize almost horizontal segments

    If a segment is almost horizontal (i.e. its start and end y
    coordinates
    are rounded to the same value), the segment can be treated like
    an exactly
    horizontal segment.

    (This requires the count adjustment to be done one the upper edge.)

 splash/SplashXPathScanner.cc | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

commit 20d85e0766f4dd17c02fe8f98251cf8ec738680a
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Fri Feb 7 22:53:47 2025 +0100

    [SplashXPathScanner] Optimize count check

    The count is incremented/decremented each time a segment crosses a
    scanline boundary. If a segment starts/ends on a boundary, the count
    has to be changed exactly once, i.e. either on the upper or lower
    edge of
    the segment, but which one is arbitray.

    Changing this from the lower to the upper edge simplifies the
    condition,
    as (y <= segYMax) is always true.

 splash/SplashXPathScanner.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3190933f5c3597e09ac8b4eff0057d6286206efb
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Thu Feb 6 12:15:49 2025 +0100

    [SplashXPathScanner] Remove one unnecessary even-odd check

    The drawing routine checks if the count is even or odd, but does not
    care if it is negative or positive, or if the count is large or
    small -
    i.e. both adding +1 or -1 has the same effect.

    Removes one branch and a few other instructions per segment.

 splash/SplashXPathScanner.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4067038d78d9aced6a25c4169a9458a4c0dfbb2c
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sat Oct 18 13:02:49 2025 +0200

    [SplashXPathScanner] Flip XPath segment coordinates immediately

    Each segment is evaluated several times, ~log(n) times in
    `SplashXPath::sort`, and once each in the `SplashXPathScanner`
    constructor
    and its `computeIntersections` method.

    The direction of the segment is used to determine if a scanline
    span is
    inside or outside the polygon, by counting the intersections. This is
    already tracked by a flag. Adapt the name to signal the segment has
    been flipped.

 splash/Splash.cc             | 14 ++++++++----
 splash/SplashClip.cc         | 54
 ++++++++++++++++++++++++++++++++++++--------
 splash/SplashXPath.cc        | 30 ++++++++++++------------
 splash/SplashXPath.h         |  2 +-
 splash/SplashXPathScanner.cc | 32 +++++++-------------------
 5 files changed, 77 insertions(+), 55 deletions(-)

commit b3c328c0313c745feb67aaca4035a9c18170c961
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Thu Feb 6 02:39:13 2025 +0100

    [SplashXPathScanner] Remove unused y coordinate member

 splash/SplashXPathScanner.cc | 1 -
 splash/SplashXPathScanner.h  | 1 -
 2 files changed, 2 deletions(-)

commit 61c0fc58d3c1142bd95d881ffe68b4b530d443da
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sat Oct 18 18:29:20 2025 +0200

    [SplashXPath] Remove no longer used dydx member

 splash/SplashXPath.cc | 5 ++---
 splash/SplashXPath.h  | 5 +----
 2 files changed, 3 insertions(+), 7 deletions(-)

commit c569eec7426b60063d7c8564e2bb8faeebf69b2d
Author: lbaudin <lbaudin@gnome.org>
Date:   Sat Oct 18 13:40:39 2025 +0200

    glib: fix ocsp check for signatures validation

    The GLib API has a negative WITHOUT_OCSP flag while poppler internal
    has a positive flag, so we need a negation when transmitting the flag.

 glib/poppler-form-field.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b706f8bdbb2ba69ccd2532d7cf0b520668ba5fa2
Author: Marek Kasik <mkasik@redhat.com>
Date:   Fri Oct 17 11:13:32 2025 +0000

    getDefaultFirefoxCertDB(): Return the latest profile directory

 poppler/NSSCryptoSignBackend.cc | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit 5070962f19d40206861aba07c2af8a185b9e9ed9
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Oct 16 10:08:10 2025 +0200

    Update (C)

 poppler/CMap.h | 1 +
 1 file changed, 1 insertion(+)

commit 94f62d08a2509c420c34ef53ba23ab835e80dfdb
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Oct 14 00:22:41 2025 +0200

    CMap::parse no need for smart pointers in the recursion checker

 poppler/CMap.cc | 16 +++++++++++-----
 poppler/CMap.h  |  9 ++++-----
 2 files changed, 15 insertions(+), 10 deletions(-)

commit 998c6a79571af968ba90af57a0c5dcbb5a53763c
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Mon Oct 13 15:13:14 2025 +0200

    Limit recursion in cmap parsing

    fixes #1632

 poppler/CMap.cc | 18 +++++++++++-------
 poppler/CMap.h  | 13 +++++++------
 2 files changed, 18 insertions(+), 13 deletions(-)

commit 11b859f559d38708c95657cc633f8d43f4ffc35b
Author: Juraj Šarinay <juraj@sarinay.com>
Date:   Tue Sep 23 22:47:29 2025 +0200

    call PORT_GetError() only if the preceding CERT_PKIXVerifyCert() fails

 poppler/NSSCryptoSignBackend.cc |  7 +++-
 test/CMakeLists.txt             | 82
 +++++++++++++++++++++++++++++++++++++++++
 test/pdf-signing-nss.cc         | 79
 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 166 insertions(+), 2 deletions(-)

commit 759ec77140412b9b51d9251cd46e8ac51abbb60c
Author: William Bader <william@newspapersystems.com>
Date:   Tue Oct 7 06:47:56 2025 +0200

    glib/poppler.h: Place POPPLER_RENDER_ANNOTS_PRINT_MARKUP on a
    single line
    to fix "WARNING: Failed to parse" from glib-mkenums

 glib/poppler.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit b1cd3dc18151bd2672ac0b51012f6a64592b7f3b
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Oct 4 01:15:11 2025 +0200

    Increase version so people that track master can add ifdefs on version

 CMakeLists.txt   | 2 +-
 cpp/Doxyfile     | 2 +-
 qt5/src/Doxyfile | 2 +-
 qt6/src/Doxyfile | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit da906ddbfa5aa992c116fee7c95959cd79915f16
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Oct 4 01:04:48 2025 +0200

    poppler 25.10.0

 CMakeLists.txt      |  6 +++---
 NEWS                | 17 +++++++++++++++++
 cpp/CMakeLists.txt  |  2 +-
 cpp/Doxyfile        |  2 +-
 glib/CMakeLists.txt |  2 +-
 qt5/src/Doxyfile    |  2 +-
 qt6/src/Doxyfile    |  2 +-
 7 files changed, 25 insertions(+), 8 deletions(-)

commit 8c920bcfc4e6501be5b0dc3ce3775587d6a5f602
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Fri Oct 3 15:57:11 2025 +0200

    Fix data driven tests for non-signature builds

    Make the ifdeffery a bit more complicated to allow functioning things
    for builds without signatures enabled.

 qt6/tests/check_signature_basics.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit d916b885bee01cf6ee52b4ac213a4abb41703344
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Oct 3 02:00:52 2025 +0200

    Update po files

 utils/po/ca/pdfsig.po | 6 +++---
 utils/po/pdfsig.pot   | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 68f2e306cb2e97c2778dfe655a0a910feb1517b5
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Oct 1 11:08:38 2025 +0200

    Update (C)

 cpp/tests/poppler-dump.cpp           | 1 +
 glib/poppler-document.cc             | 1 +
 goo/GooString.cc                     | 1 +
 poppler/Annot.cc                     | 2 +-
 poppler/Annot.h                      | 2 +-
 poppler/PageLabelInfo.cc             | 1 +
 poppler/SecurityHandler.cc           | 2 +-
 poppler/StructTreeRoot.cc            | 1 +
 qt5/tests/check_signature_basics.cpp | 2 +-
 splash/SplashBitmap.cc               | 1 +
 splash/SplashTypes.h                 | 1 +
 utils/pdfsig.cc                      | 2 +-
 utils/pdftocairo-win32.cc            | 1 +
 utils/pdftoppm.cc                    | 1 +
 utils/pdftops.cc                     | 1 +
 utils/pdftotext.cc                   | 1 +
 16 files changed, 16 insertions(+), 5 deletions(-)

commit 358411b04fbf868b37add3f73e089ddb0684f57f
Author: Lucas Baudin <lucas.baudin@ensae.fr>
Date:   Fri Jan 17 20:46:55 2025 +0100

    Add an attribute to the AnnotInk class to make annotation drawn
    "below", i.e. with a multiply blend mode.

    This may be used for highlighting.
    Also add the necessary GLib binding.

 glib/demo/annots.c    |  9 ++++++++-
 glib/poppler-annot.cc | 31 +++++++++++++++++++++++++++++++
 glib/poppler-annot.h  |  4 ++++
 poppler/Annot.cc      | 51
 +++++++++++++++++++++++++++++++++++++++++++++++----
 poppler/Annot.h       |  3 +++
 5 files changed, 93 insertions(+), 5 deletions(-)

commit de44e3476fa8b8b0943cd162980c174793b12537
Author: Lucas Baudin <lucas.baudin@ensae.fr>
Date:   Fri Jan 17 20:46:55 2025 +0100

    Refactor AnnotInk to generate appearance when the ink list is set
    and not only for drawing.

    This is useful when a file is saved and the annotation has not been
    drawn yet.

 poppler/Annot.cc | 81
 ++++++++++++++++++++++++++++++++------------------------
 poppler/Annot.h  |  1 +
 2 files changed, 47 insertions(+), 35 deletions(-)

commit 62747813b3f45dc7678652147418a4dec0aaaa5f
Author: Zsombor Hollay-Horvath <hollay.horvath@gmail.com>
Date:   Tue Sep 30 17:01:45 2025 +0200

    CPP API: fix for bad embedded file name

    Changes on the `embedded_file` type:
    - new `unicodeName()` method
    - deprecate old `name()` method

 cpp/poppler-embedded-file.cpp | 10 ++++++++++
 cpp/poppler-embedded-file.h   |  4 +++-
 cpp/tests/poppler-dump.cpp    |  4 ++--
 3 files changed, 15 insertions(+), 3 deletions(-)

commit 4ce27cc826bf90cc8dbbd8a8c87bd913cccd7ec0
Author: Kevin Backhouse <kevinbackhouse@github.com>
Date:   Wed Sep 3 14:36:54 2025 +0100

    Check for duplicate entries

 poppler/StructTreeRoot.cc | 4 ++++
 1 file changed, 4 insertions(+)

commit 3b605b9fb8aba26b2c9c6fe5973dd8c5c69705a9
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Jun 8 16:47:31 2023 +0200

    Don't embed substitutions for base14 fonts

    If one asks for a base14 font, but receives some kind of substitution
    (e.g. Arial for Helvetica), don't actually embed it, but just
    reference
    it instead.

    This helps us finding especially base14 fonts if asked to be used for
    annotations

 poppler/Form.cc            | 20 +++++++++++++-------
 poppler/Form.h             |  3 ++-
 poppler/GfxFont.cc         | 12 ++++++++++++
 poppler/GfxFont.h          |  2 ++
 poppler/GlobalParams.cc    |  4 +++-
 poppler/GlobalParams.h     |  3 ++-
 poppler/GlobalParamsWin.cc | 17 ++++++++++++++++-
 7 files changed, 50 insertions(+), 11 deletions(-)

commit 67b659881837d39dc6b63a6a4c8a81a3771cbce4
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Sep 17 15:57:01 2025 +0200

    Revert "FormWidgetSignature::signDocumentWithAppearance: add imagePath
    parameter"

    It in general mostly triggered bugs downstream and didn't fix
    anything.

    For certain signature patterns from at least Okular, where replacing
    the
    background on signing previously created signatures was not expected.

    See for example KDE bug 508518

    This reverts commit 61e4f56ea85f6c094eddf7df56cc6eb2d688d7f4.

 poppler/Form.cc         | 14 +-------------
 poppler/Form.h          |  2 +-
 qt5/src/poppler-form.cc |  3 +--
 qt6/src/poppler-form.cc |  3 +--
 utils/pdfsig.cc         |  3 +--
 5 files changed, 5 insertions(+), 20 deletions(-)

commit d3c7a0e3075b7f9ad28aad54e30829eac0dc458f
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Fri Sep 26 16:29:00 2025 +0200

    Add and restructure unit test

