Commit Graph
519117 Commits
Author SHA1 Message Date
Caolán McNamara d9d87d79ce ofz: rtf, limit \bin reads to the bytes left in the stream
Change-Id: I3a1167fe65e9b3e86502707fa796c21b2846a6e8
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8142
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 72f836bfd346ca5d62a1f9bc2f3c3d5d4cd87b8c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208840
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-07-30 18:13:37 +02:00
Karthik b7b2913bdc tdf#172730: Add a fast scanline paths for premultiplied 32-bit bitmaps
Since BitmapEx was unified into a single premultiplied 32-bit BGRA
Bitmap, converting such a bitmap runs a per-pixel loop that builds a
BitmapColor and dispatches through the `GetPixelFromData` /
`SetPixelOnData`, (un)premultiplying one channel at a time.

Add a fast scanline path for the common case, a premultiplied 32-bit
truecolor bitmap (ABGR/ARGB/BGRA/RGBA). It resolves each channel's
byte offset once and then moves the scanline bytes directly, using the
premultiply / unpremultiply lookup tables.

Signed-off-by: Karthik <karthik.godha@collabora.com>
Change-Id: Ie8ee47055bdffca9e06d48955fdc0b61b34e08ac
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6752
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 54c68922eaa2d2c4e20e10091ad4911e8d32aed2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208641
Tested-by: Jenkins
2026-07-30 18:08:49 +02:00
Mike Kaganski 104d56c090 writerperfect: parenthesize the REQUIRE_VERSION expansion
The macro expands to an unparenthesized a || (b && c), so a caller appending
&& binds it to the second operand only, leaving the first to decide alone.
Every current caller uses it standalone, where this changes nothing.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I304b5bbc5e4e921ee843cbfec07685a5686b55b4
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8118
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit a5a814883eff59db39fea75675958cdf49e0c3a2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208844
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-30 18:07:30 +02:00
Kurt Nordback f201337f3b tdf#165742 Step 5.11: Don't output empty tick mark tags in chartex
Chartex has different tick mark defaults from old-style charts. Don't
output <cx:majorTickmarks> or <cx:minorTickmarks> when no tick marks are
intended, including if there were no such tags on input.

Change-Id: Ib6caecaca917204ddc99208cbece8f6adff8f5ca
Signed-off-by: Kurt Nordback <kurt.nordback@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3067
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 5353e467dea04ba6b12b616b90e269f0a096375a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208843
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-07-30 17:13:30 +02:00
Caolán McNamara 99bf522289 Resolves: tdf#172935 Connection from Base to external firebird database refused
there is one firebird engine per process and it reads its configuration once
from the directory we set up, so a .fdb the user picked somewhere else could
not be attached. firebird resolves a name in databases.conf before it treats
it as a path, so give the file a name there and pass firebird that name,
dropped again when the connection is disposed.

since:

commit 520d8173cef39a4da85b3ba21bdaaa3150384c25
Date:   Sun Jul 12 12:10:41 2026 +0000

    firebird: keep each embedded database's files in one directory

Change-Id: I4872a4e2165c4701bfb20be5dcd8c119b1723125
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/7990
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit 6ab71a109bd8a8335208c9faa37a3cfa94523148)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208773
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-30 15:54:50 +02:00
Jonathan Clark 417c7ee132 tdf#171218 extras: Restored missing ID field in bullets.thm
This change restores the system gallery theme ID to bullets.thm, which
restores language and localization-independent lookup in the gallery UI.

This field was unintentionally removed by a prior update to the file
contents. Updating these .thm files is unnecessarily fragile. There does
not appear to be any way to set an ID other than by using a hex editor,
and the ID field is only retained if updates are incremental. In order
to make this somewhat easier, this change also adds an --id <id>
parameter to gengal. This parameter can be used to manually set the
correct ID when a new .thm file is generated (however, it will not
change the ID for an existing .thm file that is being updated).

Regression from commit 480ef73dee
Author: Heiko Tietze <heiko.tietze@documentfoundation.org>
Date:   Mon Oct 27 12:37:09 2025 +0100

    Revert^2 "tdf#139076 update Bullet icons with sexy .svg icons"

