Commit Graph
519381 Commits
Author SHA1 Message Date
Mike Kaganski 44c92622d2 cool#16071 sw: do not lose footnote lines cut away to fit
RearrangeFootnotes may cause SetRstHeight to set the rest height to 0 for
footnote lines no more fitting the footnote area; but 0 was used as a
special value in IsInside, meaning "no rest height was set", which then
incorrectly measured the upper instead - still as tall as the lines the
frame had before the truncation. Then the frame was considered as having
enough space, marked valid, and the lines cut away from it got no follow to
move to, so they never appeared anywhere.

Give the rest height its own "not given" state instead of spelling that as
a number, and honour a height of zero for what it says. A magic negative
would not do: SwContentFrame::WouldFit_ passes a negative height when the
frames before it overfill the new upper, and that has to keep meaning that
no line fits. The footnote computation in the constructor still falls back
to the upper when it ends up at or below zero, so only the SetRstHeight
path changes behaviour.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: If692577f3ee692ad5c0dbe87f9a11a2670f8cf16
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8906
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 77634c741bb538853a757c2a41e4c9b919f22815)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209271
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-19 00:40:59 +02:00
Mike Kaganski 50ce488d18 cool#16067 sw: take table rows back when the page regains space
A row moved to the follow because a footnote anchored in a row below it
was taking space on the page; that row moved too and took the footnote
along, so the page can now hold the row that was moved off it. The
follow's rows now get one more try to join once the page has grown.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Id4120e3d35e13c8f2eb3eb7c2bb1deff3e13d0cb
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8868
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit c808931b72d1576b30be0c8ac813a4e48bc0e06e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209270
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-19 00:40:55 +02:00
Justin Luth 0bef499cd1 tdf#132538 sw: don't open spelling menu with cursor over numbering
When the cursor position is requesting a spelling correction,
and it is over top of numbering (which translates to ContentIndex 0),
then don't return a spelling alternative
for the first word in the paragraph.

Change-Id: Ie57eaaea443db9ccf0a7c76c6c8c2ccf1cfb4080
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209296
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-08-19 00:30:04 +02:00
Caolán McNamara 4dc10d60db firebird: call writeFile outside the SAL_WARN_IF condition
a product build doesn't evaluate the condition, so none of the conf
files were written there.

since:

commit b8407b18adf3c6d552d54d7b6657539e2769afd6
Date:   Tue Jul 28 17:08:38 2026 +0000

    firebird: name the modules of a system firebird by absolute path

and:

commit 6ab71a109bd8a8335208c9faa37a3cfa94523148
Date:   Tue Jul 28 11:05:37 2026 +0000

    Resolves: tdf#172935 Connection from Base to external firebird database refused

Change-Id: I8c66ae59774a161c8c135b2dea772810d92495dd
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/8183
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/8282
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit ee9ee3e66d88c712c4374635ca9057292012fe32)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209295
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-19 00:20:50 +02:00
Michael Stahl 01de4c0213 vcl: PDFEncryptorR6: fix subtle off-by-one in computeHashR6
The end condition `E.back() > (nRound - 32)` is using the wrong value of
`nRound` and so the loop can end too early.

This has caused a few CI builds to fail after pushing the padding fix,
as the input to `computeHashR6` includes a random IV it happened rarely.

Fix it by counting the iterations of the loop that have been done.

Signed-off-by: Michael Stahl <michael.stahl@collabora.com>
Change-Id: I8bbdc85439789db3753942b1292ba48d39b76541
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8625
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 082e5a49669e2d9058c2b3675c829a495b2044f3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209277
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-19 00:20:39 +02:00
Michael Stahl aac2961770 oox,svl,vcl: use more appropriate random numbers
Signed-off-by: Michael Stahl <michael.stahl@collabora.com>
Change-Id: I9d6f200cc5a146f46dca64af270b77d0ce6abf6b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8174
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 52ba487c3d84a89a027c3130bc86afdcfe57a860)
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/8261
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
(cherry picked from commit 63ab1f905bddbac4871a246d61aa59d09f122e5c)
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/8277
(cherry picked from commit 396747a0e319943e7d411b0d6bc8d8abcc3e4f19)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209276
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-19 00:20:32 +02:00
Xisco Fauli 91a42a804c sw: fix crash in ModelToViewHelper::ModelToViewHelper
Similar fix to
commit 2b089278f3
Author: Miklos Vajna <vmiklos@collabora.com>
Date:   Mon Jan 5 08:49:57 2026 +0100

    sw: fix crash in the ModelToViewHelper ctor

