core.git: cppuhelper/Library_cppuhelper.mk cppuhelper/source

2024-05-03 Thread Noel Grandin (via logerrit)
 cppuhelper/Library_cppuhelper.mk |4 
 cppuhelper/source/servicemanager.cxx |   15 ---
 cppuhelper/source/servicemanager.hxx |3 ++-
 3 files changed, 10 insertions(+), 12 deletions(-)

New commits:
commit 5edaca5c892dbe07c0edb1ea0de4a115300e8ef0
Author: Noel Grandin 
AuthorDate: Thu May 2 10:44:45 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 09:00:41 2024 +0200

use boost::small_vector in cppuhelper

shaves 5% off startup time

Change-Id: I901e1112727eb7a50f70d1853386e0696fee7e5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167000
Reviewed-by: Noel Grandin 
Tested-by: Jenkins

diff --git a/cppuhelper/Library_cppuhelper.mk b/cppuhelper/Library_cppuhelper.mk
index 3a1b4b776f66..5e8fe1616435 100644
--- a/cppuhelper/Library_cppuhelper.mk
+++ b/cppuhelper/Library_cppuhelper.mk
@@ -39,6 +39,10 @@ $(eval $(call gb_Library_use_static_libraries,cppuhelper,\
findsofficepath \
 ))
 