Change-Id: Idccdffb987606a1863c745c96bc0f8ba5cb6565f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208701
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2026-07-30 15:47:03 +02:00
Vissarion Fisikopoulos b75d3c0dd5 tdf#46841 Keep SQL query format
When editing an SQL query in SQL view it is important to keep the
formating. To secure this this fix implements a warning dialogue that
fires in the case a query is last saved in SQL view and the user tries
to open it in Design view and when the user switches from SQL view to
Design view since editing in Design view may canonicalize and rewrite
the query thus destroying its formatting.

This is related to tdf#42713 that impements something similar but for
queries with comments. Note that after this fix the mechanism
implemented for tdf#42713 is only kept for backward compatibility and
could be removed in the future.

Change-Id: I47f46d8953dc4b1e7326413d6f97ca35eeaa3a22
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208786
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
Tested-by: Jenkins
2026-07-30 15:22:07 +02:00
Vissarion Fisikopoulos 060b020466 Fix crash on commandless reports and export missing page-break attributes
Change-Id: I5ff69b78c72310a9996b4a2d8ed149bb1698e20b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208316
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
2026-07-30 15:13:07 +02:00
Vissarion FisikopoulosandAdam Seskunas 4337c29fb1 Implement GroupOn and Group Headers/Footers
- headers and footers implemented and formatted
  - GroupOn for all values, i.e. Day, Week, Hour, etc.
  - treat a group with no expression as a single implicit group
  - skip empty group expressions when building the ORDER BY clause
  - fix nested-group detection: an outer group's change now
    always forces every inner group to break too, even when the
    inner group's own value happens to coincide across the boundary
  - add nestedGroupBoundary CppunitTest + nested_group_boundary.odb

Co-authored-by: Adam Seskunas <adamseskunas@gmail.com>
Change-Id: I52ae7e07f4fd9082348a4ae2987f779676132d01
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208315
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
2026-07-30 15:12:54 +02:00
Vissarion FisikopoulosandAdam Seskunas 8e24efb414 Implement Sorting
-We now sort through the SQL statement according
 to the columns listed in the Grouping/Sorting
 dialog from top down

Co-authored-by: Adam Seskunas <adamseskunas@gmail.com>
Change-Id: I1626bb6bae48bd3c2952a639a12895b61c82b503
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208314
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
2026-07-30 15:12:47 +02:00
Vissarion FisikopoulosandAdam Seskunas 65d87073ed Add Env variable to switch between Pentaho/C++ ReportBuilder
- Environment variable is called
  SAL_ENABLE_PENTAHO_FREE_REPORTBUILDER

- Change save path in ReportEngineJFree so that if
  the env variable is false Pentaho is called, if
  true the C++ ReportBuilder is called

Co-authored-by: Adam Seskunas <adamseskunas@gmail.com>
Change-Id: I154f40d15b2532aee48a2609f045bb3bea3b4fa8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207092
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
2026-07-30 15:12:41 +02:00
Vissarion FisikopoulosandAdam Seskunas 51aa101952 Implement Report Save path and Execute path
- ReportDefinition add flag for save path along
  with getter/setter
- ReportEngineJFree use flag to determine which filter
  to use depending on whether a report is being saved
  or executed

Co-authored-by: Adam Seskunas <adamseskunas@gmail.com>
Change-Id: Ie6d797e5ec11bba5ca4ab56db6bf1f2fcf063f9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207091
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
Tested-by: Jenkins
2026-07-30 15:12:34 +02:00
Vissarion FisikopoulosandAdam Seskunas 89585dd2d9 Subclass ORptExport in xmlExport2
-Subclass xmlExport in xmlExport2
-Pentaho needs to be bypassed in ReportEngineJFree
 for functionality
-Set to use xmlExport2 filter
-add xmlExport2 to Library_rpt.mk

Co-authored-by: Adam Seskunas <adamseskunas@gmail.com>
Change-Id: Ia687217ee843f3ac0708d60ea83c55d9d35c30f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207090
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
2026-07-30 15:12:26 +02:00
Vissarion FisikopoulosandAdam Seskunas eb089349c5 Extend ReportFormula
-- add two functions to ReportFormula
-- getFormulaName()
-- containsBracketedField()