Seen in https://crashreport.libreoffice.org/stats/crash_details/97216d46-6a0c-4745-b187-a2f1ec8442cb
which is the most crash in LibreOffice 26.2.5.2

Change-Id: I925226adc711a4615ffbc93d716d68a1a2b109a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209288
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-19 00:19:35 +02:00
Neil Roberts 365de006d1 tdf#173160 Maintain order of arguments to macro
The arguments for a macro when invoked by the dispatch provider get
converted from a set of PropertyValues to a sequence of Anys containing
just the values. Since the commit below, the TransformItems step was
changed to store the PropertyValues in an unordered_map which makes the
order of the values unpredictable. If the dispatch provider is used to
execute a macro then the order of the arguments becomes important
because the macro has no other way to determine which argument
represents which property. In order to maintain the previous behaviour,
the dispatch method now reorders the arguments so that they have the
same order as before. The previous order was determined by the order the
properties were handled in TransformItems.

commit e8d73d5307
Author: Mike Kaganski <mike.kaganski@collabora.com>
Date:   Wed Dec 3 10:45:35 2025 +0500

    Let TransformItems return comphelper::SequenceAsHashMap

    Simplifies its usage in all places where the result needs to be
    modified.

    Change-Id: I37f8d99827e0f1cb2b6e4f4f7735e26fb87f6703
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195162

Change-Id: Iacf64650842eb62c0a2bd266784aa9c7accf45bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209231
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-08-18 18:31:55 +02:00
Ben Urban 5776da7d06 tdf#138749: Enabled constructing a LAMBDA with no parameters
The sequence for LAMBDA in the RPN code is now:
[0] ocLambda, svJump
[1] ocPush, svStringName (parameter name)
[2] ocSep, svSep
(Repeat [1] and [2] for each parameter)
[3] (body code)
[4] ocClose, svSep
[5] (code after LAMBDA expression)

Jumps in the ocLambda point to [0], each [2], and [4], which means
there are two more jumps than parameters.

For example:
=LAMBDA(x;y;x+y)(3;4)
generates the following RPN code:
index opcode  type (data)
 [0] ocLambda svJump ({4,0,2,4,8})
 [1] ocPush   svStringName ("x")
 [2] ocSep    svSep
 [3] ocPush   svStringName ("y")
 [4] ocSep    svSep
 [5] ocPush   svStringName ("x")
 [6] ocPush   svStringName ("y")
 [7] ocAdd    svByte
 [8] ocClose  svSep
 [9] ocPush   svDouble (3.0)
[10] ocPush   svDouble (4.0)
[11] ocCall   svByte (3)
The first parameter is in [1], the second is in [3], the body is
in [5]-[7], and [9] is where the code resumes after the LAMBDA.

Change-Id: I4dc871893f47ebbd4dad9cc02ac3efe0ca6ca883
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207973
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-18 18:08:25 +02:00
Mike Kaganski 2f194066ca Related: tdf#171708 sw: keep a no-wrap footer object clear of the text
To see the problem, open that bug's document,
https://bugs.documentfoundation.org/attachment.cgi?id=206628 - its
footer holds a picture that wraps top and bottom, anchored to the footer
paragraph and lifted by 81pt, which is less than its own height of
88.5pt. Writer applied that offset as given, so the picture covered the
footer text and sat 7.3pt lower on the page than Word puts it.

What Word does, measured over hand-authored probes:

 - an object that wraps top and bottom cannot share a line with its
   anchor paragraph, and a footer paragraph has nowhere to be pushed -
   the footer holds it at the page's footer distance;
 - so the object goes up instead, until its bottom reaches the top of
   that paragraph, and it does so for any offset of zero or less, no
   matter what the offset says;
 - an offset above zero puts the object below the paragraph and is left
   alone, and square or through wrapping is not touched at all.

In the body the two already agree, because there the anchor paragraph
can move and both push it below the object.

