commit 7b620e866b6729ceffb5ecb0298e9acc968e1c1f
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Mar 3 23:03:20 2025 +0100

    poppler 25.03.0

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

commit 828d139b4830eaa97447fefb40a943f0b761c045
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Mar 3 00:26:26 2025 +0100

    Update (C)

 poppler/Page.cc         | 2 +-
 utils/ImageOutputDev.cc | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit b91ce32ba7d3afbfc1ead01baabb21260829c358
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 2 11:58:59 2025 +0100

    Set aOidData.oid.type

    Otherwise later
    aAttribute.type = aOidData.oid;
    ends up being a copy of unused memory

    siBuffer is what the old code removed in
    84f5268256b40d40f12fa2290845b607d7895529 used

    Also remove an
       aOidData.oid.data = nullptr;
    that does nothing since it gets overwritten 2 lines later

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

commit e78f4c937e1e94912b8b175a8e8e8ff2ef52ace3
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 2 11:41:27 2025 +0100

    Fix memory leaks introduced in the str->reset commit

 poppler/PSOutputDev.cc  |  9 ++++-----
 poppler/Page.cc         |  4 ++--
 utils/ImageOutputDev.cc | 16 ++++++++--------
 3 files changed, 14 insertions(+), 15 deletions(-)

commit 70b80793218e0ce0c029ea245832f1843accb7a6
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 27 19:32:40 2025 +0100

    Update (C)

 qt6/tests/check_signature_basics.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a45449bedbc74e4f0f0998fd23e636ce331f858c
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Feb 27 14:21:04 2025 +0100

    fix pgp test with no signature backends

 qt6/tests/check_signature_basics.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit bb58c2ee2bc560d7e5bf65a2d840192278cb354f
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Feb 27 12:36:58 2025 +0100

    Fix windows; include array

 poppler/GPGMECryptoSignBackend.cc | 1 +
 1 file changed, 1 insertion(+)

commit d3b96a62acd388ffe45dff65e517cd5726c147ba
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Feb 13 20:06:27 2025 +0100

    Add unit test

 qt6/tests/CMakeLists.txt             |   3 +
 qt6/tests/check_signature_basics.cpp | 144
 +++++++++++++++++++++++++++++++++++
 2 files changed, 147 insertions(+)