Co-authored-by: Adam Seskunas <adamseskunas@gmail.com>
Change-Id: I8b239259d7b77b10ec5edcbc25c7934ed876de9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207089
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
2026-07-30 15:12:19 +02:00
Justin Luth 470bf4599b tdf#172849 sw FindAll: fix miscounts of empty para (for replace)
The problem is that when finding/applying an attribute,
an empty paragraph is counted twice.

In my previous patch, I only did the move
if the paragraph contained some content.
But the same problem exists for empty paragraphs.

The unit test was quite annoying,
until I discovered it was searching for the exact opposite
of what it was intending to look for.

make CppunitTest_sw_uiwriter7 CPPUNIT_TEST_NAME=testTdf131431

It still double-counts for the very last paragraph,
since it tries to move forward but can't.

WARNING:
This patch breaks the counting for finding attribs (without replace).
The reason for this is that SwFindParaAttr doesn't bMoveFirst
when bReplaceAttr is set.
So, it worked for 'Find-All', but not for 'Replace-All'.

However, Find and Find-All suffer from skipping the first empty para,
so that bMoveFirst is a bad thing really.

While developing the follow-up patches,
I discovered that after the end of a paragraph,
a text search checks in anchored editeng objects.
So we can't move when doing a text search!

I wonder what other disasters are lurking in wait for me...

Change-Id: I10a786bd18c7b9957a70ea68324660e3c84b9b03
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208681
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Justin Luth <jluth@mail.com>
2026-07-30 14:14:05 +02:00
Michael Weghorn 8bb524a929 sd console: Drop unused CachablePresenterView::DeactivatePresenterView
This no more has any callers after

    Change-Id: Idd749171019914d444c04a29c18f5fc3f8d55e34
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 29 18:11:56 2026 +0200

        sd console: Drop always null PresenterViewFactory::mpResourceCache

More cleanup will follow in separate commits.

Change-Id: I2a547a8795ff646ca0be095cccebb9a20ae94614
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208808
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 13:54:38 +02:00
Michael Weghorn 938e7244fd sd console: Return more specific subclass in PresenterViewFactory::CreateView
Change-Id: I5ea8d9a24792182f9bda88d4ae8e2f9e2eb4f864
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208807
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-30 13:54:24 +02:00
Michael Weghorn da23ee5449 sd console: Drop always null PresenterViewFactory::mpResourceCache
This unique_ptr is never set to anything non-null, so drop
it and related logic that would only be relevant if it
were ever been non-null.

This is similar to previous commit

    Change-Id: Ic6784e716d54bbddfd9e184086218cfab8261954
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 29 18:07:34 2026 +0200

        sd: Drop always null PresenterPaneFactory::mpResourceCache + logic

, but in a different class.

Change-Id: Idd749171019914d444c04a29c18f5fc3f8d55e34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208806
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 13:54:16 +02:00
Michael Weghorn 3bd70d9609 sd console: Drop always null PresenterPaneFactory::mpResourceCache + logic
This unique_ptr is never set to anything, so is always null.
Drop the member and all logic that would only be relevant
if it were ever non-null.

Change-Id: Ic6784e716d54bbddfd9e184086218cfab8261954
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208805
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-30 13:54:07 +02:00
Michael Weghorn 6e5988b1be sd console: Drop commented code
Change-Id: I0b59425c7b1803095c9050860a4e1fff5b5b0be2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208789
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-30 13:53:53 +02:00
Michael Weghorn e50d734a2d sd console: Make PresenterToolBar::Anchor an enum class
Change-Id: I2ca19c7a52220fa8e9d532b771f6cb98b1f78fae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208788
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-30 13:53:41 +02:00
Michael Weghorn 05a291bdd0 sd console: Drop unused Action typedef
Change-Id: I9c0c51478d5c2210efe74c7e446f71a31afe4219
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208787
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 13:53:23 +02:00
Michael Weghorn 2d13b1965f sd: Reuse base class logic in PresenterSpritePane::getCanvas
Reuse the logic moved to the base class in previous commit

    Change-Id: Id50ad3b81c484323325ccb6457a1ce1d7489e8a9
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 29 11:15:22 2026 +0200

        sd: Move PresenterPane::getCanvas impl to base class

to deduplicate code a bit.