So pull such an object up until it clears its anchor paragraph, for
MSO-formatted documents only; ODF documents without compatibility flags
keep their pre-existing layout. This reuses the compat flags as commit
409835939a3f1fbaeb1fdf705e60ce508a2be09e (tdf#162211 tdf#137590
layoutInCell: identify bMSOLayout better, 2026-04-14) did, identifying
MSO layout by TAB_OVER_MARGIN and TAB_OVER_SPACING; no new compat flag.

Headers are left alone: there Word clips the object at the page edge
instead, which is a separate question, as is whether a footer object may
hang off the bottom of the page at all (tdf#143933).

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Ifabfe5ee28ba48f3bce615ff490eef52e2ab26f0
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8829
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 7926e7a5852178e17d682cf1c54e5b74d34e1abf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209267
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-18 17:47:05 +02:00
Mike Kaganski 0b151e25c8 Related: tdf#171708 sw: keep floattable clear of a header/footer object
To see the problem, open that bug's document,
https://bugs.documentfoundation.org/attachment.cgi?id=206628 - its
body starts with a floating table spanning three pages (w:tblpPr,
w:tblOverlap val="never"), and its footer holds a picture with
<wp:wrapTopAndBottom/> and a negative positionV offset, so the picture
reaches up into the body. Writer put every page's part of the table at
the top of the body and painted its last rows over the picture, and it
left the table lower on the page than Word leaves it.

What Word does, measured from its print output over hand-authored probes
with exact row heights:

 - how much of the table goes on a page comes from the full body height,
   with nothing in the way taken into account;
 - the part is then shifted up as a whole until its bottom clears the
   object below it, which may take it into the top margin area;
 - the page edge is the limit - where clearing the object would take the
   part off the page, it stays put and keeps the overlap.

The low placement and the overlap are therefore one behaviour: the shift
is what avoids the object. CalcOverlap already avoids overlaps for split
flys, but a header/footer object is anchored outside the body and so was
dismissed as a fly from another upper, and the one conflict it knows how
to resolve is by moving down - which here would push the fly off the
page.

So consider such an object too, and resolve a conflict with one that
starts below the fly by shifting the fly up until its bottom clears it,
as far as the page frame allows. Where the page cannot hold the shifted
fly, keep the overlap, and in no case give up a row to fit.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I00eed5401b5981b0f3eb9b40e7be920bf71b15b3
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8826
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit b356ac63ed2824e20906b26f337d7852994c1a6b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209266
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 17:46:49 +02:00
Xisco Fauli 139f436078 boost: upgrade to 1_92_0
<https://dev-www.libreoffice.org/src/boost_1_92_0.tar.xz> has been generated (on
Debian 13) with

> $ wget https://archives.boost.io/release/1.92.0/source/boost_1_92_0.tar.bz2
> $ printf '5c1d40cb8e19adbf740a4ec2da35b3e58f3f5804b1dce44deb53df72193cbc6c boost_1_92_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_92_0.html>
> boost_1_92_0.tar.bz2: OK
> $ external/boost/repack_tarball.sh boost_1_92_0.tar.bz2
> Unpacking boost_1_92_0.tar.bz2 ...
> Removing unnecessary files ...
> Creating boost_1_92_0.tar.xz ...
> Cleaning up ...
> 6010caf17a5742227b54f0c3f5a045d09e8abb981faf7770d445cd705dc26214  boost_1_92_0.tar.xz
> Done.

0001-Allow-fallthrough-of-Android-to-128-bit-float.patch.1 has been
fixed upstream

Change-Id: Ibedd4ca05d2d11f1d9e5176170a44f72d83fa013
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209274
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 17:24:48 +02:00
Mike Kaganski f0e78f28ee cool#16066 sw: omit the repeated heading where a row needs the full page
A row that may not break across pages, and is taller than what a page has
left below the repeated heading, had nowhere to go: it stayed under the
heading, reached past the bottom of the page, and everything below that was
not shown. The setup never worked - StarOffice 5.2 drops the same text.

Two strategies fix it and both are viable: split the row anyway, or leave
the heading off the page the row needs and repeat it again afterwards. This
implements the second, because Word does that. Either would serve our own
documents, but differing from Word turns every such DOCX into an
interoperability report, and adopting Word's layout later would then need a
compatibility flag to keep the ODF documents written in the meantime laying
out as their authors designed them.