commit f0316ba62df9ce6d8e17a9349934b4a06df87e69
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Mon Dec 2 16:36:20 2024 +0100

    Put a pgp signature in a pdf file

    Allow putting a pgp signature in a pdf file.
    This is not fully documented inside the specification, but basically
    it
    is replacing the CMS bundle as described with a pgp bundle.

    These signatures are tagged in the g10c namespace
    (https://github.com/adobe/pdf-names-list/issues/45) and is only
    implemented in the GPGME backend as a 'whatever gpg understands'.

    A special difference is that the signature is not padded with zeroes,
    but with a gpg comment packet with the exact size to fill the void.

 CMakeLists.txt                    |   2 +
 config.h.cmake                    |   3 +
 poppler/CertificateInfo.cc        |  10 +++
 poppler/CertificateInfo.h         |  11 ++-
 poppler/CryptoSignBackend.cc      |   4 +
 poppler/CryptoSignBackend.h       |   1 +
 poppler/Form.cc                   | 106 ++++++++++++++-----------
 poppler/GPGMECryptoSignBackend.cc | 159
 +++++++++++++++++++++++++++++---------
 poppler/GPGMECryptoSignBackend.h  |  17 +++-
 poppler/NSSCryptoSignBackend.cc   |   1 +
 qt5/src/poppler-form.cc           |  43 +++++++++++
 qt5/src/poppler-form.h            |  38 ++++++++-
 qt6/src/poppler-form.cc           |  44 +++++++++++
 qt6/src/poppler-form.h            |  38 ++++++++-
 utils/pdfsig.cc                   |   3 +
 15 files changed, 391 insertions(+), 89 deletions(-)

commit 287cd3aa9423ba2a038462f309d10093a8fbccbd
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Feb 27 11:21:29 2025 +0100

    Fix windows run

 poppler/PDFDoc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9ce35a2cd89489d91c2d754c2c67d837f44875c7
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Feb 26 22:07:39 2025 +0100

    Update (C)

 glib/poppler-annot.cc             | 1 +
 glib/poppler-annot.h              | 1 +
 glib/poppler-structure-element.cc | 1 +
 poppler/CharCodeToUnicode.cc      | 2 +-
 poppler/CryptoSignBackend.h       | 2 +-
 poppler/DCTStream.h               | 2 +-
 poppler/GPGMECryptoSignBackend.cc | 2 +-
 poppler/JPEG2000Stream.cc         | 1 +
 poppler/JSInfo.cc                 | 2 +-
 poppler/JSInfo.h                  | 1 +
 poppler/MarkedContentOutputDev.cc | 1 +
 poppler/MarkedContentOutputDev.h  | 1 +
 poppler/PDFDoc.cc                 | 2 +-
 poppler/StructElement.cc          | 1 +
 poppler/StructElement.h           | 1 +
 qt6/src/poppler-annotation.h      | 2 +-
 qt6/src/poppler-form.h            | 2 +-
 17 files changed, 17 insertions(+), 8 deletions(-)

commit 84f5268256b40d40f12fa2290845b607d7895529
Author: Juraj Šarinay <juraj@sarinay.com>
Date:   Tue Jan 21 08:58:22 2025 +0100

    Remove my_SEC_StringToOID(), replace the string by an OID.

    The function was only ever called on string representation
    of id-aa-signingCertificateV2. Simplify the code by using
    the corresponding OID directly and remove the function.

 poppler/NSSCryptoSignBackend.cc | 131
 +++++++++-------------------------------
 1 file changed, 28 insertions(+), 103 deletions(-)

commit 08c2f603c2f5758a929862b7da8a1105ee5d591b
Author: Markus Göllnitz <camelcasenick@bewares.it>
Date:   Mon Feb 24 06:24:30 2025 +0100

    glib: check file attachment annotation for this class before casting

    The check was correct, but not sufficient and could lead
    to segmentation violations.

    Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>

 glib/poppler-annot.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dac9e5254fbc24cdaefcaca734ef07bd2eaf8e62
Author: Markus Göllnitz <camelcasenick@bewares.it>
Date:   Mon Feb 24 06:21:51 2025 +0100

    glib: subclass stamp as markup

    AnnotStamp already sublasses AnnotMarkup in
    poppler/Annot.cc, but this was never exposed to GLib.

    Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>

 glib/poppler-annot.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit cc2897f016e269956ba0b7e2f50971d5cdefdd03
Author: Juraj Šarinay <juraj@sarinay.com>
Date:   Mon Feb 17 00:05:44 2025 +0100

    Do not embed unnecessary fonts if signature appearance string
    is empty.

 poppler/Form.cc   | 45 ++++++++++++++++++++++++---------------------
 poppler/PDFDoc.cc | 25 ++++++++++++++-----------
 2 files changed, 38 insertions(+), 32 deletions(-)

commit ccef623296cf491dea5effc8242053846d5acbcc
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Feb 20 11:01:58 2025 +0100

    Less goostring pointers

    Stream formats can be std::string, and a few other pointers aren't
    needed

 poppler/Annot.cc          | 21 +++++---------
 poppler/Annot.h           |  2 +-
 poppler/CairoOutputDev.cc | 13 ++++-----
 poppler/DCTStream.cc      | 10 +++----
 poppler/DCTStream.h       |  2 +-
 poppler/FlateEncoder.h    |  2 +-
 poppler/Form.cc           | 10 ++-----
 poppler/Form.h            |  2 +-
 poppler/JBIG2Stream.cc    |  4 +--
 poppler/JBIG2Stream.h     |  2 +-
 poppler/JPEG2000Stream.cc |  4 +--
 poppler/JPEG2000Stream.h  |  2 +-
 poppler/JPXStream.cc      |  4 +--
 poppler/JPXStream.h       |  2 +-
 poppler/Object.h          |  5 ++--
 poppler/PDFDoc.cc         | 23 +++++----------
 poppler/PDFDoc.h          |  4 +--
 poppler/PSOutputDev.cc    | 25 +++++++---------
 poppler/Stream.cc         | 74
 +++++++++++++++++++++++------------------------
 poppler/Stream.h          | 37 ++++++++++++------------
 poppler/StructElement.cc  | 15 ++++------
 poppler/StructElement.h   |  5 ++--
 utils/pdfinfo.cc          |  4 +--
 23 files changed, 119 insertions(+), 153 deletions(-)

commit feedc7bb40905b0e4aced1b9fea984e126db370e
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Tue Feb 11 10:52:17 2025 +0100

    Signature-GPGME: more correct validation handling

    Previously the code used the slightly higher-level api that tried to
    combine signature and certificate validation into one.

    Given poppler have the certificate validation as a different step, use
    just the signature valditaion api for signature validation api.

 poppler/GPGMECryptoSignBackend.cc | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

commit 0f8a128fd3f3ae5400e78cd714ced04ddb090637
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Feb 19 14:58:38 2025 +0100

    Less manual new/delete of GooString

     * Replace a few with std::string
     * Microoptimization: fewer string compares
     * Replace manual refcount with shared_ptr
     * Do a couple of std::string_view

 glib/poppler-structure-element.cc |  2 +-
 poppler/Catalog.cc                | 15 +++++------
 poppler/Catalog.h                 |  2 +-
 poppler/CharCodeToUnicode.cc      |  8 +++---
 poppler/JSInfo.cc                 | 16 +++++-------
 poppler/JSInfo.h                  |  2 +-
 poppler/MarkedContentOutputDev.cc | 11 +++-----
 poppler/MarkedContentOutputDev.h  | 39 ++++++++--------------------
 poppler/PDFDoc.cc                 | 54
 ++++++++++++++++++++++++---------------
 poppler/UTF.cc                    |  9 +++----
 poppler/UTF.h                     |  8 +++---
 qt5/src/poppler-document.cc       |  5 ++--
 qt6/src/poppler-document.cc       |  5 ++--
 13 files changed, 80 insertions(+), 96 deletions(-)

commit 8f465fea3778e233eb11d1ac22e56cbe5ac722a1
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Feb 12 14:46:48 2025 +0100

    Signing: Improve error handling on bad passphrase

 poppler/CryptoSignBackend.h       | 1 +
 poppler/GPGMECryptoSignBackend.cc | 6 ++++++
 qt6/src/poppler-annotation.cc     | 2 ++
 qt6/src/poppler-annotation.h      | 1 +
 qt6/src/poppler-form.cc           | 2 ++
 qt6/src/poppler-form.h            | 4 ++++
 6 files changed, 16 insertions(+)

commit 7d1b09326e4994d0382153d09c448a9df62e24ae
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Feb 19 22:52:10 2025 +0100

    Update (C)

 glib/poppler-form-field.cc | 1 +
 poppler/Catalog.cc         | 1 +
 2 files changed, 2 insertions(+)

commit 8ffae6f9720fe11ff646461677ce4b532dfd3b2a
Author: Aaron Nguyen <aaron.nguyen@veeva.com>
Date:   Wed Feb 19 20:59:22 2025 +0000

    Handle bad catalog dictionaries where Pages points to its child

    This should take care of edge cases like Issue #1559 where we get
    errors like `Syntax Error: Kids object (page 1) is wrong type (null)`
    in scenarios where there are incorrect Pages value in its catalog
    dictionary. In the case of `badcatalogpages.pdf` in Issue #1559, the
    Pages value `/Pages 14 0 R` actually points to its Kid, which is a
    Page value. Here is the PDF content stream for `badcatalogpages.pdf`:

    ```
    12 0 obj
    <</Lang(en)/MarkInfo<</Marked true>>/Metadata 9 0 R/Pages 14
    0 R/StructTreeRoot 3 0 R/Type/Catalog/ViewerPreferences 13 0
    R/OutputIntents[1 0 R]/Version/1.7>>
    endobj

    ...

    14 0 obj
    <</Contents 32 0 R/CropBox[0 0 612 792]/MediaBox[0 0 612
    792]/Parent 31 0 R/Resources<</ExtGState 28 0 R/Font 15 0
    R/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Rotate 0/StructParents
    0/Tabs/S/Type/Page/Annots[]>>
    endobj

    ...

    31 0 obj
    <</Count 1/Kids[14 0 R]/Type/Pages>>
    endobj
    ```

 poppler/Catalog.cc | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 384e21b00feab92a176dc022d052f1609004ccc0
Author: Jan-Michael Brummer <jan-michael.brummer1@volkswagen.de>
Date:   Wed Feb 12 20:55:18 2025 +0100

    glib: Fix default signature colors

    The newly introduced color conversion function expects 16bit,
    not 8bit.
    Adjust default colors accordingly.

    Fixes: https://gitlab.freedesktop.org/poppler/poppler/-/issues/1564

 glib/poppler-form-field.cc | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 5c50cbabe9c79f7958e1daf8a5e99989f751d7b0
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Feb 19 17:52:23 2025 +0100

    Update (C)

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

commit 01a1f7da81f0eb54a3266c5e69ad97e80fa13bbf
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Thu Feb 6 15:03:27 2025 +0100

    Add Page::getPageObj() getter

    The GDAL PDF driver
    (https://github.com/OSGeo/gdal/tree/master/frmts/pdf) needs low level
    access to PDF objects. In particular it needs to access the Object
    Page::pageObj private member. To workaround that, GDAL uses nasty
    '#define private public' hacks, which beyond being ugly, occasionaly
    cause practical build issues such as
    https://github.com/OSGeo/gdal/issues/11477

    Having a clean getter makes things much easier.

    If this change is adopted, the following cleanup will be possible:
    https://github.com/rouault/gdal/commit/3594ee6e0ad6f4f806299e3b4c67cb7eb3a1853d

 poppler/Page.h | 3 +++
 1 file changed, 3 insertions(+)

commit 4d9e40e643622abc30e75a9efae9492a8727d5d5
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Feb 5 15:26:52 2025 +0100

    Update (C)

 cpp/poppler-embedded-file.cpp     | 1 +
 cpp/poppler-font-private.h        | 2 +-
 glib/poppler-annot.cc             | 1 +
 glib/poppler-attachment.cc        | 1 +
 glib/poppler-media.cc             | 1 +
 glib/poppler-structure-element.cc | 2 +-
 poppler/CIDFontsWidthsBuilder.h   | 2 +-
 poppler/CMap.cc                   | 1 +
 poppler/CairoFontEngine.cc        | 2 +-
 poppler/CairoOutputDev.cc         | 1 +
 poppler/DCTStream.cc              | 1 +
 poppler/DCTStream.h               | 1 +
 poppler/Decrypt.cc                | 1 +
 poppler/Decrypt.h                 | 1 +
 poppler/FlateEncoder.cc           | 1 +
 poppler/FlateEncoder.h            | 1 +
 poppler/FlateStream.h             | 1 +
 poppler/FontInfo.cc               | 2 +-
 poppler/Function.cc               | 1 +
 poppler/Gfx.cc                    | 2 +-
 poppler/GfxState.cc               | 1 +
 poppler/Hints.cc                  | 1 +
 poppler/JBIG2Stream.cc            | 1 +
 poppler/JBIG2Stream.h             | 1 +
 poppler/JPEG2000Stream.h          | 1 +
 poppler/JPXStream.cc              | 2 +-
 poppler/JPXStream.h               | 1 +
 poppler/Lexer.cc                  | 2 +-
 poppler/Linearization.cc          | 1 +
 poppler/OutputDev.cc              | 1 +
 poppler/PreScanOutputDev.cc       | 1 +
 poppler/Rendition.cc              | 1 +
 poppler/Stream.cc                 | 2 +-
 poppler/Stream.h                  | 2 +-
 poppler/TextOutputDev.cc          | 4 ++--
 poppler/TextOutputDev.h           | 2 +-
 poppler/XRef.cc                   | 2 +-
 qt5/src/poppler-embeddedfile.cc   | 2 +-
 qt5/src/poppler-media.cc          | 1 +
 qt5/src/poppler-private.h         | 2 +-
 qt5/src/poppler-sound.cc          | 1 +
 qt6/src/poppler-embeddedfile.cc   | 2 +-
 qt6/src/poppler-media.cc          | 1 +
 qt6/src/poppler-private.h         | 2 +-
 qt6/src/poppler-sound.cc          | 1 +
 test/pdf-fullrewrite.cc           | 1 +
 utils/HtmlOutputDev.cc            | 2 +-
 utils/ImageOutputDev.cc           | 1 +
 utils/pdffonts.cc                 | 2 +-
 49 files changed, 50 insertions(+), 20 deletions(-)

commit 032d035220702523cf10d924fd436c9e6c83d24c
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Feb 5 08:01:50 2025 +0000

    Enforce error checking on stream::reset

 cpp/poppler-embedded-file.cpp   |   4 +-
 glib/poppler-attachment.cc      |   4 +-
 glib/poppler-media.cc           |   4 +-
 poppler/CMap.cc                 |   5 +-
 poppler/CairoOutputDev.cc       | 108 ++++++++++++++++-------------
 poppler/DCTStream.cc            |   4 +-
 poppler/DCTStream.h             |   2 +-
 poppler/Decrypt.cc              |   8 +--
 poppler/Decrypt.h               |   6 +-
 poppler/FileSpec.cc             |   4 +-
 poppler/FlateEncoder.cc         |   4 +-
 poppler/FlateEncoder.h          |   2 +-
 poppler/FlateStream.h           |   2 +-
 poppler/Function.cc             |  10 ++-
 poppler/Gfx.cc                  |   8 ++-
 poppler/GfxFont.cc              |   6 +-
 poppler/GfxState.cc             |   5 +-
 poppler/Hints.cc                |  31 ++++++---
 poppler/JBIG2Stream.cc          |   7 +-
 poppler/JBIG2Stream.h           |   2 +-
 poppler/JPEG2000Stream.h        |   2 +-
 poppler/JPXStream.cc            |   5 +-
 poppler/JPXStream.h             |   2 +-
 poppler/Lexer.cc                |   8 ++-
 poppler/Linearization.cc        |   2 +-
 poppler/Object.h                |   2 +-
 poppler/OutputDev.cc            |   8 ++-
 poppler/PDFDoc.cc               |  51 +++++++++-----
 poppler/PSOutputDev.cc          | 148
 +++++++++++++++++++++++-----------------
 poppler/Page.cc                 |  22 +++---
 poppler/Parser.cc               |   4 +-
 poppler/PreScanOutputDev.cc     |   8 ++-
 poppler/Rendition.cc            |   4 +-
 poppler/SplashOutputDev.cc      | 139
 +++++++++++++++++++------------------
 poppler/Stream.cc               | 111 ++++++++++++++----------------
 poppler/Stream.h                |  89 ++++++++++++------------
 poppler/XRef.cc                 |  13 +++-
 qt5/src/QPainterOutputDev.cc    |  18 +++--
 qt5/src/poppler-document.cc     |   3 +-
 qt5/src/poppler-embeddedfile.cc |   4 +-
 qt5/src/poppler-media.cc        |   5 +-
 qt5/src/poppler-sound.cc        |   4 +-
 qt6/src/QPainterOutputDev.cc    |  18 +++--
 qt6/src/poppler-document.cc     |   3 +-
 qt6/src/poppler-embeddedfile.cc |   4 +-
 qt6/src/poppler-media.cc        |   5 +-
 qt6/src/poppler-sound.cc        |   4 +-
 test/pdf-fullrewrite.cc         |   4 +-
 utils/HtmlOutputDev.cc          |  50 +++++++-------
 utils/ImageOutputDev.cc         |  43 ++++++++----
 50 files changed, 575 insertions(+), 434 deletions(-)

commit 876db3bde971d556ba38ba30dc362b674010cd61
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sat Dec 14 18:17:48 2024 +0100

    [TextOutputDev] Replace some gmallocn with vector

    Instead of manually tracking the size of the temporary array just use
    a std::vector and push_back.

    Move the various iteration counters and variables from function scope
    to the appropriate loop scope.

 poppler/TextOutputDev.cc | 173
 +++++++++++++++++++----------------------------
 1 file changed, 69 insertions(+), 104 deletions(-)

commit 7ff20227548af4e3d443b9b33f4c80558adea371
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Fri Dec 13 14:24:48 2024 +0100

    [TextOutputDev] Use std::sort instead of qsort, minor cleanup/fixes

    Replacing qsort with std::sort is fairly trivial, but gives some extra
    type safety and possibly some speedup due to inlining.

    The stricter type checks require to change the argument types of e.g.
    TextLineFrag::cmp* methods, but also gets rid of the type cast
    (to non-const! TextLineFrag*), likewise for the other classes.

    The return type change may see deliberate, but is necessary as both
    +1 and -1 are evaluated as true, and std::sort requires a compare
    function which returns bool. Note, the order is indeterminate in case
    both elements are compared as same, but this happens with both
    std::sort and qsort (man qsort: "If two members compare as equal,
    their order in the sorted array is undefined.").

    There are some included changes which are less obvious:

    - std::sort(nullptr, nullptr + 0, ...) is safe (no dereference),
    remove
      the extra nullptr check (`if (blocks)`).
    - No need for the immediate `wordArray` in TextWordList, just sort the
      std::vector<TextWord *> words.
    - TextBlock::cmpYXPrimaryRot is unused, remove it.

 poppler/TextOutputDev.cc | 223
 ++++++++++++++++++-----------------------------
 poppler/TextOutputDev.h  |   8 +-
 2 files changed, 87 insertions(+), 144 deletions(-)

commit b9b186de76598da68d40ad2c8806e8ae08db29ae
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Fri Mar 29 20:18:45 2024 +0100

    Simplify last line handling for TextPage::dump

    `!(i < nFrags - 1)` is the same as `i == nFrags -1` (as `i <
    nFrags` is
    a precondition), i.e. the second check is repetitive - just output
    the EOL once for the last line.

 poppler/TextOutputDev.cc | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

commit 81448f1c7b3d9dccac5305e18d61b5102657f049
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Dec 7 12:51:34 2024 +0100

    CI: Enable bugprone-unchecked-optional-access

 .clang-tidy                       |  2 +-
 cpp/poppler-font-private.h        | 10 ++++++----
 glib/poppler-annot.cc             |  7 +++++--
 glib/poppler-structure-element.cc | 11 +++++++----
 poppler/CIDFontsWidthsBuilder.h   |  4 ++++
 poppler/CairoFontEngine.cc        |  3 ++-
 poppler/FontInfo.cc               |  2 +-
 poppler/Gfx.cc                    |  3 ++-
 poppler/PSOutputDev.cc            | 20 ++++++++++++--------
 poppler/TextOutputDev.cc          | 11 ++++++++++-
 qt5/src/poppler-private.h         | 15 +++++++++------
 qt6/src/poppler-private.h         | 15 +++++++++------
 utils/pdffonts.cc                 | 16 ++++++++++------
 13 files changed, 78 insertions(+), 41 deletions(-)

commit b3e68b8d3c1e92007dfcc129dadadf91fc3ad7bd
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Mar 2 09:05:10 2023 +0100

    Fix compiler warning

    The compiler claims that x2 and y2 might be unitialized.
    The compiler might be wrong, but let's just initialize anyways.

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

commit 19c4009521f0015989691528c71327924d3ca5cf
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Feb 3 23:13:48 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 71fea5bed8a4c047c2063245ba1c5560b071ee25
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Feb 3 23:00:08 2025 +0100

    poppler 25.02.0

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

commit 87dd278d6ea9bae062bafd5a4d456bffba15a2b3
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Feb 4 00:55:53 2025 +0100

    Fix build on MSVC

 utils/Win32Console.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 54a0c7c742f3a9bc9ca9409a0c5f61fa46ed5c5a
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Jan 26 10:58:58 2025 +0100

    Update (C)

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

commit 04654ecd3cf903fbb9524d02c443ca5ffb51a1a1
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Tue Jan 21 00:36:15 2025 +0000

    cairo: fix issue for images reaching MAX_CAIRO_IMAGE_SIZE

    Fix CairoOutputDev::drawSoftMaskedImage() to not
    fail when an image height is >= MAX_CAIRO_IMAGE_SIZE,
    instead we clamp the height to what Cairo can handle.

    Fixes #991

 poppler/CairoOutputDev.cc | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 08091e099ed991d191922a3508cf5faf2e9fe60b
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Jan 20 23:55:48 2025 +0100

    Update (C)

 poppler/PDFDocEncoding.h | 1 +
 utils/pdfinfo.cc         | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 7a6973860d07061b0d22ed0d8d3b114430c4555e
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Mon Jan 20 09:48:58 2025 +0100

    cleanup pdfDocEncodingToUtf16 and add some consts

 glib/poppler-form-field.cc |  4 +--
 poppler/Form.cc            | 73
 ++++++++++++++++++----------------------------
 poppler/Form.h             |  6 ++--
 poppler/PDFDocEncoding.h   |  2 +-
 qt5/src/poppler-form.cc    |  2 +-
 qt5/src/poppler-private.cc |  6 ++--
 qt6/src/poppler-form.cc    |  2 +-
 qt6/src/poppler-private.cc |  6 ++--
 8 files changed, 40 insertions(+), 61 deletions(-)

commit 010ca8926562cc49ece8b307a52f5e2bba3cef7e
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Mon Jan 20 14:25:59 2025 +0100

    Clean up utf8ToUcs4 function

 poppler/UTF.cc   | 43 +++++++++----------------------------------
 poppler/UTF.h    |  6 +-----
 utils/pdfinfo.cc | 15 ++++++---------
 3 files changed, 16 insertions(+), 48 deletions(-)

commit fa78c71bc2fa823183f7d5b45a5cccab002d3813
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Jan 20 00:01:03 2025 +0100

    Update (C)

 poppler/Catalog.h                    | 2 +-
 poppler/CurlPDFDocBuilder.cc         | 1 +
 poppler/CurlPDFDocBuilder.h          | 1 +
 poppler/FDPDFDocBuilder.cc           | 1 +
 poppler/FDPDFDocBuilder.h            | 1 +
 poppler/FileSpec.h                   | 2 +-
 poppler/Gfx.cc                       | 1 +
 poppler/LocalPDFDocBuilder.cc        | 1 +
 poppler/LocalPDFDocBuilder.h         | 1 +
 poppler/OptionalContent.cc           | 1 +
 poppler/OptionalContent.h            | 1 +
 poppler/PDFDocBuilder.h              | 1 +
 poppler/PDFDocFactory.cc             | 1 +
 poppler/PDFDocFactory.h              | 1 +
 poppler/Page.cc                      | 2 +-
 poppler/Page.h                       | 2 +-
 qt5/src/poppler-optcontent-private.h | 1 +
 qt5/src/poppler-optcontent.cc        | 1 +
 qt5/src/poppler-optcontent.h         | 1 +
 qt6/src/poppler-optcontent-private.h | 1 +
 qt6/src/poppler-optcontent.cc        | 1 +
 qt6/src/poppler-optcontent.h         | 1 +
 22 files changed, 22 insertions(+), 4 deletions(-)

commit b20b6ab69b418431b277cb5571010af809298fc4
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Jan 19 23:48:09 2025 +0100

    Update (C)

 poppler/GlobalParams.cc         | 2 +-
 poppler/GlobalParams.h          | 2 +-
 poppler/GlobalParamsWin.cc      | 1 +
 poppler/NSSCryptoSignBackend.cc | 2 +-
 poppler/UTF.cc                  | 2 +-
 poppler/UTF.h                   | 2 +-
 utils/Win32Console.cc           | 1 +
 7 files changed, 7 insertions(+), 5 deletions(-)

commit b50390f748b59cb0a64b912636ecf6527bd0d12a
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Jan 15 16:59:04 2025 +0100

    Remove gdir, we have std::filesystem

 goo/gdir.h                      |  96
 -------------------------------------
 goo/gfile.cc                    | 104
 ----------------------------------------
 poppler/GlobalParams.cc         |  74 +++++++++++-----------------
 poppler/GlobalParams.h          |  15 +++---
 poppler/GlobalParamsWin.cc      |   2 +-
 poppler/NSSCryptoSignBackend.cc |  11 ++---
 6 files changed, 41 insertions(+), 261 deletions(-)

commit 7d9b708cb7dc735e332570a67185a295174a2d78
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Jan 16 11:35:50 2025 +0100

    Simplify to utf16 conversions

 poppler/PDFDoc.cc                  |  4 +--
 poppler/UTF.cc                     | 71
 ++++++++++++--------------------------
 poppler/UTF.h                      | 15 +++-----
 qt5/tests/check_utf_conversion.cpp | 39 +++++----------------
 qt6/tests/check_utf_conversion.cpp | 39 +++++----------------
 utils/Win32Console.cc              |  6 ++--
 6 files changed, 46 insertions(+), 128 deletions(-)

commit 0d7c1e697358fd736bfb6051afaa9cb20691b8ae
Author: Lucas Baudin <xapantu@gmail.com>
Date:   Fri Jan 17 14:33:13 2025 +0100

    glib: fix a crash when getting a font description for a free text
    annotation if it was not set

    The font description of a free text annotation may be null, so this
    must be taken care of in the get_font_desc function.

 glib/poppler-annot.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 74a33aed2b437817b4b1d63ed2bb77bf46e741af
Author: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Date:   Fri Dec 13 01:17:21 2024 +0100

    glib: tests: rename macro to more clearly specify its used

 glib/tests/CMakeLists.txt | 50
 +++++++++++++++++++++++------------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

commit 6b5084e3e73a2b84459c4e79d99138138fa6df8b
Author: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Date:   Fri Dec 13 01:03:03 2024 +0100

    glib: demo: add example on how to disable rendering highlight annots

 glib/demo/render.c | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

commit 622c3a7b94bc39a0eb28e9347510f0e0a9d03616
Author: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Date:   Fri Dec 13 00:53:38 2024 +0100

    glib: demo: stop using deprecated functions

 glib/demo/print.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 0b25f6ccbe426d4c32b643ffa90ad2b950b4ac6e
Author: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Date:   Thu Oct 10 17:11:46 2024 +0200

    glib: add new api to allow selecting annotations to render

    This allows consumers to redraw some annotations as desired. In the
    process, deprecate the render_printing_with_options, since it becomes
    obsolete.

 glib/poppler-page.cc                | 87
 ++++++++++++++++++-----------------
 glib/poppler-page.h                 |  6 ++-
 glib/poppler.h                      | 90
 ++++++++++++++++++++++++++++++++++++-
 glib/reference/poppler-sections.txt |  1 +
 4 files changed, 141 insertions(+), 43 deletions(-)

commit 69469de7ad8d72bf2b23d96a95394a45bc8ca2ea
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Jan 15 13:28:43 2025 +0100

    Fewer goostring pointers

    Also more const functions and pointers

 glib/poppler-document.cc             | 14 ++++++--------
 poppler/Annot.cc                     |  2 +-
 poppler/Catalog.cc                   |  6 ++----
 poppler/Catalog.h                    |  4 ++--
 poppler/FileSpec.cc                  | 27 +++++++++------------------
 poppler/FileSpec.h                   | 18 +++++++++---------
 poppler/Gfx.cc                       |  2 +-
 poppler/OptionalContent.cc           | 36
 +++++++++++++-----------------------
 poppler/OptionalContent.h            | 24 +++++++++++-------------
 poppler/PDFDoc.h                     |  2 +-
 qt5/src/poppler-optcontent-private.h |  6 +++---
 qt5/src/poppler-optcontent.cc        |  8 ++++----
 qt5/src/poppler-optcontent.h         |  2 +-
 qt5/tests/check_optcontent.cpp       |  4 ++--
 qt6/src/poppler-optcontent-private.h |  6 +++---
 qt6/src/poppler-optcontent.cc        |  8 ++++----
 qt6/src/poppler-optcontent.h         |  2 +-
 qt6/tests/check_optcontent.cpp       |  4 ++--
 18 files changed, 75 insertions(+), 100 deletions(-)

commit ac53e421182487f1b016398556a1d7ddc9b0a77f
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Jan 15 14:05:03 2025 +0100

    More unique pointers and vectors

    PageAttr and PageCache and related helpers

 poppler/Catalog.cc | 22 ++++++----------------
 poppler/Catalog.h  |  2 +-
 poppler/PDFDoc.cc  | 21 +++++----------------
 poppler/PDFDoc.h   |  6 +++---
 poppler/Page.cc    |  6 ++----
 poppler/Page.h     |  6 +++---
 6 files changed, 20 insertions(+), 43 deletions(-)

commit 2ed82df7fbd398410a5a42005958aa70699d6b4c
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Jan 15 16:57:52 2025 +0100

    Simplify utf8toutf16 functions

 poppler/UTF.cc                     | 54
 +++++++++++---------------------------
 poppler/UTF.h                      | 10 ++-----
 qt5/tests/check_utf_conversion.cpp | 15 ++++-------
 qt6/tests/check_utf_conversion.cpp | 15 ++++-------
 utils/Win32Console.cc              |  5 ++--
 5 files changed, 30 insertions(+), 69 deletions(-)

commit 5a3689a023718647257b4c32542b06bea4ea6872
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Jan 15 14:20:25 2025 +0100

    remove guiData

    No one seems to be using it; always hardcoded as nullptr.

 poppler/CurlPDFDocBuilder.cc  |  4 ++--
 poppler/CurlPDFDocBuilder.h   |  2 +-
 poppler/FDPDFDocBuilder.cc    |  2 +-
 poppler/FDPDFDocBuilder.h     |  2 +-
 poppler/LocalPDFDocBuilder.cc |  6 +++---
 poppler/LocalPDFDocBuilder.h  |  2 +-
 poppler/PDFDoc.cc             |  7 +++----
 poppler/PDFDoc.h              | 11 +++--------
 poppler/PDFDocBuilder.h       |  3 +--
 poppler/PDFDocFactory.cc      |  4 ++--
 poppler/PDFDocFactory.h       |  3 +--
 qt5/src/poppler-private.h     |  8 ++++----
 qt6/src/poppler-private.h     |  8 ++++----
 13 files changed, 27 insertions(+), 35 deletions(-)

commit 50dd001dba665c9fa08316c26e28c2b906eec78a
Author: Ismael Asensio <isma.af@gmail.com>
Date:   Mon Jan 13 23:50:46 2025 +0100

    utils/po: Create temporary .pot.new file in build dir

    This command creates a `.pot.new` temporary file to check for changes
    in translation strings, and avoid modifying the source ".pot" file on
    trivial date changes.

    Create the temporary file in the build dir, instead of the source dir

 utils/po/CMakeLists.txt | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit eac3e60144d63581fe71be405a4de64af75a8563
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Sat Apr 6 21:50:24 2024 +0100

    avoid _render_type3_glyph() stopping subsequent rendering

    When _render_type3_glyph() fails it returns
    CAIRO_STATUS_USER_FONT_ERROR
    causing the cairo surface to be set in error state
    and this is never cleared.

    This prevents further rendering of subsequent content,
    while other PDF applications are able to handle this
    error condition more gracefully, omitting only the
    character or at most the font, with the remainder
    of the document showing up fine.

    So let's do the same and change the returned error
    into a logging message but return success from
    _render_type3_glyph()

    Also included is a fix for a pdftocairo bug:
    If a character isn't in /CharProcs at all, then pdftocairo
    displays it as the first /CharProcs entry (because
    CairoType3Font::create initializes the codeToGID array
    to 0). All other programs I tested will display it as a
    space or nothing.

    Patch from Jeffrey Morlan

    Fixes issue #1478

 poppler/CairoFontEngine.cc | 22 +++++++++++++++-------
 poppler/CairoFontEngine.h  |  2 +-
 poppler/CairoOutputDev.cc  | 13 +++++++++----
 3 files changed, 25 insertions(+), 12 deletions(-)

commit 0ea8b3dc20b84a035e29ced11e2c45e088a7653d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Jan 8 17:27:57 2025 +0100

    Update (C)

 cpp/poppler-document.cpp      | 1 +
 cpp/poppler-private.cpp       | 2 +-
 cpp/poppler-private.h         | 1 +
 fofi/FoFiTrueType.cc          | 2 +-
 fofi/FoFiTrueType.h           | 2 +-
 fofi/FoFiType1C.cc            | 1 +
 fofi/FoFiType1C.h             | 1 +
 glib/poppler-document.cc      | 2 +-
 glib/poppler-form-field.cc    | 2 +-
 poppler/Annot.cc              | 2 +-
 poppler/Annot.h               | 2 +-