Change-Id: I25a4b362d1d6128e74392ec9bbeca570b61e2430
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208779
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-30 13:53:12 +02:00
Michael Weghorn c17ba7f7e3 sd: Move PresenterPane::getCanvas impl to base class
The implementation doesn't do anything specific to
the PresenterPane subclass. Move the logic to the
PresenterPaneBase base class instead, which will
also allow reusing the logic in
the other subclass, PresenterSpritePane in an upcoming
commit to deduplicate its own override.

Change-Id: Id50ad3b81c484323325ccb6457a1ce1d7489e8a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208778
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 13:52:58 +02:00
Michael Weghorn d6521d15c9 sd: Deduplicate Presenter{,Sprite}Pane::getWindow
Both, PresenterPane and PresenterSpritePane implement the same
logic in their overrides for the abstract AbstractPane::getWindow
method.

Deduplicate by moving the implementation to their
shared PresenterPaneBase base class.

Change-Id: Id633fe3122c8fd2b2e6106d26b5da7d3ff566d73
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208777
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 13:52:43 +02:00
Michael Weghorn f28a3a6ee0 sd: Return vcl::Window instead of XWindow in PresenterHelper::createWindow
Instead of returning an XWindow, the UNO abstraction
over a window, return the vcl::Window directly, to
be able to use the more concrete implementation classes
in the future.

Initially, just get the XWindow in all callers again for the
existing code to continue working as is,
but this could be adjusted in the future to further reduce the
use of UNO abstraction in the presenter console code.

Change-Id: I08a20fd3fc087b6b095c690aa271235426d4a676
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208776
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 13:52:30 +02:00
Michael Weghorn 80b26242de sd: Drop unused PresenterPaneContainer::RemovePane return value
Change-Id: I08bc449c657828f0932e77d626b83e72fb40899b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208775
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 13:51:47 +02:00
Ilmari Lauhakangas 8a754ebff5 tdf#172833 Markdown export: don't output code spans within code blocks
While fixing unwanted escaping in code blocks, it was noticed that
in Markdown export, code spans were being emitted for preformatted text
paragraphs even though they appeared within a single code block.

Change-Id: Ifc538e14f5ad14a2c326b726a3036c623701a823
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207399
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Tested-by: Hossein <hossein@libreoffice.org>
2026-07-30 10:06:04 +02:00
Yoon6 9a43c61d85 tdf#145759: Replace magic constant with symbolic constant
Change-Id: I0bb730ce7349ead2bf555180145e1e7fbb56ab0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204671
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
2026-07-30 09:00:48 +02:00
Michael Weghorn c979df9216 vcl osx: Merge OSX_SALDATA_RUNINMAIN_* logic into OSX_RUNINMAIN_* one
Merge the logic to retrieve the AquaSalInstance into the
OSX_RUNINMAIN_* macros instead of having another macro
that retrieves the AquaSalInstance and passes it to the
former macros.

Change-Id: I0dd5e5c1de814dd04e86ffc9f7fa66aa5b486086
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208168
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-30 08:43:03 +02:00
Michael Weghorn 463e5e9bdc vcl osx: Drop OSX_INST_RUNINMAIN{,_*} macros
Port to use the existing equivalent OSX_SALDATA_RUNINMAIN{,_*}
macros instead, to consolidate/reduce the number of macros
for the same purpose.

Change-Id: Ia18b6431811da3dfa085b6135076310d355bce95
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208167
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 08:42:40 +02:00
Michael Weghorn 1d9f507eb6 vcl osx: Stop storing AquaSalInstance* in SalData
ImplSVData already has a pointer to the SalInstance,
independent of the vcl plugin.

Don't store an additional one in the macOS specific
SalData, but reuse the existing one.

Introduce a GetAquaSalInstance() helper function
that returns the instance cast to AquaSalInstance
(similar to other helper functions used in other
vcl plugins).

Change-Id: I851711153fe287a882b8188e89ae54a1b810466b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208163
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-30 08:42:25 +02:00
Julien Nabet f601364f2d tdf#172937: let's compare colors instead of index of colors
Index retrieved corresponded to blue value, that's why:
-the right circle of the first line
-the two circles from left of the second line
-the second circle of the last line
were modified.