A heading is not repeated where the following row could not fit under it, in
neither of the two places that create the repeats: splitting the table, and
rebuilding its frames after a row is added. Otherwise the row is only pushed
on again, and the repeat is left holding a page of its own.

Because the change creates layouts with a lone heading row and no non-heading
row on a page, GetFirstNonHeadlineRow() now returns nullptr where it
previously could not. The two places that dereferenced it unchecked,
MakeSelUnions and SwContentFrame::Cut, are guarded; the first of them crashed
on inserting a row into such a table.

A row taller than the page itself is still split regardless of the setting,
as since commit b271cc4685 (tdf#123116 sw
layout: allow rows larger than page to split anyway, 2020-03-04).

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I5d7a6c555c0b978a9d48d5266574f90e3c41ae3d
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8834
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit db3f6d7fe6b368b5e8989f389f68f73dc3c163b4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209269
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 16:55:39 +02:00
Julien Nabet 1e0180a814 Revert "tdf#166299 tdf#172587: try to improve encoding detection"
This reverts commit d71b9934b3.

Reason for revert: don't try to tweak too much ICU results

Change-Id: I9f35294376faa5b82729c0072cf66b5fe5f79a7a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209285
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-18 16:55:37 +02:00
Michael Meeks a6cadf06df cool#16004 add unit test for column header detection from button rows
Cover the new behaviour in ScTable::HasColHeader: a first row whose
cells carry the autofilter or pivot table button attributes counts as
a header row even when every cell in the range is numeric, and stops
counting as one when the attribute is removed.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I2a3b8d2e704e7857c596825c4b7e855045dd920b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7743
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 338974d1513cbd8d34be3f7465998b688d6f9dbc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209259
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 16:40:11 +02:00
Michael Meeks 17a184f8b4 cool#16004 detect and don't include filter / pivot headers into calc sorting.
This seems to provide a very good hint that something is a header.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If26a8e7aeceadff804d6d38c310bcab6ab26efca
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6644
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit e87f0e8c2b98e439c130e6f06d98faa61b0d0299)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209258
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 16:40:06 +02:00
Mike Kaganski 9b3f4c90ec tdf#171708: improve empty master detection
A split fly's intermediate anchor has no draw objects of its own - they
all sit in the chain's master - so it was taken for a master that had
already failed, and the last anchor was denied the split it needed.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Ic7cf989fcdbf013fa640e94877b7805358c3be8f
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8821
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit e8331d56cc14ddef0f243c9cc0091c5179457027)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209265
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 16:36:40 +02:00
Caolán McNamara 07168ae71d html import: only resolve the data url of an <object> if it has a data attribute
with a document loaded from file:///tmp/doc.html a data attribute
resolves as wanted:

    <object data="movie.mp4"/>  ->  file:///tmp/movie.mp4

but with only a src attribute the empty data string resolved against
the base url and replaced the src url already in aURLObj with the
document's own url:

    <object src="movie.mp4"/>   ->  file:///tmp/doc.html

now that case keeps its src url:

    <object src="movie.mp4"/>   ->  file:///tmp/movie.mp4

since:

commit c40afac8a3
Date:   Mon Mar 5 17:29:51 2018 +0100

    sw XHTML import: map <object> to OLE objects

Change-Id: Ie18ce1ef35a55e618c126db050b0864b342b59df
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8383
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 161009e7f14768d6c37620f722c00fb1f1bc3bee)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209249
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 16:01:48 +02:00
Mike Kaganski 7152b64569 sw: fix null deref in InsertCnt_ when a section has no frame
A customer reported recurring crashes (no reproducer available) while a Writer
document was being saved by AutoRecovery.  The minidump shows a read of address
0 on the GUI thread with this stack:

    InsertCnt_                                   sw/source/core/layout/frmtool.cxx
    MakeFrames                                   sw/source/core/layout/frmtool.cxx
    UnHideRedlines                               sw/source/core/layout/wsfrm.cxx
    UnHide                                       sw/source/core/layout/wsfrm.cxx
    SwRootFrame::SetHideRedlines                 sw/source/core/layout/wsfrm.cxx
    sw::DocumentRedlineManager::SetRedlineFlags  sw/source/core/doc/DocumentRedlineManager.cxx
    SwXMLWriter::WriteMedium                     sw/source/filter/xml/wrtxml.cxx
    SwWriter::Write                              sw/source/filter/basflt/shellio.cxx
    SwDocShell::SaveAs                           sw/source/uibase/app/docsh.cxx
    SfxBaseModel::storeToRecoveryFile