+$(eval $(call gb_Library_use_externals,cppuhelper,\
+boost_headers \
+))
+
 ifeq ($(OS),iOS)
 $(eval $(call gb_Library_add_cxxflags,cppuhelper,\
 $(gb_OBJCXXFLAGS) \
diff --git a/cppuhelper/source/servicemanager.cxx 
b/cppuhelper/source/servicemanager.cxx
index 415d0edb0e3c..32b4976cf1e1 100644
--- a/cppuhelper/source/servicemanager.cxx
+++ b/cppuhelper/source/servicemanager.cxx
@@ -68,10 +68,7 @@ void insertImplementationMap(
 assert(destination != nullptr);
 for (const auto& [rName, rImpls] : source)
 {
-std::vector<
-std::shared_ptr<
-cppuhelper::ServiceManager::Data::Implementation > > & impls
-= (*destination)[rName];
+auto & impls = (*destination)[rName];
 impls.insert(impls.end(), rImpls.begin(), rImpls.end());
 }
 }
@@ -87,13 +84,9 @@ void removeFromImplementationMap(
 assert(map != nullptr);
 for (const auto& rElement : elements)
 {
-cppuhelper::ServiceManager::Data::ImplementationMap::iterator j(
-map->find(rElement));
+auto j(map->find(rElement));
 assert(j != map->end());
-std::vector<
-std::shared_ptr<
-cppuhelper::ServiceManager::Data::Implementation > >::iterator
-k(std::find(j->second.begin(), j->second.end(), implementation));
+auto k(std::find(j->second.begin(), j->second.end(), implementation));
 assert(k != j->second.end());
 j->second.erase(k);
 if (j->second.empty()) {
@@ -1139,7 +1132,7 @@ css::uno::Reference< css::container::XEnumeration >
 cppuhelper::ServiceManager::createContentEnumeration(
 OUString const & aServiceName)
 {
-std::vector< std::shared_ptr< Data::Implementation > > impls;
+boost::container::small_vector< std::shared_ptr< Data::Implementation >, 2 
> impls;
 {
 std::unique_lock g(m_aMutex);
 Data::ImplementationMap::const_iterator i(
diff --git a/cppuhelper/source/servicemanager.hxx 
b/cppuhelper/source/servicemanager.hxx
index af80be25a183..8ab144b115ee 100644
--- a/cppuhelper/source/servicemanager.hxx
+++ b/cppuhelper/source/servicemanager.hxx
@@ -32,6 +32,7 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace com::sun::star::lang {
 class XSingleComponentFactory;
@@ -174,7 +175,7 @@ public:
 typedef
 std::unordered_map<
 OUString,
-std::vector< std::shared_ptr< Implementation > > >
+boost::container::small_vector< std::shared_ptr< 
Implementation >, 2 > >
 ImplementationMap;
 
 NamedImplementations namedImplementations;


Re: [Bug 160876] user.documentfoundation.org account generation fails

2024-05-03 Thread Stéphane Guillou

Hi Donald

On 3/5/24 03:38, Donald Baker wrote:
I did not see any place to report a problem with your web site on your 
web site.  Most places have that.

Maybe not you.
It accepted all my account creation information and then called it 
invalid.  I had to set up a documentfoundation account on a different 
sign-in page.
It is possible that my Safari browser used a forbidden character in 
the generation of a random password.  But if so, your site should have 
shown which special characters were valid.
Professionalism is always appreciated - I really miss Quattro Pro and 
Lotus 1-2-3.


You can ask about account issues on the Website mailing list: 
webs...@global.libreoffice.org


If there is a bug on our infrastructure, you can open a report on 
Redmine: https://redmine.documentfoundation.org/


The first bug I was trying to report involved the persistent refusal 
of Calc to allow me to change the format of numbers on a graph axis. 
 Then I noticed a “Source Format” box checked, which I have not seen 
on other spreadsheet programs.  Unchecking the box fixed the problem. 
 But this kind of over-programmed “feature” is not a feature to me. 
 It’s just an unwelcome impediment.  It might have been cool if Calc 
had automatically used the cell format on the axis.  But it should 
never have refused to allow the use to change it.
You can open an enhancement request to improve the UI: 
https://bugs.documentfoundation.org/


Furthermore, I recall that in the old Quattro Pro one could set up a 
graph and then get the same setup as preferences to succeeding graphs 
in the same spreadsheet.  This saved a lot of annoying busywork.


Similar enhancement requests already exist, the preferred solution 
likely being implementing Chart styles. Please feel free to comment on 
those. See for example:


 * allow setting more defaults than just colours:
   https://bugs.documentfoundation.org/show_bug.cgi?id=62860
 * allow multi-selection of chart objects to change them at once:
   https://bugs.documentfoundation.org/show_bug.cgi?id=62860
 * chart style implementation / support:
 o https://bugs.documentfoundation.org/show_bug.cgi?id=62925
 o https://bugs.documentfoundation.org/show_bug.cgi?id=93597
 * once chart styles are available, spreadsheet themes could make use
   of them. See:
   https://bugs.documentfoundation.org/show_bug.cgi?id=48733#c11
 * we also have a wiki page on the topic of chart styles:
   https://wiki.documentfoundation.org/Chart_styles

I hope that helps.


Donald L. Baker
4203 S 109th E Ave #237
Tulsa  OK  74146

On May 2, 2024, at 11:51 AM, 
bugzilla-dae...@bugs.documentfoundation.org wrote:


Regina Henschel  changed bug 160876 


WhatRemoved Added
CC  rb.hensc...@t-online.de


*Comment # 1 
 on 
bug 160876 
 from 
Regina Henschel  *

That is a problem with the infra structure not with LibreOffice. Bugzilla is
the wrong place to report such problem.

For problems with your account please contact Christian Lohmaier or Guilhem
Moulin, e.g. by
IRChttps://web.libera.chat/?chan=#tdf-infra
or mailing listlibreoff...@lists.freedesktop.org.


You are receiving this mail because:

  * You reported the bug.




--
Stéphane Guillou
Quality Assurance Analyst | The Document Foundation

Email:stephane.guil...@libreoffice.org
Matrix: @stragu:matrix.org
Fediverse: @str...@mastodon.indie.host
Web:https://stragu.gitlab.io/


core.git: hwpfilter/source

2024-05-03 Thread Caolán McNamara (via logerrit)
 hwpfilter/source/formula.cxx |2 ++
 hwpfilter/source/lexer.cxx   |2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 3cc6384e41819eb8a5182a9ab7fd8f74d3cea9e5
Author: Caolán McNamara 
AuthorDate: Thu May 2 15:27:44 2024 +0100
Commit: Caolán McNamara 
CommitDate: Fri May 3 09:16:48 2024 +0200

WaE: C6011 Dereferencing NULL pointer warnings

Change-Id: Ibca9433761e7a7f97383991429cf0d575b4ba3d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167018
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/hwpfilter/source/formula.cxx b/hwpfilter/source/formula.cxx
index e220afe9d881..84982dcd9aae 100644
--- a/hwpfilter/source/formula.cxx
+++ b/hwpfilter/source/formula.cxx
@@ -580,6 +580,7 @@ void Formula::parse()
  }
 
  char *buf = static_cast(malloc(a.getLength()+1));
+ assert(buf && "Don't handle OOM conditions");
  bool bStart = false;
  int i, j;
  for( i = 0, j=0 ; i < a.getLength() ; i++){ // rtrim and ltrim 32 10 13
@@ -618,6 +619,7 @@ void Formula::trim()
 {
  int len = strlen(eq);
  char *buf = static_cast(malloc(len+1));
+ assert(buf && "Don't handle OOM conditions");
  bool bStart = false;
  int i, j;
  for( i = 0, j=0 ; i < len ; i++){ // rtrim and ltrim 32 10 13
diff --git a/hwpfilter/source/lexer.cxx b/hwpfilter/source/lexer.cxx
index cb6ae3fc4b49..844432268d92 100644
--- a/hwpfilter/source/lexer.cxx
+++ b/hwpfilter/source/lexer.cxx
@@ -220,7 +220,7 @@ typedef int yy_state_type;
 static yy_state_type yy_get_previous_state YY_PROTO(( ));
 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state 
));
 static int yy_get_next_buffer YY_PROTO(( ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+[[noreturn]] static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
 /* Done after the current pattern has been matched and before the
  * corresponding action - sets up yytext.


core.git: package/source sw/source uui/source vcl/jsdialog vcl/source

2024-05-03 Thread Caolán McNamara (via logerrit)
 package/source/xstor/xstorage.cxx   |   14 +++---
 sw/source/core/access/accpara.cxx   |2 
 sw/source/core/access/acctable.cxx  |7 +--
 sw/source/core/crsr/crstrvl.cxx |2 
 sw/source/core/doc/DocumentContentOperationsManager.cxx |1 
 sw/source/core/doc/DocumentFieldsManager.cxx|2 
 sw/source/core/doc/docdraw.cxx  |3 +
 sw/source/core/doc/docfmt.cxx   |1 
 sw/source/core/doc/doclay.cxx   |2 
 sw/source/core/doc/docredln.cxx |   12 +++--
 sw/source/core/doc/docsort.cxx  |4 -
 sw/source/core/doc/doctxm.cxx   |2 
 sw/source/core/doc/htmltbl.cxx  |2 
 sw/source/core/doc/notxtfrm.cxx |2 
 sw/source/core/doc/swserv.cxx   |1 
 sw/source/core/doc/tblcpy.cxx   |3 -
 sw/source/core/doc/tblrwcl.cxx  |8 ++-
 sw/source/core/docnode/ndsect.cxx   |2 
 sw/source/core/docnode/ndtbl.cxx|2 
 sw/source/core/docnode/ndtbl1.cxx   |2 
 sw/source/core/docnode/node.cxx |1 
 sw/source/core/docnode/nodes.cxx|7 +--
 sw/source/core/docnode/section.cxx  |4 -
 sw/source/core/draw/dview.cxx   |3 -
 sw/source/core/edit/autofmt.cxx |7 +++
 sw/source/core/edit/editsh.cxx  |2 
 sw/source/core/edit/edsect.cxx  |2 
 sw/source/core/edit/edtox.cxx   |2 
 sw/source/core/fields/expfld.cxx|2 
 sw/source/core/frmedt/fecopy.cxx|4 +
 sw/source/core/frmedt/fefly1.cxx|2 
 uui/source/secmacrowarnings.cxx |2 
 vcl/jsdialog/jsdialogbuilder.cxx|2 
 vcl/source/bitmap/Vectorizer.cxx|2 
 vcl/source/control/fmtfield.cxx |1 
 vcl/source/edit/texteng.cxx |2 
 vcl/source/gdi/regionband.cxx   |2 
 vcl/source/helper/strhelper.cxx |2 
 vcl/source/outdev/bitmapex.cxx  |4 -
 vcl/source/outdev/text.cxx  |1 
 vcl/source/treelist/svimpbox.cxx|2 
 vcl/source/treelist/transfer.cxx|3 -
 vcl/source/treelist/treelist.cxx|   35 
 vcl/source/window/builder.cxx   |2 
 vcl/source/window/printdlg.cxx  |2 
 vcl/source/window/scrwnd.cxx|2 
 46 files changed, 104 insertions(+), 70 deletions(-)

New commits:
commit 8662a96c90b56f61bf24380094f217e7170f54be
Author: Caolán McNamara 
AuthorDate: Thu May 2 17:57:22 2024 +0100
Commit: Caolán McNamara 
CommitDate: Fri May 3 09:17:09 2024 +0200

WaE: C6011 Dereferencing NULL pointer warnings

Change-Id: I9b2b86c26e08221c57735c6eda88727aa8a46b5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167021
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/package/source/xstor/xstorage.cxx 
b/package/source/xstor/xstorage.cxx
index d394052c01ce..1abfdf89be4a 100644
--- a/package/source/xstor/xstorage.cxx
+++ b/package/source/xstor/xstorage.cxx
@@ -1416,7 +1416,7 @@ SotElement_Impl* OStorage_Impl::InsertElement( const 
OUString& aName, bool bIsSt
 
 void OStorage_Impl::OpenSubStorage( SotElement_Impl* pElement, sal_Int32 
nStorageMode )
 {
-SAL_WARN_IF( !pElement, "package.xstor", "pElement is not set!" );
+assert(pElement && "pElement is not set!");
 SAL_WARN_IF( !pElement->m_bIsStorage, "package.xstor", "Storage flag is 
not set!" );
 
 ::osl::MutexGuard aGuard( m_xMutex->GetMutex() );
@@ -1437,7 +1437,7 @@ void OStorage_Impl::OpenSubStorage( SotElement_Impl* 
pElement, sal_Int32 nStorag
 
 void OStorage_Impl::OpenSubStream( SotElement_Impl* pElement )
 {
-SAL_WARN_IF( !pElement, "package.xstor", "pElement is not set!" );
+assert(pElement && "pElement is not set!");
 SAL_WARN_IF( pElement->m_bIsStorage, "package.xstor", "Storage flag is 
set!" );
 
 ::osl::MutexGuard aGuard( m_xMutex->GetMutex() );
@@ -1985,7 +1985,7 @@ SotElement_Impl* OStorage::OpenStreamElement_Impl( const 
OUString& aStreamName,
 throw io::IOException( THROW_WHERE );
 }
 
-SAL_WARN_IF( !pElement, "package.xstor", "In case element can not be 
created an exception must be thrown!" );
+assert(pElement && "In case element can not be created an exception must 
be th

About tdf#150082 gssapi

2024-05-03 Thread Julien Nabet

Hello,

I pushed a patch concerning tdf#150082 (LO Base MySQL connector don't 
accept auth via gssapi (missing auth_gssapi_client.dll?) but it 
concerned all OSes except Windows.


Indeed, on Windows, when I enable the build of gss in mk files, I got: 
"gssapi.h file missing"


On Debian, this file can be retrieved from these packages:

bind9-dev
heimdal-multidev
krb5-multidev
libglobus-gssapi-gsi-dev
libgssglue-dev
libkrb5-dev

Reading https://www.gnu.org/software/gss/manual/html_node/Header.html:

"

All standard interfaces (data types and functions) of the official GSS 
API are defined in the header file gss/api.h. The file is taken verbatim 
from the RFC (after correcting a few typos) where it is known as 
gssapi.h. However, to be able to co-exist gracefully with other GSS-API 
implementation, the name gssapi.h was changed.


The header file gss.h includes gss/api.h, and declares a few 
non-standard extensions (by including gss/ext.h), takes care of 
including header files related to all supported mechanisms (e.g., 
gss/krb5.h) and finally adds C++ namespace protection of all 
definitions. Therefore, including gss.h in your project is recommended 
over gss/api.h. If using gss.h instead of gss/api.h causes problems, it 
should be regarded a bug."


When searching about gss/api.h or gss.h, I only find libgss-dev on Debian

So

1) what libs to install on Windows to have one of these files available 
? (and without installing all Kerberos stuff)


2) shouldn't mariadb C connector rather use gss.h instead of gssapi.h ?

Julien


core.git: extras/source

2024-05-03 Thread Julien Nabet (via logerrit)
 extras/source/tipoftheday/formdocuments.svg |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 68008d9f0176c43ecc768af8e3539227640d1519
Author: Julien Nabet 
AuthorDate: Fri May 3 08:04:53 2024 +0200
Commit: Julien Nabet 
CommitDate: Fri May 3 09:51:04 2024 +0200

tdf#160916: typo "Checbox"

Change-Id: Ia06bc947cd1788850251b1386977ef02298a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167030
Reviewed-by: Julien Nabet 
Tested-by: Jenkins

diff --git a/extras/source/tipoftheday/formdocuments.svg 
b/extras/source/tipoftheday/formdocuments.svg
index b6ad08cab3d7..a3d752292fa5 100644
--- a/extras/source/tipoftheday/formdocuments.svg
+++ b/extras/source/tipoftheday/formdocuments.svg
@@ -1 +1 @@
-http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>PDF Form<
 g fill="#48484a">ChecboxRadio ButtonText 
Box
\ No newline at end of file
+http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>PDF Form<
 g fill="#48484a">CheckboxRadio ButtonText 
Box


core.git: desktop/Executable_soffice_bin.mk

2024-05-03 Thread Stephan Bergmann (via logerrit)
 desktop/Executable_soffice_bin.mk |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 9d84957863d274501fe130319d972a3fc2572503
Author: Stephan Bergmann 
AuthorDate: Thu May 2 10:40:35 2024 +0200
Commit: Stephan Bergmann 
CommitDate: Fri May 3 10:23:56 2024 +0200

Simplify condition

...after this got wrapped in an outer

> ifeq ($(OS),EMSCRIPTEN)

in cf0b0f0dd04fae98b686cd5768673c217a58fab6 "Emscripten: Only add the 
--pre-js
code to the soffice executable"

Change-Id: Ic2b9ae7709a06146a206ebaa2ee8881387dae6b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166998
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann 

diff --git a/desktop/Executable_soffice_bin.mk 
b/desktop/Executable_soffice_bin.mk
index dba50e637aba..8ffd04ee1c24 100644
--- a/desktop/Executable_soffice_bin.mk
+++ b/desktop/Executable_soffice_bin.mk
@@ -33,7 +33,7 @@ $(call gb_LinkTarget_get_target,$(call 
gb_Executable_get_linktarget,soffice_bin)
 # don't sort; later can override previous settings!
 $(eval $(call 
gb_Executable_add_prejs,soffice_bin,$(SRCDIR)/static/emscripten/environment.js))
 $(eval $(call gb_Executable_add_prejs,soffice_bin,$(call 
gb_CustomTarget_get_workdir,static/emscripten_fs_image)/soffice.data.js.link))
-ifeq ($(OS)-$(ENABLE_QT5),EMSCRIPTEN-TRUE)
+ifeq ($(ENABLE_QT5),TRUE)
 $(eval $(call 
gb_Executable_add_prejs,soffice_bin,$(SRCDIR)/static/emscripten/soffice_args.js))
 endif
 endif


core.git: dictionaries

2024-05-03 Thread Xisco Fauli (via logerrit)
 dictionaries |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 9490972c04b79065f247b3076a7c53c9ec4fad67
Author: Xisco Fauli 
AuthorDate: Fri May 3 10:44:03 2024 +0200
Commit: Gerrit Code Review 
CommitDate: Fri May 3 10:44:03 2024 +0200

Update git submodules

* Update dictionaries from branch 'master'
  to 0ca7301c3c00d6e7936fd912ba775d0008f7fee4
  - upgrade Ukrainian dictionaries to 6.4.4

Change-Id: Idf246940bdf58844212420975ab52c19b08327ec
Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/166872
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
Reviewed-by: Andriy Rysin 

diff --git a/dictionaries b/dictionaries
index 8c5b63124f5c..0ca7301c3c00 16
--- a/dictionaries
+++ b/dictionaries
@@ -1 +1 @@
-Subproject commit 8c5b63124f5cedf97ed4799560fdd1202f039511
+Subproject commit 0ca7301c3c00d6e7936fd912ba775d0008f7fee4


dictionaries.git: uk_UA/description.xml uk_UA/uk_UA.aff uk_UA/uk_UA.dic

2024-05-03 Thread Xisco Fauli (via logerrit)
 uk_UA/description.xml |2 
 uk_UA/uk_UA.aff   | 2459 
 uk_UA/uk_UA.dic   |142223 
+-
 3 files changed, 74844 insertions(+), 69840 deletions(-)

New commits:
commit 0ca7301c3c00d6e7936fd912ba775d0008f7fee4
Author: Xisco Fauli 
AuthorDate: Mon Apr 29 18:14:57 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri May 3 10:44:03 2024 +0200

upgrade Ukrainian dictionaries to 6.4.4

Change-Id: Idf246940bdf58844212420975ab52c19b08327ec
Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/166872
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
Reviewed-by: Andriy Rysin 

diff --git a/uk_UA/description.xml b/uk_UA/description.xml
index 4941499..f221da9 100644
--- a/uk_UA/description.xml
+++ b/uk_UA/description.xml
@@ -1,6 +1,6 @@
 
 http://openoffice.org/extensions/description/2006"; 
xmlns:d="http://openoffice.org/extensions/description/2006";  
xmlns:xlink="http://www.w3.org/1999/xlink";>
-
+
 
 
 Ukrainian spelling dictionary, hyphenation rules, 
and thesaurus
diff --git a/uk_UA/uk_UA.aff b/uk_UA/uk_UA.aff
index 3faea89..2343c2a 100644
--- a/uk_UA/uk_UA.aff
+++ b/uk_UA/uk_UA.aff
@@ -287,12 +287,12 @@ SFX ( ін ьонах лін
 SFX ( ір ьорах лір
 SFX ( іт ьотах літ
 SFX ) Y 6
+SFX ) сти дучи [аея]сти
 SFX ) атися учись жатися
 SFX ) атися учися жатися ###
-SFX ) стися дучись ястися
-SFX ) стися дучися ястися ###
 SFX ) ати учи жати
-SFX ) сти дучи ясти
+SFX ) стися дучись [аея]стися
+SFX ) стися дучися [аея]стися ###
 SFX * Y 3
 SFX * ік оці ік
 SFX * іг озі іг
@@ -326,126 +326,126 @@ SFX - ь ей ь
 SFX - ь ям ь
 SFX - ь ями ь
 SFX - ь ях ь
-SFX . Y 5
-SFX . е а ще
-SFX . е 0 ще
-SFX . е ам ще
-SFX . е ами ще
-SFX . е ах ще
-SFX 0 Y 113
-SFX 0 ій ою ій
-SFX 0 ій оєві ій
-SFX 0 ій оєм ій
-SFX 0 ій ої ій
-SFX 0 іб обі .іб
-SFX 0 ів ові .ів
-SFX 0 ід оді .ід
-SFX 0 іж ожі .іж
-SFX 0 із озі .із
-SFX 0 ім омі .ім
-SFX 0 ін оні .ін
-SFX 0 іп опі .іп
-SFX 0 ір орі .ір
-SFX 0 іс осі .іс
-SFX 0 іт оті .іт
-SFX 0 іш оші .іш
-SFX 0 ізд озді ізд
-SFX 0 ізт озті ізт
-SFX 0 ірд орді ірд
-SFX 0 ірт орті ірт
-SFX 0 ісд осді ісд
-SFX 0 іст ості іст
-SFX 0 ізд озду ізд
-SFX 0 ізк озку ізк
-SFX 0 ізт озту ізт
-SFX 0 ірд орду ірд
-SFX 0 ірк орку ірк
-SFX 0 ірт орту ірт
-SFX 0 ісд осду ісд
-SFX 0 іск оску іск
-SFX 0 іст осту іст
-SFX 0 ізд оздові ізд
-SFX 0 ізк озкові ізк
-SFX 0 ізт озтові ізт
-SFX 0 ірд ордові ірд
-SFX 0 ірк оркові ірк
-SFX 0 ірт ортові ірт
-SFX 0 ісд осдові ісд
-SFX 0 іск оскові іск
-SFX 0 іст остові іст
-SFX 0 ізд оздом ізд
-SFX 0 ізк озком ізк
-SFX 0 ізт озтом ізт
-SFX 0 ірд ордом ірд
-SFX 0 ірк орком ірк
-SFX 0 ірт ортом ірт
-SFX 0 ісд осдом ісд
-SFX 0 іск оском іск
-SFX 0 іст остом іст
-SFX 0 іб обові іб
-SFX 0 ід одові ід
-SFX 0 іг огові іг
-SFX 0 із озові із
-SFX 0 ік окові ік
-SFX 0 іл олові іл
-SFX 0 ім омові ім
-SFX 0 ін онові ін
-SFX 0 іп опові іп
-SFX 0 ір орові ір
-SFX 0 іс осові іс
-SFX 0 іт отові іт
-SFX 0 ік оці потік
-SFX 0 іж ожу іж
-SFX 0 іш ошу іш
-SFX 0 іж ожем іж
-SFX 0 іш ошем іш
-SFX 0 іж ожеві іж
-SFX 0 іш ошеві іш
-SFX 0 інь оню інь
-SFX 0 інь оневі інь
-SFX 0 інь онем інь
-SFX 0 інь оні інь
-SFX 0 іль олю іль
-SFX 0 іль олеві іль
-SFX 0 іль олем іль
-SFX 0 іль олі іль
-SFX 0 іб обу іб
-SFX 0 ів ову ів
-SFX 0 ід оду ід
-SFX 0 іг огу іг
-SFX 0 із озу із
-SFX 0 ік оку ік
-SFX 0 іл олу іл
-SFX 0 ім ому ім
-SFX 0 ін ону ін
-SFX 0 іп опу іп
-SFX 0 ір ору ір
-SFX 0 іс осу іс
-SFX 0 іт оту іт
-SFX 0 іч очу іч
-SFX 0 іб обом іб
-SFX 0 ів овом ів
-SFX 0 ід одом ід
-SFX 0 іг огом іг
-SFX 0 із озом із
-SFX 0 ік оком ік
-SFX 0 іл олом іл
-SFX 0 ім омом ім
-SFX 0 ін оном ін
-SFX 0 іп опом іп
-SFX 0 ір ором ір
-SFX 0 іс осом іс
-SFX 0 іт отом іт
-SFX 0 іч очом іч
-SFX 0 ік оці стік
-SFX 0 івш овшу івш
-SFX 0 івш овшеві івш
-SFX 0 івш овшем івш
-SFX 0 івш овші івш
-SFX 0 ість остю ість
-SFX 0 ість остеві ість
-SFX 0 ість остем ість
-SFX 0 ість ості ість
+SFX . Y 113
+SFX . ій ою ій
+SFX . ій оєві ій
+SFX . ій оєм ій
+SFX . ій ої ій
+SFX . іб обі .іб
+SFX . ів ові .ів
+SFX . ід оді .ід
+SFX . іж ожі .іж
+SFX . із озі .із
+SFX . ім омі .ім
+SFX . ін оні .ін
+SFX . іп опі .іп
+SFX . ір орі .ір
+SFX . іс осі .іс
+SFX . іт оті .іт
+SFX . іш оші .іш
+SFX . ізд озді ізд
+SFX . ізт озті ізт
+SFX . ірд орді ірд
+SFX . ірт орті ірт
+SFX . ісд осді ісд
+SFX . іст ості іст
+SFX . ізд озду ізд
+SFX . ізк озку ізк
+SFX . ізт озту ізт
+SFX . ірд орду ірд
+SFX . ірк орку ірк
+SFX . ірт орту ірт
+SFX . ісд осду ісд
+SFX . іск оску іск
+SFX . іст осту іст
+SFX . ізд оздові ізд
+SFX . ізк озкові ізк
+SFX . ізт озтові ізт
+SFX . ірд ордові ірд
+SFX . ірк оркові ірк
+SFX . ірт ортові ірт
+SFX . ісд осдові ісд
+SFX . іск оскові іск
+SFX . іст остові іст
+SFX . ізд оздом ізд
+SFX . ізк озком ізк
+SFX . ізт озтом ізт
+SFX . ірд ордом ірд
+SFX . ірк орком ірк
+SFX . ірт ортом ірт
+SFX . ісд осдом ісд
+SFX . іск оском іск
+SFX . іст остом іст
+SFX . іб обові іб
+SFX . ід одові ід
+SFX . іг огові іг
+SFX . із озові із

core.git: comphelper/source xmloff/source

2024-05-03 Thread Mike Kaganski (via logerrit)
 comphelper/source/container/embeddedobjectcontainer.cxx |   45 ++--
 xmloff/source/draw/shapeexport.cxx  |   22 ---
 2 files changed, 42 insertions(+), 25 deletions(-)

New commits:
commit 2aa310cfe0bc10e7bf079147d379f6eb7d061b74
Author: Mike Kaganski 
AuthorDate: Fri May 3 08:14:16 2024 +0500
Commit: Mike Kaganski 
CommitDate: Fri May 3 11:19:04 2024 +0200

tdf#160915: make own OLE objects obey AddReplacementImages setting

Change-Id: I25ce3c920dc8ba25d0ac14310ff9cba8a4c23c6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167026
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx 
b/comphelper/source/container/embeddedobjectcontainer.cxx
index 1bbf7b847fe4..0f831db3d6c5 100644
--- a/comphelper/source/container/embeddedobjectcontainer.cxx
+++ b/comphelper/source/container/embeddedobjectcontainer.cxx
@@ -36,6 +36,8 @@
 #include 
 #include 
 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -1158,6 +1160,15 @@ namespace {
 
 }
 
+static bool AlwaysStoreReplacementImages(const 
uno::Reference& xObj)
+{
+const auto clsid = xObj->getClassID();
+if (clsid == MimeConfigurationHelper::GetSequenceClassID(SO3_SCH_CLASSID)
+|| clsid == 
MimeConfigurationHelper::GetSequenceClassID(SO3_SM_CLASSID))
+return false;
+return true;
+}
+
 bool EmbeddedObjectContainer::StoreAsChildren(bool _bOasisFormat,bool 
_bCreateEmbedded, bool _bAutoSaveEvent,
   const uno::Reference < 
embed::XStorage >& _xStorage)
 {
@@ -1176,26 +1187,28 @@ bool EmbeddedObjectContainer::StoreAsChildren(bool 
_bOasisFormat,bool _bCreateEm
 
 uno::Reference < io::XInputStream > xStream;
 OUString aMediaType;
-
-sal_Int32 nCurState = xObj->getCurrentState();
-if ( nCurState == embed::EmbedStates::LOADED || nCurState == 
embed::EmbedStates::RUNNING )
+if 
(officecfg::Office::Common::Save::Graphic::AddReplacementImages::get()
+|| AlwaysStoreReplacementImages(xObj))
 {
-// means that the object is not active
-// copy replacement image from old to new container
-xStream = GetGraphicStream( xObj, &aMediaType );
-}
+sal_Int32 nCurState = xObj->getCurrentState();
+if (nCurState == embed::EmbedStates::LOADED
+|| nCurState == embed::EmbedStates::RUNNING)
+{
+// means that the object is not active
+// copy replacement image from old to new container
+xStream = GetGraphicStream(xObj, &aMediaType);
+}
 
-if ( !xStream.is() && getUserAllowsLinkUpdate() )
-{
-// the image must be regenerated
-// TODO/LATER: another aspect could be used
-if ( xObj->getCurrentState() == embed::EmbedStates::LOADED 
)
+if (!xStream.is() && getUserAllowsLinkUpdate())
+{
+// the image must be regenerated
+// TODO/LATER: another aspect could be used
+if (xObj->getCurrentState() == 
embed::EmbedStates::LOADED)
 bSwitchBackToLoaded = true;
 
-xStream = GetGraphicReplacementStream(
-
embed::Aspects::MSOLE_CONTENT,
-xObj,
-&aMediaType );
+xStream = 
GetGraphicReplacementStream(embed::Aspects::MSOLE_CONTENT, xObj,
+  &aMediaType);
+}
 }
 
 if ( _bOasisFormat || (xLink.is() && xLink->isLink()) )
diff --git a/xmloff/source/draw/shapeexport.cxx 
b/xmloff/source/draw/shapeexport.cxx
index a701fff5dd12..0f150c847cd2 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -2526,8 +2526,8 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
 
 //Resolves: fdo#62461 put preferred image first above, followed by
 //fallback here
-const bool bAddReplacementImages = 
officecfg::Office::Common::Save::Graphic::AddReplacementImages::get();
-if( !bIsEmptyPresObj && bAddReplacementImages)
+if (!bIsEmptyPresObj
+&& 
officecfg::Office::Common::Save::Graphic::AddReplacementImages::get())
 {
 uno::Reference xReplacementGraphic;
 xPropSet->getPropertyValue("ReplacementGraphic") >>= 
xReplacementGraphic;
@@ -3574,13 +3574,16 @@ void XMLShapeExport::ImpExportMediaShape

Re: About tdf#150082 gssapi

2024-05-03 Thread Michael Stahl

On 03/05/2024 09:27, Julien Nabet wrote:

Hello,

I pushed a patch concerning tdf#150082 (LO Base MySQL connector don't 
accept auth via gssapi (missing auth_gssapi_client.dll?) but it 
concerned all OSes except Windows.


Indeed, on Windows, when I enable the build of gss in mk files, I got: 
"gssapi.h file missing"

...
1) what libs to install on Windows to have one of these files available 
? (and without installing all Kerberos stuff)


GSSAPI doesn't exist on Windows, but there is SSPI (in the Windows SDK) 
which serves the same purpose.





core.git: Branch 'libreoffice-7-6-7' - sc/source

2024-05-03 Thread Miklos Vajna (via logerrit)
 sc/source/core/data/column3.cxx |5 +
 1 file changed, 5 insertions(+)

New commits:
commit 1f49854c0d18000f52d3ad4525bb52b2f35cc064
Author: Miklos Vajna 
AuthorDate: Wed Apr 24 09:37:35 2024 +0200
Commit: Michael Stahl 
CommitDate: Fri May 3 11:42:03 2024 +0200

sc: fix crash in ScColumn::SetEditText()

Crashreport:

> SIG   Fatal signal received: SIGSEGV code: 128 for address: 0x0
> program/libsclo.so
>   ScColumn::SetEditText(int, std::unique_ptr >)
>   sc/source/core/data/column3.cxx:2362
> program/libsclo.so
>   ScTable::SetEditText(short, int, std::unique_ptr >)
>   
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:395
> program/libsclo.so
>   ScDocument::SetEditText(ScAddress const&, 
std::unique_ptr >)
>   
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:395
> program/libsclo.so
>   ScDocFunc::SetEditCell(ScAddress const&, EditTextObject const&, 
bool)
>   
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:395
> program/libsclo.so
>   (anonymous 
namespace)::finalizeFormulaProcessing(std::shared_ptr<(anonymous 
namespace)::FormulaProcessingContext>)
>   sc/source/ui/view/viewfunc.cxx:565

Change-Id: I331ca8784702fdcb0ebad6a0a73390dbe2615ece
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166612
Tested-by: Jenkins
Reviewed-by: Miklos Vajna 
(cherry picked from commit e3ce4aad47c052dcd67107f7c91336f4ecc949be)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166526
Reviewed-by: Xisco Fauli 
(cherry picked from commit 58b85fc5e4ebe6c8a77e2b1935c23bf0ebebad0a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166848
Tested-by: Michael Stahl 
Reviewed-by: Michael Stahl 
Reviewed-by: Eike Rathke 

diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index f0f4cc83263b..5a1582e560d7 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -2358,6 +2358,11 @@ bool ScColumn::SetString( SCROW nRow, SCTAB nTabP, const 
OUString& rString,
 
 void ScColumn::SetEditText( SCROW nRow, std::unique_ptr 
pEditText )
 {
+if (!pEditText)
+{
+return;
+}
+
 pEditText->NormalizeString(GetDoc().GetSharedStringPool());
 std::vector aNewSharedRows;
 sc::CellStoreType::iterator it = GetPositionToInsert(nRow, aNewSharedRows, 
false);


core.git: svgio/inc svgio/qa svgio/source

2024-05-03 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgstyleattributes.hxx  |8 +
 svgio/qa/cppunit/SvgImportTest.cxx|   11 +++
 svgio/qa/cppunit/data/contextStroke.svg   |   14 +
 svgio/source/svgreader/svgmarkernode.cxx  |2 -
 svgio/source/svgreader/svgstyleattributes.cxx |   37 +++---
 5 files changed, 68 insertions(+), 4 deletions(-)

New commits:
commit d75a37a5829dfcb915f7190d4453c4d4fa25e579
Author: Xisco Fauli 
AuthorDate: Thu May 2 22:16:36 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri May 3 11:50:42 2024 +0200

tdf#155651: Add support for "context-stroke"

Change-Id: Ib4f4a7b644d0d6c6b36e31b80fd7adc18999110d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167024
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgstyleattributes.hxx b/svgio/inc/svgstyleattributes.hxx
index c5c095462f3d..61a3816e82cb 100644
--- a/svgio/inc/svgstyleattributes.hxx
+++ b/svgio/inc/svgstyleattributes.hxx
@@ -247,10 +247,15 @@ namespace svgio::svgreader
 // #121221# Defines if evtl. an empty array *is* set
 boolmbStrokeDasharraySet : 1;
 
+// tdf#155651 Defines if 'context-stroke' is used in stroke
+boolmbContextStroke : 1;
+
 // tdf#94765 Check id references in gradient/pattern getters
 OUStringmaNodeFillURL;
 OUStringmaNodeStrokeURL;
 
+const basegfx::BColor*  maContextStroke;
+
 /// internal helpers
 void add_fillGradient(
 const basegfx::B2DPolyPolygon& rPath,
@@ -327,6 +332,9 @@ namespace svgio::svgreader
 /// stroke content
 const basegfx::BColor* getStroke() const;
 
+/// context stroke content
+const basegfx::BColor* getContextStroke() const;
+
 /// stop color content
 const basegfx::BColor& getStopColor() const;
 
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 01463a894dd5..c12f5abaaf16 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -646,6 +646,17 @@ CPPUNIT_TEST_FIXTURE(Test, testMarkerOrient)
 assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, 
"xy33"_ostr, "1");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testContextStroke)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/contextStroke.svg");
+
+assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/line"_ostr, "color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[2]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[3]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[4]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testMarkerInPresentation)
 {
 xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/markerInPresentation.svg");
diff --git a/svgio/qa/cppunit/data/contextStroke.svg 
b/svgio/qa/cppunit/data/contextStroke.svg
new file mode 100644
index ..5a9b27d69c84
--- /dev/null
+++ b/svgio/qa/cppunit/data/contextStroke.svg
@@ -0,0 +1,14 @@
+http://www.w3.org/2000/svg"; viewBox="0 0 100 100">
+  
+path {
+  fill: none;
+  stroke-width: 4px;
+  marker: url(#diamond);
+}
+  
+  
+
+  
+
+  
+
diff --git a/svgio/source/svgreader/svgmarkernode.cxx 
b/svgio/source/svgreader/svgmarkernode.cxx
index 083471b49c6b..2279920634a6 100644
--- a/svgio/source/svgreader/svgmarkernode.cxx
+++ b/svgio/source/svgreader/svgmarkernode.cxx
@@ -174,7 +174,7 @@ namespace svgio::svgreader
 
 const drawinglayer::primitive2d::Primitive2DContainer& 
SvgMarkerNode::getMarkerPrimitives() const
 {
-if(aPrimitives.empty() && Display::None != getDisplay())
+if(Display::None != getDisplay())
 {
 decomposeSvgNode(const_cast< SvgMarkerNode* 
>(this)->aPrimitives, true);
 }
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 763a7a3cdd96..0253aa42e071 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -817,6 +817,11 @@ namespace svgio::svgreader
 rMarkerTransform.identity();
 rClipRange.reset();
 
+// Set the current stroke to the marker before calling 
getMarkerPrimitives,
+// which calls decomposeSvgNode to decompose the children of the 
marker.
+// If any of the children uses 'stroke="context-stroke"', then it 
will use it

core.git: Branch 'libreoffice-7-6' - vcl/skia

2024-05-03 Thread Patrick Luby (via logerrit)
 vcl/skia/gdiimpl.cxx |   20 
 1 file changed, 20 insertions(+)

New commits:
commit 9fc1e9e0d438a0a36e1e93826312170c9c2dac2a
Author: Patrick Luby 
AuthorDate: Fri Apr 26 21:29:10 2024 -0400
Commit: Michael Stahl 
CommitDate: Fri May 3 11:51:37 2024 +0200

tdf#153306 prevent subpixel shifting of X coordinate

HACK: for some unknown reason, if the X coordinate of the
path's bounds is more than 1024, SkBlendMode::kExclusion will
shift by about a half a pixel to the right with Skia/Metal on
a Retina display. Weirdly, if the same polygon is repeatedly
drawn, the total shift is cumulative so if the drawn polygon
is more than a few pixels wide, the blinking cursor in Writer
will exhibit this bug but only for one thin vertical slice at
a time. Apparently, shifting drawing a very tiny amount to
the left seems to be enough to quell this runaway cumulative
X coordinate shift.

Change-Id: Iabe9078e416b0dde003ee61c88817ff970cc8d39
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166768
Tested-by: Jenkins
Reviewed-by: Patrick Luby 
Reviewed-by: Michael Stahl 

diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index a6e030924ab6..eb6faeaa99d2 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -1489,6 +1489,26 @@ void SkiaSalGraphicsImpl::invert(basegfx::B2DPolygon 
const& rPoly, SalInvert eFl
 aPaint.setShader(
 aBitmap.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat, 
SkSamplingOptions()));
 }
+
+#ifdef SK_METAL
+// tdf#153306 prevent subpixel shifting of X coordinate
+// HACK: for some unknown reason, if the X coordinate of the
+// path's bounds is more than 1024, SkBlendMode::kExclusion will
+// shift by about a half a pixel to the right with Skia/Metal on
+// a Retina display. Weirdly, if the same polygon is repeatedly
+// drawn, the total shift is cumulative so if the drawn polygon
+// is more than a few pixels wide, the blinking cursor in Writer
+// will exhibit this bug but only for one thin vertical slice at
+// a time. Apparently, shifting drawing a very tiny amount to
+// the left seems to be enough to quell this runaway cumulative
+// X coordinate shift.
+if (isGPU())
+{
+SkMatrix aMatrix;
+aMatrix.set(SkMatrix::kMTransX, -0.25);
+getDrawCanvas()->concat(aMatrix);
+}
+#endif
 }
 getDrawCanvas()->drawPath(aPath, aPaint);
 postDraw();


core.git: Branch 'libreoffice-24-2' - sw/inc sw/qa sw/source

2024-05-03 Thread Miklos Vajna (via logerrit)
 sw/inc/IDocumentSettingAccess.hxx |1 +
 sw/qa/uibase/uno/uno.cxx  |   24 
 sw/source/core/doc/DocumentSettingManager.cxx |   10 ++
 sw/source/core/inc/DocumentSettingManager.hxx |1 +
 sw/source/filter/xml/xmlexp.cxx   |1 +
 sw/source/filter/xml/xmlimp.cxx   |   10 ++
 sw/source/uibase/uno/SwXDocumentSettings.cxx  |   18 ++
 7 files changed, 65 insertions(+)

New commits:
commit 799767d5670efc7f996892de5dd7d1afdb4a6cce
Author: Miklos Vajna 
AuthorDate: Mon Apr 29 10:39:43 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri May 3 11:55:12 2024 +0200

tdf#160833 sw: add a DoNotMirrorRtlDrawObjs compat flag

The DOCX bugdoc has a circle shape anchored inside an RTL paragraph:
this shows up on the right hand side in Word, but on the left hand side
in Writer.

What happens is that Writer implicitly mirrors draw objects anchored in
RTL paragraphs, while Word doesn't do this.

Start fixing the problem by adding a new layout compatibility flag that
can be used by the DOCX import in the future, to leave the behavior
unchanged for new & existing ODT documents.

An alternative would be to do something similar to the DOC import's
SwWW8ImplReader::MiserableRTLGraphicsHack(), but 1) we don't have the
page margins by the time we import the shape and 2) as its name says, it
doesn't feel like a clean solution, it's better to handle this
difference at a layout level.

Change-Id: I2ec067d86c7fbdbe57e4cd9547015fe25a9a56b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166820
Reviewed-by: Miklos Vajna 
Tested-by: Jenkins
(cherry picked from commit c675eaf923cf579670b8ba2f7794b47be7fad39e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166845
Reviewed-by: Xisco Fauli 

diff --git a/sw/inc/IDocumentSettingAccess.hxx 
b/sw/inc/IDocumentSettingAccess.hxx
index 0dd9467bdf13..264860b854c4 100644
--- a/sw/inc/IDocumentSettingAccess.hxx
+++ b/sw/inc/IDocumentSettingAccess.hxx
@@ -99,6 +99,7 @@ enum class DocumentSettingId
 // tdf#119908 new paragraph justification
 JUSTIFY_LINES_WITH_SHRINKING,
 APPLY_TEXT_ATTR_TO_EMPTY_LINE_AT_END_OF_PARAGRAPH,
+DO_NOT_MIRROR_RTL_DRAW_OBJS,
 // COMPATIBILITY FLAGS END
 BROWSE_MODE,
 HTML_MODE,
diff --git a/sw/qa/uibase/uno/uno.cxx b/sw/qa/uibase/uno/uno.cxx
index d38d0bbfc967..3e6d9c93d51c 100644
--- a/sw/qa/uibase/uno/uno.cxx
+++ b/sw/qa/uibase/uno/uno.cxx
@@ -560,6 +560,30 @@ CPPUNIT_TEST_FIXTURE(SwUibaseUnoTest, 
testAllowTextAfterFloatingTableBreak)
 CPPUNIT_ASSERT(bAllowTextAfterFloatingTableBreak);
 }
 
+CPPUNIT_TEST_FIXTURE(SwUibaseUnoTest, testDoNotMirrorRtlDrawObjs)
+{
+// Given an empty document:
+createSwDoc();
+
+// When checking the state of the DoNotMirrorRtlDrawObjs compat flag:
+uno::Reference xDocument(mxComponent, 
uno::UNO_QUERY);
+uno::Reference xSettings(
+xDocument->createInstance("com.sun.star.document.Settings"), 
uno::UNO_QUERY);
+bool bDoNotMirrorRtlDrawObjs{};
+// Without the accompanying fix in place, this test would have failed with:
+// An uncaught exception of type 
com.sun.star.beans.UnknownPropertyException
+// i.e. the compat flag was not recognized.
+xSettings->getPropertyValue("DoNotMirrorRtlDrawObjs") >>= 
bDoNotMirrorRtlDrawObjs;
+// Then make sure it's false by default:
+CPPUNIT_ASSERT(!bDoNotMirrorRtlDrawObjs);
+
+// And when setting DoNotMirrorRtlDrawObjs=true:
+xSettings->setPropertyValue("DoNotMirrorRtlDrawObjs", uno::Any(true));
+// Then make sure it gets enabled:
+xSettings->getPropertyValue("DoNotMirrorRtlDrawObjs") >>= 
bDoNotMirrorRtlDrawObjs;
+CPPUNIT_ASSERT(bDoNotMirrorRtlDrawObjs);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/doc/DocumentSettingManager.cxx 
b/sw/source/core/doc/DocumentSettingManager.cxx
index 661c001e98c2..14cfa5fd3c24 100644
--- a/sw/source/core/doc/DocumentSettingManager.cxx
+++ b/sw/source/core/doc/DocumentSettingManager.cxx
@@ -256,6 +256,8 @@ bool sw::DocumentSettingManager::get(/*[in]*/ 
DocumentSettingId id) const
 return mbDoNotBreakWrappedTables;
 case DocumentSettingId::ALLOW_TEXT_AFTER_FLOATING_TABLE_BREAK:
 return mbAllowTextAfterFloatingTableBreak;
+case DocumentSettingId::DO_NOT_MIRROR_RTL_DRAW_OBJS:
+return mbDoNotMirrorRtlDrawObjs;
 case DocumentSettingId::JUSTIFY_LINES_WITH_SHRINKING:
 return mbJustifyLinesWithShrinking;
 case DocumentSettingId::NO_NUMBERING_SHOW_FOLLOWBY: return 
mbNoNumberingShowFollowBy;
@@ -450,6 +452,10 @@ void sw::DocumentSettingManager::set(/*[in]*/ 
DocumentSettingId id, /*[in]*/ boo
 mbApplyTextAttrToEmptyLineAtEndOfParagraph = value;
 break;
 
+case DocumentSettin

dictionaries.git: Branch 'libreoffice-7-6' - uk_UA/description.xml uk_UA/uk_UA.aff uk_UA/uk_UA.dic

2024-05-03 Thread Xisco Fauli (via logerrit)
 uk_UA/description.xml |2 
 uk_UA/uk_UA.aff   | 2459 
 uk_UA/uk_UA.dic   |142223 
+-
 3 files changed, 74844 insertions(+), 69840 deletions(-)

New commits:
commit 0c5d6db9f4d3e465547e3a177360662e0f475d62
Author: Xisco Fauli 
AuthorDate: Mon Apr 29 18:14:57 2024 +0200
Commit: Christian Lohmaier 
CommitDate: Fri May 3 12:06:27 2024 +0200

upgrade Ukrainian dictionaries to 6.4.4

Change-Id: Idf246940bdf58844212420975ab52c19b08327ec
Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/166872
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
Reviewed-by: Andriy Rysin 
(cherry picked from commit 0ca7301c3c00d6e7936fd912ba775d0008f7fee4)
Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/166907
Tested-by: Christian Lohmaier 
Reviewed-by: Christian Lohmaier 

diff --git a/uk_UA/description.xml b/uk_UA/description.xml
index 4941499..f221da9 100644
--- a/uk_UA/description.xml
+++ b/uk_UA/description.xml
@@ -1,6 +1,6 @@
 
 http://openoffice.org/extensions/description/2006"; 
xmlns:d="http://openoffice.org/extensions/description/2006";  
xmlns:xlink="http://www.w3.org/1999/xlink";>
-
+
 
 
 Ukrainian spelling dictionary, hyphenation rules, 
and thesaurus
diff --git a/uk_UA/uk_UA.aff b/uk_UA/uk_UA.aff
index 3faea89..2343c2a 100644
--- a/uk_UA/uk_UA.aff
+++ b/uk_UA/uk_UA.aff
@@ -287,12 +287,12 @@ SFX ( ін ьонах лін
 SFX ( ір ьорах лір
 SFX ( іт ьотах літ
 SFX ) Y 6
+SFX ) сти дучи [аея]сти
 SFX ) атися учись жатися
 SFX ) атися учися жатися ###
-SFX ) стися дучись ястися
-SFX ) стися дучися ястися ###
 SFX ) ати учи жати
-SFX ) сти дучи ясти
+SFX ) стися дучись [аея]стися
+SFX ) стися дучися [аея]стися ###
 SFX * Y 3
 SFX * ік оці ік
 SFX * іг озі іг
@@ -326,126 +326,126 @@ SFX - ь ей ь
 SFX - ь ям ь
 SFX - ь ями ь
 SFX - ь ях ь
-SFX . Y 5
-SFX . е а ще
-SFX . е 0 ще
-SFX . е ам ще
-SFX . е ами ще
-SFX . е ах ще
-SFX 0 Y 113
-SFX 0 ій ою ій
-SFX 0 ій оєві ій
-SFX 0 ій оєм ій
-SFX 0 ій ої ій
-SFX 0 іб обі .іб
-SFX 0 ів ові .ів
-SFX 0 ід оді .ід
-SFX 0 іж ожі .іж
-SFX 0 із озі .із
-SFX 0 ім омі .ім
-SFX 0 ін оні .ін
-SFX 0 іп опі .іп
-SFX 0 ір орі .ір
-SFX 0 іс осі .іс
-SFX 0 іт оті .іт
-SFX 0 іш оші .іш
-SFX 0 ізд озді ізд
-SFX 0 ізт озті ізт
-SFX 0 ірд орді ірд
-SFX 0 ірт орті ірт
-SFX 0 ісд осді ісд
-SFX 0 іст ості іст
-SFX 0 ізд озду ізд
-SFX 0 ізк озку ізк
-SFX 0 ізт озту ізт
-SFX 0 ірд орду ірд
-SFX 0 ірк орку ірк
-SFX 0 ірт орту ірт
-SFX 0 ісд осду ісд
-SFX 0 іск оску іск
-SFX 0 іст осту іст
-SFX 0 ізд оздові ізд
-SFX 0 ізк озкові ізк
-SFX 0 ізт озтові ізт
-SFX 0 ірд ордові ірд
-SFX 0 ірк оркові ірк
-SFX 0 ірт ортові ірт
-SFX 0 ісд осдові ісд
-SFX 0 іск оскові іск
-SFX 0 іст остові іст
-SFX 0 ізд оздом ізд
-SFX 0 ізк озком ізк
-SFX 0 ізт озтом ізт
-SFX 0 ірд ордом ірд
-SFX 0 ірк орком ірк
-SFX 0 ірт ортом ірт
-SFX 0 ісд осдом ісд
-SFX 0 іск оском іск
-SFX 0 іст остом іст
-SFX 0 іб обові іб
-SFX 0 ід одові ід
-SFX 0 іг огові іг
-SFX 0 із озові із
-SFX 0 ік окові ік
-SFX 0 іл олові іл
-SFX 0 ім омові ім
-SFX 0 ін онові ін
-SFX 0 іп опові іп
-SFX 0 ір орові ір
-SFX 0 іс осові іс
-SFX 0 іт отові іт
-SFX 0 ік оці потік
-SFX 0 іж ожу іж
-SFX 0 іш ошу іш
-SFX 0 іж ожем іж
-SFX 0 іш ошем іш
-SFX 0 іж ожеві іж
-SFX 0 іш ошеві іш
-SFX 0 інь оню інь
-SFX 0 інь оневі інь
-SFX 0 інь онем інь
-SFX 0 інь оні інь
-SFX 0 іль олю іль
-SFX 0 іль олеві іль
-SFX 0 іль олем іль
-SFX 0 іль олі іль
-SFX 0 іб обу іб
-SFX 0 ів ову ів
-SFX 0 ід оду ід
-SFX 0 іг огу іг
-SFX 0 із озу із
-SFX 0 ік оку ік
-SFX 0 іл олу іл
-SFX 0 ім ому ім
-SFX 0 ін ону ін
-SFX 0 іп опу іп
-SFX 0 ір ору ір
-SFX 0 іс осу іс
-SFX 0 іт оту іт
-SFX 0 іч очу іч
-SFX 0 іб обом іб
-SFX 0 ів овом ів
-SFX 0 ід одом ід
-SFX 0 іг огом іг
-SFX 0 із озом із
-SFX 0 ік оком ік
-SFX 0 іл олом іл
-SFX 0 ім омом ім
-SFX 0 ін оном ін
-SFX 0 іп опом іп
-SFX 0 ір ором ір
-SFX 0 іс осом іс
-SFX 0 іт отом іт
-SFX 0 іч очом іч
-SFX 0 ік оці стік
-SFX 0 івш овшу івш
-SFX 0 івш овшеві івш
-SFX 0 івш овшем івш
-SFX 0 івш овші івш
-SFX 0 ість остю ість
-SFX 0 ість остеві ість
-SFX 0 ість остем ість
-SFX 0 ість ості ість
+SFX . Y 113
+SFX . ій ою ій
+SFX . ій оєві ій
+SFX . ій оєм ій
+SFX . ій ої ій
+SFX . іб обі .іб
+SFX . ів ові .ів
+SFX . ід оді .ід
+SFX . іж ожі .іж
+SFX . із озі .із
+SFX . ім омі .ім
+SFX . ін оні .ін
+SFX . іп опі .іп
+SFX . ір орі .ір
+SFX . іс осі .іс
+SFX . іт оті .іт
+SFX . іш оші .іш
+SFX . ізд озді ізд
+SFX . ізт озті ізт
+SFX . ірд орді ірд
+SFX . ірт орті ірт
+SFX . ісд осді ісд
+SFX . іст ості іст
+SFX . ізд озду ізд
+SFX . ізк озку ізк
+SFX . ізт озту ізт
+SFX . ірд орду ірд
+SFX . ірк орку ірк
+SFX . ірт орту ірт
+SFX . ісд осду ісд
+SFX . іск оску іск
+SFX . іст осту іст
+SFX . ізд оздові ізд
+SFX . ізк озкові ізк
+SFX . ізт озтові ізт
+SFX . ірд ордові ірд
+SFX . ірк оркові ірк
+SFX . ірт ортові ірт
+SFX . ісд осдові ісд
+SFX . іск оскові іск
+SFX . іст остові іст
+SFX . ізд оздом ізд
+SFX . ізк озком із

core.git: Branch 'libreoffice-7-6' - dictionaries

2024-05-03 Thread Xisco Fauli (via logerrit)
 dictionaries |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a542a01832f63016b99b453c90ec4bbe3e86c8e7
Author: Xisco Fauli 
AuthorDate: Fri May 3 12:06:28 2024 +0200
Commit: Gerrit Code Review 
CommitDate: Fri May 3 12:06:28 2024 +0200

Update git submodules

* Update dictionaries from branch 'libreoffice-7-6'
  to 0c5d6db9f4d3e465547e3a177360662e0f475d62
  - upgrade Ukrainian dictionaries to 6.4.4

Change-Id: Idf246940bdf58844212420975ab52c19b08327ec
Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/166872
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
Reviewed-by: Andriy Rysin 
(cherry picked from commit 0ca7301c3c00d6e7936fd912ba775d0008f7fee4)
Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/166907
Tested-by: Christian Lohmaier 
Reviewed-by: Christian Lohmaier 

diff --git a/dictionaries b/dictionaries
index 7aa013596e97..0c5d6db9f4d3 16
--- a/dictionaries
+++ b/dictionaries
@@ -1 +1 @@
-Subproject commit 7aa013596e97ce58bb4def48e6952062ae52cf5f
+Subproject commit 0c5d6db9f4d3e465547e3a177360662e0f475d62


core.git: i18npool/CppunitTest_i18npool_breakiterator.mk i18npool/CustomTarget_breakiterator.mk i18npool/inc i18npool/Library_dict_ja.mk i18npool/Library_dict_zh.mk i18npool/Library_i18npool.mk i18npo

2024-05-03 Thread Jonathan Clark (via logerrit)
 Repository.mk   |2 
 i18npool/CppunitTest_i18npool_breakiterator.mk  |4 
 i18npool/CustomTarget_breakiterator.mk  |   31 
 i18npool/Library_dict_ja.mk |   18 
 i18npool/Library_dict_zh.mk |   18 
 i18npool/Library_i18npool.mk|1 
 i18npool/Module_i18npool.mk |4 
 i18npool/README.md  |   13 
 i18npool/inc/breakiterator_cjk.hxx  |8 
 i18npool/inc/xdictionary.hxx|   94 
 i18npool/qa/cppunit/test_breakiterator.cxx  |   90 
 i18npool/source/breakiterator/breakiterator_cjk.cxx |   52 
 i18npool/source/breakiterator/breakiterator_unicode.cxx |   13 
 i18npool/source/breakiterator/data/ja.dic   |119818 ---
 i18npool/source/breakiterator/data/zh.dic   |251404 

 i18npool/source/breakiterator/gendict.cxx   |  340 
 i18npool/source/breakiterator/xdictionary.cxx   |  490 
 17 files changed, 75 insertions(+), 372325 deletions(-)

New commits:
commit 14c6cde779d64596eab0f4d3f32f181ce2243929
Author: Jonathan Clark 
AuthorDate: Mon Apr 15 17:10:51 2024 -0600
Commit: Caolán McNamara 
CommitDate: Fri May 3 12:30:59 2024 +0200

tdf#49885 Updated CJK BreakIterator to use ICU

Previously, the CJK BreakIterator used custom dictionaries for Chinese
and Japanese. This change removes these custom dictionaries in favor of
the upstream ICU implementation, which uses an externally-maintained
frequency dictionary for these languages.

This change also removes support code for dictionary-based break
iterators, as it is no longer used.

Change-Id: I55c4ce9c842d1751997309fd7446e0a6917915dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166136
Reviewed-by: Caolán McNamara 
Tested-by: Jenkins
Tested-by: Caolán McNamara 

diff --git a/Repository.mk b/Repository.mk
index 9a765f5be26f..e910b6d572b7 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -701,8 +701,6 @@ $(eval $(call 
gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \
 ))
 
 $(eval $(call gb_Helper_register_plugins_for_install,PLAINLIBS_OOO,ooo, \
-dict_ja \
-dict_zh \
 localedata_en \
 localedata_es \
 localedata_euro \
diff --git a/i18npool/CppunitTest_i18npool_breakiterator.mk 
b/i18npool/CppunitTest_i18npool_breakiterator.mk
index 656d9aa75ccd..71e35b796f82 100644
--- a/i18npool/CppunitTest_i18npool_breakiterator.mk
+++ b/i18npool/CppunitTest_i18npool_breakiterator.mk
@@ -30,8 +30,4 @@ $(eval $(call 
gb_CppunitTest_use_components,i18npool_break_iterator,\
i18npool/util/i18npool \
 ))
 
-$(call gb_CppunitTest_get_target,i18npool_break_iterator) : \
-$(call gb_Library_get_target,dict_ja) \
-$(call gb_Library_get_target,dict_zh)
-
 # vim: set noet sw=4 ts=4:
diff --git a/i18npool/CustomTarget_breakiterator.mk 
b/i18npool/CustomTarget_breakiterator.mk
index 8229a5e8f314..80ad2d99bd7b 100644
--- a/i18npool/CustomTarget_breakiterator.mk
+++ b/i18npool/CustomTarget_breakiterator.mk
@@ -11,37 +11,8 @@ $(eval $(call 
gb_CustomTarget_CustomTarget,i18npool/breakiterator))
 
 i18npool_BIDIR := $(call gb_CustomTarget_get_workdir,i18npool/breakiterator)
 
-ifneq ($(filter iOS ANDROID,$(OS)),)
-
 $(call gb_CustomTarget_get_target,i18npool/breakiterator) : \
-   $(i18npool_BIDIR)/dict_ja.data $(i18npool_BIDIR)/dict_zh.data 
$(i18npool_BIDIR)/OpenOffice_dat.c
-
-$(i18npool_BIDIR)/dict_%.data : \
-   $(SRCDIR)/i18npool/source/breakiterator/data/%.dic \
-   $(call gb_Executable_get_runtime_dependencies,gendict) \
-   | $(i18npool_BIDIR)/.dir
-   $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),DIC,1)
-   $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),DIC)
-   $(call gb_Helper_abbreviate_dirs,\
-   $(call gb_Helper_execute,gendict) $< $@ $(patsubst 
$(i18npool_BIDIR)/dict_%.cxx,%,$@))
-   $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),DIC)
-
-else # !iOS ANDROID
-
-$(call gb_CustomTarget_get_target,i18npool/breakiterator) : \
-   $(i18npool_BIDIR)/dict_ja.cxx $(i18npool_BIDIR)/dict_zh.cxx 
$(i18npool_BIDIR)/OpenOffice_dat.c
-
-$(i18npool_BIDIR)/dict_%.cxx : \
-   $(SRCDIR)/i18npool/source/breakiterator/data/%.dic \
-   $(call gb_Executable_get_runtime_dependencies,gendict) \
-   | $(i18npool_BIDIR)/.dir
-   $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),DIC,1)
-   $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),DIC)
-   $(call gb_Helper_abbreviate_dirs,\
-   $(call gb_Helper_execute,gendict) $< $@ $(patsubst 
$(i18npool_BIDIR)/dict_%.cxx,%,$@))
-   $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),DIC)
-
-endif
+   $(i18npool_BIDIR)/OpenOffice_dat.c
 
 i1