Change-Id: I57a5334ca11f5b987d4125c88810991f83d44d42
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208817
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-07-30 08:22:14 +02:00
Xisco Fauli 21d05914b1 tdf#171285: fix copy&paste typo
From
commit ae5220b761
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Thu May 15 13:47:45 2025 +0200

    ScEditUtil::GetString: pass ScDocument by ref

Change-Id: I99a7c574d916566fb52825902dbcf8f8bb09cf3d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208797
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 21:22:31 +02:00
Olivier Hallot e004517d4a Update git submodules
* Update helpcontent2 from branch 'master'
  to ad1dbdb6fddb388946306959159c49ec0c71e209
  - Add link to matrix input dialog page
    
    Change-Id: I026349500f31d2fcad90376953001300f9e19d1b
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/208801
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
    Tested-by: Jenkins
2026-07-29 17:34:05 +02:00
Olivier Hallot 9311dcac82 Update git submodules
* Update helpcontent2 from branch 'master'
  to eedd1ff1d4780b7741a9514f1d808226b1d57981
  - tdf#172793 Help page fos Math matrix input dialog
    
    + Note : This page may be reviewed when the feature is ready.
    
    Change-Id: Ib07079ce1ee3de9b75c32a9a408bc664d5e244ac
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/208795
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-07-29 16:34:36 +02:00
Olivier Hallot 81852ab6be Update git submodules
* Update helpcontent2 from branch 'master'
  to 69b2d02fbefcbe0c7b16308bd59d29c7a869adf8
  - Refactor - no changes
    
    Change-Id: Ifcd3d6d21d4e548b19d572413890ad05dfd559a4
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/208794
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-07-29 16:34:25 +02:00
Heiko Tietze a2f5e62488 Resolves tdf#169831 - Do not use COL_TRANSPARENT in mail merge dialog
Change-Id: I14f3d43192015667f3c8bc174e0b2617bf07c47a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208785
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-07-29 16:27:28 +02:00
Michael Weghorn 44c4acdc3b rust_uno: Don't delete Cargo.lock on clean
Since

    commit 64510d3c8e
    Date:   Mon Feb 2 13:08:15 2026 +0100

        rust_uno : Cargo.lock must be in the git repository

, Cargo.lock is under version control and no longer
generated during the build.

Therefore, also no longer delete it on

    make rust_uno.clean

(Mentioned also as a problem by Christian Lohmaier
in the Gerrit change for the above commit, see [1].)

[1] https://gerrit.libreoffice.org/c/core/+/198541/comments/3ca5a9a2_4be61700

Change-Id: I6583e1ba246b8f73f12f0ee72d1b37eb6ba874f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208781
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-29 16:27:12 +02:00
Alain Romedenne 31753bdf1c Update git submodules
* Update helpcontent2 from branch 'master'
  to 3bedbf7f5ebfb2c778d18a0bfd30c8d0e41d9454
  - typo
    
    Change-Id: I3d8bb43cc17c4b14f7a472ca947872741984dbda
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/208780
    Tested-by: Jenkins
    Reviewed-by: Alain Romedenne <alain.romedenne@libreoffice.org>
2026-07-29 14:16:05 +02:00
Caolán McNamara 053a52ec3d crashtesting: tolerate a not-yet-repositioned fieldmark in sw::CalcBreaks
reproduce with a dbgutil build loading forum-mso-en-4208.docx

    sw/source/core/crsr/bookmark.cxx:294
    sw::mark::Fieldmark::IsCoveringPosition(this=0x0)

writerfilter field import calls InsertFieldmark, which splits the
paragraph. SwTextNode::CutImpl moves the text, which already carries
the CH_TXT_ATR_FIELDSTART/FIELDSEP/FIELDEND dummy characters, to the
destination node before the fieldmarks themselves are repositioned.

relocating a content-control nesting hint then runs sw::CalcBreaks
over the destination node. getFieldmarkAt finds no mark at the
FIELDSTART character and the assert at the FIELDSEP character
dereferences the null pushed for it.

keep pushing the possibly-null mark so start, separator and end stay
paired on the stack, and let the two asserts accept a null top entry.
The loop at the end over the still-open fields already handles a null
mark.

a similar guard existed since:

commit b3325ef8cd
Date:   Sat Nov 6 16:40:17 2021 +0000

    ofz40766 Null-dereference