Serializing to ODF temporarily shows the tracked changes, which rebuilds the
layout (SetHideRedlines -> UnHideRedlines -> MakeFrames -> InsertCnt_).  While
closing a section, InsertCnt_ does

    pLay = pLay->FindSctFrame();

and then dereferences pLay unconditionally (pLay->IsHiddenNow(), and in the other
branch pLay->ContainsContent()).  FindSctFrame() returns nullptr when pLay is not
inside a section frame, which happens for a section whose content was not laid out
- seen here with tracked changes inside a table - so the dereference crashes.
Guard the result: when there is no section frame there is nothing to close, and
pLay must be left untouched because the following nodes reuse it.

The unguarded pLay->IsHiddenNow() was added in
0c6ec63c81 ("sw: fix hiding of flys in hidden
sections, part 3", 2024-09-06).  This is the same kind of fix as
4d48d43a68 ("null deref of pActualSection seen",
2025-08-11), which guarded pActualSection in this same function.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I52d1fb1933498d7d6cb246dab4618807e106afcb
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7321
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 340b7273e3401da077402b3dcf158ca12e2d7055)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209255
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 15:56:31 +02:00
Mike Kaganski 87e8a997b8 svl: identify a number format color by value, not by name
The color name is stored in the language the format was parsed in, while
GetMappedFormatstring matched it against the keyword table the scanner holds
at export time. Those differ in a document holding formats of several
languages, and the color was then left out of the exported format - German
being the only language with localized color names. Identify the color by its
value instead, against the standard color table the color keywords are
aligned with; that table is static, so the value does not depend on which
formatter parsed the format.

This surfaced as testLocalePrefix in CppunitTest_sc_subsequent_export_test4
failing in a CODA-W build with

 - Expected: #,##0.00\ [$€-407];[RED]\-#,##0.00\ [$€]
 - Actual  : #,##0.00\ [$€-407];\-#,##0.00\ [$€]

where the German format's name is not normalized because
GetFormatStringForExcel skips that step with the Kit active, see commit
0a5026b367 ("lok: save correct number format in
multi-lang session", 2024-04-26).

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I9874185a3204c8e6aac19532b4b446895807feeb
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8063
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 967df3c828dbaba1d5e1451fcf43b2d57d404c67)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209260
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 15:55:54 +02:00
Caolán McNamara fb7df72df2 add FODP to the test filter list, alongside FODG, FODS and FODT
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I0d5aaac7005588d71939a2dc7230f8aa4ab41552
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9343
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 3e00a1509b44acb7c510c46827f2e840cd1619aa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209250
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 15:55:38 +02:00
Karthik 8bca7a7c3f tdf#163115: Don't export hidden sheets to PDF
ScPrintFunc::InitParam decides per sheet whether that sheet contributes
pages. It checked IsVisible on a sheet with no print range, but a sheet
that has one was printed whatever its visibility, so a hidden sheet with
a print area landed in the PDF. Test visibility first, ahead of the
print-range branches. That also drops the duplicated check the other two
branches carried.

The "whole sheets as single pages" option does not go through
ScPrintFunc. It gave one page to every sheet in the document and drew
page N from sheet N, so hidden sheets came out too. Count only the
visible sheets and draw page N from the Nth visible one.

Signed-off-by: Karthik <karthik.godha@collabora.com>
Change-Id: Iee46c1dc1312789bac5aa82d47a17b76b12e651a
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8660
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 7b538dabeb8a19519a55e47ad86a98c39fa24b30)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209252
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 15:55:02 +02:00
Mike Kaganski 527d1511f1 Interpret a formula before converting it to a value
The conversion reads results without interpreting, so a formula that nothing
has read since its last change was stored as 0. That happens off the visible
range without the Kit too; with the Kit, testTdf120190 in
CppunitTest_sc_pdf_export failed in a CODA-W build, the converted cell
rendering as 0 instead of the two lines of =5&CHAR(10)&6.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I70f46ef4ca0f36368c88e930db3829081ac12603
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8179
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 219cd2d0f3ff58388468ce4253dd5835f2fd1081)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209256
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 15:54:54 +02:00
Mike Kaganski e9bd8d644f Describe .uno:HangingIndent for all modules
The paragraph sidebar panel is shared, but only Writer and Impress described
the command, so in Calc shape text its indent button arrived with no label and
nothing could give it an accessible name.