core.git: dbaccess/source

2024-05-03 Thread Pierre (via logerrit)
 dbaccess/source/ui/control/FieldDescControl.cxx |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 334585be92eac832e56944b773436bdbefd58adf
Author: Pierre 
AuthorDate: Fri Mar 29 22:22:38 2024 +0100
Commit: Julien Nabet 
CommitDate: Fri May 3 12:35:58 2024 +0200

tdf#160423 Base handle zoned time type correctly

Change-Id: Ib1b8f82295e861edb09e2f87deccc5b0edf8b296
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165560
Reviewed-by: Julien Nabet 
Tested-by: Jenkins

diff --git a/dbaccess/source/ui/control/FieldDescControl.cxx 
b/dbaccess/source/ui/control/FieldDescControl.cxx
index f341482ea92f..8ec4909a62c2 100644
--- a/dbaccess/source/ui/control/FieldDescControl.cxx
+++ b/dbaccess/source/ui/control/FieldDescControl.cxx
@@ -789,6 +789,8 @@ void OFieldDescControl::DisplayData(OFieldDescription* 
pFieldDescr )
 case DataType::DATE:
 case DataType::TIME:
 case DataType::TIMESTAMP:
+case DataType::TIME_WITH_TIMEZONE:
+case DataType::TIMESTAMP_WITH_TIMEZONE:
 DeactivateAggregate( tpLength ); // we don't need a length for 
date types
 DeactivateAggregate( tpTextLen );
 DeactivateAggregate( tpBoolDefault );


core.git: external/mariadb-connector-c

2024-05-03 Thread Julien Nabet (via logerrit)
 external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk |4 
 1 file changed, 4 deletions(-)

New commits:
commit 62b08851dd7866c830124b30d5722b9541cb2d93
Author: Julien Nabet 
AuthorDate: Fri May 3 10:44:03 2024 +0200
Commit: Julien Nabet 
CommitDate: Fri May 3 13:20:51 2024 +0200

Related tdf#150082: remove duplicate gssapi_client/gssapi_errmsg

Change-Id: I38be66163320c1408f5bbb846727994c92e3c246
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167036
Reviewed-by: Julien Nabet 
Tested-by: Julien Nabet 

diff --git a/external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk 
b/external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk
index a5b485b74d13..4a96ef387533 100644
--- a/external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk
+++ b/external/mariadb-connector-c/StaticLibrary_mariadb-connector-c.mk
@@ -70,10 +70,6 @@ $(eval $(call 
gb_StaticLibrary_add_generated_cobjects,mariadb-connector-c,\
UnpackedTarball/mariadb-connector-c/libmariadb/ma_client_plugin \
UnpackedTarball/mariadb-connector-c/plugins/auth/my_auth \
UnpackedTarball/mariadb-connector-c/plugins/auth/caching_sha2_pw \
-   $(ifneq $(filter $(OS),WNT), \
-   UnpackedTarball/mariadb-connector-c/plugins/auth/gssapi_client \
-   UnpackedTarball/mariadb-connector-c/plugins/auth/gssapi_errmsg \
-   ) \
UnpackedTarball/mariadb-connector-c/plugins/pvio/pvio_socket \
$(if $(filter $(OS),WNT), \
UnpackedTarball/mariadb-connector-c/libmariadb/win32_errmsg \


core.git: Branch 'libreoffice-24-2' - 2 commits - drawinglayer/source include/drawinglayer include/vcl svgio/qa svgio/source vcl/skia vcl/source vcl/win

2024-05-03 Thread Mike Kaganski (via logerrit)
 drawinglayer/source/primitive2d/textlayoutdevice.cxx  |   58 
 drawinglayer/source/processor2d/vclprocessor2d.cxx|   28 +
 include/drawinglayer/primitive2d/textlayoutdevice.hxx |2 
 include/vcl/outdev.hxx|7 +
 include/vcl/vcllayout.hxx |5 -
 svgio/qa/cppunit/SvgImportTest.cxx|   85 +-
 svgio/source/svgreader/svgcharacternode.cxx   |   28 +++--
 vcl/skia/gdiimpl.cxx  |2 
 vcl/source/gdi/sallayout.cxx  |   33 +++---
 vcl/source/outdev/map.cxx |8 +
 vcl/source/outdev/text.cxx|   38 ++--
 vcl/win/gdi/DWriteTextRenderer.cxx|   11 +-
 12 files changed, 207 insertions(+), 98 deletions(-)

New commits:
commit 5a25899a9c5c0c4e6fb92ca355ea1e24cec3a747
Author: Mike Kaganski 
AuthorDate: Tue Apr 16 10:48:06 2024 +0500
Commit: Xisco Fauli 
CommitDate: Fri May 3 13:32:31 2024 +0200

tdf#160702: improve text positioning

Opening an SVG with text in different elements (e.g., tspans) in the
same text element performs calculations to position the parts properly
(i.e., the next part will start where the previous part ended, unless
the position in overridden explicitly). These calculations require to
know the text widths. The first problem leas here: the text width was
calculated for a typically small text size (numerically equal to the
pixel size defined in the SVG), but these calculations aren't truly
linear, because font rendering may change depending on font height.
Additionally, the rounding gives much higher error in smaller sizes
than in larger. There was already a workaround for a similar problem
in ViewRedirector::createRedirectedPrimitive2DSequence, where a large
font (with 100 times greater height) was used to increase correctness.
This was also used here, with the same large height (5) used as a
reference.

Then, at the time of wrawing the text at different zoom levels, the
code in VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D
creates a font of a calculated size, and uses it to output the text.
But the font is always created with an integral height, which means,
that for a wanted height of 2.5 (in a zoomed out view), the really
used height will be 3, which is 20% larger; or for wanted height of
2.4, the actual height will be 2 (20% smaller). This resulted in odd
jumps of the text widths, when the text may overlap the following
part, or conversely, create a big gap before the next gap. To try to
mitigate that, the function now takes the difference between the
wanted and the actual font size into account, and adjusts the MapMode
accordingly. This doesn't fix the jumping completely (e.g., because
of the mentioned special handling of small font sizes in the fonts
thenselves, like hinting), but still makes the calculations much more
stable, decreasing the amount of jumping. Similar changes are made in
TextLayouterDevice.

Use of the functions that return text size as a double, not rounded
value, should additionally help improving stability.

Change-Id: I455845d8ca43ee9c06a0fc980947f35d8a25797a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166238
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166468

diff --git a/drawinglayer/source/primitive2d/textlayoutdevice.cxx 
b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
index 5145d84ed2b6..afc0663aa4b0 100644
--- a/drawinglayer/source/primitive2d/textlayoutdevice.cxx
+++ b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
@@ -22,6 +22,8 @@
 #include 
 
 #include 
+
+#include 
 #include 
 #include 
 #include 
@@ -162,56 +164,69 @@ TextLayouterDevice::TextLayouterDevice()
 
 TextLayouterDevice::~TextLayouterDevice() COVERITY_NOEXCEPT_FALSE { 
releaseGlobalVirtualDevice(); }
 
-void TextLayouterDevice::setFont(const vcl::Font& rFont) { 
mrDevice.SetFont(rFont); }
+void TextLayouterDevice::setFont(const vcl::Font& rFont)
+{
+mrDevice.SetFont(rFont);
+mnFontScalingFixX = 1.0;
+mnFontScalingFixY = 1.0;
+}
 
 void TextLayouterDevice::setFontAttribute(const attribute::FontAttribute& 
rFontAttribute,
   double fFontScaleX, double 
fFontScaleY,
   const css::lang::Locale& rLocale)
 {
-setFont(getVclFontFromFontAttribute(rFontAttribute, fFontScaleX, 
fFontScaleY, 0.0, rLocale));
+vcl::Font aFont
+= getVclFontFromFontAttribute(rFontAttribute, fFontScaleX, 
fFontScaleY, 0.0, rLocale);
+setFont(aFont);
+Size aFontSize = aFont.GetFontSize();
+mnFontScalingFixY = fFontScaleY / aFontSize.Height();
+mnFon

Re: About tdf#150082 gssapi

2024-05-03 Thread Mike Kaganski

On 03.05.2024 14:20, Michael Stahl wrote:

On 03/05/2024 09:27, Julien Nabet wrote:
1) what libs to install on Windows to have one of these files 
available ? (and without installing all Kerberos stuff)


GSSAPI doesn't exist on Windows, but there is SSPI (in the Windows SDK) 
which serves the same purpose.


And mariadb-connector-c seems to include SSPI support - at least, its 
plugins/auth [1] contains sspi_client.c, sspi_errmsg.c, and 
sspi_common.h. Possibly it makes sense to check if adding these .c to 
generated cobjects would work?


[1] 
https://github.com/mariadb-corporation/mariadb-connector-c/tree/b323b5462db3751ed29fc3db83c855154f5f5ab4/plugins/auth


--
Best regards,
Mike Kaganski



core.git: cui/source sw/source

2024-05-03 Thread Miklos Vajna (via logerrit)
 cui/source/inc/swpossizetabpage.hxx  |1 +
 cui/source/tabpages/swpossizetabpage.cxx |   27 +--
 sw/source/uibase/shells/drwbassh.cxx |   10 ++
 3 files changed, 32 insertions(+), 6 deletions(-)

New commits:
commit 0f410680461d7ba5f70dd65b2a8263dec15ac357
Author: Miklos Vajna 
AuthorDate: Fri May 3 08:08:29 2024 +0200
Commit: Miklos Vajna 
CommitDate: Fri May 3 13:51:08 2024 +0200

tdf#160833 sw DoNotMirrorRtlDrawObjs: add UI in cui/

The UI code at lcl_ChangeResIdToVerticalOrRTL() was aware that
SwAnchoredObjectPosition::CalcRelPosX() mirrors the position when the
anchor paragraph is RTL, so swapped the "from left" label to a "from
right" label.

Don't do this when the compat option is enabled, so not only we render
correctly but the UI now correctly explains why we came up with the
correct position.

Change-Id: I479ed1f085b249d10be47b66d7a656dc1bd4f936
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167031
Reviewed-by: Miklos Vajna 
Tested-by: Jenkins

diff --git a/cui/source/inc/swpossizetabpage.hxx 
b/cui/source/inc/swpossizetabpage.hxx
index 2e5a15fbebbb..037cede29326 100644
--- a/cui/source/inc/swpossizetabpage.hxx
+++ b/cui/source/inc/swpossizetabpage.hxx
@@ -53,6 +53,7 @@ class SvxSwPosSizeTabPage : public SfxTabPage
 boolm_bPositioningDisabled;
 boolm_bIsMultiSelection;
 boolm_bIsInRightToLeft;
+bool m_bDoNotMirrorRtlDrawObjs = false;
 TriStatem_nProtectSizeState;
 
 SwFrameExample m_aExampleWN;
diff --git a/cui/source/tabpages/swpossizetabpage.cxx 
b/cui/source/tabpages/swpossizetabpage.cxx
index 1a0d14759eac..752af91a1a62 100644
--- a/cui/source/tabpages/swpossizetabpage.cxx
+++ b/cui/source/tabpages/swpossizetabpage.cxx
@@ -37,6 +37,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 
@@ -433,14 +434,16 @@ static std::size_t lcl_GetFrmMapCount(const FrmMap* pMap)
 }
 
 static SvxSwFramePosString::StringId lcl_ChangeResIdToVerticalOrRTL(
-SvxSwFramePosString::StringId eStringId, bool bVertical, bool bRTL)
+SvxSwFramePosString::StringId eStringId, bool bVertical, bool 
bRTL, bool bDontMirrorRTL)
 {
 //special handling of STR_FROMLEFT
 if(SvxSwFramePosString::FROMLEFT == eStringId)
 {
+bool bMirrorRtlDrawObjs = !bDontMirrorRTL;
+bool bSwapLR = bRTL && bMirrorRtlDrawObjs;
 eStringId = bVertical ?
 bRTL ? SvxSwFramePosString::FROMBOTTOM : 
SvxSwFramePosString::FROMTOP :
-bRTL ? SvxSwFramePosString::FROMRIGHT : 
SvxSwFramePosString::FROMLEFT;
+bSwapLR ? SvxSwFramePosString::FROMRIGHT : 
SvxSwFramePosString::FROMLEFT;
 return eStringId;
 }
 if(bVertical)
@@ -749,7 +752,8 @@ WhichRangesContainer SvxSwPosSizeTabPage::GetRanges()
 SID_ATTR_TRANSFORM_AUTOWIDTH, SID_ATTR_TRANSFORM_VERT_ORIENT,
 SID_HTML_MODE, SID_HTML_MODE,
 SID_SW_FOLLOW_TEXT_FLOW, SID_SW_FOLLOW_TEXT_FLOW,
-SID_ATTR_TRANSFORM_HORI_POSITION, SID_ATTR_TRANSFORM_VERT_POSITION
+SID_ATTR_TRANSFORM_HORI_POSITION, SID_ATTR_TRANSFORM_VERT_POSITION,
+SID_ATTR_CHAR_GRABBAG, SID_ATTR_CHAR_GRABBAG
 >);
 return ranges;
 }
@@ -988,6 +992,17 @@ void SvxSwPosSizeTabPage::Reset( const SfxItemSet* rSet)
 }
 m_xFollowCB->save_state();
 