until:

commit a7116b890c
Date:   Tue Nov 16 14:28:15 2021 +0100

    ofz#40766 svtools, sw: HTMLParser: really stop inserting control chars

removed it when the source of stray control characters was fixed
instead. Here the field characters are legitimate and only the mark
repositioning lags behind.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I9c7a33f5fac614645e420152c490765b53a7004c
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6714
Tested-by: Michael Stahl <michael.stahl@collabora.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit 274d1402efe96b367be1cf0fdfe7edd3641c9df2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208770
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-07-29 13:56:08 +02:00
Caolán McNamara cd34738793 ofz: Use-of-uninitialized-value
Uninitialized value was stored to memory at
   #0 0x5ad2b779b7f8 in size /usr/local/include/c++/v1/__vector/vector.h:396:56
   #1 0x5ad2b779b7f8 in erase<utl::ConfigItem *, std::__1::allocator<utl::ConfigItem *>, utl::ConfigItem *> /usr/local/include/c++/v1/__vector/erase.h:31:25
   #2 0x5ad2b779b7f8 in utl::ConfigManager::removeConfigItem(utl::ConfigItem&) /src/libreoffice/unotools/source/config/configmgr.cxx:160:5
   #3 0x5ad2b7798e0c in utl::ConfigItem::~ConfigItem() /src/libreoffice/unotools/source/config/configitem.cxx:164:39
   #4 0x5ad2b780fd24 in SvtSysLocaleOptions_Impl::~SvtSysLocaleOptions_Impl() /src/libreoffice/unotools/source/config/syslocaleoptions.cxx:257:1
   #5 0x5ad2b78148ff in __release_shared /usr/local/include/c++/v1/__memory/shared_count.h:92:7
   #6 0x5ad2b78148ff in __release_shared /usr/local/include/c++/v1/__memory/shared_count.h:121:25
   #7 0x5ad2b78148ff in ~shared_ptr /usr/local/include/c++/v1/__memory/shared_ptr.h:561:17
   #8 0x5ad2b78148ff in reset /usr/local/include/c++/v1/__memory/shared_ptr.h:611:50
   #9 0x5ad2b78148ff in SvtSysLocaleOptions::~SvtSysLocaleOptions() /src/libreoffice/unotools/source/config/syslocaleoptions.cxx:563:11
   #10 0x5ad2b78963ac in SvtSysLocale_Impl::~SvtSysLocale_Impl() /src/libreoffice/unotools/source/misc/syslocale.cxx:88:1
   #11 0x5ad2b7898111 in __release_shared /usr/local/include/c++/v1/__memory/shared_count.h:92:7
   #12 0x5ad2b7898111 in __release_shared /usr/local/include/c++/v1/__memory/shared_count.h:121:25
   #13 0x5ad2b7898111 in ~shared_ptr /usr/local/include/c++/v1/__memory/shared_ptr.h:561:17
   #14 0x5ad2b7898111 in reset /usr/local/include/c++/v1/__memory/shared_ptr.h:611:50
   #15 0x5ad2b7898111 in SvtSysLocale::~SvtSysLocale() /src/libreoffice/unotools/source/misc/syslocale.cxx:142:11
   #16 0x5ad2b867a496 in ImplAllSettingsData::~ImplAllSettingsData() /src/libreoffice/vcl/source/app/settings.cxx:2521:1
   #17 0x5ad2b867ac16 in ~impl_t /src/libreoffice/include/o3tl/cow_wrapper.hxx:170:16
   #18 0x5ad2b867ac16 in release /src/libreoffice/include/o3tl/cow_wrapper.hxx:201:17
   #19 0x5ad2b867ac16 in ~cow_wrapper /src/libreoffice/include/o3tl/cow_wrapper.hxx:265:13
   #20 0x5ad2b867ac16 in AllSettings::~AllSettings() /src/libreoffice/vcl/source/app/settings.cxx:2525:27
   #21 0x5ad2b86a5894 in ~__optional_destruct_base /usr/local/include/c++/v1/optional:301:15
   #22 0x5ad2b86a5894 in ImplSVAppData::~ImplSVAppData() /src/libreoffice/vcl/source/app/svdata.cxx:571:34
   #23 0x5ad2b86a4c20 in ImplSVData::~ImplSVData() /src/libreoffice/vcl/source/app/svdata.cxx:563:28
   #24 0x5ad2b10fcccb in MSanCxaAtExitWrapper(void*) /src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:1311:3

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I1ab186c8456aebc719657215ac9cd0fa3e777589
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7895
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit b91cb7428e620f5c34c2ff94d7f8ce2a7d494c62)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208774
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 13:51:24 +02:00
Caolán McNamara 4aee95b7fb ofz#539034285 check for invalid encoding indexes
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie5039411e1363fec7ee60be999751ce5d9e71153
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7874
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit d6ad752c9e89c84e487458d92e7ffa0886a4cd4d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208768
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 13:45:24 +02:00
Caolán McNamara ad9e26606f sc: fold hasExternalContentLinks into one hasUpdatableLinks predicate
At this point every link that can be in the list is already either
one of the things specifically checked for, or is an obscure corner
case that if it does start to appear in the list should be checked.