Currently calc1/a11y_sidebar_spec.js (Shape Text Context) tests this
incorrectly; the proper testing will happen with a follow-up change.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I546bf93ef1ff58120ba1603764e4644b38d962e3
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8385
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit a588e482f99a4b0816ca3d9b8f963007da9ffe6c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209257
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-18 15:54:37 +02:00
Kurt Nordback b6a5834277 tdf#165742 Step 5.14: Assorted axis unit fixes
Support round-trip for axis min, max, majorUnit, minorUnit, and some
handling for numFmt, all for chartex.

Signed-off-by: Kurt Nordback <kurt.nordback@collabora.com>
Change-Id: Ibef74b0efc27d5ff7923800b169603758e276ada
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/5901
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 05420f729d5399c127d9a15fcad043fa6673dd6a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209241
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-18 15:53:56 +02:00
Kurt Nordback 0c8160d7e8 tdf#165742 Step 5.13: Support ownerIdx attribute
It appears that the ownerIdx attribute of <cx:series> is used to indicate
that series share data. At least that seems to be the case with pareto
charts, which have both a clustered column and a pareto line series. Going
on that assumption, implement parsing/export of ownerIdx, and don't write
a dataId tag when ownerIdx is present. That fixes round-tripping of
pareto charts, at least based on what I've seen.

Signed-off-by: Kurt Nordback <kurt.nordback@collabora.com>
Change-Id: Ie948d2e5992b778462e34e1ef90681631c867332
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/5900
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 8c37a25ffb7711f69de978045b4e3dc8d52759da)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209240
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-18 15:53:52 +02:00
Aron Budea 11482c8f71 sw: move condition in SwContentTree::BringCommentToAttention(...)
To keep "if" condition shorter. No functional difference.

Follow-up after 657915152e09f7cf89a61646c6847441f178ea8a.

Change-Id: Ia5c1a19dfe01d8ba72da83f7fca8f42d153400b8
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9306
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 98d14652cd51119e311bc11a1a284ec1221efaf0)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209254
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-18 14:10:59 +02:00
Aron Budea fe4317f850 sw: don't crash in SwContentTree::BringCommentToAttention(...)
- nCommentId = 0 isn't a valid comment Id, assert and
  log warning about it
- m_xTreeView->iter_next can reach entries that aren't
  the children of the starting node

Related backtrace:

Fatal signal received: SIGSEGV

   (this=0xff000000ff1c1ce4) at
   /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:191
   (this=0xff000000ff1c1ce4) at
   /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:462
   engine/sw/inc/fmtfld.hxx:134
   engine/sw/source/uibase/utlui/content.cxx:322
   (this=0x5706d69c2450, nCommentId=nCommentId@entry=0) at
   engine/sw/source/uibase/utlui/content.cxx:7363
   (this=0x5706d6cfe190, rReq=...) at
   engine/sw/source/uibase/uiview/view0.cxx:939
   (this=0x5706d2636360, rShell=..., rSlot=..., rReq=...,
    bRecord=<optimized out>) at
   engine/sfx2/source/control/dispatch.cxx:256
   (this=0x5706d2636360, nSlot=<optimized out>,
    nCall=nCall@entry=SfxCallMode::RECORD, pArgs=pArgs@entry=0x7ffddf839cd0,
    pInternalArgs=pInternalArgs@entry=0x7ffddf839c60, nModi=0) at
   engine/sfx2/source/control/dispatch.cxx:811
   (this=<optimized out>, aURL=..., aArgs=..., rListener=...) at
   engine/include/sfx2/ctrlitem.hxx:63
   (this=0x5706d7312910, aURL=..., aArgs=...) at
   engine/sfx2/source/control/unoctitm.cxx:257
    (rCommand=..., xDispatchProvider=..., rArguments=..., xListener=...) at
    engine/include/com/sun/star/uno/Reference.h:329
    (rCommand=..., xFrame=..., rArguments=..., xListener=...) at
    engine/comphelper/source/misc/dispatchcommand.cxx:73
    (rCommand=..., rArguments=..., xListener=...) at
    engine/comphelper/source/misc/dispatchcommand.cxx:96
     pCommand=<optimized out>, pArguments=<optimized out>,
     bNotifyWhenFinished=<optimized out>) at
    engine/desktop/source/lib/init.cxx:6777