+const SfxGrabBagItem* pGrabBag = GetItem(*rSet, SID_ATTR_CHAR_GRABBAG);
+if (pGrabBag)
+{
+const std::map& rMap = pGrabBag->GetGrabBag();
+auto it = rMap.find("DoNotMirrorRtlDrawObjs");
+if (it != rMap.end())
+{
+it->second >>= m_bDoNotMirrorRtlDrawObjs;
+}
+}
+
 if(m_bHtmlMode)
 {
 m_xHoriMirrorCB->hide();
@@ -1677,7 +1692,7 @@ void SvxSwPosSizeTabPage::FillRelLB(FrmMap const *pMap, 
sal_uInt16 nMapPos, sal_
 {
 SvxSwFramePosString::StringId sStrId1 = 
aAsCharRelationMap[nRelPos].eStrId;
 
-sStrId1 = lcl_ChangeResIdToVerticalOrRTL(sStrId1, 
m_bIsVerticalFrame, m_bIsInRightToLeft);
+sStrId1 = lcl_ChangeResIdToVerticalOrRTL(sStrId1, 
m_bIsVerticalFrame, m_bIsInRightToLeft, m_bDoNotMirrorRtlDrawObjs);
 OUString sEntry = 
SvxSwFramePosString::GetString(sStrId1);
 
rLB.append(weld::toId(&aAsCharRelationMap[nRelPos]), sEntry);
 if (pMap[_nMapPos].nAlign == nAlign)
@@ -1732,7 +1747,7 @@ void SvxSwPosSizeTabPage::FillRelLB(FrmMap const *pMap, 
sal_uInt16 nMapPos, sal_
 if (aRelationMap[nRelPos].nLBRelation == 
static_cast(nBit))
 {
 SvxSwFramePosString::StringId sStrId1 = 
m_xHoriMirrorCB->get_active() ? aRelationMap[nRelPos].eMirrorStrId : 
aRelationMap[nRelPos].eStrId;
-sStrId1 = lcl_ChangeResIdToVerticalOrRTL(sStrId1

core.git: framework/source

2024-05-03 Thread Noel Grandin (via logerrit)
 framework/source/uielement/controlmenucontroller.cxx |   50 +--
 1 file changed, 25 insertions(+), 25 deletions(-)

New commits:
commit 23d5c8ed000adc4d66f24ddd67b73a8e5c8a0511
Author: Noel Grandin 
AuthorDate: Thu May 2 13:10:00 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 14:03:57 2024 +0200

replace createFromAscii with OUString literals in framework

Change-Id: I925d79877d477e6273e0ca8d8de7af391d72bb78
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167038
Reviewed-by: Noel Grandin 
Tested-by: Noel Grandin 

diff --git a/framework/source/uielement/controlmenucontroller.cxx 
b/framework/source/uielement/controlmenucontroller.cxx
index abb4a5762eb5..a4d69afee1fb 100644
--- a/framework/source/uielement/controlmenucontroller.cxx
+++ b/framework/source/uielement/controlmenucontroller.cxx
@@ -39,28 +39,28 @@
 #include 
 #include 
 
-static const char* aCommands[] =
+constexpr OUString aCommands[]
 {
-".uno:ConvertToEdit",
-".uno:ConvertToButton",
-".uno:ConvertToFixed",
-".uno:ConvertToList",
-".uno:ConvertToCheckBox",
-".uno:ConvertToRadio",
-".uno:ConvertToGroup",
-".uno:ConvertToCombo",
-".uno:ConvertToImageBtn",
-".uno:ConvertToFileControl",
-".uno:ConvertToDate",
-".uno:ConvertToTime",
-".uno:ConvertToNumeric",
-".uno:ConvertToCurrency",
-".uno:ConvertToPattern",
-".uno:ConvertToImageControl",
-".uno:ConvertToFormatted",
-".uno:ConvertToScrollBar",
-".uno:ConvertToSpinButton",
-".uno:ConvertToNavigationBar"
+u".uno:ConvertToEdit"_ustr,
+u".uno:ConvertToButton"_ustr,
+u".uno:ConvertToFixed"_ustr,
+u".uno:ConvertToList"_ustr,
+u".uno:ConvertToCheckBox"_ustr,
+u".uno:ConvertToRadio"_ustr,
+u".uno:ConvertToGroup"_ustr,
+u".uno:ConvertToCombo"_ustr,
+u".uno:ConvertToImageBtn"_ustr,
+u".uno:ConvertToFileControl"_ustr,
+u".uno:ConvertToDate"_ustr,
+u".uno:ConvertToTime"_ustr,
+u".uno:ConvertToNumeric"_ustr,
+u".uno:ConvertToCurrency"_ustr,
+u".uno:ConvertToPattern"_ustr,
+u".uno:ConvertToImageControl"_ustr,
+u".uno:ConvertToFormatted"_ustr,
+u".uno:ConvertToScrollBar"_ustr,
+u".uno:ConvertToSpinButton"_ustr,
+u".uno:ConvertToNavigationBar"_ustr
 };
 
 static TranslateId aLabels[] =
@@ -209,7 +209,7 @@ void ControlMenuController::fillPopupMenu( Reference< 
css::awt::XPopupMenu > con
 for (size_t i=0; i < SAL_N_ELEMENTS(aCommands); ++i)
 {
 sal_Int16 nItemId = i + 1;
-OUString sCommand(OUString::createFromAscii(aCommands[i]));
+OUString sCommand(aCommands[i]);
 rPopupMenu->insertItem(nItemId, FwkResId(aLabels[i]), 0, i);
 rPopupMenu->setCommand(nItemId, sCommand);
 rPopupMenu->enableItem(nItemId, false);
@@ -247,7 +247,7 @@ void SAL_CALL ControlMenuController::statusChanged( const 
FeatureStateEvent& Eve
 sal_Int16 nItemId = 0;
 for (size_t i=0; i < SAL_N_ELEMENTS(aCommands); ++i)
 {
-if ( Event.FeatureURL.Complete.equalsAscii( aCommands[i] ))
+if ( Event.FeatureURL.Complete == aCommands[i] )
 {
 nItemId = i + 1;
 break;
@@ -293,9 +293,9 @@ void SAL_CALL ControlMenuController::updatePopupMenu()
 fillPopupMenu( m_xPopupMenu );
 m_aURLToDispatchMap.free();
 
-for (const char* aCommand : aCommands)
+for (const OUString& aCommand : aCommands)
 {
-aTargetURL.Complete = OUString::createFromAscii( aCommand );
+aTargetURL.Complete = aCommand;
 m_xURLTransformer->parseStrict( aTargetURL );
 
 Reference< XDispatch > xDispatch = xDispatchProvider->queryDispatch( 
aTargetURL, OUString(), 0 );


core.git: accessibility/source

2024-05-03 Thread Caolán McNamara (via logerrit)
 accessibility/source/extended/AccessibleBrowseBox.cxx|6 +-
 accessibility/source/extended/AccessibleGridControl.cxx  |7 ++-
 accessibility/source/extended/AccessibleGridControlTable.cxx |2 +-
 accessibility/source/extended/AccessibleGridControlTableCell.cxx |2 +-
 4 files changed, 5 insertions(+), 12 deletions(-)

New commits:
commit 1425cbc50a9183477a12e413a0519867c0a589fa
Author: Caolán McNamara 
AuthorDate: Fri May 3 08:31:26 2024 +0100
Commit: Caolán McNamara 
CommitDate: Fri May 3 15:01:33 2024 +0200

WaE: C6011 Dereferencing NULL pointer warnings

Change-Id: I8a15be14850b9fe48f80820f4308c35748497727
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167034
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/accessibility/source/extended/AccessibleBrowseBox.cxx 
b/accessibility/source/extended/AccessibleBrowseBox.cxx
index 8408c0abe23a..705df2536cfe 100644
--- a/accessibility/source/extended/AccessibleBrowseBox.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBox.cxx
@@ -168,23 +168,19 @@ void SAL_CALL AccessibleBrowseBox::grabFocus()
 }
 
 // XServiceInfo
-
 OUString SAL_CALL AccessibleBrowseBox::getImplementationName()
 {
 return u"com.sun.star.comp.svtools.AccessibleBrowseBox"_ustr;
 }
 
-
 // internal virtual methods
-
 tools::Rectangle AccessibleBrowseBox::implGetBoundingBox()
 {
 vcl::Window* pParent = mpBrowseBox->GetAccessibleParentWindow();
-OSL_ENSURE( pParent, "implGetBoundingBox - missing parent window" );
+assert(pParent && "implGetBoundingBox - missing parent window");
 return mpBrowseBox->GetWindowExtentsRelative( *pParent );
 }
 
-
 AbsoluteScreenPixelRectangle AccessibleBrowseBox::implGetBoundingBoxOnScreen()
 {
 return mpBrowseBox->GetWindowExtentsAbsolute();
diff --git a/accessibility/source/extended/AccessibleGridControl.cxx 
b/accessibility/source/extended/AccessibleGridControl.cxx
index b2577ea588b3..88af9f423d8e 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -178,27 +178,25 @@ void SAL_CALL AccessibleGridControl::grabFocus()
 }
 
 // XServiceInfo ---
-
 OUString SAL_CALL AccessibleGridControl::getImplementationName()
 {
 return u"com.sun.star.accessibility.AccessibleGridControl"_ustr;
 }
 
-
 // internal virtual methods ---
 
 tools::Rectangle AccessibleGridControl::implGetBoundingBox()
 {
 vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
-OSL_ENSURE( pParent, "implGetBoundingBox - missing parent window" );
+assert(pParent && "implGetBoundingBox - missing parent window");
 return m_aTable.GetWindowExtentsRelative( *pParent );
 }
 
-
 AbsoluteScreenPixelRectangle 
AccessibleGridControl::implGetBoundingBoxOnScreen()
 {
 return m_aTable.GetWindowExtentsAbsolute();
 }
+
 // internal helper methods 
 
 css::uno::Reference< css::accessibility::XAccessible > 
AccessibleGridControl::implGetTable()
@@ -210,7 +208,6 @@ css::uno::Reference< css::accessibility::XAccessible > 
AccessibleGridControl::im
 return m_xTable;
 }
 
-
 css::uno::Reference< css::accessibility::XAccessible >
 AccessibleGridControl::implGetHeaderBar( AccessibleTableControlObjType 
eObjType )
 {
diff --git a/accessibility/source/extended/AccessibleGridControlTable.cxx 
b/accessibility/source/extended/AccessibleGridControlTable.cxx
index 1f1a0436951c..9ee3d4af4f56 100644
--- a/accessibility/source/extended/AccessibleGridControlTable.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTable.cxx
@@ -344,7 +344,7 @@ void AccessibleGridControlTable::commitEvent(sal_Int16 
nEventId, const css::uno:
 tools::Rectangle AccessibleGridControlTable::implGetBoundingBox()
 {
 vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
-DBG_ASSERT( pParent, "implGetBoundingBox - missing parent window" );
+assert(pParent && "implGetBoundingBox - missing parent window");
 tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent ));
 tools::Rectangle aTableRect( m_aTable.calcTableRect() );
 tools::Long nX = aGridRect.Left() + aTableRect.Left();
diff --git a/accessibility/source/extended/AccessibleGridControlTableCell.cxx 
b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
index 63bb24304c71..86d3da7ddb32 100644
--- a/accessibility/source/extended/AccessibleGridControlTableCell.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
@@ -320,7 +320,7 @@ namespace accessibility
 tools::Rectangle AccessibleGridControlTableCell::implGetBoundingBox()
 {
 vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
-DBG_ASSERT( pParent, "implGetBoundingBox - missing parent window" );
+assert(pParent && "implGetBoundingBox - mi

Re: About tdf#150082 gssapi

2024-05-03 Thread Julien Nabet

Thank you Michael and Mike for your feedback!

About sspi, I've submitted https://gerrit.libreoffice.org/c/core/+/167057

(just for the record, I didn't put "sspi_common" because with it, it 
fails to build complaining about missing "sspi_common.c")




core.git: dbaccess/source

2024-05-03 Thread Pierre (via logerrit)
 dbaccess/source/ui/relationdesign/RTableConnectionData.cxx |6 --
 dbaccess/source/ui/relationdesign/RelationTableView.cxx|   11 +++
 2 files changed, 11 insertions(+), 6 deletions(-)

New commits:
commit 548fc442f56d9b456e48246caaffe13d996c841f
Author: Pierre 
AuthorDate: Sat Apr 13 19:19:50 2024 +0200
Commit: Julien Nabet 
CommitDate: Fri May 3 15:14:27 2024 +0200

tdf#160375 Base displays and gives the full name of the table

Change-Id: Icc8c6d85cc5a88461b7bd02487513e0e864bacef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166057
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx 
b/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
index 7cb7bb577c0a..c679e462c630 100644
--- a/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
+++ b/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
@@ -38,6 +38,7 @@ using namespace ::com::sun::star::sdbcx;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
 
 ORelationTableConnectionData::ORelationTableConnectionData()
 :m_nUpdateRules(KeyRule::NO_ACTION)
@@ -253,7 +254,8 @@ bool ORelationTableConnectionData::Update()
 
 xKey->setPropertyValue(PROPERTY_NAME,Any(sKeyName));
 xKey->setPropertyValue(PROPERTY_TYPE,Any(KeyType::FOREIGN));
-
xKey->setPropertyValue(PROPERTY_REFERENCEDTABLE,Any(getReferencedTable()->GetTableName()));
+// get the full name of the tables to ensure uniqueness across 
catalogs and schema
+
xKey->setPropertyValue(PROPERTY_REFERENCEDTABLE,Any(getReferencedTable()->GetComposedName()));
 xKey->setPropertyValue(PROPERTY_UPDATERULE, Any(GetUpdateRules()));
 xKey->setPropertyValue(PROPERTY_DELETERULE, Any(GetDeleteRules()));
 }
@@ -298,7 +300,7 @@ bool ORelationTableConnectionData::Update()
 {
 OUString sReferencedTable;
 xKey->getPropertyValue(PROPERTY_REFERENCEDTABLE) >>= 
sReferencedTable;
-if ( sReferencedTable == getReferencedTable()->GetTableName() )
+if ( sReferencedTable == getReferencedTable()->GetComposedName() )
 {
 xColSup.set(xKey,UNO_QUERY_THROW);
 try
diff --git a/dbaccess/source/ui/relationdesign/RelationTableView.cxx 
b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
index 87a769ce83b3..da82719b7a23 100644
--- a/dbaccess/source/ui/relationdesign/RelationTableView.cxx
+++ b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
@@ -51,6 +51,7 @@ using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::sdbc;
 using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star::container;
 using namespace ::com::sun::star::accessibility;
 
@@ -107,7 +108,8 @@ void ORelationTableView::ReSync()
 // it should be cleaned up, including its data in the document
 pTabWin->clearListBox();
 pTabWin.disposeAndClear();
-arrInvalidTables.push_back(pData->GetTableName());
+// get the full name of the tables to ensure uniqueness across 
catalogs and schema
+arrInvalidTables.push_back(pData->GetComposedName());
 
 std::erase(rTabWinDataList, *aIter);
 continue;
@@ -131,9 +133,9 @@ void ORelationTableView::ReSync()
 if ( !arrInvalidTables.empty() )
 {
 // do the tables to the  connection exist?
-OUString strTabExistenceTest = 
pTabConnData->getReferencingTable()->GetTableName();
+OUString strTabExistenceTest = 
pTabConnData->getReferencingTable()->GetComposedName();
 bool bInvalid = 
std::find(arrInvalidTables.begin(),arrInvalidTables.end(),strTabExistenceTest) 
!= arrInvalidTables.end();
-strTabExistenceTest = 
pTabConnData->getReferencedTable()->GetTableName();
+strTabExistenceTest = 
pTabConnData->getReferencedTable()->GetComposedName();
 bInvalid = bInvalid || 
std::find(arrInvalidTables.begin(),arrInvalidTables.end(),strTabExistenceTest) 
!= arrInvalidTables.end();
 
 if (bInvalid)
@@ -289,7 +291,8 @@ void ORelationTableView::AddTabWin(const OUString& 
_rComposedName, const OUStrin
 }
 
 // enter the new data structure into DocShell
-TTableWindowData::value_type pNewTabWinData(createTableWindowData( 
_rComposedName, rWinName,rWinName ));
+// show the table's full name as window name to ensure uniqueness across 
catalogs and schema
+TTableWindowData::value_type pNewTabWinData(createTableWindowData( 
_rComposedName, rWinName, _rComposedName ));
 pNewTabWinData->ShowAll(false);
 
 // link new window into the window list


core.git: Branch 'distro/collabora/co-24.04' - sw/qa sw/source

2024-05-03 Thread Miklos Vajna (via logerrit)
 sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx |binary
 sw/qa/extras/ww8export/ww8export4.cxx   |   24 
 sw/source/filter/ww8/wrtw8esh.cxx   |6 +++
 3 files changed, 30 insertions(+)

New commits:
commit 3e9ff13bb78c56b5ddc6316b0b73c8a21ea7c0b0
Author: Miklos Vajna 
AuthorDate: Fri May 3 12:00:59 2024 +0200
Commit: Caolán McNamara 
CommitDate: Fri May 3 15:16:56 2024 +0200

Related: tdf#160833 teach DOC export about DoNotMirrorRtlDrawObjs

See

,
no need to undo the import-time mapping in case we know that the
mirroring is avoided at a layout level.

Change-Id: Idbdc10ad327540dc5045e9b19dd42160b5139470
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167048
Tested-by: Jenkins CollaboraOffice 
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx 
b/sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx
new file mode 100644
index ..3b291901f72d
Binary files /dev/null and 
b/sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx differ
diff --git a/sw/qa/extras/ww8export/ww8export4.cxx 
b/sw/qa/extras/ww8export/ww8export4.cxx
index e297ac949afe..b25d3b4a7701 100644
--- a/sw/qa/extras/ww8export/ww8export4.cxx
+++ b/sw/qa/extras/ww8export/ww8export4.cxx
@@ -262,6 +262,30 @@ CPPUNIT_TEST_FIXTURE(Test, testLegalNumbering)
 verify();
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testDOCExportDoNotMirrorRtlDrawObjs)
+{
+// Given a document with a shape, anchored in an RTL paragraph, loaded 
from DOCX:
+createSwDoc("draw-obj-rtl-no-mirror-vml.docx");
+
+// When saving that to DOC:
+saveAndReload(mpFilter);
+
+// Then make sure the shape is on the right margin:
+xmlDocUniquePtr pXmlDoc = parseLayoutDump();
+sal_Int32 nPageRight = getXPath(pXmlDoc, "//page/infos/bounds"_ostr, 
"right"_ostr).toInt32();
+sal_Int32 nBodyRight = getXPath(pXmlDoc, "//body/infos/bounds"_ostr, 
"right"_ostr).toInt32();
+sal_Int32 nShapeLeft
+= getXPath(pXmlDoc, "//SwAnchoredDrawObject/bounds"_ostr, 
"left"_ostr).toInt32();
+CPPUNIT_ASSERT_GREATER(nBodyRight, nShapeLeft);
+sal_Int32 nShapeRight
+= getXPath(pXmlDoc, "//SwAnchoredDrawObject/bounds"_ostr, 
"right"_ostr).toInt32();
+// Without the accompanying fix in place, this test would have failed with:
+// - Expected less than: 12523
+// - Actual  : 12536
+// i.e. the shape was outside of the page right margin area, due to an 
unwanted mapping.
+CPPUNIT_ASSERT_LESS(nPageRight, nShapeRight);
+}
+
 DECLARE_WW8EXPORT_TEST(testNonInlinePageBreakFirstLine, 
"nonInlinePageBreakFirstLine.doc")
 {
 SwDoc* pDoc = getSwDoc();
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx 
b/sw/source/filter/ww8/wrtw8esh.cxx
index f9e1082f9276..3e7087221db0 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -577,6 +577,12 @@ void WW8Export::MiserableRTLFrameFormatHack(SwTwips 
&rLeft, SwTwips &rRight,
 if (SvxFrameDirection::Horizontal_RL_TB != 
m_rDoc.GetTextDirection(rFrameFormat.GetPosition()))
 return;
 
+if 
(m_rDoc.getIDocumentSettingAccess().get(DocumentSettingId::DO_NOT_MIRROR_RTL_DRAW_OBJS))
+{
+// Swap is handled at a layout-level, no need to compensate for it at 
export time.
+return;
+}
+
 SwTwips nWidth = rRight - rLeft;
 SwTwips nPageLeft, nPageRight;
 SwTwips nPageSize = CurrentPageWidth(nPageLeft, nPageRight);


core.git: Branch 'distro/collabora/co-24.04' - writerfilter/CppunitTest_writerfilter_filter.mk writerfilter/Module_writerfilter.mk writerfilter/qa writerfilter/source

2024-05-03 Thread Miklos Vajna (via logerrit)
 writerfilter/CppunitTest_writerfilter_filter.mk  |   55 
+
 writerfilter/Module_writerfilter.mk  |1 
 writerfilter/qa/cppunittests/filter/WriterFilter.cxx |   57 
++
 writerfilter/qa/cppunittests/filter/data/draw-obj-rtl-no-mirror.docx |binary
 writerfilter/source/filter/WriterFilter.cxx  |1 
 5 files changed, 114 insertions(+)

New commits:
commit ffcd1d52574e19ce45b47758d3ed445d2a9da943
Author: Miklos Vajna 
AuthorDate: Thu May 2 08:42:25 2024 +0200
Commit: Caolán McNamara 
CommitDate: Fri May 3 15:17:14 2024 +0200

tdf#160833 DOCX import: use the DoNotMirrorRtlDrawObjs compat flag

The bugdoc has a shape which should be on the right page margin, but it
was on the left page margin.

Use the new compat flag to have a layout that matches Word.

This way we don't need to unmap the tweaked position at export time (a
limitation that the DOC filter has).

(cherry picked from commit 01dcc9a652ecfc65fb674b492afa6f58b0a846db)

Conflicts:
sw/Module_sw.mk

Change-Id: I38dfae370f275d9f0897198e7b0569f2d91dd352
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167033
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Caolán McNamara 

diff --git a/writerfilter/CppunitTest_writerfilter_filter.mk 
b/writerfilter/CppunitTest_writerfilter_filter.mk
new file mode 100644
index ..8b719bba5713
--- /dev/null
+++ b/writerfilter/CppunitTest_writerfilter_filter.mk
@@ -0,0 +1,55 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*
+
+$(eval $(call gb_CppunitTest_CppunitTest,writerfilter_filter))
+
+$(eval $(call gb_CppunitTest_use_externals,writerfilter_filter,\
+   boost_headers \
+   libxml2 \
+))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,writerfilter_filter, \
+writerfilter/qa/cppunittests/filter/WriterFilter \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,writerfilter_filter, \
+basegfx \
+comphelper \
+cppu \
+cppuhelper \
+oox \
+sal \
+subsequenttest \
+test \
+unotest \
+utl \
+tl \
+vcl \
+))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,writerfilter_filter))
+
+$(eval $(call gb_CppunitTest_use_ure,writerfilter_filter))
+$(eval $(call gb_CppunitTest_use_vcl,writerfilter_filter))
+
+$(eval $(call gb_CppunitTest_use_rdb,writerfilter_filter,services))
+
+$(eval $(call gb_CppunitTest_use_custom_headers,writerfilter_filter,\
+   officecfg/registry \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,writerfilter_filter))
+
+# we need to explicitly depend on library writerfilter because it is not 
implied
+# by a link relation
+$(call gb_CppunitTest_get_target,writerfilter_filter) : $(call 
gb_Library_get_target,writerfilter)
+
+# vim: set noet sw=4 ts=4:
diff --git a/writerfilter/Module_writerfilter.mk 
b/writerfilter/Module_writerfilter.mk
index 587bf4fa4dfc..08710edb23e6 100644
--- a/writerfilter/Module_writerfilter.mk
+++ b/writerfilter/Module_writerfilter.mk
@@ -20,6 +20,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,writerfilter,\
 CppunitTest_writerfilter_dmapper \
 CppunitTest_writerfilter_ooxml \
 CppunitTest_writerfilter_rtftok \
+CppunitTest_writerfilter_filter \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/writerfilter/qa/cppunittests/filter/WriterFilter.cxx 
b/writerfilter/qa/cppunittests/filter/WriterFilter.cxx
new file mode 100644
index ..ae741085277c
--- /dev/null
+++ b/writerfilter/qa/cppunittests/filter/WriterFilter.cxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+using namespace ::com::sun::star;
+
+namespace
+{
+/// Tests for writerfilter/source/filter/WriterFilter.cxx.
+class Test : public UnoApiXmlTest
+{
+public:
+Test()
+: UnoApiXmlTest("/writerfilter/qa/cppunittests/filter/data/")
+{
+}
+};
+
+CPPUNIT_TEST_FIXTURE(Test, testDoNotMirrorRtlDrawObjs)
+{
+// Given a document with a shape, anchored in an RTL paragraph:
+// When loading that document:
+loadFromFile(u"draw-obj-rtl-no-mirror.docx");
+
+// Then make sure the shape is on th

core.git: Branch 'distro/collabora/co-23.05' - include/rtl sal/rtl

2024-05-03 Thread Michael Stahl (via logerrit)
 include/rtl/random.h |1 
 sal/rtl/random.cxx   |  240 +--
 2 files changed, 7 insertions(+), 234 deletions(-)

New commits:
commit def83575b696a81bf9cbc56e2bd841d073f58514
Author: Michael Stahl 
AuthorDate: Tue Feb 6 14:39:47 2024 +0100
Commit: Michael Meeks 
CommitDate: Fri May 3 15:24:17 2024 +0200

sal: rtlRandomPool: require OS random device, abort if not present

Both rtl_random_createPool() and rtl_random_getBytes() first try to get
random data from the OS, via /dev/urandom or rand_s() (documented to
call RtlGenRandom(), see [1]).

In case this does not succeed, there is a fallback to a custom
implementation of a PRNG of unknown design that has never been
substantially changed since initial CVS import, and is presumably not
what would be considered state of the art today, particularly if there's
no actual entropy available to seed it.

Except for a few miscellaneous usages in URE (presumably to avoid
dependencies on non-URE libs), rtlRandomPool is almost always used to
generate material for encryption of documents, which is demanding and
probably beyond what a pure user-space PRNG implementation without
entropy from the OS can provide.

So remove the custom PRNG and instead abort() if reading from the OS
random device fails for whatever reason.

rtl_random_addBytes() becomes a no-op and is therefore deprecated.

Presumably the only kind of environment where random device would be
unavailable in practice is running in some sort of chroot or container
that is missing the device or has incorrect permissions on it; better to
fail hard than to produce encrypted documents of questionable security.

[1] 
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/rand-s?view=msvc-170

Change-Id: I3f020c2d11570f8351381d70188ce59bfec9f720
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163056
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit e9531b792ddf0cfc2db11713b574c5fc7ae09e2c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167055
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Michael Meeks 

diff --git a/include/rtl/random.h b/include/rtl/random.h
index cc7cf7943581..bc43d8ca5563 100644
--- a/include/rtl/random.h
+++ b/include/rtl/random.h
@@ -73,6 +73,7 @@ SAL_DLLPUBLIC void SAL_CALL rtl_random_destroyPool (
 @param[in] Buffer a buffer containing the bytes to add.
 @param[in] Bytes  the number of bytes to read from the buffer.
 @retval rtl_Random_E_None upon success.
+@deprecated This now does nothing.
  */
 SAL_DLLPUBLIC rtlRandomError SAL_CALL rtl_random_addBytes (
 rtlRandomPool  Pool,
diff --git a/sal/rtl/random.cxx b/sal/rtl/random.cxx
index 418358b22e22..8420d4ca8049 100644
--- a/sal/rtl/random.cxx
+++ b/sal/rtl/random.cxx
@@ -19,246 +19,25 @@
 
 #include 
 
-#include 
+#include 
+#include 
 
 #include 
-#include 
-#include 
-#include 
-#include 
 #include 
-#include 
 #include 
 #include 
 
-#define RTL_RANDOM_RNG_1(a) ((a) * 16807L)
-#define RTL_RANDOM_RNG_2(a) ((a) * 65539L)
-
-#define RTL_RANDOM_RNG(x, y, z) \
-{ \
-(x) = 170 * ((x) % 178) - 63 * ((x) / 178); \
-if ((x) < 0) (x) += 30328; \
-\
-(y) = 171 * ((y) % 177) -  2 * ((y) / 177); \
-if ((y) < 0) (y) += 30269; \
-\
-(z) = 172 * ((z) % 176) - 35 * ((z) / 176); \
-if ((z) < 0) (z) += 30307; \
-}
-
-namespace {
-
-struct RandomData_Impl
-{
-sal_Int16 m_nX;
-sal_Int16 m_nY;
-sal_Int16 m_nZ;
-};
-
-}
-
-static double data (RandomData_Impl *pImpl);
-
-#define RTL_RANDOM_DIGEST  rtl_Digest_AlgorithmMD5
-#define RTL_RANDOM_SIZE_DIGEST RTL_DIGEST_LENGTH_MD5
-#define RTL_RANDOM_SIZE_POOL   1023
-
 namespace {
 
 struct RandomPool_Impl
 {
-rtlDigest  m_hDigest;
-sal_uInt8  m_pDigest[RTL_RANDOM_SIZE_DIGEST];
-sal_uInt8  m_pData[RTL_RANDOM_SIZE_POOL + 1];
-sal_uInt32 m_nData;
-sal_uInt32 m_nIndex;
-sal_uInt32 m_nCount;
 };
 
 }
 
-static bool initPool(RandomPool_Impl *pImpl);
-
-static void seedPool(
-RandomPool_Impl *pImpl, const sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-static void readPool(
-RandomPool_Impl *pImpl, sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-static double data(RandomData_Impl *pImpl)
-{
-double random;
-
-RTL_RANDOM_RNG (pImpl->m_nX, pImpl->m_nY, pImpl->m_nZ);
-random = ((static_cast(pImpl->m_nX) / 30328.0) +
-  (static_cast(pImpl->m_nY) / 30269.0) +
-  (static_cast(pImpl->m_nZ) / 30307.0)   );
-
-return std::modf(random, &o3tl::temporary(double()));
-}
-
-static bool initPool(RandomPool_Impl *pImpl)
-{
-pImpl->m_hDigest = rtl_digest_create(RTL_RANDOM_DIGEST);
-if (pImpl->m_hDigest)
-{
-oslThreadIdentifier tid;
-TimeValue tv;
-RandomData_Impl rd;
-double seed;
-
-/* The use of uninitialized 

core.git: Branch 'distro/collabora/co-24.04' - include/rtl sal/rtl

2024-05-03 Thread Michael Stahl (via logerrit)
 include/rtl/random.h |1 
 sal/rtl/random.cxx   |  240 +--
 2 files changed, 7 insertions(+), 234 deletions(-)

New commits:
commit 0221a983601abf5efbacdb1b83e31283e66be743
Author: Michael Stahl 
AuthorDate: Tue Feb 6 14:39:47 2024 +0100
Commit: Caolán McNamara 
CommitDate: Fri May 3 15:27:06 2024 +0200

sal: rtlRandomPool: require OS random device, abort if not present

Both rtl_random_createPool() and rtl_random_getBytes() first try to get
random data from the OS, via /dev/urandom or rand_s() (documented to
call RtlGenRandom(), see [1]).

In case this does not succeed, there is a fallback to a custom
implementation of a PRNG of unknown design that has never been
substantially changed since initial CVS import, and is presumably not
what would be considered state of the art today, particularly if there's
no actual entropy available to seed it.

Except for a few miscellaneous usages in URE (presumably to avoid
dependencies on non-URE libs), rtlRandomPool is almost always used to
generate material for encryption of documents, which is demanding and
probably beyond what a pure user-space PRNG implementation without
entropy from the OS can provide.

So remove the custom PRNG and instead abort() if reading from the OS
random device fails for whatever reason.

rtl_random_addBytes() becomes a no-op and is therefore deprecated.

Presumably the only kind of environment where random device would be
unavailable in practice is running in some sort of chroot or container
that is missing the device or has incorrect permissions on it; better to
fail hard than to produce encrypted documents of questionable security.

[1] 
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/rand-s?view=msvc-170

Change-Id: I3f020c2d11570f8351381d70188ce59bfec9f720
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163056
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit e9531b792ddf0cfc2db11713b574c5fc7ae09e2c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167054
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Caolán McNamara 

diff --git a/include/rtl/random.h b/include/rtl/random.h
index cc7cf7943581..bc43d8ca5563 100644
--- a/include/rtl/random.h
+++ b/include/rtl/random.h
@@ -73,6 +73,7 @@ SAL_DLLPUBLIC void SAL_CALL rtl_random_destroyPool (
 @param[in] Buffer a buffer containing the bytes to add.
 @param[in] Bytes  the number of bytes to read from the buffer.
 @retval rtl_Random_E_None upon success.
+@deprecated This now does nothing.
  */
 SAL_DLLPUBLIC rtlRandomError SAL_CALL rtl_random_addBytes (
 rtlRandomPool  Pool,
diff --git a/sal/rtl/random.cxx b/sal/rtl/random.cxx
index 418358b22e22..8420d4ca8049 100644
--- a/sal/rtl/random.cxx
+++ b/sal/rtl/random.cxx
@@ -19,246 +19,25 @@
 
 #include 
 
-#include 
+#include 
+#include 
 
 #include 
-#include 
-#include 
-#include 
-#include 
 #include 
-#include 
 #include 
 #include 
 
-#define RTL_RANDOM_RNG_1(a) ((a) * 16807L)
-#define RTL_RANDOM_RNG_2(a) ((a) * 65539L)
-
-#define RTL_RANDOM_RNG(x, y, z) \
-{ \
-(x) = 170 * ((x) % 178) - 63 * ((x) / 178); \
-if ((x) < 0) (x) += 30328; \
-\
-(y) = 171 * ((y) % 177) -  2 * ((y) / 177); \
-if ((y) < 0) (y) += 30269; \
-\
-(z) = 172 * ((z) % 176) - 35 * ((z) / 176); \
-if ((z) < 0) (z) += 30307; \
-}
-
-namespace {
-
-struct RandomData_Impl
-{
-sal_Int16 m_nX;
-sal_Int16 m_nY;
-sal_Int16 m_nZ;
-};
-
-}
-
-static double data (RandomData_Impl *pImpl);
-
-#define RTL_RANDOM_DIGEST  rtl_Digest_AlgorithmMD5
-#define RTL_RANDOM_SIZE_DIGEST RTL_DIGEST_LENGTH_MD5
-#define RTL_RANDOM_SIZE_POOL   1023
-
 namespace {
 
 struct RandomPool_Impl
 {
-rtlDigest  m_hDigest;
-sal_uInt8  m_pDigest[RTL_RANDOM_SIZE_DIGEST];
-sal_uInt8  m_pData[RTL_RANDOM_SIZE_POOL + 1];
-sal_uInt32 m_nData;
-sal_uInt32 m_nIndex;
-sal_uInt32 m_nCount;
 };
 
 }
 
-static bool initPool(RandomPool_Impl *pImpl);
-
-static void seedPool(
-RandomPool_Impl *pImpl, const sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-static void readPool(
-RandomPool_Impl *pImpl, sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-static double data(RandomData_Impl *pImpl)
-{
-double random;
-
-RTL_RANDOM_RNG (pImpl->m_nX, pImpl->m_nY, pImpl->m_nZ);
-random = ((static_cast(pImpl->m_nX) / 30328.0) +
-  (static_cast(pImpl->m_nY) / 30269.0) +
-  (static_cast(pImpl->m_nZ) / 30307.0)   );
-
-return std::modf(random, &o3tl::temporary(double()));
-}
-
-static bool initPool(RandomPool_Impl *pImpl)
-{
-pImpl->m_hDigest = rtl_digest_create(RTL_RANDOM_DIGEST);
-if (pImpl->m_hDigest)
-{
-oslThreadIdentifier tid;
-TimeValue tv;
-RandomData_Impl rd;
-double seed;
-
-/* The use of uninitiali

help.git: source/text

2024-05-03 Thread Olivier Hallot (via logerrit)
 source/text/shared/01/05340200.xhp |   29 ++---
 1 file changed, 14 insertions(+), 15 deletions(-)

New commits:
commit d5d56e1d29b65749978ae5e9801531200477761b
Author: Olivier Hallot 
AuthorDate: Mon Apr 29 17:42:05 2024 -0300
Commit: Olivier Hallot 
CommitDate: Fri May 3 15:32:39 2024 +0200

tdf#150760 Missing link for Column Width in Base.

+ refactor

Change-Id: I30052dc59c9ec6de6f398b9052739b64396be3a6
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/166878
Reviewed-by: Olivier Hallot 
Tested-by: Jenkins

diff --git a/source/text/shared/01/05340200.xhp 
b/source/text/shared/01/05340200.xhp
index 340a12b2b9..25383ef83c 100644
--- a/source/text/shared/01/05340200.xhp
+++ b/source/text/shared/01/05340200.xhp
@@ -1,6 +1,4 @@
 
-
-
 
-
 
 
 
-Column width
+Column width
 /text/shared/01/05340200.xhp
 
 
@@ -30,19 +27,21 @@
 
 
 
-
-
-  
-  
-Column width
-  Changes the width of the current column, or the selected 
columns.
+
+
+
+
+
+
+Column width
+  Changes the width of the current column, or the selected 
columns.
   
   
 
-  You can also 
change the width of a column by dragging the divider beside the column 
header.  To fit the 
column width to the cell contents, double-click the divider. 

-  Width
-  Enter the 
column width that you want to use.
-   Default value 
Automatic 
-  Automatically adjusts the column width based on the 
current font.
+  You can also change the width 
of a column by dragging the divider beside the column header.  To fit the column width to the cell 
contents, double-click the divider. 
+  Width
+  Enter the 
column width that you want to use.
+   
Default value 
Automatic 
+  Automatically adjusts the column width based on the 
current font.
  
 


core.git: helpcontent2

2024-05-03 Thread Olivier Hallot (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 510e6224951ef492d8d957a8894044276dd8b9c9
Author: Olivier Hallot 
AuthorDate: Fri May 3 10:32:39 2024 -0300
Commit: Gerrit Code Review 
CommitDate: Fri May 3 15:32:39 2024 +0200

Update git submodules

* Update helpcontent2 from branch 'master'
  to d5d56e1d29b65749978ae5e9801531200477761b
  - tdf#150760 Missing link for Column Width in Base.

+ refactor

Change-Id: I30052dc59c9ec6de6f398b9052739b64396be3a6
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/166878
Reviewed-by: Olivier Hallot 
Tested-by: Jenkins

diff --git a/helpcontent2 b/helpcontent2
index 92ee035a864b..d5d56e1d29b6 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 92ee035a864bdd5691a589704a0b8cb609f2b0bb
+Subproject commit d5d56e1d29b65749978ae5e9801531200477761b


core.git: compilerplugins/clang xmlsecurity/inc xmlsecurity/source

2024-05-03 Thread Moritz Duge (via logerrit)
 compilerplugins/clang/unusedfields.writeonly.results |2 ++
 xmlsecurity/inc/certificatechooser.hxx   |1 +
 xmlsecurity/source/dialogs/certificatechooser.cxx|3 +++
 3 files changed, 6 insertions(+)

New commits:
commit 3bb9b0565abef14575d1075e7d33ffcc19d51bfd
Author: Moritz Duge 
AuthorDate: Fri May 3 11:35:40 2024 +0200
Commit: Thorsten Behrens 
CommitDate: Fri May 3 15:39:52 2024 +0200

fix crash in CertificateChooser for GPG

mvUserData is still needed to keep it's content from being deleted.

Revert "Drop unused instance variable."

This reverts commit 687ae6ca01177a04f9ea715a1f1cd70f385a0840.

Change-Id: I689cfdaf8d4d62a3b53ff7fb318dc8c70b9e1c2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167020
Reviewed-by: Thorsten Behrens 
Tested-by: Jenkins

diff --git a/compilerplugins/clang/unusedfields.writeonly.results 
b/compilerplugins/clang/unusedfields.writeonly.results
index 268c7478b84f..a2110d149d2c 100644
--- a/compilerplugins/clang/unusedfields.writeonly.results
+++ b/compilerplugins/clang/unusedfields.writeonly.results
@@ -1351,6 +1351,8 @@ xmloff/source/forms/officeforms.hxx:68
 xmloff/source/text/txtimp.cxx:104
 XMLTextImportHelper::Impl m_xFrameImpPrMap 
rtl::Reference
 xmlsecurity/inc/certificatechooser.hxx:57
+CertificateChooser mvUserData std::vector >
+xmlsecurity/inc/certificateviewer.hxx:51
 CertificateViewer mxGeneralPage std::unique_ptr
 xmlsecurity/inc/certificateviewer.hxx:52
 CertificateViewer mxDetailsPage std::unique_ptr
diff --git a/xmlsecurity/inc/certificatechooser.hxx 
b/xmlsecurity/inc/certificatechooser.hxx
index 33458c27cd04..494ea40de1e4 100644
--- a/xmlsecurity/inc/certificatechooser.hxx
+++ b/xmlsecurity/inc/certificatechooser.hxx
@@ -51,6 +51,7 @@ class CertificateChooser final : public 
weld::GenericDialogController
 {
 private:
 std::vector< css::uno::Reference< css::xml::crypto::XXMLSecurityContext > 
> mxSecurityContexts;
+std::vector> mvUserData;
 
 boolmbInitialized;
 CertificateChooserUserAction const meAction;
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx 
b/xmlsecurity/source/dialogs/certificatechooser.cxx
index 2bae90cd7d70..c95ad1947d0b 100644
--- a/xmlsecurity/source/dialogs/certificatechooser.cxx
+++ b/xmlsecurity/source/dialogs/certificatechooser.cxx
@@ -217,6 +217,9 @@ void CertificateChooser::ImplInitialize(bool mbSearch)
 userData->xSecurityContext = secContext;
 userData->xSecurityEnvironment = secEnvironment;
 
+// Needed to keep userData alive. (reference to shared_ptr 
prevents delete)
+mvUserData.push_back(userData);
+
 OUString sIssuer = xmlsec::GetContentPart( xCert->getIssuerName(), 
xCert->getCertificateKind());
 OUString sExpDate = utl::GetDateString(xCert->getNotValidAfter());
 


core.git: sfx2/source

2024-05-03 Thread Noel Grandin (via logerrit)
 sfx2/source/appl/workwin.cxx |  114 +--
 1 file changed, 57 insertions(+), 57 deletions(-)

New commits:
commit d19b79e4b4998eddd1baa1ab6a42c4f557889a60
Author: Noel Grandin 
AuthorDate: Thu May 2 13:18:08 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 15:57:46 2024 +0200

replace createFromAscii with OUString literals in sfx2

Change-Id: Ifc60fc260149106f257bf10551f081ce7d8fd6ed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167039
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index 5414f69c34c3..48eaa6a8226e 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -63,66 +63,66 @@ namespace {
 struct ResIdToResName
 {
 ToolbarId   eId;
-const char* pName;
+OUString pName;
 };
 
 }
 
-const ResIdToResName pToolBarResToName[] =
-{
-{ ToolbarId::FullScreenToolbox,   "fullscreenbar"},
-{ ToolbarId::EnvToolbox,  "standardbar", },
-{ ToolbarId::SvxTbx_Form_Navigation,  "formsnavigationbar"   },
-{ ToolbarId::SvxTbx_Form_Filter,  "formsfilterbar"   },
-{ ToolbarId::SvxTbx_Text_Control_Attributes, "formtextobjectbar"},
-{ ToolbarId::SvxTbx_Controls, "formcontrols" },
-{ ToolbarId::SvxTbx_FormDesign,   "formdesign"   },
-{ ToolbarId::Math_Toolbox,"toolbar"  },  //math
-{ ToolbarId::Text_Toolbox_Sc, "textobjectbar"},  //calc
-{ ToolbarId::Draw_Objectbar,  "drawobjectbar"},
-{ ToolbarId::Graphic_Objectbar,   "graphicobjectbar" },
-{ ToolbarId::Objectbar_Format,"formatobjectbar"  },
-{ ToolbarId::Objectbar_Preview,   "previewbar"   },
-{ ToolbarId::Objectbar_Tools, "toolbar"  },  //calc
-{ ToolbarId::Bezier_Toolbox_Sd,   "bezierobjectbar"  },  
//draw/impress
-{ ToolbarId::Gluepoints_Toolbox,  "gluepointsobjectbar"  },
-{ ToolbarId::Draw_Graf_Toolbox,   "graphicobjectbar" },
-{ ToolbarId::Draw_Obj_Toolbox,"drawingobjectbar" },  
//impress
-{ ToolbarId::Draw_Text_Toolbox_Sd,"textobjectbar"},  
//impress
-{ ToolbarId::Draw_Toolbox_Sd, "toolbar"  },  
//impress
-{ ToolbarId::Draw_Options_Toolbox,"optionsbar"   },
-{ ToolbarId::Draw_CommonTask_Toolbox, "commontaskbar"},
-{ ToolbarId::Graphic_Obj_Toolbox, "drawingobjectbar" },  //draw
-{ ToolbarId::Outline_Toolbox, "outlinetoolbar"   },  
//impress
-{ ToolbarId::Slide_Toolbox,   "slideviewtoolbar" },
-{ ToolbarId::Slide_Obj_Toolbox,   "slideviewobjectbar"   },
-{ ToolbarId::Bezier_Toolbox_Sw,   "bezierobjectbar"  },
-{ ToolbarId::Draw_Toolbox_Sw, "drawingobjectbar" },
-{ ToolbarId::Draw_Text_Toolbox_Sw,"drawtextobjectbar"},
-{ ToolbarId::Frame_Toolbox,   "frameobjectbar"   },
-{ ToolbarId::Grafik_Toolbox,  "graphicobjectbar" },
-{ ToolbarId::Num_Toolbox, "numobjectbar" },
-{ ToolbarId::Ole_Toolbox, "oleobjectbar" },
-{ ToolbarId::Table_Toolbox,   "tableobjectbar"   },
-{ ToolbarId::Text_Toolbox_Sw, "textobjectbar"},
-{ ToolbarId::PView_Toolbox,   "previewobjectbar" },  
//writer
-{ ToolbarId::Webtools_Toolbox,"toolbar"  },  //web
-{ ToolbarId::Webtext_Toolbox, "textobjectbar"},
-{ ToolbarId::Tools_Toolbox,   "toolbar"  },  
//writer
-{ ToolbarId::Webframe_Toolbox,"frameobjectbar"   },  //web
-{ ToolbarId::Webgraphic_Toolbox,  "graphicobjectbar" },
-{ ToolbarId::Webole_Toolbox,  "oleobjectbar" },
-{ ToolbarId::Basicide_Objectbar,  "macrobar" },
-{ ToolbarId::Svx_Fontwork_Bar,"fontworkobjectbar"},  
//global
-{ ToolbarId::Svx_Extrusion_Bar,   "extrusionobjectbar"   },
-{ ToolbarId::FormLayer_Toolbox,   "formsobjectbar"   },
-{ ToolbarId::Module_Toolbox,  "viewerbar"},  
//writer (plugin)
-{ ToolbarId::Objectbar_App,   "viewerbar"},  
//calc   (plugin)
-{ ToolbarId::Draw_Viewer_Toolbox, "viewerbar"},  
//impress(plugin)
-{ ToolbarId::Draw_Media_Toolbox,  "mediaobjectbar"   },  
//draw/impress
-{ ToolbarId::Media_Objectbar, "mediaobjectbar"   },  //calc
-{ ToolbarId::Media_Toolbox,   "mediaobjectbar"   },  
//writer
-{ ToolbarId::None,   "" }
+constexpr ResIdToResName pToolBarResToName[] =
+{
+{ ToolbarId::Ful

core.git: android/CustomTarget_lo_android.mk bridges/CustomTarget_gcc3_linux_arm.mk bridges/Library_cpp_uno.mk cli_ure/CustomTarget_cli_ure_assemblies.mk desktop/CustomTarget_desktop_unopackages_insta

2024-05-03 Thread Christian Lohmaier (via logerrit)
 android/CustomTarget_lo_android.mk  |2 
 bridges/CustomTarget_gcc3_linux_arm.mk  |   12 -
 bridges/Library_cpp_uno.mk  |4 
 cli_ure/CustomTarget_cli_ure_assemblies.mk  |   18 -
 desktop/CustomTarget_desktop_unopackages_install.mk |6 
 desktop/CustomTarget_soffice.mk |6 
 desktop/Executable_soffice_bin.mk   |8 
 desktop/GeneratedPackage_desktop_unopackages_install.mk |2 
 desktop/Package_soffice_sh.mk   |2 
 editeng/CustomTarget_generated.mk   |2 
 extensions/CustomTarget_automationtest.mk   |2 
 extensions/CustomTarget_so_activex_idl.mk   |2 
 extensions/CustomTarget_so_activex_x64.mk   |   16 -
 external/onlineupdate/CustomTarget_generated.mk |2 
 extras/AllLangPackage_autotextshare.mk  |2 
 extras/CustomTarget_autocorr.mk |   12 -
 extras/CustomTarget_autotextshare.mk|   16 -
 extras/CustomTarget_autotextuser.mk |   12 -
 extras/CustomTarget_gallsystem.mk   |6 
 extras/CustomTarget_glade.mk|2 
 extras/CustomTarget_opensymbol.mk   |4 
 extras/CustomTarget_templates.mk|   30 +--
 extras/CustomTarget_tplpresnt.mk|   20 +-
 extras/CustomTarget_tplwizard.mk|   32 +--
 extras/Package_autocorr.mk  |2 
 extras/Package_autotextuser.mk  |2 
 extras/Package_fonts.mk |2 
 extras/Package_gallsystemstr.mk |2 
 extras/Package_glade.mk |2 
 extras/Package_resource_fonts.mk|2 
 extras/Package_templates.mk |2 
 extras/Package_tplpresnt.mk |2 
 extras/Package_tplwizard.mk |2 
 filter/CustomTarget_svg.mk  |2 
 i18npool/CustomTarget_breakiterator.mk  |2 
 i18npool/CustomTarget_collator.mk   |2 
 i18npool/CustomTarget_indexentry.mk |6 
 i18npool/CustomTarget_localedata.mk |8 
 i18npool/CustomTarget_textconversion.mk |6 
 i18npool/Library_i18npool.mk|   12 -
 instsetoo_native/CustomTarget_install.mk|   46 ++--
 instsetoo_native/CustomTarget_setup.mk  |   38 ++--
 instsetoo_native/Package_setup.mk   |2 
 instsetoo_native/Package_setup_ure.mk   |2 
 jvmfwk/CustomTarget_jreproperties.mk|6 
 jvmfwk/CustomTarget_jvmfwk_jvmfwk3_ini.mk   |2 
 jvmfwk/Package_jreproperties.mk |2 
 jvmfwk/Package_jvmfwk_jvmfwk3_ini.mk|2 
 librelogo/CustomTarget_librelogo.mk |2 
 librelogo/Package_librelogo_properties.mk   |2 
 odk/CustomTarget_allheaders.mk  |2 
 odk/CustomTarget_check.mk   |4 
 odk/CustomTarget_classes.mk |2 
 odk/CustomTarget_config_win.mk  |2 
 odk/CustomTarget_doxygen.mk |   16 -
 odk/CustomTarget_html.mk|2 
 odk/CustomTarget_javadoc.mk |   12 -
 odk/CustomTarget_settings.mk|2 
 odk/GeneratedPackage_odk_doxygen.mk |2 
 odk/GeneratedPackage_odk_javadoc.mk |2 
 odk/GeneratedPackage_uno_loader_classes.mk  |2 
 odk/Package_config_win.mk   |2 
 odk/Package_html.mk |2 
 odk/Package_settings_generated.mk   |2 
 odk/Package_share_readme.mk |2 
 odk/build-examples_common.mk|   16 -
 officecfg/CustomTarget_registry.mk  |6 
 oox/CustomTarget_generated.mk   |2 
 oox/Package_generated.mk|2 
 postprocess/CustomTarget_check_dynamic_objects.mk   |2 
 postprocess/CustomTarget_components.mk  |2 
 postprocess/CustomTarget_fontconfig.mk  |8 
 postprocess/CustomTarget_images.mk  |2 
 postprocess/CustomTarget_registry.mk|   36 +--
 postprocess/CustomTarget_signing.mk |4 
 postprocess/Package_fontconfig.mk   |2 
 postprocess/Package_images.mk

help.git: AllLangPackage_html_lang.mk CustomTarget_html.mk CustomTarget_imagelist.mk GeneratedPackage_html_lang_generated.mk Package_helpimages.mk Package_html_dynamic.mk

2024-05-03 Thread Christian Lohmaier (via logerrit)
 AllLangPackage_html_lang.mk |2 
 CustomTarget_html.mk|   72 
 CustomTarget_imagelist.mk   |6 +-
 GeneratedPackage_html_lang_generated.mk |2 
 Package_helpimages.mk   |2 
 Package_html_dynamic.mk |2 
 6 files changed, 43 insertions(+), 43 deletions(-)

New commits:
commit e8b21ab244345cea0a1d0b9190a8729ff3ea47b1
Author: Christian Lohmaier 
AuthorDate: Thu May 2 11:35:10 2024 +0200
Commit: Christian Lohmaier 
CommitDate: Fri May 3 16:06:39 2024 +0200

makefile simplification: replace $(call gb_CustomTarget_get_workdir,foo)

helpcontent2 portion

Change-Id: I2e10bf8bf4cb39fa3a8f9a2c3eb8f22d8636560c
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/167007
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier 

diff --git a/AllLangPackage_html_lang.mk b/AllLangPackage_html_lang.mk
index 63fe21ba65..a0ae5f5a7b 100644
--- a/AllLangPackage_html_lang.mk
+++ b/AllLangPackage_html_lang.mk
@@ -7,7 +7,7 @@
 # # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 # #
 #
-$(eval $(call gb_AllLangPackage_AllLangPackage,helpcontent2_html_lang,$(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)))
+$(eval $(call 
gb_AllLangPackage_AllLangPackage,helpcontent2_html_lang,$(gb_CustomTarget_workdir)/helpcontent2/help3xsl))
 
 $(eval $(call 
gb_AllLangPackage_use_customtarget,helpcontent2_html_lang,helpcontent2/help3xsl))
 
diff --git a/CustomTarget_html.mk b/CustomTarget_html.mk
index a3a9cec55f..9b583f68c7 100644
--- a/CustomTarget_html.mk
+++ b/CustomTarget_html.mk
@@ -43,7 +43,7 @@ $(eval $(call 
gb_CustomTarget_register_targets,helpcontent2/help3xsl,\
 
 # trailing space for Windows so that xargs doesn't interpret the final CR (that
 # win-make adds as the newline character) as part of the last filename
-$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/hid2file.js : \
+$(gb_CustomTarget_workdir)/helpcontent2/help3xsl/hid2file.js : \
 $(SRCDIR)/helpcontent2/help3xsl/generate_hid2file.xsl \
 $(foreach module,$(html_TEXT_MODULES),$(call 
gb_AllLangHelp_get_helpfiles_target,$(module))) \
 $(SRCDIR)/helpcontent2/CustomTarget_html.mk \
@@ -64,14 +64,14 @@ $(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/hid2file.js : \
 ifeq ($(HELP_OMINDEX_PAGE),TRUE)
 
 define html_gen_xaptpl_dep
-$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/$(1)/xap_tpl : \
+$(gb_CustomTarget_workdir)/helpcontent2/help3xsl/$(1)/xap_tpl : \
$(if $(filter en-US,$(1)),$(SRCDIR),$(call 
gb_HelpTranslatePartTarget_get_workdir,$(1)))/helpcontent2/source/text/shared/help/browserhelp.xhp
 
 endef

 $(eval $(foreach lang,$(gb_HELP_LANGS),$(call html_gen_xaptpl_dep,$(lang
 
-$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/xap_tpl : \
+$(gb_CustomTarget_workdir)/helpcontent2/help3xsl/%/xap_tpl : \
 $(SRCDIR)/helpcontent2/help3xsl/xap_templ_query.xsl \
 $(SRCDIR)/helpcontent2/CustomTarget_html.mk \
 | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
@@ -93,14 +93,14 @@ endif
 # Create noscript.html, when browser has no javascript enabled
 
 define html_gen_noscript_dep
-$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/$(1)/noscript.html : 
\
+$(gb_CustomTarget_workdir)/helpcontent2/help3xsl/$(1)/noscript.html : \
$(if $(filter en-US,$(1)),$(SRCDIR),$(call 
gb_HelpTranslatePartTarget_get_workdir,$(1)))/helpcontent2/source/text/shared/help/browserhelp.xhp
 
 endef
 
 $(eval $(foreach lang,$(gb_HELP_LANGS),$(call html_gen_noscript_dep,$(lang
 
-$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/noscript.html : \
+$(gb_CustomTarget_workdir)/helpcontent2/help3xsl/%/noscript.html : \
 $(SRCDIR)/helpcontent2/help3xsl/noscript.xsl \
 $(SRCDIR)/helpcontent2/help3xsl/brand.xsl \
 $(SRCDIR)/helpcontent2/CustomTarget_html.mk \
@@ -120,12 +120,12 @@ $(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/noscript.html : \
 
 
 # set of installed languages - has to be language independent
-$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/languages.js : \
+$(gb_CustomTarget_workdir)/helpcontent2/help3xsl/languages.js : \
 $(SRCDIR)/helpcontent2/CustomTarget_html.mk
printf 'var languagesSet = new Set([%s]);
' "$(subst $(WHITESPACE),$(COMMA) ,$(patsubst %,'%',$(gb_HELP_LANGS)))" > $@
 
 define html_gen_langnames_js_dep
-$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/$(1)/langnames.js : \
+$(gb_CustomTarget_workdir)/helpcontent2/help3xsl/$(1)/langnames.js : \
$(if $(filter en-US,$(1)),$(SRCDIR),$(call 
gb_HelpTranslatePartTarget_get_workdir,$(1)))/helpcontent2/source/text/shared/help/browserhelp.xhp
 
 endef
@@ -133,7 +133,7 @@ endef
 $(eval $(foreach lang,$(gb_HELP_LANGS),$(call 
html_gen_langnames_js_dep,$(lang
 
 # names of the languages - has to be translated, ie. per language
-$(call gb

core.git: helpcontent2

2024-05-03 Thread Christian Lohmaier (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 9c4e0578eead433de2b38f2a464b402c09432ecd
Author: Christian Lohmaier 
AuthorDate: Fri May 3 16:06:40 2024 +0200
Commit: Gerrit Code Review 
CommitDate: Fri May 3 16:06:40 2024 +0200

Update git submodules

* Update helpcontent2 from branch 'master'
  to e8b21ab244345cea0a1d0b9190a8729ff3ea47b1
  - makefile simplification: replace $(call gb_CustomTarget_get_workdir,foo)

helpcontent2 portion

Change-Id: I2e10bf8bf4cb39fa3a8f9a2c3eb8f22d8636560c
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/167007
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier 

diff --git a/helpcontent2 b/helpcontent2
index d5d56e1d29b6..e8b21ab24434 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit d5d56e1d29b65749978ae5e9801531200477761b
+Subproject commit e8b21ab244345cea0a1d0b9190a8729ff3ea47b1


core.git: solenv/gbuild

2024-05-03 Thread Christian Lohmaier (via logerrit)
 solenv/gbuild/TargetLocations.mk |4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

New commits:
commit 83c2ef7c78d1453cc0419fd27a8c1418f90c12a3
Author: Christian Lohmaier 
AuthorDate: Thu May 2 11:31:59 2024 +0200
Commit: Christian Lohmaier 
CommitDate: Fri May 3 16:07:04 2024 +0200

turn gb_CustomTarget_get_workdir into error and remove old _repo_targets

separate commit since help submodule also uses the macro.

actually turn it into make error to prevent reintroducing it

the repo_target ones are from way back when the whole repo was
split up in many different ones and not used for many years,
no point in having those as errors

Change-Id: I9fd42529d08ea7859b33f8570936f06039cfa184
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167006
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier 

diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 1db26abd9e4e..725390a8feed 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -55,9 +55,8 @@ gb_ComponentTarget_get_target_for_build = 
$(WORKDIR_FOR_BUILD)/ComponentTarget/$
 gb_Configuration_get_preparation_target = 
$(WORKDIR)/Configuration/$(1).prepared
 gb_CppunitTest_get_target = $(WORKDIR)/CppunitTest/$(1).test
 gb_CustomPackage_get_target = $(WORKDIR)/CustomPackage/$(1).filelist
-gb_CustomTarget_get_repo_target = $(WORKDIR)/CustomTarget/$(2)_$(1).done
 gb_CustomTarget_get_target = $(WORKDIR)/CustomTarget/$(1).done
-gb_CustomTarget_get_workdir = $(WORKDIR)/CustomTarget/$(1)
+gb_CustomTarget_get_workdir = $(error please use plain gb_CustomTarget_workdir 
instead)
 gb_CustomTarget_workdir := $(WORKDIR)/CustomTarget
 gb_DescriptionTranslateTarget_get_target = 
$(WORKDIR)/DescriptionTranslateTarget/$(1).xml
 gb_Dictionary_get_target = $(WORKDIR)/Dictionary/$(1).done
@@ -109,7 +108,6 @@ gb_InternalUnoApi_get_target = 
$(WORKDIR)/InternalUnoApi/$(1).done
 gb_Jar_get_target = $(call gb_Jar_get_install_target,$(1))
 gb_Jar_get_classsetname = Jar/$(1)
 gb_JavaClassSet_get_classdir = $(WORKDIR)/JavaClassSet/$(1)
-gb_JavaClassSet_get_repo_target = $(WORKDIR)/JavaClassSet/$(2)/$(1).done
 gb_JavaClassSet_get_target = $(WORKDIR)/JavaClassSet/$(1)/done
 gb_JunitTest_get_classsetname = JunitTest/$(1)
 gb_JunitTest_get_target = $(WORKDIR)/JunitTest/$(1)/done


core.git: Branch 'libreoffice-24-2' - extras/source

2024-05-03 Thread Julien Nabet (via logerrit)
 extras/source/tipoftheday/formdocuments.svg |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit f1b1e61ef56b85fd56f39854d2edb52f3c2d8b82
Author: Julien Nabet 
AuthorDate: Fri May 3 08:04:53 2024 +0200
Commit: Julien Nabet 
CommitDate: Fri May 3 16:20:42 2024 +0200

tdf#160916: typo "Checbox"

Change-Id: Ia06bc947cd1788850251b1386977ef02298a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167030
Reviewed-by: Julien Nabet 
Tested-by: Jenkins
(cherry picked from commit 68008d9f0176c43ecc768af8e3539227640d1519)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166905
Reviewed-by: Adolfo Jayme Barrientos 
Reviewed-by: Heiko Tietze 
Tested-by: Julien Nabet 

diff --git a/extras/source/tipoftheday/formdocuments.svg 
b/extras/source/tipoftheday/formdocuments.svg
index b6ad08cab3d7..a3d752292fa5 100644
--- a/extras/source/tipoftheday/formdocuments.svg
+++ b/extras/source/tipoftheday/formdocuments.svg
@@ -1 +1 @@
-http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>PDF Form<
 g fill="#48484a">ChecboxRadio ButtonText 
Box
\ No newline at end of file
+http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>PDF Form<
 g fill="#48484a">CheckboxRadio ButtonText 
Box


core.git: sw/qa sw/source

2024-05-03 Thread Miklos Vajna (via logerrit)
 sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx |binary
 sw/qa/extras/ww8export/ww8export4.cxx   |   24 
 sw/source/filter/ww8/wrtw8esh.cxx   |6 +++
 3 files changed, 30 insertions(+)

New commits:
commit 9d95eb980ef12678f6fb978badcbe1cacbe0c4dc
Author: Miklos Vajna 
AuthorDate: Fri May 3 13:54:02 2024 +0200
Commit: Miklos Vajna 
CommitDate: Fri May 3 16:28:04 2024 +0200

Related: tdf#160833 teach DOC export about DoNotMirrorRtlDrawObjs

See

,
no need to undo the import-time mapping in case we know that the
mirroring is avoided at a layout level.

Change-Id: Idbdc10ad327540dc5045e9b19dd42160b5139470
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167049
Reviewed-by: Miklos Vajna 
Tested-by: Jenkins

diff --git a/sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx 
b/sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx
new file mode 100644
index ..3b291901f72d
Binary files /dev/null and 
b/sw/qa/extras/ww8export/data/draw-obj-rtl-no-mirror-vml.docx differ
diff --git a/sw/qa/extras/ww8export/ww8export4.cxx 
b/sw/qa/extras/ww8export/ww8export4.cxx
index d3bc9c4071d9..6caffceffa00 100644
--- a/sw/qa/extras/ww8export/ww8export4.cxx
+++ b/sw/qa/extras/ww8export/ww8export4.cxx
@@ -267,6 +267,30 @@ CPPUNIT_TEST_FIXTURE(Test, testLegalNumbering)
 verify();
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testDOCExportDoNotMirrorRtlDrawObjs)
+{
+// Given a document with a shape, anchored in an RTL paragraph, loaded 
from DOCX:
+createSwDoc("draw-obj-rtl-no-mirror-vml.docx");
+
+// When saving that to DOC:
+saveAndReload(mpFilter);
+
+// Then make sure the shape is on the right margin:
+xmlDocUniquePtr pXmlDoc = parseLayoutDump();
+sal_Int32 nPageRight = getXPath(pXmlDoc, "//page/infos/bounds"_ostr, 
"right"_ostr).toInt32();
+sal_Int32 nBodyRight = getXPath(pXmlDoc, "//body/infos/bounds"_ostr, 
"right"_ostr).toInt32();
+sal_Int32 nShapeLeft
+= getXPath(pXmlDoc, "//SwAnchoredDrawObject/bounds"_ostr, 
"left"_ostr).toInt32();
+CPPUNIT_ASSERT_GREATER(nBodyRight, nShapeLeft);
+sal_Int32 nShapeRight
+= getXPath(pXmlDoc, "//SwAnchoredDrawObject/bounds"_ostr, 
"right"_ostr).toInt32();
+// Without the accompanying fix in place, this test would have failed with:
+// - Expected less than: 12523
+// - Actual  : 12536
+// i.e. the shape was outside of the page right margin area, due to an 
unwanted mapping.
+CPPUNIT_ASSERT_LESS(nPageRight, nShapeRight);
+}
+
 DECLARE_WW8EXPORT_TEST(testNonInlinePageBreakFirstLine, 
"nonInlinePageBreakFirstLine.doc")
 {
 SwDoc* pDoc = getSwDoc();
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx 
b/sw/source/filter/ww8/wrtw8esh.cxx
index c13d06106286..21afd78cce1d 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -576,6 +576,12 @@ void WW8Export::MiserableRTLFrameFormatHack(SwTwips 
&rLeft, SwTwips &rRight,
 if (SvxFrameDirection::Horizontal_RL_TB != 
m_rDoc.GetTextDirection(rFrameFormat.GetPosition()))
 return;
 
+if 
(m_rDoc.getIDocumentSettingAccess().get(DocumentSettingId::DO_NOT_MIRROR_RTL_DRAW_OBJS))
+{
+// Swap is handled at a layout-level, no need to compensate for it at 
export time.
+return;
+}
+
 SwTwips nWidth = rRight - rLeft;
 SwTwips nPageLeft, nPageRight;
 SwTwips nPageSize = CurrentPageWidth(nPageLeft, nPageRight);


core.git: Branch 'libreoffice-24-2' - svgio/inc svgio/qa svgio/source

2024-05-03 Thread Mike Kaganski (via logerrit)
 svgio/inc/svgcharacternode.hxx|8 --
 svgio/qa/cppunit/SvgImportTest.cxx|   46 ++---
 svgio/source/svgreader/svgcharacternode.cxx   |   87 +-
 svgio/source/svgreader/svgdocumenthandler.cxx |   83 +++-
 4 files changed, 134 insertions(+), 90 deletions(-)

New commits:
commit 44b6b90080e7585e46250fb4076b210619e10bb3
Author: Mike Kaganski 
AuthorDate: Thu Apr 18 13:23:43 2024 +0500
Commit: Xisco Fauli 
CommitDate: Fri May 3 17:05:18 2024 +0200

tdf#157103: fix SVG whitespace handling

Previous code tried to hack some tricks to restore whitespaces after
trimming them according to the xml:space attribute value. But it was
wrong in multiple ways.

1. The collapsed space must stay in the block where its start was.
   When a block ended with a space, then trimming the space from it,
   and adding to a next block, can change the size of the space.
2. The shift of a line (e.g., specifying x and y values) doesn't end
   the logical line. A space before such a shift must be kept by the
   same rules, as if there weren't a shift.
3. A block with xml:space="preserve" is treated as if it consists of
   all non-whitespace characters, even if its leading or trailing
   characters are spaces. I.e., a trailing space in a block before,
   or a leading space in a block after, should be collapsed into a
   single space, not removed - even when the space-preserving block
   itself is made invisible.

Change-Id: Ic778d1e9d6b9d0c342ea74ad78d44bb47bc8d708
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166239
Tested-by: Mike Kaganski 
Reviewed-by: Mike Kaganski 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167050
Tested-by: Jenkins

diff --git a/svgio/inc/svgcharacternode.hxx b/svgio/inc/svgcharacternode.hxx
index d81066af47a6..20c60d787cb5 100644
--- a/svgio/inc/svgcharacternode.hxx
+++ b/svgio/inc/svgcharacternode.hxx
@@ -38,11 +38,10 @@ namespace svgio::svgreader
 /// the string data
 OUString   maText;
 
-// keep a copy of string data before space handling
-OUString   maTextBeforeSpaceHandling;
-
 SvgTspanNode*mpParentLine;
 
+bool mbHadTrailingSpace = false;
+
 /// local helpers
 rtl::Reference 
createSimpleTextPrimitive(
 SvgTextPosition& rSvgTextPosition,
@@ -65,8 +64,7 @@ namespace svgio::svgreader
 virtual const SvgStyleAttributes* getSvgStyleAttributes() const 
override;
 
 void 
decomposeText(drawinglayer::primitive2d::Primitive2DContainer& rTarget, 
SvgTextPosition& rSvgTextPosition) const;
-void whiteSpaceHandling();
-SvgCharacterNode* addGap(SvgCharacterNode* pPreviousCharacterNode);
+SvgCharacterNode* whiteSpaceHandling(SvgCharacterNode* 
pPreviousCharacterNode);
 void concatenate(std::u16string_view rText);
 
 /// Text content
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index ed3fa02e1c22..2c9f9ea72485 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -855,7 +855,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf85770)
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"height"_ostr, "11");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"familyname"_ostr, "Times New Roman");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, 
"fontcolor"_ostr, "#00");
-assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, 
"text"_ostr, "Start");
+assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, 
"text"_ostr, "Start ");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, 
"height"_ostr, "11");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, 
"familyname"_ostr, "Times New Roman");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]"_ostr, 
"fontcolor"_ostr, "#00");
@@ -900,17 +900,17 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf93583)
 CPPUNIT_ASSERT (pDocument);
 
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"text"_ostr, "This is the");
-assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"x"_ostr, "62");
+assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"x"_ostr, "58");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"y"_ostr, "303");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"width"_ostr, "16");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, 
"height"_ostr, "16");
-assertXPath(pDocum

core.git: icon-themes/breeze icon-themes/breeze_dark icon-themes/colibre icon-themes/colibre_dark icon-themes/elementary icon-themes/karasa_jaga icon-themes/sifr icon-themes/sifr_dark icon-themes/suka

2024-05-03 Thread Justin Luth (via logerrit)
 icon-themes/breeze/links.txt |3 
 icon-themes/breeze_dark/links.txt|4 
 icon-themes/colibre/links.txt|3 
 icon-themes/colibre_dark/links.txt   |3 
 icon-themes/elementary/links.txt |3 
 icon-themes/karasa_jaga/links.txt|3 
 icon-themes/sifr/links.txt   |3 
 icon-themes/sifr_dark/links.txt  |3 
 icon-themes/sukapura/links.txt   |3 
 icon-themes/sukapura_dark/links.txt  |3 
 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu |   11 ++
 sc/uiconfig/scalc/ui/notebookbar.ui  |   54 
+
 sd/uiconfig/sdraw/ui/notebookbar.ui  |   54 
+
 sd/uiconfig/simpress/ui/notebookbar.ui   |   54 
+
 sfx2/sdi/appslots.sdi|1 
 sfx2/sdi/sfx.sdi |5 
 sfx2/source/appl/appserv.cxx |   55 
+-
 sw/uiconfig/swriter/ui/notebookbar.ui|   54 
+
 18 files changed, 313 insertions(+), 6 deletions(-)

New commits:
commit da86bfd89e529e787da0bbb3e3150c1f5d4e0dfd
Author: Justin Luth 
AuthorDate: Sat Apr 27 10:58:45 2024 -0400
Commit: Justin Luth 
CommitDate: Fri May 3 17:58:15 2024 +0200

tdf#160349: add .uno:ChangeTheme to notebookbar to toggle dark mode

A temporary (ugly, but appropriate) icon has been assigned.

The toggle can be customize-assigned to keyboard, menu, and toolbar,
and can be found by searching for "Dark Mode".

In the menu, it is checked when in Dark mode,
and in the toolbar it is "depressed" or highlighted as active.

Dark mode has been added to the view tab of notebookbar.ui.
I added it as NOT VISIBLE, for several reasons.
- dark mode is rather new and not so stable, so don't over-promote it.
- notebookbars cannot be infinitely customized by the end user,
  so developers have to add all items. Users only enable or disable.
- toggling dark mode really ought to be done at the OS level,
  and typically should be a one-time setting,
  therefore not appropriate to waste precious toolbar space.

The primary benefit of making it available in the menu
is for QA testers who want to easily switch back and forth.
WARNING: by customizing the notebookbar, you prevent seeing
any future NBB changes made to the program
(until you reset to defaults or blow away the user profile).

Dark Mode can easily be added to a menu, toolbar or keyboard shortcut
by the end user, so I didn't bother adding it anywhere else.

To avoid completely cluttering up this commit,
I only added Dark mode to the main notebookbar.
Once this commit has been finalized,
the other writer-apps and notebookbars can
also gain this command.

Change-Id: Ia7594ad81e305ead922abd0ad7b41d6fc0413053
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166781
Reviewed-by: Heiko Tietze 
Tested-by: Jenkins
Reviewed-by: Justin Luth 

diff --git a/icon-themes/breeze/links.txt b/icon-themes/breeze/links.txt
index 8eaca399a5f0..23ba813b7107 100644
--- a/icon-themes/breeze/links.txt
+++ b/icon-themes/breeze/links.txt
@@ -1486,16 +1486,19 @@ cmd/sc_leftpara.png cmd/sc_alignleft.png
 cmd/sc_rightpara.png cmd/sc_alignright.png
 
 # View menu
+cmd/32/changetheme.png cmd/32/symbolshapes.moon.png
 cmd/32/gridmenu.png cmd/32/gridvisible.png
 cmd/32/navigatemenu.png cmd/32/navigator.png
 cmd/32/scrollbarmenu.png cmd/32/scrollbar.png
 cmd/32/sidebarmenu.png cmd/32/sidebar.png
 
+cmd/lc_changetheme.png cmd/lc_symbolshapes.moon.png
 cmd/lc_gridmenu.png cmd/lc_gridvisible.png
 cmd/lc_navigatemenu.png cmd/lc_navigator.png
 cmd/lc_scrollbarmenu.png cmd/lc_scrollbar.png
 cmd/lc_sidebarmenu.png cmd/lc_sidebar.png
 
+cmd/sc_changetheme.png cmd/sc_symbolshapes.moon.png
 cmd/sc_gridmenu.png cmd/sc_gridvisible.png
 cmd/sc_navigatemenu.png cmd/sc_navigator.png
 cmd/sc_scrollbarmenu.png cmd/sc_scrollbar.png
diff --git a/icon-themes/breeze_dark/links.txt 
b/icon-themes/breeze_dark/links.txt
index 8eaca399a5f0..748bc16ab2d2 100644
--- a/icon-themes/breeze_dark/links.txt
+++ b/icon-themes/breeze_dark/links.txt
@@ -1486,16 +1486,20 @@ cmd/sc_leftpara.png cmd/sc_alignleft.png
 cmd/sc_rightpara.png cmd/sc_alignright.png
 
 # View menu
+
+cmd/32/changetheme.png cmd/32/symbolshapes.moon.png
 cmd/32/gridmenu.png cmd/32/gridvisible.png
 cmd/32/navigatemenu.png cmd/32/navigator.png
 cmd/32/scrollbarmenu.png cmd/32/scrollbar.png
 cmd/32/sid

core.git: Branch 'libreoffice-24-2' - svgio/inc svgio/qa svgio/source

2024-05-03 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgstyleattributes.hxx  |8 +
 svgio/qa/cppunit/SvgImportTest.cxx|   11 +++
 svgio/qa/cppunit/data/contextStroke.svg   |   14 +
 svgio/source/svgreader/svgmarkernode.cxx  |2 -
 svgio/source/svgreader/svgstyleattributes.cxx |   37 +++---
 5 files changed, 68 insertions(+), 4 deletions(-)

New commits:
commit f4a868ce3b7e5fe6e708f2c795402d646e0746d5
Author: Xisco Fauli 
AuthorDate: Thu May 2 22:16:36 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri May 3 18:26:48 2024 +0200

tdf#155651: Add support for "context-stroke"

Change-Id: Ib4f4a7b644d0d6c6b36e31b80fd7adc18999110d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166908
Reviewed-by: Xisco Fauli 
Tested-by: Jenkins

diff --git a/svgio/inc/svgstyleattributes.hxx b/svgio/inc/svgstyleattributes.hxx
index c5c095462f3d..61a3816e82cb 100644
--- a/svgio/inc/svgstyleattributes.hxx
+++ b/svgio/inc/svgstyleattributes.hxx
@@ -247,10 +247,15 @@ namespace svgio::svgreader
 // #121221# Defines if evtl. an empty array *is* set
 boolmbStrokeDasharraySet : 1;
 
+// tdf#155651 Defines if 'context-stroke' is used in stroke
+boolmbContextStroke : 1;
+
 // tdf#94765 Check id references in gradient/pattern getters
 OUStringmaNodeFillURL;
 OUStringmaNodeStrokeURL;
 
+const basegfx::BColor*  maContextStroke;
+
 /// internal helpers
 void add_fillGradient(
 const basegfx::B2DPolyPolygon& rPath,
@@ -327,6 +332,9 @@ namespace svgio::svgreader
 /// stroke content
 const basegfx::BColor* getStroke() const;
 
+/// context stroke content
+const basegfx::BColor* getContextStroke() const;
+
 /// stop color content
 const basegfx::BColor& getStopColor() const;
 
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 2c9f9ea72485..407e8aa0c3bb 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -669,6 +669,17 @@ CPPUNIT_TEST_FIXTURE(Test, testMarkerOrient)
 assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, 
"xy33"_ostr, "1");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testContextStroke)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/contextStroke.svg");
+
+assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/line"_ostr, "color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[2]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[3]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform[4]/polypolygonstroke/line"_ostr, 
"color"_ostr, "#ff");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testMarkerInPresentation)
 {
 Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/markerInPresentation.svg");
diff --git a/svgio/qa/cppunit/data/contextStroke.svg 
b/svgio/qa/cppunit/data/contextStroke.svg
new file mode 100644
index ..5a9b27d69c84
--- /dev/null
+++ b/svgio/qa/cppunit/data/contextStroke.svg
@@ -0,0 +1,14 @@
+http://www.w3.org/2000/svg"; viewBox="0 0 100 100">
+  
+path {
+  fill: none;
+  stroke-width: 4px;
+  marker: url(#diamond);
+}
+  
+  
+
+  
+
+  
+
diff --git a/svgio/source/svgreader/svgmarkernode.cxx 
b/svgio/source/svgreader/svgmarkernode.cxx
index 083471b49c6b..2279920634a6 100644
--- a/svgio/source/svgreader/svgmarkernode.cxx
+++ b/svgio/source/svgreader/svgmarkernode.cxx
@@ -174,7 +174,7 @@ namespace svgio::svgreader
 
 const drawinglayer::primitive2d::Primitive2DContainer& 
SvgMarkerNode::getMarkerPrimitives() const
 {
-if(aPrimitives.empty() && Display::None != getDisplay())
+if(Display::None != getDisplay())
 {
 decomposeSvgNode(const_cast< SvgMarkerNode* 
>(this)->aPrimitives, true);
 }
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 50f72199e40b..81ef74d62f63 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -817,6 +817,11 @@ namespace svgio::svgreader
 rMarkerTransform.identity();
 rClipRange.reset();
 
+// Set the current stroke to the marker before calling 
getMarkerPrimitives,
+// which calls decomposeSvgNode to decompose the children of the 
marker.
+// If any of the children uses 'stroke="context-stroke"', then it 
will use it
+ 

core.git: Branch 'libreoffice-24-2' - 2 commits - drawinglayer/source

2024-05-03 Thread Mike Kaganski (via logerrit)
 drawinglayer/source/primitive2d/textlayoutdevice.cxx |   13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

New commits:
commit d1c31e3857b7f0c6b3fb72da0c967bfa2bdef015
Author: Mike Kaganski 
AuthorDate: Tue Apr 23 05:25:34 2024 +0500
Commit: Xisco Fauli 
CommitDate: Fri May 3 18:27:18 2024 +0200

Fix a thinko in 8a97f1ba8d9ccb65b2c89106de20666311d90c30

Change-Id: I07bb67e9384470269d1fd3df087acee377cce729
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166490
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167052

diff --git a/drawinglayer/source/primitive2d/textlayoutdevice.cxx 
b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
index 3e5708a99de6..9de634076960 100644
--- a/drawinglayer/source/primitive2d/textlayoutdevice.cxx
+++ b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
@@ -188,7 +188,7 @@ void TextLayouterDevice::setFontAttribute(const 
attribute::FontAttribute& rFontA
 }
 else
 {
-mnFontScalingFixX = mnFontScalingFixY = 0;
+mnFontScalingFixX = mnFontScalingFixY = 1.0;
 }
 }
 
commit 14c7b4249e822c218f912fcd3707226081363f7a
Author: Mike Kaganski 
AuthorDate: Mon Apr 22 14:45:37 2024 +0500
Commit: Xisco Fauli 
CommitDate: Fri May 3 18:27:07 2024 +0200

tdf#160773: handle 0-size font height

Regression from commit cc3663bbaed4f65d64154e5f9abb51a5f622f710
(tdf#160702: improve text positioning, 2024-04-20), where I didn't
know yet that this was possible :-)

Change-Id: I1316db48b8acbacd077eeb4a8989c3dbf7e4a7b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166425
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167051

diff --git a/drawinglayer/source/primitive2d/textlayoutdevice.cxx 
b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
index afc0663aa4b0..3e5708a99de6 100644
--- a/drawinglayer/source/primitive2d/textlayoutdevice.cxx
+++ b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
@@ -179,8 +179,17 @@ void TextLayouterDevice::setFontAttribute(const 
attribute::FontAttribute& rFontA
 = getVclFontFromFontAttribute(rFontAttribute, fFontScaleX, 
fFontScaleY, 0.0, rLocale);
 setFont(aFont);
 Size aFontSize = aFont.GetFontSize();
-mnFontScalingFixY = fFontScaleY / aFontSize.Height();
-mnFontScalingFixX = fFontScaleX / (aFontSize.Width() ? aFontSize.Width() : 
aFontSize.Height());
+if (aFontSize.Height())
+{
+mnFontScalingFixY = fFontScaleY / aFontSize.Height();
+// aFontSize.Width() is 0 for uninformly scaled fonts: see 
getVclFontFromFontAttribute
+mnFontScalingFixX
+= fFontScaleX / (aFontSize.Width() ? aFontSize.Width() : 
aFontSize.Height());
+}
+else
+{
+mnFontScalingFixX = mnFontScalingFixY = 0;
+}
 }
 
 double TextLayouterDevice::getOverlineOffset() const


core.git: 2 commits - svtools/source svx/source

2024-05-03 Thread Noel Grandin (via logerrit)
 svtools/source/dialogs/addresstemplate.cxx   |   23 
 svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx |  420 +++
 2 files changed, 217 insertions(+), 226 deletions(-)

New commits:
commit e475901ac053215f031cec8a0ef1ceeac30d7551
Author: Noel Grandin 
AuthorDate: Thu May 2 13:35:59 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 18:32:27 2024 +0200

replace createFromAscii with OUString literals in svx

Change-Id: I7977276b14b44c6ee0ce71d9573bd33d4cc5cbae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167047
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx 
b/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
index cafea3164a16..fe1db10f67c3 100644
--- a/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
@@ -24,220 +24,220 @@ namespace {
 
 struct NameTypeTable
 {
-const char* pS;
+OUStringpS;
 MSO_SPT pE;
 };
 
 }
 
-const NameTypeTable pNameTypeTableArray[] =
+constexpr NameTypeTable pNameTypeTableArray[] =
 {
-{ "non-primitive", mso_sptMin },
-{ "rectangle", mso_sptRectangle },
-{ "round-rectangle", mso_sptRoundRectangle },
-{ "ellipse", mso_sptEllipse },
-{ "diamond", mso_sptDiamond },
-{ "isosceles-triangle", mso_sptIsocelesTriangle },
-{ "right-triangle", mso_sptRightTriangle },
-{ "parallelogram", mso_sptParallelogram },
-{ "trapezoid", mso_sptTrapezoid },
-{ "hexagon", mso_sptHexagon },
-{ "octagon", mso_sptOctagon },
-{ "cross", mso_sptPlus },
-{ "star5", mso_sptStar },
-{ "right-arrow", mso_sptArrow },
-{ "mso-spt14", mso_sptThickArrow },
-{ "pentagon-right", mso_sptHomePlate },
-{ "cube", mso_sptCube },
-{ "mso-spt17", mso_sptBalloon },
-{ "mso-spt18", mso_sptSeal },
-{ "mso-spt19", mso_sptArc },
-{ "mso-spt20", mso_sptLine },
-{ "mso-spt21", mso_sptPlaque },
-{ "can", mso_sptCan },
-{ "ring", mso_sptDonut },
-{ "mso-spt24", mso_sptTextSimple },
-{ "mso-spt25", mso_sptTextOctagon },
-{ "mso-spt26", mso_sptTextHexagon },
-{ "mso-spt27", mso_sptTextCurve },
-{ "mso-spt28", mso_sptTextWave },
-{ "mso-spt29", mso_sptTextRing },
-{ "mso-spt30", mso_sptTextOnCurve },
-{ "mso-spt31", mso_sptTextOnRing },
-{ "mso-spt32", mso_sptStraightConnector1 },
-{ "mso-spt33", mso_sptBentConnector2 },
-{ "mso-spt34", mso_sptBentConnector3 },
-{ "mso-spt35", mso_sptBentConnector4 },
-{ "mso-spt36", mso_sptBentConnector5 },
-{ "mso-spt37", mso_sptCurvedConnector2 },
-{ "mso-spt38", mso_sptCurvedConnector3 },
-{ "mso-spt39", mso_sptCurvedConnector4 },
-{ "mso-spt40", mso_sptCurvedConnector5 },
-{ "mso-spt41", mso_sptCallout1 },
-{ "mso-spt42", mso_sptCallout2 },
-{ "mso-spt43", mso_sptCallout3 },
-{ "mso-spt44", mso_sptAccentCallout1 },
-{ "mso-spt45", mso_sptAccentCallout2 },
-{ "mso-spt46", mso_sptAccentCallout3 },
-{ "line-callout-1", mso_sptBorderCallout1 },
-{ "line-callout-2", mso_sptBorderCallout2 },
-{ "mso-spt49", mso_sptBorderCallout3 },
-{ "mso-spt50", mso_sptAccentBorderCallout1 },
-{ "mso-spt51", mso_sptAccentBorderCallout2 },
-{ "mso-spt52", mso_sptAccentBorderCallout3 },
-{ "mso-spt53", mso_sptRibbon },
-{ "mso-spt54", mso_sptRibbon2 },
-{ "chevron", mso_sptChevron },
-{ "pentagon", mso_sptPentagon },
-{ "forbidden", mso_sptNoSmoking },
-{ "star8", mso_sptSeal8 },
-{ "mso-spt59", mso_sptSeal16 },
-{ "mso-spt60", mso_sptSeal32 },
-{ "rectangular-callout", mso_sptWedgeRectCallout },
-{ "round-rectangular-callout", mso_sptWedgeRRectCallout },
-{ "round-callout", mso_sptWedgeEllipseCallout },
-{ "mso-spt64", mso_sptWave },
-{ "paper", mso_sptFoldedCorner },
-{ "left-arrow", mso_sptLeftArrow },
-{ "down-arrow", mso_sptDownArrow },
-{ "up-arrow", mso_sptUpArrow },
-{ "left-right-arrow", mso_sptLeftRightArrow },
-{ "up-down-arrow", mso_sptUpDownArrow },
-{ "mso-spt71", mso_sptIrregularSeal1 },
-{ "bang", mso_sptIrregularSeal2 },
-{ "lightning", mso_sptLightningBolt },
-{ "heart", mso_sptHeart },
-{ "mso-spt75", mso_sptPictureFrame },
-{ "quad-arrow", mso_sptQuadArrow },
-{ "left-arrow-callout", mso_sptLeftArrowCallout },
-{ "right-arrow-callout", mso_sptRightArrowCallout },
-{ "up-arrow-callout", mso_sptUpArrowCallout },
-{ "down-arrow-callout", mso_sptDownArrowCallout },
-{ "left-right-arrow-callout", mso_sptLeftRightArrowCallout },
-{ "up-down-arrow-callout", mso_sptUpDownArrowCallout },
-{ "quad-arrow-callout", mso_sptQuadArrowCallout },
-{ "quad-bevel", mso_sptBevel },
-{ "left-bracket", mso_sptLeftBracket },
-{ "right-bracket", mso_sptRightBracket },
-{ "left-brace", mso_sptLeftBrace },
-{ "right-brace", mso_sptRightBra

core.git: comphelper/qa

2024-05-03 Thread Noel Grandin (via logerrit)
 comphelper/qa/unit/variadictemplates.cxx |8 
 1 file changed, 8 insertions(+)

New commits:
commit 86d2d8e03763e97a067b1dca8cb8d9829064abdc
Author: Noel Grandin 
AuthorDate: Fri May 3 12:43:40 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 18:32:39 2024 +0200

try to work around clang compiler crash on macos

clang::CodeGen::CodeGenFunction::EmitAggregateStore(llvm::Value*,
clang::CodeGen::Address, bool)
(anonymous
namespace)::AggExprEmitter::VisitConstantExpr(clang::ConstantExpr*)
(anonymous namespace)::AggExprEmitter::VisitCastExpr(clang::CastExpr*)
clang::CodeGen::CodeGenFunction::EmitAggExpr(clang::Expr const*,
clang::CodeGen::AggValueSlot)
clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*)
clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*,
llvm::ArrayRef)

clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt
const&, bool, clang::CodeGen::AggValueSlot)
clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&)

clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl,
llvm::GlobalValue*)

Change-Id: I96ef1d95a46542d2dfa85f5c6dbfa2ec05b41302
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167045
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/comphelper/qa/unit/variadictemplates.cxx 
b/comphelper/qa/unit/variadictemplates.cxx
index 48ed59faab78..0ab7cb757669 100644
--- a/comphelper/qa/unit/variadictemplates.cxx
+++ b/comphelper/qa/unit/variadictemplates.cxx
@@ -23,10 +23,16 @@ public:
 void testUnwrapArgs();
 
 CPPUNIT_TEST_SUITE(VariadicTemplatesTest);
+// This unit test sometimes generates a compiler crash on macos Intel. 
Unfortunately the crash
+// is sometimes in the codegen phase, so its not obvious how to fix it.
+#if !(defined(MACOSX) && defined __x86_64__ && __clang_major__ <= 14)
 CPPUNIT_TEST(testUnwrapArgs);
+#endif
 CPPUNIT_TEST_SUITE_END();
 };
 
+#if !(defined(MACOSX) && defined __x86_64__ && __clang_major__ <= 14)
+
 namespace {
 
 namespace detail {
@@ -171,9 +177,11 @@ void VariadicTemplatesTest::testUnwrapArgs() {
 }
 }
 }
+#endif
 
 CPPUNIT_TEST_SUITE_REGISTRATION(VariadicTemplatesTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
 
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


core.git: basctl/source

2024-05-03 Thread Noel Grandin (via logerrit)
 basctl/source/accessibility/accessibledialogcontrolshape.cxx |4 
 basctl/source/basicide/BasicColorConfig.cxx  |4 
 basctl/source/basicide/ColorSchemeDialog.cxx |   11 -
 basctl/source/basicide/IDEComboBox.cxx   |4 
 basctl/source/basicide/ObjectCatalog.cxx |9 
 basctl/source/basicide/basdoc.cxx|2 
 basctl/source/basicide/basicrenderable.cxx   |   26 +-
 basctl/source/basicide/baside2.cxx   |   10 
 basctl/source/basicide/baside2b.cxx  |   56 ++---
 basctl/source/basicide/baside3.cxx   |   10 
 basctl/source/basicide/basides1.cxx  |6 
 basctl/source/basicide/basides3.cxx  |2 
 basctl/source/basicide/basidesh.cxx  |8 
 basctl/source/basicide/bastype2.cxx  |6 
 basctl/source/basicide/bastypes.cxx  |2 
 basctl/source/basicide/brkdlg.cxx|   17 -
 basctl/source/basicide/iderdll.cxx   |2 
 basctl/source/basicide/linenumberwindow.cxx  |4 
 basctl/source/basicide/localizationmgr.cxx   |4 
 basctl/source/basicide/macrodlg.cxx  |   44 ++--
 basctl/source/basicide/moduldl2.cxx  |   54 ++---
 basctl/source/basicide/moduldlg.cxx  |   32 +--
 basctl/source/basicide/scriptdocument.cxx|8 
 basctl/source/basicide/uiobject.cxx  |4 
 basctl/source/basicide/unomodel.cxx  |6 
 basctl/source/dlged/dlged.cxx|   16 -
 basctl/source/dlged/dlgedfac.cxx |   66 +++---
 basctl/source/dlged/dlgedobj.cxx |  114 +--
 basctl/source/dlged/dlgedview.cxx|2 
 basctl/source/dlged/managelang.cxx   |   32 +--
 basctl/source/dlged/propbrw.cxx  |   54 ++---
 basctl/source/inc/BasicColorConfig.hxx   |6 
 32 files changed, 314 insertions(+), 311 deletions(-)

New commits:
commit 740353bc31583d9e8ad77a2b2289a204466ccf9e
Author: Noel Grandin 
AuthorDate: Fri May 3 14:55:25 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 18:38:56 2024 +0200

loplugin:ostr in basctl

Change-Id: I59c25d52d8f59ff1b7ab498041c2888b8e718f64
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167056
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/basctl/source/accessibility/accessibledialogcontrolshape.cxx 
b/basctl/source/accessibility/accessibledialogcontrolshape.cxx
index c19741c95afa..4abd4076d26a 100644
--- a/basctl/source/accessibility/accessibledialogcontrolshape.cxx
+++ b/basctl/source/accessibility/accessibledialogcontrolshape.cxx
@@ -372,7 +372,7 @@ OUString 
AccessibleDialogControlShape::getAccessibleDescription(  )
 {
 OExternalLockGuard aGuard( this );
 
-return GetModelStringProperty( "HelpText" );
+return GetModelStringProperty( u"HelpText"_ustr );
 }
 
 
@@ -380,7 +380,7 @@ OUString AccessibleDialogControlShape::getAccessibleName(  )
 {
 OExternalLockGuard aGuard( this );
 
-return GetModelStringProperty( "Name" );
+return GetModelStringProperty( u"Name"_ustr );
 }
 
 
diff --git a/basctl/source/basicide/BasicColorConfig.cxx 
b/basctl/source/basicide/BasicColorConfig.cxx
index 433c55b531ac..9a5e483bc248 100644
--- a/basctl/source/basicide/BasicColorConfig.cxx
+++ b/basctl/source/basicide/BasicColorConfig.cxx
@@ -26,13 +26,13 @@
 namespace basctl
 {
 BasicColorConfig::BasicColorConfig()
-: ConfigItem("Office.BasicIDE/IDEColorSchemes")
+: ConfigItem(u"Office.BasicIDE/IDEColorSchemes"_ustr)
 {
 // Initially the active color scheme is the one defined in the registry
 m_sCurrentColorScheme = 
officecfg::Office::BasicIDE::EditorSettings::ColorScheme::get();
 
 // Initialize all available scheme names
-m_aSchemeNames = GetNodeNames("");
+m_aSchemeNames = GetNodeNames(u""_ustr);
 }
 
 BasicColorConfig::~BasicColorConfig() {}
diff --git a/basctl/source/basicide/ColorSchemeDialog.cxx 
b/basctl/source/basicide/ColorSchemeDialog.cxx
index 4351624e4298..ca3eeca9cbef 100644
--- a/basctl/source/basicide/ColorSchemeDialog.cxx
+++ b/basctl/source/basicide/ColorSchemeDialog.cxx
@@ -33,12 +33,13 @@ namespace basctl
 {
 ColorSchemeDialog::ColorSchemeDialog(weld::Window* pParent,
  VclPtr pModulWinLayout)
-: GenericDialogController(pParent, "modules/BasicIDE/ui/colorscheme.ui", 
"ColorSchemeDialog")
+: GenericDialogController(pParent, 
u"modules/BasicIDE/ui/colorscheme.ui"_ustr,
+  u"ColorSchemeDialog"_ustr)
 , m_pModu

core.git: editeng/source sd/qa

2024-05-03 Thread Mike Kaganski (via logerrit)
 editeng/source/editeng/impedit3.cxx|2 -
 sd/qa/unit/data/odg/adjust-to-contour.fodg |   52 +
 sd/qa/unit/layout-tests.cxx|   48 ++
 3 files changed, 101 insertions(+), 1 deletion(-)

New commits:
commit 4d0987564c33bbccc9b58e041d106c6caf7686a3
Author: Mike Kaganski 
AuthorDate: Fri May 3 14:14:26 2024 +0500
Commit: Mike Kaganski 
CommitDate: Fri May 3 18:43:44 2024 +0200

tdf#152906: use correct Y offset

GetEditCursor now returns the position relative to the line, not
to the whole text. In ImpEditEngine::CreateLines, its use wasn't
fixed, and so the Y position of all lines in the calculation was
the same, thus adjusting to the same contour's horizontal stripe.

Change-Id: I16362bab47f3064281eefb45a12834d836a8ada3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167042
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/editeng/source/editeng/impedit3.cxx 
b/editeng/source/editeng/impedit3.cxx
index f548e2423490..288afb5a33bd 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -923,7 +923,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, 
sal_uInt32 nStartPosY )
 {
 GetTextRanger()->SetVertical( IsEffectivelyVertical() );
 
-tools::Long nTextY = nStartPosY + GetEditCursor(rParaPortion, 
*pLine, pLine->GetStart(), CursorFlags()).Top();
+tools::Long nTextY = nCurrentPosY + GetEditCursor(rParaPortion, 
*pLine, pLine->GetStart(), CursorFlags()).Top();
 if ( !bSameLineAgain )
 {
 SeekCursor( pNode, nTmpPos+1, aTmpFont );
diff --git a/sd/qa/unit/data/odg/adjust-to-contour.fodg 
b/sd/qa/unit/data/odg/adjust-to-contour.fodg
new file mode 100644
index ..a5ec6fed74fc
--- /dev/null
+++ b/sd/qa/unit/data/odg/adjust-to-contour.fodg
@@ -0,0 +1,52 @@
+
+
+
+ 
+  
+ 
+ 
+  
+   
+   
+
+   
+  
+  
+   
+   
+   
+  
+ 
+ 
+  
+   
+  
+  
+  
+   
+  
+  
+   
+   
+  
+ 
+ 
+  
+   
+   
+   
+   
+   
+  
+  
+ 
+ 
+  
+   
+
+ Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. Vestibulum consequat mi quis pretium semper. Proin luctus orci 
ac neque venenatis, quis commodo dolor posuere. Curabitur dignissim sapien quis 
cursus egestas. Donec blandit auctor arcu, nec pellentesque eros molestie eget. 
In consectetur aliquam hendrerit. Sed cursus mauris vitae ligula pellentesque, 
non pellentesque urna aliquet. Fusce placerat mauris enim, nec rutrum purus 
semper vel. Praesent tincidunt neque eu pellentesque pharetra. Fusce 
pellentesque est orci.
+
+   
+  
+ 
+
\ No newline at end of file
diff --git a/sd/qa/unit/layout-tests.cxx b/sd/qa/unit/layout-tests.cxx
index 1735f6574be3..8143b82e5a1b 100644
--- a/sd/qa/unit/layout-tests.cxx
+++ b/sd/qa/unit/layout-tests.cxx
@@ -380,6 +380,54 @@ CPPUNIT_TEST_FIXTURE(SdLayoutTest, testTdf112594)
u"11\u202f\u1824"_ustr);
 }
 
+CPPUNIT_TEST_FIXTURE(SdLayoutTest, testTdf152906_AdjustToContour)
+{
+// Test that the text adjusts to contour properly
+
+constexpr OUString sText
+= u"Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Vestibulum consequat mi quis "
+  "pretium semper. Proin luctus orci ac neque venenatis, quis commodo 
dolor posuere. "
+  "Curabitur dignissim sapien quis cursus egestas. Donec blandit 
auctor arcu, nec "
+  "pellentesque eros molestie eget. In consectetur aliquam hendrerit. 
Sed cursus mauris "
+  "vitae ligula pellentesque, non pellentesque urna aliquet. Fusce 
placerat mauris enim, "
+  "nec rutrum purus semper vel. Praesent tincidunt neque eu 
pellentesque pharetra. Fusce "
+  "pellentesque est orci."_ustr;
+
+// index, length, x, y
+const std::tuple strings[] = {
+{ 0, 6, 9599, 8647 }, //Lorem
+{ 6, 22, 7570, 9358 }, //   ipsum dolor sit amet,
+{ 28, 29, 6775, 10069 }, // consectetur adipiscing elit.
+{ 57, 29, 6299, 10780 }, // Vestibulum consequat mi quis
+{ 86, 37, 5453, 11491 }, // pretium semper. Proin luctus orci ac
+{ 123, 36, 5134, 12202 }, // neque venenatis, quis commodo dolor
+{ 159, 41, 4764, 12913 }, //  posuere. Curabitur dignissim sapien quis
+{ 200, 43, 4481, 13624 }, // cursus egestas. Donec blandit auctor arcu,
+{ 243, 40, 4975, 14335 }, //   nec pellentesque eros molestie eget. In
+{ 283, 42, 4552, 15046 }, //  consectetur aliquam hendrerit. Sed cursus
+{ 325, 38, 5363, 15757 }, //mauris vitae ligula pellentesque, non
+{ 363, 42, 4692, 16468 }, //  pellentesque urna aliquet. Fusce placerat
+{ 405, 37, 5047, 17179 }, //mauris enim, nec rutrum purus semper
+{ 442, 33, 5963, 17890 }, //  vel. Praesent tincidunt neque eu
+{ 475, 29, 6387, 18601

Which GUI toolkit should I learn so that I can "Hack the UI"

2024-05-03 Thread Printf Debugging
**Opinions invited**: I want to work on the UI, beyond small issues, 
like creating custom widgets, notebookbar, tabbed UI etc. I feel that I 
need to know a GUI toolkit well, like gtk or qt for that. So some days 
ago, I started playing around with GTK. My question is that which 
toolkit will be more useful? I picked GTK because we use .ui files for 
the UI, and being good at GTK will somehow help when working on LO UI, 
but again I don't know, that's just an idea.


core.git: svx/source

2024-05-03 Thread Noel Grandin (via logerrit)
 svx/source/form/formcontrolfactory.cxx |  263 -
 1 file changed, 128 insertions(+), 135 deletions(-)

New commits:
commit 544bc99ba834263a6800c05bbd08df3cca3a6e1a
Author: Noel Grandin 
AuthorDate: Thu May 2 13:38:49 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 19:34:33 2024 +0200

replace createFromAscii with OUString literals in svx

Change-Id: I9d3b6b99ea5ca9f6d17729ae55cd4c3bad75ada1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167061
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/svx/source/form/formcontrolfactory.cxx 
b/svx/source/form/formcontrolfactory.cxx
index dc879a084802..540c4e80e7de 100644
--- a/svx/source/form/formcontrolfactory.cxx
+++ b/svx/source/form/formcontrolfactory.cxx
@@ -204,135 +204,134 @@ namespace svxform
 }
 
 
-const char* aCharacterAndParagraphProperties[] =
+constexpr OUString aCharacterAndParagraphProperties[]
 {
-"CharFontName",
-"CharFontStyleName",
-"CharFontFamily",
-"CharFontCharSet",
-"CharFontPitch",
-"CharColor",
-"CharEscapement",
-"CharHeight",
-"CharUnderline",
-"CharWeight",
-"CharPosture",
-"CharAutoKerning",
-"CharBackColor",
-"CharBackTransparent",
-"CharCaseMap",
-"CharCrossedOut",
-"CharFlash",
-"CharStrikeout",
-"CharWordMode",
-"CharKerning",
-"CharLocale",
-"CharKeepTogether",
-"CharNoLineBreak",
-"CharShadowed",
-"CharFontType",
-"CharStyleName",
-"CharContoured",
-"CharCombineIsOn",
-"CharCombinePrefix",
-"CharCombineSuffix",
-"CharEmphasize",
-"CharRelief",
-"RubyText",
-"RubyAdjust",
-"RubyCharStyleName",
-"RubyIsAbove",
-"CharRotation",
-"CharRotationIsFitToLine",
-"CharScaleWidth",
-"HyperLinkURL",
-"HyperLinkTarget",
-"HyperLinkName",
-"VisitedCharStyleName",
-"UnvisitedCharStyleName",
-"CharEscapementHeight",
-"CharNoHyphenation",
-"CharUnderlineColor",
-"CharUnderlineHasColor",
-"CharStyleNames",
-"CharHeightAsian",
-"CharWeightAsian",
-"CharFontNameAsian",
-"CharFontStyleNameAsian",
-"CharFontFamilyAsian",
-"CharFontCharSetAsian",
-"CharFontPitchAsian",
-"CharPostureAsian",
-"CharLocaleAsian",
-"ParaIsCharacterDistance",
-"ParaIsForbiddenRules",
-"ParaIsHangingPunctuation",
-"CharHeightComplex",
-"CharWeightComplex",
-"CharFontNameComplex",
-"CharFontStyleNameComplex",
-"CharFontFamilyComplex",
-"CharFontCharSetComplex",
-"CharFontPitchComplex",
-"CharPostureComplex",
-"CharLocaleComplex",
-"ParaAdjust",
-"ParaLineSpacing",
-"ParaBackColor",
-"ParaBackTransparent",
-"ParaBackGraphic",
-"ParaBackGraphicURL",
-"ParaBackGraphicFilter",
-"ParaBackGraphicLocation",
-"ParaLastLineAdjust",
-"ParaExpandSingleWord",
-"ParaLeftMargin",
-"ParaRightMargin",
-"ParaTopMargin",
-"ParaBottomMargin",
-"ParaLineNumberCount",
-"ParaLineNumberStartValue",
-"PageDescName",
-"PageNumberOffset",
-"ParaRegisterModeActive",
-"ParaTabStops",
-"ParaStyleName",
-"DropCapFormat",
-"DropCapWholeWord",
-"ParaKeepTogether",
-"Setting",
-"ParaSplit",
-"Setting",
-"NumberingLevel",
-"NumberingRules",
-"NumberingStartValue",
-"ParaIsNumberingRestart",
-"NumberingStyleName",
-"ParaOrphans",
-"ParaWidows",
-"ParaShadowFormat",
-"LeftBorder",
-"RightBorder",
-"TopBorder",
-"BottomBorder",
-"BorderDistance",
-"LeftBorderDistance",
-"RightBorderDistance",
-"TopBorderDistance",
-"BottomBorderDistance",
-"BreakType",
-"DropCapCharStyleName",
-"ParaFirstLineIndent",
-"ParaIsAutoFirstLineIndent",
-"ParaIsHyphenation",
-"ParaHyphenationMaxHyphens",
-"ParaHyphenationMaxLeadingChars",
-"ParaHyphenationMaxTrailingChars",
- 

core.git: Branch 'distro/collabora/co-24.04' - comphelper/source desktop/source include/comphelper

2024-05-03 Thread Michael Meeks (via logerrit)
 comphelper/source/misc/random.cxx |   34 ++
 desktop/source/lib/init.cxx   |4 
 include/comphelper/random.hxx |2 ++
 3 files changed, 24 insertions(+), 16 deletions(-)

New commits:
commit 6d9228d6b14d968fa92df3ca018a555f8652e579
Author: Michael Meeks 
AuthorDate: Fri May 3 14:17:27 2024 +0100
Commit: Michael Meeks 
CommitDate: Fri May 3 19:54:47 2024 +0200

lok: reseed comphelper's random number generator on fork.

Also avoid std::random_device it doesn't work in a COOL
kit process.

Change-Id: Ie2d063611a73e734afd92d6fd779f34a2f316230
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167058
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Michael Meeks 
Reviewed-by: Caolán McNamara 

diff --git a/comphelper/source/misc/random.cxx 
b/comphelper/source/misc/random.cxx
index 96d466641dfb..b8358344e5b0 100644
--- a/comphelper/source/misc/random.cxx
+++ b/comphelper/source/misc/random.cxx
@@ -16,6 +16,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #if defined HAVE_VALGRIND_HEADERS
 #include 
@@ -40,7 +41,9 @@ struct RandomNumberGenerator
 {
 std::mutex mutex;
 STD_RNG_ALGO global_rng;
-RandomNumberGenerator()
+RandomNumberGenerator() { reseed(); }
+
+void reseed()
 {
 // make RR easier to use, breaks easily without the RNG being 
repeatable
 bool bRepeatable = (getenv("SAL_RAND_REPEATABLE") != nullptr) || 
(getenv("RR") != nullptr);
@@ -56,21 +59,18 @@ struct RandomNumberGenerator
 return;
 }
 
-try
-{
-std::random_device rd;
-// initialises the state of the global random number generator
-// should only be called once.
-// (note, a few std::variate_generator<> (like normal) have their
-// own state which would need a reset as well to guarantee 
identical
-// sequence of numbers, e.g. via myrand.distribution().reset())
-global_rng.seed(rd() ^ time(nullptr));
-}
-catch (std::runtime_error& e)
-{
-SAL_WARN("comphelper", "Using std::random_device failed: " << 
e.what());
-global_rng.seed(time(nullptr));
-}
+size_t seed = -1;
+rtlRandomPool aRandomPool = rtl_random_createPool();
+if (rtl_random_getBytes(aRandomPool, &seed, sizeof(seed)) != 
rtl_Random_E_None)
+seed = -1;
+rtl_random_destroyPool(aRandomPool);
+
+// initialises the state of the global random number generator
+// should only be called once.
+// (note, a few std::variate_generator<> (like normal) have their
+// own state which would need a reset as well to guarantee identical
+// sequence of numbers, e.g. via myrand.distribution().reset())
+global_rng.seed(seed ^ time(nullptr));
 }
 };
 
@@ -81,6 +81,8 @@ RandomNumberGenerator& GetTheRandomNumberGenerator()
 }
 }
 
+void reseed() { GetTheRandomNumberGenerator().reseed(); }
+
 // uniform ints [a,b] distribution
 int uniform_int_distribution(int a, int b)
 {
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 79e5af2fdedd..081166baeb0b 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -80,6 +80,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -8024,7 +8025,10 @@ static int lo_initialize(LibreOfficeKit* pThis, const 
char* pAppPath, const char
 }
 rtl::Bootstrap::set(u"UserInstallation"_ustr, url);
 if (eStage == SECOND_INIT)
+{
+comphelper::rng::reseed();
 utl::Bootstrap::reloadData();
+}
 }
 
 OUString aAppPath;
diff --git a/include/comphelper/random.hxx b/include/comphelper/random.hxx
index 345d57c7158d..1fe4dc5fdf58 100644
--- a/include/comphelper/random.hxx
+++ b/include/comphelper/random.hxx
@@ -17,6 +17,8 @@ namespace comphelper::rng
 // These functions obey the SAL_RAND_REPEATABLE environment
 // variable: If it is set, use a fixed seed.
 
+COMPHELPER_DLLPUBLIC void reseed();
+
 // note that uniform_int_distribution is inclusive of b, i.e. [a,b] while
 // uniform_real_distribution is exclusive of b, i.e. [a,b), std::nextafter may 
be your friend there
 


core.git: Branch 'distro/collabora/co-24.04' - desktop/inc desktop/source

2024-05-03 Thread Caolán McNamara (via logerrit)
 desktop/inc/lib/init.hxx|   20 +-
 desktop/source/lib/init.cxx |   62 +++-
 2 files changed, 36 insertions(+), 46 deletions(-)

New commits:
commit d78938768c6f8dbc0917184c8daa0c381400bff7
Author: Caolán McNamara 
AuthorDate: Fri May 3 13:59:44 2024 +0100
Commit: Michael Meeks 
CommitDate: Fri May 3 20:10:14 2024 +0200

flush CallbackFlushHandler queue via PostUserEvent instead of Idle+Timer

Looking at when Invoke was called from Idle (or from auxiliary Timeout
if there was no chance to run the Idle within 100ms) and when duplicate
merging and modification of the queue is done before getting dispatched
and cleared; Then the pattern is that duplicates are collected and
merged during the current block of events to be processed, and
dispatching the flush via PostUserEvent instead gives the same results.

During startup, scheduling via PostUserEvent drops the need to have the
aux timeout, and while the number of messages seen in the first queue
flush (now via PostUserEvent instead of 100ms Timer) remain the same as
before, subsequent queue flushes can get processed earlier while
smaller, though typically at the same time as before once the document
is fully loaded.

Change-Id: I64c6bbc3dea9fb3a512c2a9521303a8f143d4a89
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167064
Reviewed-by: Michael Meeks 
Tested-by: Jenkins CollaboraOffice 

diff --git a/desktop/inc/lib/init.hxx b/desktop/inc/lib/init.hxx
index 323a508098f5..536faf00aff9 100644
--- a/desktop/inc/lib/init.hxx
+++ b/desktop/inc/lib/init.hxx
@@ -93,12 +93,11 @@ namespace desktop {
 };
 
 /// One instance of this per view, handles flushing callbacks
-class DESKTOP_DLLPUBLIC CallbackFlushHandler final : public Idle, public 
SfxLokCallbackInterface
+class DESKTOP_DLLPUBLIC CallbackFlushHandler final : public 
SfxLokCallbackInterface
 {
 public:
 explicit CallbackFlushHandler(LibreOfficeKitDocument* pDocument, 
LibreOfficeKitCallback pCallback, void* pData);
 virtual ~CallbackFlushHandler() override;
-virtual void Invoke() override;
 // TODO This should be dropped and the binary 
libreOfficeKitViewCallback() variants should be called?
 void queue(const int type, const OString& data);
 
@@ -189,7 +188,8 @@ namespace desktop {
 typedef std::vector queue_type1;
 typedef std::vector queue_type2;
 
-void startTimer();
+void scheduleFlush();
+void invoke();
 bool removeAll(int type);
 bool removeAll(int type, const std::function& rTestFunc);
 bool processInvalidateTilesEvent(int type, CallbackData& 
aCallbackData);
@@ -200,6 +200,8 @@ namespace desktop {
 void enqueueUpdatedTypes();
 void enqueueUpdatedType( int type, const SfxViewShell* 
sourceViewShell, int viewId );
 
+void stop();
+
 /** we frequently want to scan the queue, and mostly when we do so, we 
only care about the element type
 so we split the queue in 2 to make the scanning cache friendly. */
 queue_type1 m_queue1;
@@ -230,18 +232,12 @@ namespace desktop {
 LibreOfficeKitDocument* m_pDocument;
 int m_viewId = -1; // view id of the associated SfxViewShell
 LibreOfficeKitCallback m_pCallback;
+ImplSVEvent* m_pFlushEvent;
 void *m_pData;
 int m_nDisableCallbacks;
 std::recursive_mutex m_mutex;
-class TimeoutIdle : public Timer
-{
-public:
-TimeoutIdle( CallbackFlushHandler* handler );
-virtual void Invoke() override;
-private:
-CallbackFlushHandler* mHandler;
-};
-TimeoutIdle m_TimeoutIdle;
+
+DECL_LINK(FlushQueue, void*, void);
 };
 
 struct DESKTOP_DLLPUBLIC LibLODocument_Impl : public 
_LibreOfficeKitDocument
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 081166baeb0b..d5476cfe7666 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -1524,32 +1524,14 @@ static OUString getGenerator()
 
 extern "C" {
 
-CallbackFlushHandler::TimeoutIdle::TimeoutIdle( CallbackFlushHandler* handler )
-: Timer( "lokit timer callback" )
-, mHandler( handler )
-{
-// A second timer with higher priority, it'll ensure we flush in 
reasonable time if we get too busy
-// to get POST_PAINT priority processing. Otherwise it could take a long 
time to flush.
-SetPriority(TaskPriority::DEFAULT);
-SetTimeout( 100 ); // 100 ms
-}
-
-void CallbackFlushHandler::TimeoutIdle::Invoke()
-{
-mHandler->Invoke();
-}
-
 // One of these is created per view to handle events cf. doc_registerCallback
 CallbackFlushHandler::CallbackFlushHandler(LibreOfficeKitDocument* pDocument, 
LibreOfficeKitCallback pCallback, void* pData)
-: Idle( "lokit idle callback" ),
-  m_pDocument(pD

core.git: 2 commits - svx/source sw/source

2024-05-03 Thread Noel Grandin (via logerrit)
 svx/source/tbxctrls/tbcontrl.cxx  |   14 +++---
 sw/source/core/fields/authfld.cxx |   78 +++---
 2 files changed, 46 insertions(+), 46 deletions(-)

New commits:
commit 6b8d8e4476fd5d640126cad39e70c68763c48f37
Author: Noel Grandin 
AuthorDate: Thu May 2 13:48:56 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 20:30:29 2024 +0200

replace createFromAscii with OUString literals in SwAuthorityField

Change-Id: Ifcbdd1bbab68e177e11a7e48cb1ed2eb2f2b53a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167069
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/sw/source/core/fields/authfld.cxx 
b/sw/source/core/fields/authfld.cxx
index b3ec935847a1..a8da2323f7d4 100644
--- a/sw/source/core/fields/authfld.cxx
+++ b/sw/source/core/fields/authfld.cxx
@@ -721,42 +721,42 @@ void SwAuthorityField::dumpAsXml(xmlTextWriterPtr 
pWriter) const
 (void)xmlTextWriterEndElement(pWriter);
 }
 
-const char* const aFieldNames[] =
-{
-"Identifier",
-"BibiliographicType",
-"Address",
-"Annote",
-"Author",
-"Booktitle",
-"Chapter",
-"Edition",
-"Editor",
-"Howpublished",
-"Institution",
-"Journal",
-"Month",
-"Note",
-"Number",
-"Organizations",
-"Pages",
-"Publisher",
-"School",
-"Series",
-"Title",
-"Report_Type",
-"Volume",
-"Year",
-"URL",
-"Custom1",
-"Custom2",
-"Custom3",
-"Custom4",
-"Custom5",
-"ISBN",
-"LocalURL",
-"TargetType",
-"TargetURL",
+constexpr OUString aFieldNames[]
+{
+u"Identifier"_ustr,
+u"BibiliographicType"_ustr,
+u"Address"_ustr,
+u"Annote"_ustr,
+u"Author"_ustr,
+u"Booktitle"_ustr,
+u"Chapter"_ustr,
+u"Edition"_ustr,
+u"Editor"_ustr,
+u"Howpublished"_ustr,
+u"Institution"_ustr,
+u"Journal"_ustr,
+u"Month"_ustr,
+u"Note"_ustr,
+u"Number"_ustr,
+u"Organizations"_ustr,
+u"Pages"_ustr,
+u"Publisher"_ustr,
+u"School"_ustr,
+u"Series"_ustr,
+u"Title"_ustr,
+u"Report_Type"_ustr,
+u"Volume"_ustr,
+u"Year"_ustr,
+u"URL"_ustr,
+u"Custom1"_ustr,
+u"Custom2"_ustr,
+u"Custom3"_ustr,
+u"Custom4"_ustr,
+u"Custom5"_ustr,
+u"ISBN"_ustr,
+u"LocalURL"_ustr,
+u"TargetType"_ustr,
+u"TargetURL"_ustr,
 };
 
 void SwAuthEntry::dumpAsXml(xmlTextWriterPtr pWriter) const
@@ -766,7 +766,7 @@ void SwAuthEntry::dumpAsXml(xmlTextWriterPtr pWriter) const
 for (int i = 0; i < AUTH_FIELD_END; ++i)
 {
 (void)xmlTextWriterStartElement(pWriter, BAD_CAST("m_aAuthField"));
-(void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("key"), 
BAD_CAST(aFieldNames[i]));
+(void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("key"), 
BAD_CAST(aFieldNames[i].toUtf8().getStr()));
 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("value"), 
BAD_CAST(m_aAuthFields[i].toUtf8().getStr()));
 (void)xmlTextWriterEndElement(pWriter);
 }
@@ -784,7 +784,7 @@ boolSwAuthorityField::QueryValue( Any& rAny, sal_uInt16 
/*nWhichId*/ ) const
 PropertyValue* pValues = aRet.getArray();
 for(int i = 0; i < AUTH_FIELD_END; ++i)
 {
-pValues[i].Name = OUString::createFromAscii(aFieldNames[i]);
+pValues[i].Name = aFieldNames[i];
 const OUString& sField = 
m_xAuthEntry->GetAuthorField(static_cast(i));
 if(i == AUTH_FIELD_AUTHORITY_TYPE)
 pValues[i].Value <<= sal_Int16(sField.toInt32());
@@ -799,7 +799,7 @@ boolSwAuthorityField::QueryValue( Any& rAny, sal_uInt16 
/*nWhichId*/ ) const
 static sal_Int32 lcl_Find(std::u16string_view rFieldName)
 {
 for(sal_Int32 i = 0; i < AUTH_FIELD_END; ++i)
-if(o3tl::equalsAscii(rFieldName, aFieldNames[i]))
+if(aFieldNames[i] == rFieldName)
 return i;
 return -1;
 }
commit 85c116f590f1455a6204ee9fbbf7da9fd855f001
Author: Noel Grandin 
AuthorDate: Thu May 2 13:43:12 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 20:30:14 2024 +0200

replace createFromAscii with OUString literals in svx

Change-Id: I9bb7884048f3cc7ef795f7a79dc566fc8fe77e7d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167063
Reviewed-by: Noel Grandin 
Tested-by: Jenkins

diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 71d7726fbc3b..85d38fd0556e 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -3050,13 +3050,13 @@ struct SvxStyleToolBoxControl::Impl
 // mapping table from bound items. BE CAREFUL this table must be in the
 // same order as the uno commands bound to the slots SID_STYLE_FAMILY1..n
 // MAX_FAMILIES must also be correctly set!
-static const char* StyleSlotToStyleCommand[MAX_FAMILIES] =
+constexpr OUString StyleSlotToStyleCommand[MAX_FAMILIES] =
 {
-".uno:CharStyle",
-".uno:ParaStyle",
-".uno:FrameStyle",
-".uno:PageStyle",
-".

New Defects reported by Coverity Scan for LibreOffice

2024-05-03 Thread scan-admin
Hi,

Please find the latest report on new defect(s) introduced to LibreOffice found 
with Coverity Scan.

3 new defect(s) introduced to LibreOffice found with Coverity Scan.
5 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent 
build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 3 of 3 defect(s)


** CID 1585038:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/usr/include/boost/container/vector.hpp: 2943 in 
boost::container::vector,
 
boost::container::small_vector_allocator,
 boost::container::new_allocator, void>, 
void>::priv_insert_forward_range_expand_forward,
 boost::container::new_allocator, void>, 
boost::container::vec_iterator
 *, (bool)1>, std::shared_ptr 
*>>(std::shared_ptr *, 
unsigned long, T1, boost::move_detail::integral_constant)()



*** CID 1585038:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/usr/include/boost/container/vector.hpp: 2943 in 
boost::container::vector,
 
boost::container::small_vector_allocator,
 boost::container::new_allocator, void>, 
void>::priv_insert_forward_range_expand_forward,
 boost::container::new_allocator, void>, 
boost::container::vec_iterator
 *, (bool)1>, std::shared_ptr 
*>>(std::shared_ptr *, 
unsigned long, T1, boost::move_detail::integral_constant)()
2937 
2938template 
2939BOOST_CONTAINER_FORCEINLINE void 
priv_insert_forward_range_expand_forward(T* const raw_pos, const size_type n, 
InsertionProxy insert_range_proxy, dtl::false_type)
2940{
2941   //There is enough memory
2942   boost::container::expand_forward_and_insert_alloc
>>> CID 1585038:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>> "insert_range_proxy" is passed-by-value as parameter to 
>>> "expand_forward_and_insert_alloc" when it could be moved instead.
2943  ( this->m_holder.alloc(), raw_pos, this->priv_raw_end(), n, 
insert_range_proxy);
2944   this->m_holder.inc_stored_size(n);
2945}
2946 
2947template 
2948void priv_insert_forward_range_new_allocation

** CID 1584285:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/usr/include/boost/container/vector.hpp: 2957 in 
boost::container::vector,
 
boost::container::small_vector_allocator,
 boost::container::new_allocator, void>, 
void>::priv_insert_forward_range_new_allocation,
 boost::container::new_allocator, void>, 
boost::container::vec_iterator
 *, (bool)1>, std::shared_ptr 
*>>(std::shared_ptr *, 
unsigned long, 
std::shared_ptr *, unsigned 
long, T1)()



*** CID 1584285:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/usr/include/boost/container/vector.hpp: 2957 in 
boost::container::vector,
 
boost::container::small_vector_allocator,
 boost::container::new_allocator, void>, 
void>::priv_insert_forward_range_new_allocation,
 boost::container::new_allocator, void>, 
boost::container::vec_iterator
 *, (bool)1>, std::shared_ptr 
*>>(std::shared_ptr *, 
unsigned long, 
std::shared_ptr *, unsigned 
long, T1)()
2951   //n can be zero, if we want to reallocate!
2952   allocator_type &a =  this->m_holder.alloc();
2953   T * const raw_old_buffer = this->priv_raw_begin();
2954 
2955   typename value_traits::ArrayDeallocator 
new_buffer_deallocator(new_start, a, new_cap);
2956   boost::container::uninitialized_move_and_insert_alloc
>>> CID 1584285:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>> "insert_range_proxy" is passed-by-value as parameter to 
>>> "uninitialized_move_and_insert_alloc" when it could be moved instead.
2957  (a, raw_old_buffer, pos, this->priv_raw_end(), new_start, n, 
insert_range_proxy);
2958   new_buffer_deallocator.release();
2959 
2960   //Destroy and deallocate old elements
2961   if(raw_old_buffer){
2962  
BOOST_IF_CONSTEXPR(!has_trivial_destructor_after_move::value)

** CID 1583837:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/usr/include/boost/container/vector.hpp: 1985 in 
boost::container::vector,
 
boost::container::small_vector_allocator,
 boost::container::new_allocator, void>, 
void>::insert
 *, 
(bool)1>>(boost::container::vec_iterator
 *, (bool)1>, T1, T1, boost::move_detail::disable_if_or, 
boost::container::dtl::is_input_iterator::value)>, 
boost::move_detail::bool_<(bool)0>, boost::move_detail::bool_<(bool)0>>::type 
*)()



*** CID 1583837:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/usr/include/boost/container/vector.hpp: 1985 in 
boost::container::vector,
 
boost::container::small_vector_allocator,
 boost::container::new_allocator, void>, 
void>::insert
 *, 
(bool)1>>(boost::contain

core.git: sw/inc sw/source

2024-05-03 Thread Noel Grandin (via logerrit)
 sw/inc/fmtcol.hxx|   27 ++-
 sw/inc/format.hxx|4 +---
 sw/inc/frmfmt.hxx|7 ---
 sw/source/core/attr/format.cxx   |   25 ++---
 sw/source/core/doc/DocumentLayoutManager.cxx |2 +-
 sw/source/core/doc/docdesc.cxx   |4 ++--
 sw/source/core/doc/docfmt.cxx|4 ++--
 sw/source/core/doc/docnew.cxx|   10 +-
 sw/source/core/layout/atrfrm.cxx |   11 ---
 9 files changed, 15 insertions(+), 79 deletions(-)

New commits:
commit 51f3916a102c3a3c16dd84310aadfa3c935e516b
Author: Noel Grandin 
AuthorDate: Thu May 2 14:39:14 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri May 3 21:26:59 2024 +0200

replace createFromAscii with OUString literals in SwFormat

Change-Id: I53ec6e3914ef995a4fd708ea0f1c2976673d97d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167090
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/sw/inc/fmtcol.hxx b/sw/inc/fmtcol.hxx
index 04b28e5bcf30..8ff61b8d0e98 100644
--- a/sw/inc/fmtcol.hxx
+++ b/sw/inc/fmtcol.hxx
@@ -37,12 +37,6 @@ namespace sw{ class DocumentStylePoolManager; }
 class SAL_DLLPUBLIC_RTTI SwFormatColl: public SwFormat
 {
 protected:
-SwFormatColl( SwAttrPool& rPool, const char* pFormatName,
-const WhichRangesContainer& pWhichRanges, SwFormatColl* 
pDerFrom,
-sal_uInt16 nFormatWhich )
-  : SwFormat( rPool, pFormatName, pWhichRanges, pDerFrom, nFormatWhich 
)
-{ SetAuto(false); }
-
 SwFormatColl( SwAttrPool& rPool, const OUString &rFormatName,
 const WhichRangesContainer& pWhichRanges, SwFormatColl* 
pDerFrom,
 sal_uInt16 nFormatWhich )
@@ -75,19 +69,8 @@ class SAL_DLLPUBLIC_RTTI SwTextFormatColl
 SwCharFormat* mpLinkedCharFormat = nullptr;
 
 protected:
-SwTextFormatColl( SwAttrPool& rPool, const char* pFormatCollName,
-SwTextFormatColl* pDerFrom = nullptr,
-sal_uInt16 nFormatWh = RES_TXTFMTCOLL )
-: SwFormatColl(rPool, pFormatCollName, aTextFormatCollSetRange, 
pDerFrom, nFormatWh)
-, mbStayAssignedToListLevelOfOutlineStyle(false)
-, mbAssignedToOutlineStyle(false)
-, m_bInSwFntCache(false)
-{
-mpNextTextFormatColl = this;
-}
-
 SwTextFormatColl( SwAttrPool& rPool, const OUString &rFormatCollName,
-SwTextFormatColl* pDerFrom,
+SwTextFormatColl* pDerFrom = nullptr,
 sal_uInt16 nFormatWh = RES_TXTFMTCOLL )
 : SwFormatColl(rPool, rFormatCollName, aTextFormatCollSetRange, 
pDerFrom, nFormatWh)
 , mbStayAssignedToListLevelOfOutlineStyle(false)
@@ -177,14 +160,8 @@ class SwGrfFormatColl final : public SwFormatColl
 {
 friend class SwDoc;
 
-SwGrfFormatColl( SwAttrPool& rPool, const char* pFormatCollName,
-SwGrfFormatColl* pDerFrom = nullptr )
-: SwFormatColl( rPool, pFormatCollName, aGrfFormatCollSetRange,
-pDerFrom, RES_GRFFMTCOLL )
-{}
-
 SwGrfFormatColl( SwAttrPool& rPool, const OUString &rFormatCollName,
-SwGrfFormatColl* pDerFrom )
+SwGrfFormatColl* pDerFrom = nullptr )
 : SwFormatColl( rPool, rFormatCollName, aGrfFormatCollSetRange,
 pDerFrom, RES_GRFFMTCOLL )
 {}
diff --git a/sw/inc/format.hxx b/sw/inc/format.hxx
index 92c7b73b73bf..5f0a2307893d 100644
--- a/sw/inc/format.hxx
+++ b/sw/inc/format.hxx
@@ -66,10 +66,8 @@ class SAL_DLLPUBLIC_RTTI SwFormat : public 
sw::BorderCacheOwner, public sw::Broa
 virtual void InvalidateInSwFntCache(sal_uInt16) {};
 
 protected:
-SwFormat( SwAttrPool& rPool, const char* pFormatNm,
+SwFormat( SwAttrPool& rPool, const OUString& rFormatNm,
 const WhichRangesContainer& pWhichRanges, SwFormat *pDrvdFrame, 
sal_uInt16 nFormatWhich );
-SwFormat( SwAttrPool& rPool, OUString aFormatNm, const 
WhichRangesContainer& pWhichRanges,
-SwFormat *pDrvdFrame, sal_uInt16 nFormatWhich );
 SwFormat( const SwFormat& rFormat );
 virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
 void Destr();
diff --git a/sw/inc/frmfmt.hxx b/sw/inc/frmfmt.hxx
index 3c3203be5b89..a27ec875aef5 100644
--- a/sw/inc/frmfmt.hxx
+++ b/sw/inc/frmfmt.hxx
@@ -97,13 +97,6 @@ class SAL_DLLPUBLIC_RTTI SwFrameFormat
 };
 
 protected:
-SwFrameFormat(
-SwAttrPool& rPool,
-const char* pFormatNm,
-SwFrameFormat *pDrvdFrame,
-sal_uInt16 nFormatWhich = RES_FRMFMT,
-const WhichRangesContainer& pWhichRange = aFrameFormatSetRange);
-
 SwFrameFormat(
 SwAttrPool& rPool,
 const OUString &rFormatNm,
diff --git a/sw/source/core/attr/format.cxx b/sw/source/core/attr/format.cxx
index bcc8920cce73..8f38f7fc8ba8 100

core.git: svx/source

2024-05-03 Thread Noel Grandin (via logerrit)
 svx/source/svdraw/presetooxhandleadjustmentrelations.cxx |  493 +++
 1 file changed, 246 insertions(+), 247 deletions(-)

New commits:
commit 980fb234ca9c380e1560b07a43f16abbcbeb7a8f
Author: Noel Grandin 
AuthorDate: Thu May 2 13:41:38 2024 +0200
Commit: Noel Grandin 
CommitDate: Sat May 4 08:19:40 2024 +0200

replace createFromAscii with OUString literals in svx

Change-Id: Ifefa5d3c26e49e29e476a4faba704ba9b2c7e7e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167062
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/svx/source/svdraw/presetooxhandleadjustmentrelations.cxx 
b/svx/source/svdraw/presetooxhandleadjustmentrelations.cxx
index 528c8b35cd50..592632dc7196 100644
--- a/svx/source/svdraw/presetooxhandleadjustmentrelations.cxx
+++ b/svx/source/svdraw/presetooxhandleadjustmentrelations.cxx
@@ -25,7 +25,7 @@ struct HandleAdjRel
 // Shape name without leading "ooxml-", underscore, zero based handle index
 // e.g. The third handle in shape of type "ooxml-circularArrow" will be
 // identified by key "circularArrow_2"
-const char* sShape_Handle;
+OUString sShape_Handle;
 
 // 4 tokens with separator "|"
 // first: RefX or RefR, na if not exists
@@ -35,256 +35,256 @@ struct HandleAdjRel
 // e.g. The third handle in shape  has in the preset
 // the tag  .
 // The resulting value in the map here is "RefR|adj5|na|na"
-const char* sAdjReferences;
+OUString sAdjReferences;
 };
 
 // The array initializer has been extracted from
 // oox/source/drawingml/customshapes/presetShapeDefinitions.xml
 // by using an XSLT file. That file is attached to tdf#126512.
 constexpr HandleAdjRel aHandleAdjRelArray[]
-= { { "accentBorderCallout1_0", "RefX|adj2|RefY|adj1" },
-{ "accentBorderCallout1_1", "RefX|adj4|RefY|adj3" },
-{ "accentBorderCallout2_0", "RefX|adj2|RefY|adj1" },
-{ "accentBorderCallout2_1", "RefX|adj4|RefY|adj3" },
-{ "accentBorderCallout2_2", "RefX|adj6|RefY|adj5" },
-{ "accentBorderCallout3_0", "RefX|adj2|RefY|adj1" },
-{ "accentBorderCallout3_1", "RefX|adj4|RefY|adj3" },
-{ "accentBorderCallout3_2", "RefX|adj6|RefY|adj5" },
-{ "accentBorderCallout3_3", "RefX|adj8|RefY|adj7" },
-{ "accentCallout1_0", "RefX|adj2|RefY|adj1" },
-{ "accentCallout1_1", "RefX|adj4|RefY|adj3" },
-{ "accentCallout2_0", "RefX|adj2|RefY|adj1" },
-{ "accentCallout2_1", "RefX|adj4|RefY|adj3" },
-{ "accentCallout2_2", "RefX|adj6|RefY|adj5" },
-{ "accentCallout3_0", "RefX|adj2|RefY|adj1" },
-{ "accentCallout3_1", "RefX|adj4|RefY|adj3" },
-{ "accentCallout3_2", "RefX|adj6|RefY|adj5" },
-{ "accentCallout3_3", "RefX|adj8|RefY|adj7" },
-{ "arc_0", "na|na|RefAngle|adj1" },
-{ "arc_1", "na|na|RefAngle|adj2" },
-{ "bentArrow_0", "RefX|adj1|na|na" },
-{ "bentArrow_1", "na|na|RefY|adj2" },
-{ "bentArrow_2", "RefX|adj3|na|na" },
-{ "bentArrow_3", "RefX|adj4|na|na" },
-{ "bentConnector3_0", "RefX|adj1|na|na" },
-{ "bentConnector4_0", "RefX|adj1|na|na" },
-{ "bentConnector4_1", "na|na|RefY|adj2" },
-{ "bentConnector5_0", "RefX|adj1|na|na" },
-{ "bentConnector5_1", "na|na|RefY|adj2" },
-{ "bentConnector5_2", "RefX|adj3|na|na" },
-{ "bentUpArrow_0", "na|na|RefY|adj1" },
-{ "bentUpArrow_1", "RefX|adj2|na|na" },
-{ "bentUpArrow_2", "na|na|RefY|adj3" },
-{ "bevel_0", "RefX|adj|na|na" },
-{ "blockArc_0", "na|na|RefAngle|adj1" },
-{ "blockArc_1", "RefR|adj3|RefAngle|adj2" },
-{ "borderCallout1_0", "RefX|adj2|RefY|adj1" },
-{ "borderCallout1_1", "RefX|adj4|RefY|adj3" },
-{ "borderCallout2_0", "RefX|adj2|RefY|adj1" },
-{ "borderCallout2_1", "RefX|adj4|RefY|adj3" },
-{ "borderCallout2_2", "RefX|adj6|RefY|adj5" },
-{ "borderCallout3_0", "RefX|adj2|RefY|adj1" },
-{ "borderCallout3_1", "RefX|adj4|RefY|adj3" },
-{ "borderCallout3_2", "RefX|adj6|RefY|adj5" },
-{ "borderCallout3_3", "RefX|adj8|RefY|adj7" },
-{ "bracePair_0", "na|na|RefY|adj" },
-{ "bracketPair_0", "na|na|RefY|adj" },
-{ "callout1_0", "RefX|adj2|RefY|adj1" },
-{ "callout1_1", "RefX|adj4|RefY|adj3" },
-{ "callout2_0", "RefX|adj2|RefY|adj1" },
-{ "callout2_1", "RefX|adj4|RefY|adj3" },
-{ "callout2_2", "RefX|adj6|RefY|adj5" },
-{ "callout3_0", "RefX|adj2|RefY|adj1" },
-{ "callout3_1", "RefX|adj4|RefY|adj3" },
-{ "callout3_2", "RefX|adj6|RefY|adj5" },
-{ "callout3_3", "RefX|adj8|RefY|adj7" },
-{ "can_0", "na|na|RefY|adj" },
-{ "chevron_0", "RefX|adj|na|na" },
-{ "chord_0", "na|na|RefAngle|adj1" },
-{ "chord_1", "na|na|RefAngle|adj2" },
-{ "circularArrow_0", "na|na|RefAngle|adj2" },
-{ "circularArrow_1", "na|na|RefAng

core.git: 2 commits - sw/inc sw/source

2024-05-03 Thread Noel Grandin (via logerrit)
 sw/inc/swfltopt.hxx|4 ++--
 sw/source/core/tox/txmsrt.cxx  |   12 ++--
 sw/source/filter/basflt/fltini.cxx |6 +++---
 sw/source/filter/ww8/ww8par.cxx|   14 +++---
 4 files changed, 18 insertions(+), 18 deletions(-)

New commits:
commit da5cad1018e860b2aab773021339483e3df8ed2e
Author: Noel Grandin 
AuthorDate: Thu May 2 14:56:18 2024 +0200
Commit: Noel Grandin 
CommitDate: Sat May 4 08:25:29 2024 +0200

replace createFromAscii with OUString literals in SwFilterOptions

Change-Id: Ide9c91584aaee5493697c010eeb76afbd7818a46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167094
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/sw/inc/swfltopt.hxx b/sw/inc/swfltopt.hxx
index 8fca62493ae1..7ad63c787ff9 100644
--- a/sw/inc/swfltopt.hxx
+++ b/sw/inc/swfltopt.hxx
@@ -28,10 +28,10 @@ private:
 virtual void ImplCommit() override;
 
 public:
-SwFilterOptions( sal_uInt16 nCnt, const char** ppNames,
+SwFilterOptions( sal_uInt16 nCnt, const OUString* ppNames,
   sal_uInt64* pValues );
 
-void GetValues( sal_uInt16 nCnt, const char** ppNames,
+void GetValues( sal_uInt16 nCnt, const OUString* ppNames,
  sal_uInt64* pValues );
 virtual void Notify( const css::uno::Sequence< OUString >& aPropertyNames 
) override;
 };
diff --git a/sw/source/filter/basflt/fltini.cxx 
b/sw/source/filter/basflt/fltini.cxx
index 9a5b6f0e2c4f..86c05f2b6843 100644
--- a/sw/source/filter/basflt/fltini.cxx
+++ b/sw/source/filter/basflt/fltini.cxx
@@ -212,14 +212,14 @@ bool StgWriter::IsStgWriter() const { return true; }
 
 */
 
-SwFilterOptions::SwFilterOptions( sal_uInt16 nCnt, const char** ppNames,
+SwFilterOptions::SwFilterOptions( sal_uInt16 nCnt, const OUString* ppNames,
 sal_uInt64* 
pValues )
 : ConfigItem( "Office.Writer/FilterFlags" )
 {
 GetValues( nCnt, ppNames, pValues );
 }
 
-void SwFilterOptions::GetValues( sal_uInt16 nCnt, const char** ppNames,
+void SwFilterOptions::GetValues( sal_uInt16 nCnt, const OUString* ppNames,
 
sal_uInt64* pValues )
 {
 Sequence aNames( nCnt );
@@ -227,7 +227,7 @@ void SwFilterOptions::GetValues( sal_uInt16 nCnt, const 
char** ppNames,
 sal_uInt16 n;
 
 for( n = 0; n < nCnt; ++n )
-pNames[ n ] = OUString::createFromAscii( ppNames[ n ] );
+pNames[ n ] = ppNames[ n ];
 Sequence aValues = GetProperties( aNames );
 
 if( nCnt == aValues.getLength() )
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 958396d2d54d..943c80759109 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -6247,13 +6247,13 @@ ErrCode SwWW8ImplReader::LoadDoc(WW8Glossary *pGloss)
 ErrCode nErrRet = ERRCODE_NONE;
 
 {
-static const char* aNames[ 13 ] = {
-"WinWord/WW", "WinWord/WW8", "WinWord/WWFT",
-"WinWord/WWFLX", "WinWord/WWFLY",
-"WinWord/WWF",
-"WinWord/WWFA0", "WinWord/WWFA1", "WinWord/WWFA2",
-"WinWord/WWFB0", "WinWord/WWFB1", "WinWord/WWFB2",
-"WinWord/RegardHindiDigits"
+static constexpr OUString aNames[ 13 ] = {
+u"WinWord/WW"_ustr, u"WinWord/WW8"_ustr, u"WinWord/WWFT"_ustr,
+u"WinWord/WWFLX"_ustr, u"WinWord/WWFLY"_ustr,
+u"WinWord/WWF"_ustr,
+u"WinWord/WWFA0"_ustr, u"WinWord/WWFA1"_ustr, 
u"WinWord/WWFA2"_ustr,
+u"WinWord/WWFB0"_ustr, u"WinWord/WWFB1"_ustr, 
u"WinWord/WWFB2"_ustr,
+u"WinWord/RegardHindiDigits"_ustr
 };
 sal_uInt64 aVal[ 13 ];
 
commit 4dc6cb3b53f0847ee8ce6fea5e671fc580af8cb2
Author: Noel Grandin 
AuthorDate: Thu May 2 14:53:11 2024 +0200
Commit: Noel Grandin 
CommitDate: Sat May 4 08:25:21 2024 +0200

replace createFromAscii with OUString literals in SwTOXPara

Change-Id: Ib72bcb5713f3598ff689ef1e767f72f8325828db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167093
Reviewed-by: Noel Grandin 
Tested-by: Jenkins

diff --git a/sw/source/core/tox/txmsrt.cxx b/sw/source/core/tox/txmsrt.cxx
index 95ba1911feed..6133743b898d 100644
--- a/sw/source/core/tox/txmsrt.cxx
+++ b/sw/source/core/tox/txmsrt.cxx
@@ -704,16 +704,16 @@ std::pair SwTOXPara::GetURL(SwRootFrame 
const*const) const
 if( pFly )
 {
 aText = "#" + pFly->GetName() + OUStringChar(cMarkSeparator);
-const char* pStr;
+std::optional pStr;
 switch( eType )
 {
-case SwTOXElement::Ole:   pStr = "ole"; break;
-case SwTOXElement::Graphic:   pStr = "graphic"; break;
-case SwTOXElement::Frame: pStr = "frame"; break;
-default:pStr = nullptr;
+case S

core.git: 2 commits - sw/inc sw/source

2024-05-03 Thread Noel Grandin (via logerrit)
 sw/inc/calc.hxx   |   70 +++---
 sw/source/core/bastyp/calc.cxx|   60 +---
 sw/source/core/frmedt/fetab.cxx   |2 -
 sw/source/filter/html/htmlbas.cxx |6 +--
 4 files changed, 50 insertions(+), 88 deletions(-)

New commits:
commit 7d070fa5e4b055501cc59d3ea1b4e049db4bd4ae
Author: Noel Grandin 
AuthorDate: Thu May 2 14:51:24 2024 +0200
Commit: Noel Grandin 
CommitDate: Sat May 4 08:25:51 2024 +0200

replace createFromAscii with OUString literals in SwCalc

Change-Id: I9da38ff8897bdb7d5ff2766414d3d406d53f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167091
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/sw/inc/calc.hxx b/sw/inc/calc.hxx
index 0e066bae145f..9aa00ec0225c 100644
--- a/sw/inc/calc.hxx
+++ b/sw/inc/calc.hxx
@@ -62,41 +62,41 @@ enum SwCalcOper
 };
 
 // Calculate Operations Strings
-extern const char sCalc_Add[];
-extern const char sCalc_Sub[];
-extern const char sCalc_Mul[];
-extern const char sCalc_Div[];
-extern const char sCalc_Phd[];
-extern const char sCalc_Sqrt[];
-extern const char sCalc_Pow[];
-extern const char sCalc_Or[];
-extern const char sCalc_Xor[];
-extern const char sCalc_And[];
-extern const char sCalc_Not[];
-extern const char sCalc_Eq[];
-extern const char sCalc_Neq[];
-extern const char sCalc_Leq[];
-extern const char sCalc_Geq[];
-extern const char sCalc_L[];
-extern const char sCalc_G[];
-extern const char sCalc_Sum[];
-extern const char sCalc_Mean[];
-extern const char sCalc_Average[];
-extern const char sCalc_Product[];
-extern const char sCalc_Count[];
-extern const char sCalc_Min[];
-extern const char sCalc_Max[];
-extern const char sCalc_Sin[];
-extern const char sCalc_Cos[];
-extern const char sCalc_Tan[];
-extern const char sCalc_Asin[];
-extern const char sCalc_Acos[];
-extern const char sCalc_Atan[];
-extern const char sCalc_Round[];
-extern const char sCalc_Date[];
-extern const char sCalc_Sign[];
-extern const char sCalc_Abs[];
-extern const char sCalc_Int[];
+inline constexpr OUString sCalc_Add  = u"add"_ustr;
+inline constexpr OUString sCalc_Sub  = u"sub"_ustr;
+inline constexpr OUString sCalc_Mul  = u"mul"_ustr;
+inline constexpr OUString sCalc_Div  = u"div"_ustr;
+inline constexpr OUString sCalc_Phd  = u"phd"_ustr;
+inline constexpr OUString sCalc_Sqrt = u"sqrt"_ustr;
+inline constexpr OUString sCalc_Pow  = u"pow"_ustr;
+inline constexpr OUString sCalc_Or   = u"or"_ustr;
+inline constexpr OUString sCalc_Xor  = u"xor"_ustr;
+inline constexpr OUString sCalc_And  = u"and"_ustr;
+inline constexpr OUString sCalc_Not  = u"not"_ustr;
+inline constexpr OUString sCalc_Eq   = u"eq"_ustr;
+inline constexpr OUString sCalc_Neq  = u"neq"_ustr;
+inline constexpr OUString sCalc_Leq  = u"leq"_ustr;
+inline constexpr OUString sCalc_Geq  = u"geq"_ustr;
+inline constexpr OUString sCalc_L= u"l"_ustr;
+inline constexpr OUString sCalc_G= u"g"_ustr;
+inline constexpr OUString sCalc_Sum  = u"sum"_ustr;
+inline constexpr OUString sCalc_Mean = u"mean"_ustr;
+inline constexpr OUString sCalc_Min  = u"min"_ustr;
+inline constexpr OUString sCalc_Max  = u"max"_ustr;
+inline constexpr OUString sCalc_Sin  = u"sin"_ustr;
+inline constexpr OUString sCalc_Cos  = u"cos"_ustr;
+inline constexpr OUString sCalc_Tan  = u"tan"_ustr;
+inline constexpr OUString sCalc_Asin = u"asin"_ustr;
+inline constexpr OUString sCalc_Acos = u"acos"_ustr;
+inline constexpr OUString sCalc_Atan = u"atan"_ustr;
+inline constexpr OUString sCalc_Round= u"round"_ustr;
+inline constexpr OUString sCalc_Date = u"date"_ustr;
+inline constexpr OUString sCalc_Product = u"product"_ustr;
+inline constexpr OUString sCalc_Average = u"average"_ustr;
+inline constexpr OUString sCalc_Count= u"count"_ustr;
+inline constexpr OUString sCalc_Sign = u"sign"_ustr;
+inline constexpr OUString sCalc_Abs  = u"abs"_ustr;
+inline constexpr OUString sCalc_Int  = u"int"_ustr;
 
 //  Calculate ErrorCodes
 enum class SwCalcError
diff --git a/sw/source/core/bastyp/calc.cxx b/sw/source/core/bastyp/calc.cxx
index 4b793a6ece99..72b8661e5207 100644
--- a/sw/source/core/bastyp/calc.cxx
+++ b/sw/source/core/bastyp/calc.cxx
@@ -55,53 +55,15 @@
 
 using namespace ::com::sun::star;
 
-const char sCalc_Add[]  =   "add";
-const char sCalc_Sub[]  =   "sub";
-const char sCalc_Mul[]  =   "mul";
-const char sCalc_Div[]  =   "div";
-const char sCalc_Phd[]  =   "phd";
-const char sCalc_Sqrt[] =   "sqrt";
-const char sCalc_Pow[]  =   "pow";
-const char sCalc_Or[]   =   "or";
-const char sCalc_Xor[]  =   "xor";
-const char sCalc_And[]  =   "and";
-const char sCalc_Not[]  =   "not";
-const char sCalc_Eq[]   =   "eq";
-const char sCalc_Neq[]  =   "neq";
-const char sCalc_Leq[]  =   "leq";
-const char sCalc_Geq[]  =   "geq";
-const char sCalc_L[]=   "l";
-const char sCalc_G[]=   "g";
-const char sCalc_Sum[]  =   "sum";
-const char sCalc_Mean[] =   "mean";
-const char sCalc_Min[]  =   "min";
-const char sCalc_Max[]  =