So collapse this to its simpler reality.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I6103819c5f93f7d32caa6a47e0f147db2de744c8
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/7236
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7532
(cherry picked from commit ebe9aa73a61045e47d22eddbe454ada2c3dfca21)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208772
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 12:54:35 +02:00
Caolán McNamara ced55a8844 sc: gather the external-link checks into one HasExternalLinks
merge the various individual link checks into one HasExternalLinks
check.

Keep the DocumentLinkManager hasDdeLinks special case, and change
the other to be hasExternalContentLinks

ScDocument::HasAreaLinks is only called when we're asking about
HasExternalLinks so fold that in and bring some of the sprawling crazy
under control

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I6cf35d7ef7ae1c53ad9e87e0b36849ded4ae8323
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/7235
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7381
(cherry picked from commit f15965091e84bb5d51a7e4809089d493f74f2c10)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208771
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 12:54:15 +02:00
Caolán McNamara e13e59d2e5 sc: skip the row height recompute on a column insert
A horizontal insert only adds empty cells and shifts existing cells
sideways, so no row's optimal height can change. It recomputed heights
over the whole row extent anyway, freezing the document thread on a tall
sheet.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib2936edbbf560f247dcbce6d75fa725f3193e2c7
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7527
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 05583ef6a07f588a5262a377b01c65eaf24a1b2a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208767
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 12:35:08 +02:00
Caolán McNamara bef421f6d0 crashtesting: clone a matrix cell's result when it's not refcounted
A matrix formula cell holds the "top-left" result of its matrix in the
reference-counted xUpperLeft of ScMatrixFormulaCellToken.

CloneUpperLeftIfNecessary cloned that only for svDouble; other types
were kept by shared reference.

But threaded group calculation switches every token in the group's shared pCode
to RefCntPolicy::None while worker threads interpret it, on the basis that
interpreting only reads pCode, since:

commit 791a2489ee
Date:   Sun Mar 24 21:31:38 2024 +0000

    Related: tdf#160056 elide ref counting for initial tokens

A matrix formula whose result is a string constant from its own pCode
broke that: the pCode token was taken as the upper left during the None
window, so its IncRef was a no-op.

At teardown the matrix released it and freed a token the pCode array
still pointed at.

Where the uncounted reference is taken:

    #1 boost::intrusive_ptr<formula::FormulaToken const>::operator=
         boost/smart_ptr/intrusive_ptr.hpp:121
    #2 ScMatrixFormulaCellToken::Assign         sc/source/core/tool/token.cxx
    #3 ScFormulaResult::SetToken                sc/source/core/tool/formularesult.cxx:206
    #4 ScFormulaResult::Assign                  sc/source/core/tool/formularesult.cxx:171
    #5 ScFormulaCell::InterpretTail             sc/source/core/data/formulacell.cxx:2476
    #6 ScColumn::CalculateInThread              sc/source/core/data/column2.cxx:3266
    #7 ScTable::CalculateInColumnInThread       sc/source/core/data/table1.cxx:2715
    #8 ScDocument::CalculateInColumnInThread    sc/source/core/data/documen8.cxx:420
    #9 ...Executor::doWork()                    sc/source/core/data/formulacell.cxx:5437
    #10 comphelper::ThreadTask::exec