Change-Id: I835c59ff5f17f575fd5dc11ebfdac8d11a901b1e
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9265
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 657915152e09f7cf89a61646c6847441f178ea8a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209253
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 14:10:48 +02:00
Olivier Hallot 3f6c03906c Update git submodules
* Update helpcontent2 from branch 'master'
  to 6724b6384ee492e29ddc82ad6439474fdd8c036d
  - tdf#173165 Explain autodetection of ISO 8601 date format
    
    + update on how to get it
    
    Change-Id: Id83c4611fce1333c7e315db4392e7ecf7b8f8cab
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/209199
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-08-18 14:00:02 +02:00
Miklos Vajna 08252eb83f Related: cool#16002 sw markdown import: fix MSVC C6011 warning
See
<https://gerrit.collaboraoffice.com/c/online/+/6580/2#message-b6fea69a9d25781be6080bace1334d8864d365cc>:
> sw\source\filter\basflt\shellio.cxx(720) : warning C6011: Dereferencing NULL pointer 'pDelNd'. : Lines: 687, 688, 689, 694, 695, 697, 699, 702, 705, 709, 716, 720

Once pDelNd is fetched, we can't dereference is unconditionally.  The
code was inconsistent, with a check for a nullptr at one location, and
two others didn't check.

Fix the problem by moving the accessing locations inside a checked
block.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I696a962ca00017648acbe3b991659e075b8f2528
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8558
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 91209a9bfa8a89c9825912ce4627c84272605ad9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209248
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 13:23:55 +02:00
Xisco Fauli 1182b28b15 Revert "sw: fix warning C6011: Dereferencing NULL pointer 'pDelNd'."
This reverts commit d86ee6d211.

Change-Id: I54eb454097e388f45d6e77ed74eb6d728cec4f56
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209247
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 13:23:52 +02:00
Kurt Nordback c26599741c tdf#165742 Step 5.12: Improve axis handling
Implement better handling of <cx:axisId> and <cx:axis> tags. In particular,
ensure we output the correct number of axisId elements, based on the chart
type, and ensure that corresponding axes (and only those) are captured in the
appropriate <cx:axis> data.

Signed-off-by: Kurt Nordback <kurt.nordback@collabora.com>
Change-Id: Ifed17afc05c70dced89e75f18dcf375fdef97f6e
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/5775
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 833f782bca98c891097d887a45365bc7a5322c4d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209239
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 13:08:26 +02:00
Andrea Gelmini ad2cacedde Fix typo
Change-Id: Iccf5fdc7df48e6f1b7ffd4131317707ea8a2965e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209272
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-18 12:14:09 +02:00
Julien Nabet 2c26864ebf Remove unused patch following fontconfig upgrade
Change-Id: Ic6f37ffe11d743b45745d3aa49b01d32ef82c1c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209236
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-18 11:40:33 +02:00
Xisco Fauli 60098da2aa quickjs: upgrade to 0.16.1
Downloaded from https://github.com/quickjs-ng/quickjs/releases/download/v0.16.1/quickjs-amalgam.zip

Change-Id: I864e3959f8b01cb9be88cf103b96ecd82d328d26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209234
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-18 09:47:34 +02:00
Carlos Rica f73c2128c6 tdf#169977: librelogo: support creative REPCOUNT translations
Change-Id: Ied3e232f941c0da992344d370f5e13fcb9124158
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198892
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-08-18 09:11:11 +02:00
Andreas Heinisch 0f8dcc20df tdf#146873 - Inspect elements when they are non-fixed
For instance, when they were created using Split(), since they may have
been reassigned to a different type.

Change-Id: Ib562dad0156fac267982a224395559713831042c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209107
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2026-08-18 09:06:57 +02:00
Xisco Fauli 8fdbf696fc openldap: upgrade to 2.7.0
Downloaded from https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.7.0.tgz

Change-Id: I1261810ea36dc821d90aeb1ef3a3fbc41a35248d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209204
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-18 08:42:24 +02:00
Justin Luth f22422ee96 NFC doc export: fix documentation, drop expensive recall of GetDropSize
GetDropSize is expensive because it goes down into the layout.
There was no need to call this twice.

Found while fixing up some of the documentation.

Change-Id: Iaa44cc9e9cf62b8b1aa7a325c926b01cd8c9ad59
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209226
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
2026-08-18 01:42:47 +02:00
Khaled Hosny 7eef6029ec tdf#171624: Make font variation settings per script
We had only one shared setting for the three script groups, which means
the same variation settings are applied to the three groups, which makes
no sense as they often use entirely different fonts.

Change-Id: I6f2a8b4d1c9e0357a6b2d8f4e1c7093b5a2d6e84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209222
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
2026-08-18 00:28:11 +02:00
Xisco Fauli 4c68c8af2e fontconfig: upgrade to 2.18.3
Downloaded from https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/2.18.3/fontconfig-2.18.3.tar.xz

Change-Id: Ib6a28ceb864d6baf73f571db38a9c123b09bb06c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209209
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-17 22:57:35 +02:00
Xisco Fauli 84c6b3d45c tdf#148749: sc_subsequent_filters: Add test
Change-Id: I91eb7208db9fe104f4769cfbaf962f6a4dd3d226
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209207
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-17 22:56:17 +02:00
Xisco Fauli e3711a25f6 nss: upgrade to 3.127
Downloaded from https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_127_RTM/src/nss-3.127-with-nspr-4.39.tar.gz

Change-Id: I56956f999964056b0ecacbdf65a3bccf84c8eba7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209211
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-17 22:53:49 +02:00
Khaled Hosny 02c7caae9a svgio: font-variation-settings is an inherited property
It is inherited per CSS Fonts, so the children of a group must inherit
it when set on the group.

Change-Id: I3a7f1c58b249e0d647c3b8a15f9e2043b7d6c891
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209212
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
Tested-by: Jenkins
2026-08-17 22:51:42 +02:00
Julien Nabet f998b64054 tdf#173153: The full-width conversion function is not working (CJK-Japanese)
rData.sChanged.getLength() - rData.nLen can be negative
when initial data is longer than the changed data
so nSum can be negative too.
So change type of nSum so a negative value isn't transformed in a big positive value.
Also in this case, no need to check if there's some space left.

Change-Id: I9a90a7917509f332463832728e0ab705af136f0b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209186
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-08-17 22:01:50 +02:00
Rene Engelhard 5f283f1e7e disable testPdfiumLinks if pdfium is disabled
Change-Id: Ieaa95d392331c67e429d97e8b18a8d14da1337c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209018
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2026-08-17 22:01:29 +02:00
Olivier Hallot 9dcd72d6b0 Update git submodules
* Update helpcontent2 from branch 'master'
  to 0833482b8ebeeb2c70aaebe375642a5af01c81ad
  - tdf#173168 Update page style dialog Help page
    
    Change-Id: Ibb9feab0bba27b7efe6395080551d9cc178fc20b
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/209223
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-08-17 21:57:32 +02:00
Manish Bera 18f6582e77 add text attributes tests for itrform2.cxx
Change-Id: If3e756034e6a27ba7b2ef9db7dbb3e732765661d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207479
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2026-08-17 20:30:48 +02:00
Xisco Fauli 8545168785 poppler: upgrade to 26.08
Downloaded from https://poppler.freedesktop.org/poppler-26.08.0.tar.xz

Change-Id: I91d1602f60f844a1fef6e68a8f71aa374a42c70b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209198
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-17 17:15:45 +02:00
Xisco Fauli 06adf2a9ce harfbuzz: upgrade to 14.3.1
Downloaded from https://github.com/harfbuzz/harfbuzz/releases/download/14.3.1/harfbuzz-14.3.1.tar.xz

Change-Id: I97d8b04e12cc60bc0670b3668795fa2aefa466a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209196
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-17 17:06:52 +02:00