Clone the upper left when it is svDouble (as before) or not reference counted
(RefCntPolicy::None). The clone is a counted token the cell owns, so no
reference into pCode is taken during the threaded window. The non-threaded
path is unchanged.

Also assert in HandleStuffAfterParallelCalculation that a matrix result's
upper left does not alias the cell's own pCode.

Found with an ASan+UBSan build reloading crashtest document
forum-mso-en4-676909.

The original motivating tdf#160056 benchmark document never visits this
clone branch, so that case remains unchanged.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibd9e93aa9e59fabb99941a92a16aef247f7ae160
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/5638
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 2a70b7a75ce8768e077ea42175e59465d3adba31)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208769
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 11:46:30 +02:00
Mike Kaganski d87b16c676 tdf#171959 sw: keep a trailing blank's decorations out of a wrap area
A blank at the end of a line hangs outside the line by design, and the
justification of the line can leave it in the space that an object
reserved for its wrap: the text is stretched right up to the object, and
the blank starts where the reserved space begins. Its underline was then
drawn beside the object, which is no better than drawing it on the
margin.

The room such a blank was formatted against is measured before the line
is adjusted, so the check that keeps it inside the line cannot see this
coming, and the clamp that runs after the adjustment does not reach it:
the blank keeps no width of its own here, neither its own nor an extra
blank width, so there is nothing to compare a remaining room with.

Take the position instead, which is what the question really is: while
painting, the blank's own place in the line and the offset where the
object's reserved space starts are both known, so drop the decorations
of a blank that begins at or after that offset. A blank before an object
that still has room in front of it keeps them, as does one that Word
writes with its "underline trailing space" option on.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I1d23a77b7b6767e82eb64ad76335f06f57ebe193
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7881
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit f42c56ae45f98e5081825ac0329226a175b9ed12)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208757
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 10:00:16 +02:00
Mike Kaganski f7b776fc31 tdf#171688 sw: paint a trailing blank with its own font
A hyperlink at the end of a line looked like its underline reached past
the word. The blank after it is not part of the link and carries no
underline of its own, so nothing should have been drawn under it.

The blanks that a line break leaves over go into a hole portion, and the
painter only picks up character attributes for the text, field and tab
groups, which a hole portion belongs to none of. It was therefore painted
with whatever font the portion in front of it had left behind, in this
case the underlined one of the link, and the blank showed decorations
that the document never gave it. Seek the attributes for a hole portion
as well, so it is drawn with the font of the blanks it holds.

The hole was always painted with the wrong font, but it used to make no
difference: 90a83191a4 (Resolves: #i68503#
a SwHolePortion must not be decorated, 2013-01-03) took the decorations
off the hole's font again before drawing it. Since
b36f181bb7 (tdf#168777: Trailing space must
show all decorations, also for ODF, 2025-10-11) the blank keeps them, and
the wrong font became visible.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Ie7cd9a5780dc449e12a2b4585c8f0b0c80e94235
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7877
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 84746ca8ab0725d55980a027e4c2744de47a8f94)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208756
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 10:00:09 +02:00
Mike Kaganski fd6b07150a tdf#168777: also decorate a trailing blank that comes before a fly
A blank at the end of a line ends up in a hole portion, and it can be
made in two places: SwTextPortion::Format_ splits off the blanks that no
longer fit the line, while SwTextPortion::FormatEOL peels off a blank
that did fit, which is what happens when text wraps around an object and
the line continues after it. Only the first one was taught to show the
blank's decorations, so the blank before such an object stayed bare while
Word underlines it. The test document, saved by Word with its
"underline trailing space" option on, shows both in one line: the blank
before the rectangle was not underlined, the ones at the end of the line
were.

The blank cannot end up decorated outside the space available to it. The
one Format_ makes is only decorated as far as it fits, and the one
FormatEOL makes was part of a portion that already fitted on the line, so
its room is there by construction. Checked against a rectangle moved past
the end of a line in steps of a fraction of a blank: decorations switch
off exactly when the remaining room drops below the blank's width.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I8f3ba57bbb8f00b30b9798cba1ac64270b87c197
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7866
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit b3d35b9d0f907b7b2446c8ae26a53c382919e43b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208755
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-29 10:00:03 +02:00