[Libreoffice-bugs] [Bug 151946] Opening spreadsheet very slow

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=151946

--- Comment #11 from Commit Notification 
 ---
Noel Grandin committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/e0ef3fed69864530da49cecb09fcc2fcc9acfeaa

tdf#151946 cache LocaleDataWrapper

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 151946] Opening spreadsheet very slow

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=151946

Commit Notification  changed:

   What|Removed |Added

 Whiteboard||target:24.2.0

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: sc/source

2023-06-14 Thread Noel Grandin (via logerrit)
 sc/source/core/tool/numformat.cxx |   11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit e0ef3fed69864530da49cecb09fcc2fcc9acfeaa
Author: Noel Grandin 
AuthorDate: Tue Jun 13 22:04:09 2023 +0200
Commit: Noel Grandin 
CommitDate: Wed Jun 14 11:07:49 2023 +0200

tdf#151946 cache LocaleDataWrapper

because it is a little more expensive these days to create it, since I
made it an immutable type (which is also why we can safely cache it)

Reduces load time from 7s to 1.5s for me

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

diff --git a/sc/source/core/tool/numformat.cxx 
b/sc/source/core/tool/numformat.cxx
index 8240c1ac6e4f..8b8512339d43 100644
--- a/sc/source/core/tool/numformat.cxx
+++ b/sc/source/core/tool/numformat.cxx
@@ -25,6 +25,7 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace sc {
 
@@ -51,9 +52,13 @@ bool NumFmtUtil::isLatinScript( sal_uLong nFormat, 
ScDocument& rDoc )
 aDecSep = ScGlobal::getLocaleData().getNumDecimalSep();
 else
 {
-LocaleDataWrapper aLocaleData(
-comphelper::getProcessComponentContext(), 
LanguageTag(nFormatLang));
-aDecSep = aLocaleData.getNumDecimalSep();
+// LocaleDataWrapper can be expensive to construct, so cache the 
result for
+// repeated calls
+static std::optional localeCache;
+if (!localeCache || localeCache->getLanguageTag().getLanguageType() != 
nFormatLang)
+localeCache.emplace(
+comphelper::getProcessComponentContext(), 
LanguageTag(nFormatLang));
+aDecSep = localeCache->getNumDecimalSep();
 }
 
 SvtScriptType nScript = rDoc.GetStringScriptType(aDecSep);


[Libreoffice-bugs] [Bug 155812] Open file with many page numbers spend too much time

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155812

--- Comment #4 from Xiaoc <3118049...@qq.com> ---
(In reply to featheredreflection from comment #3)
> Like the original number, I add gaps, but this time there are more of them.
> https://minicrossword.io

I can't understand!

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155828] New: Missing Table cell attributes to rotate text

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155828

Bug ID: 155828
   Summary: Missing Table cell attributes to rotate text
   Product: LibreOffice
   Version: 7.5.4.2 release
  Hardware: All
OS: macOS (All)
Status: UNCONFIRMED
  Severity: normal
  Priority: medium
 Component: Writer
  Assignee: libreoffice-bugs@lists.freedesktop.org
  Reporter: paul.mitterber...@gmx.net

Description:
I'm using Version 7.5.2.2, but i don't know when someone decided to delete the
possibility to change cell atributes within a table in Writer. Thus i cant't
find any pssobility to rotate the text now, write it vertical, ... !!  
And don't tell me to use a textbox instead to rotate a text within a cell. This
is not a solution for an deleted usefull feature! It's just an "emergency
solution"


Actual Results:
No menue entry to change table cell attributes within writer, only table
attributes!

Expected Results:
Ther should be such entry


Reproducible: Always


User Profile Reset: No

Additional Info:
Please change this misbehavior

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - svtools/source

2023-06-14 Thread Mike Kaganski (via logerrit)
 svtools/source/misc/unitconv.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit f7e52df2dde0b80f33123790681e94785154d566
Author: Mike Kaganski 
AuthorDate: Mon Jun 12 12:23:17 2023 +0300
Commit: Michael Stahl 
CommitDate: Wed Jun 14 10:58:08 2023 +0200

tdf#154349: round before converting to an integer

Commit cfff893b9c82843a90aac4ecdb3a3936721b74a0 (Move unit conversion
code to o3tl, and unify on that in more places, 2021-02-14) changed a
custom conversion code in CalcToUnit doing inexact conversion from
points to mm/20 (with "* 10 / 567"), with correct conversion function.
A side effect was, however, that the imprecise arithmetics provided
floating-point values that rounded down to correct integers (or maybe
it was all the chain of calculations down to this function), while
the correctly converted values could round down to a smaller value.

Fix this problem using rounding.

Change-Id: I42e0d56b068832ef309f6b696f661642e62ddacb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152894
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
(cherry picked from commit cf0fe26f95b5435d65623165cf7ba381eaa0738a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152981
Reviewed-by: Michael Stahl 

diff --git a/svtools/source/misc/unitconv.cxx b/svtools/source/misc/unitconv.cxx
index 395c1b4ac810..cb4fdf6901dd 100644
--- a/svtools/source/misc/unitconv.cxx
+++ b/svtools/source/misc/unitconv.cxx
@@ -128,7 +128,7 @@ tools::Long CalcToUnit( float nIn, MapUnit eUnit )
 eUnit == MapUnit::MapCM, "this unit is not implemented" );
 
 if (const auto eTo = MapToO3tlLength(eUnit); eTo != o3tl::Length::invalid)
-return o3tl::convert(nIn, o3tl::Length::pt, eTo);
+return std::round(o3tl::convert(nIn, o3tl::Length::pt, eTo));
 
 return 0;
 }


[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155819

--- Comment #4 from Commit Notification 
 ---
Xisco Fauli committed a patch related to this issue.
It has been pushed to "libreoffice-7-5":

https://git.libreoffice.org/core/commit/0586becbcf4cf71b25c827011579da46c5dc106b

tdf#155819: check marker property comes from a style sheet

It will be available in 7.5.5.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155819

Commit Notification  changed:

   What|Removed |Added

 Whiteboard|target:24.2.0   |target:24.2.0
   |target:7.6.0.0.beta2|target:7.6.0.0.beta2
   ||target:7.5.5

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - svgio/qa svgio/source

2023-06-14 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx|   18 ++
 svgio/qa/cppunit/data/tdf155819.svg   |   15 +++
 svgio/source/svgreader/svgstyleattributes.cxx |5 +++--
 3 files changed, 36 insertions(+), 2 deletions(-)

New commits:
commit 0586becbcf4cf71b25c827011579da46c5dc106b
Author: Xisco Fauli 
AuthorDate: Wed Jun 14 01:10:50 2023 +0200
Commit: Michael Stahl 
CommitDate: Wed Jun 14 10:53:27 2023 +0200

tdf#155819: check marker property comes from a style sheet

Since 242b7d0162d55be0945ca849c3de841fbf6cb475
"svgio: simplify code" where bIsInStyleSheet was replaced by
getCssStyleParent() incorrectly

Change-Id: I48632e9374f4615e32d18a141aeabec2936e6ec8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153016
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153036
Reviewed-by: Michael Stahl 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 6e4ac0255677..c8305517ce00 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -135,6 +135,24 @@ CPPUNIT_TEST_FIXTURE(Test, testSymbol)
 assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "color", 
"#00d000");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf155819)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", 1);
+assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/polypolygon", 1);
+// Without the fix in place, this test would have failed with
+// - Expected: 4
+// - Actual  : 0
+assertXPath(pDocument, "/primitive2D/transform/transform", 4);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf87309)
 {
 Primitive2DSequence aSequenceTdf87309 = 
parseSvg(u"/svgio/qa/cppunit/data/tdf87309.svg");
diff --git a/svgio/qa/cppunit/data/tdf155819.svg 
b/svgio/qa/cppunit/data/tdf155819.svg
new file mode 100644
index ..30c2da4d1a5a
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf155819.svg
@@ -0,0 +1,15 @@
+
+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/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 8661b99d8895..6c42fbe744f9 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1150,7 +1150,7 @@ namespace svgio::svgreader
 if(SVGToken::Path == mrOwner.getType() || // path
 SVGToken::Polygon == mrOwner.getType() || // polygon, 
polyline
 SVGToken::Line == mrOwner.getType() ||// line
-getCssStyleParent())
+SVGToken::Style == mrOwner.getType())// tdf#150323
 {
 // try to add markers
 add_markers(rPath, rTarget, pHelpPointIndices);
@@ -1877,7 +1877,8 @@ namespace svgio::svgreader
 }
 case SVGToken::Marker:
 {
-if(getCssStyleParent())
+// tdf#155819: Using the marker property from a style 
sheet is equivalent to using all three (start, mid, end).
+if(mrOwner.getType() == SVGToken::Style)
 {
 readLocalUrl(aContent, maMarkerEndXLink);
 maMarkerStartXLink = maMarkerMidXLink = 
maMarkerEndXLink;


[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - svgio/source

2023-06-14 Thread Xisco Fauli (via logerrit)
 svgio/source/svgreader/svgstyleattributes.cxx |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

New commits:
commit c821fd07d45e2bf6b55922305001147af49613bf
Author: Xisco Fauli 
AuthorDate: Thu Jun 8 13:49:11 2023 +0200
Commit: Michael Stahl 
CommitDate: Wed Jun 14 10:50:43 2023 +0200

tdf#155733: no need to store these values

Remove the unittest in libreoffice-7-5 since the sample
file uses


 


which is not supported in this branch

Change-Id: I1c22f8f344731eb5fbc5f77fc80267ebcdc81ed6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152740
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 9662b23182174888045726fd57bf7d93c16cf4fb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152757
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153037
Reviewed-by: Michael Stahl 

diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index ffdebc2f36a4..8661b99d8895 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -2866,7 +2866,7 @@ namespace svgio::svgreader
 
 if(!aClipPath.isEmpty())
 {
-const_cast< SvgStyleAttributes* >(this)->mpClipPathXLink = 
dynamic_cast< const SvgClipPathNode* 
>(mrOwner.getDocument().findSvgNodeById(aClipPath));
+return dynamic_cast< const SvgClipPathNode* 
>(mrOwner.getDocument().findSvgNodeById(aClipPath));
 }
 }
 
@@ -2901,7 +2901,7 @@ namespace svgio::svgreader
 
 if(!aMask.isEmpty())
 {
-const_cast< SvgStyleAttributes* >(this)->mpMaskXLink = 
dynamic_cast< const SvgMaskNode* 
>(mrOwner.getDocument().findSvgNodeById(aMask));
+return dynamic_cast< const SvgMaskNode* 
>(mrOwner.getDocument().findSvgNodeById(aMask));
 }
 }
 
@@ -2936,7 +2936,7 @@ namespace svgio::svgreader
 
 if(!aMarker.isEmpty())
 {
-const_cast< SvgStyleAttributes* 
>(this)->mpMarkerStartXLink = dynamic_cast< const SvgMarkerNode* 
>(mrOwner.getDocument().findSvgNodeById(getMarkerStartXLink()));
+return dynamic_cast< const SvgMarkerNode* 
>(mrOwner.getDocument().findSvgNodeById(getMarkerStartXLink()));
 }
 }
 
@@ -2971,7 +2971,7 @@ namespace svgio::svgreader
 
 if(!aMarker.isEmpty())
 {
-const_cast< SvgStyleAttributes* >(this)->mpMarkerMidXLink 
= dynamic_cast< const SvgMarkerNode* 
>(mrOwner.getDocument().findSvgNodeById(getMarkerMidXLink()));
+return dynamic_cast< const SvgMarkerNode* 
>(mrOwner.getDocument().findSvgNodeById(getMarkerMidXLink()));
 }
 }
 
@@ -3006,7 +3006,7 @@ namespace svgio::svgreader
 
 if(!aMarker.isEmpty())
 {
-const_cast< SvgStyleAttributes* >(this)->mpMarkerEndXLink 
= dynamic_cast< const SvgMarkerNode* 
>(mrOwner.getDocument().findSvgNodeById(getMarkerEndXLink()));
+return dynamic_cast< const SvgMarkerNode* 
>(mrOwner.getDocument().findSvgNodeById(getMarkerEndXLink()));
 }
 }
 


[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/qa sw/source

2023-06-14 Thread Michael Stahl (via logerrit)
 sw/qa/extras/uiwriter/uiwriter2.cxx |   19 +++
 sw/source/core/crsr/crsrsh.cxx  |   10 ++
 2 files changed, 29 insertions(+)

New commits:
commit e2e2a9d5b1153965c93caab4b748eae5994b8a50
Author: Michael Stahl 
AuthorDate: Fri Jun 9 13:59:58 2023 +0200
Commit: Michael Stahl 
CommitDate: Wed Jun 14 10:48:00 2023 +0200

cool#6580 sw: fix infinite loop when changing document language

If there's a footnote in the document, changing the document langauge
goes into an infinite loop in FindParentText(), because the selection
created by ExtendedSelectAll(true) is actually invalid, apparently
the intention is that only very limited functions may be called while it
is active.

Don't handle this invalid "very" extended selection like one created by
ExtendedSelectAll(false).

(regression from commit d81379db730a163c5ff75d4f3a3cddbd7b5eddda)

Change-Id: Icf1032715cf2e0a05bf485039c483440c08bb6bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152797
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit ca9341cf60f3f9350662d30b61f6eadefca24667)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152818

diff --git a/sw/qa/extras/uiwriter/uiwriter2.cxx 
b/sw/qa/extras/uiwriter/uiwriter2.cxx
index a09d7b6fb780..6c9714367bf7 100644
--- a/sw/qa/extras/uiwriter/uiwriter2.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter2.cxx
@@ -18,6 +18,10 @@
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -168,6 +172,21 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf101534)
 CPPUNIT_ASSERT_EQUAL(::tools::Long(0), 
aSet.GetItem(RES_MARGIN_TEXTLEFT)->GetTextLeft());
 }
 
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testExtendedSelectAllHang)
+{
+createSwDoc();
+SwDoc* const pDoc = getSwDoc();
+SwWrtShell* const pWrtShell = pDoc->GetDocShell()->GetWrtShell();
+
+pWrtShell->InsertFootnote("");
+pWrtShell->StartOfSection();
+SwView* pView = pDoc->GetDocShell()->GetView();
+SfxStringItem aLangString(SID_LANGUAGE_STATUS, "Default_Spanish 
(Bolivia)");
+// this looped
+pView->GetViewFrame().GetDispatcher()->ExecuteList(SID_LANGUAGE_STATUS, 
SfxCallMode::SYNCHRON,
+   {  });
+}
+
 CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testRedlineMoveInsertInDelete)
 {
 createSwDoc();
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index 325ff54d52cd..9fb43ff2d596 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -895,6 +895,16 @@ SwCursorShell::ExtendedSelectedAll() const
 typename SwCursorShell::StartsWith SwCursorShell::StartsWith_()
 {
 SwShellCursor const*const pShellCursor = getShellCursor(false);
+// first, check if this is invalid; ExtendedSelectAll(true) may result in
+// a) an ordinary selection that is valid
+// b) a selection that is extended
+// c) a selection that is invalid and will cause FindParentText to loop
+SwNode const& rEndOfExtras(GetDoc()->GetNodes().GetEndOfExtras());
+if (pShellCursor->Start()->nNode.GetIndex() <= rEndOfExtras.GetIndex()
+&& rEndOfExtras.GetIndex() < pShellCursor->End()->nNode.GetIndex())
+{
+return StartsWith::None; // *very* extended, no ExtendedSelectedAll 
handling!
+}
 SwStartNode const*const pStartNode(FindParentText(*pShellCursor));
 if (auto const ret = ::StartsWith(*pStartNode); ret != StartsWith::None)
 {


[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - 2 commits - vcl/win winaccessibility/inc winaccessibility/source

2023-06-14 Thread Michael Stahl (via logerrit)
 vcl/win/window/salframe.cxx |   52 +++-
 winaccessibility/inc/AccEventListener.hxx   |2 
 winaccessibility/inc/AccObject.hxx  |4 
 winaccessibility/inc/AccObjectWinManager.hxx|9 
 winaccessibility/source/service/AccEventListener.cxx|9 
 winaccessibility/source/service/AccObject.cxx   |9 
 winaccessibility/source/service/AccObjectWinManager.cxx |  167 +---
 winaccessibility/source/service/msaaservice_impl.cxx|2 
 8 files changed, 153 insertions(+), 101 deletions(-)

New commits:
commit 6c6ff04a82d50691aaa5d084660b606b5c137be1
Author: Michael Stahl 
AuthorDate: Tue Jun 13 12:30:44 2023 +0200
Commit: Michael Stahl 
CommitDate: Wed Jun 14 10:47:18 2023 +0200

tdf#155794 vcl: handle WM_GETOBJECT without SolarMutex

SalFrameWndProc() handles WM_GETOBJECT by acquiring SolarMutex and
calling ImplHandleGetObject(), which again acquires the SolarMutex
inside Application::SetSettings().

This was introduced with commit db214684057e3ff2fa32d57c00507309dd6c24d6
due to thread-safety crashes but it turns out that it can be problematic.

When loading a document on a non-main thread, WinSalFrame::SetTitle()
calls SetWindowTextW which is equivalent to SendMessage(WM_SETTEXT),
while holding SolarMutex, and if the main thread doesn't finish
processing it then that's a deadlock.

Typically Desktop::Main() has already created the mxAccessBridge, so
ImplHandleGetObject() most likely doesn't need to do it, so just skip
the Settings code there in case the SolarMutex is locked by another
thread.

In case the SolarMutex is locked by another thread, do an unsafe read of
ImplGetSVData()->mxAccessBridge - this should work until ImplSVData is
deleted, by which time no Windows should exist anymore that could be
receiving messages.

This fixes part of the problem, winaccessibility also needs to stop
using SolarMutex.

Change-Id: I62b027ad06d2c3eb06a5f64b052a4acd0908f79c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152958
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 889c12e98e04edb4bc25b86bf16b8cf1d9b68420)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152986

diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx
index e0a99d8e8779..2e60f38c1f11 100644
--- a/vcl/win/window/salframe.cxx
+++ b/vcl/win/window/salframe.cxx
@@ -5395,30 +5395,43 @@ static void ImplHandleIMENotify( HWND hWnd, WPARAM 
wParam )
 static bool
 ImplHandleGetObject(HWND hWnd, LPARAM lParam, WPARAM wParam, LRESULT & nRet)
 {
-if (!Application::GetSettings().GetMiscSettings().GetEnableATToolSupport())
+uno::Reference xMSAA;
+if (ImplSalYieldMutexTryToAcquire())
 {
-// IA2 should be enabled automatically
-AllSettings aSettings = Application::GetSettings();
-MiscSettings aMisc = aSettings.GetMiscSettings();
-aMisc.SetEnableATToolSupport(true);
-// The above is enough, since aMisc changes the same shared 
ImplMiscData as used in global
-// settings, so no need to call aSettings.SetMiscSettings and 
Application::SetSettings
-
 if 
(!Application::GetSettings().GetMiscSettings().GetEnableATToolSupport())
-return false; // locked down somehow ?
-}
+{
+// IA2 should be enabled automatically
+AllSettings aSettings = Application::GetSettings();
+MiscSettings aMisc = aSettings.GetMiscSettings();
+aMisc.SetEnableATToolSupport(true);
+// The above is enough, since aMisc changes the same shared 
ImplMiscData as used in global
+// settings, so no need to call aSettings.SetMiscSettings and 
Application::SetSettings
+
+if 
(!Application::GetSettings().GetMiscSettings().GetEnableATToolSupport())
+return false; // locked down somehow ?
+}
 
-ImplSVData* pSVData = ImplGetSVData();
+ImplSVData* pSVData = ImplGetSVData();
 
-// Make sure to launch Accessibility only the following criteria are 
satisfied
-// to avoid RFT interrupts regular accessibility processing
-if ( !pSVData->mxAccessBridge.is() )
-{
-if( !InitAccessBridge() )
-return false;
+// Make sure to launch Accessibility only the following criteria are 
satisfied
+// to avoid RFT interrupts regular accessibility processing
+if ( !pSVData->mxAccessBridge.is() )
+{
+if( !InitAccessBridge() )
+return false;
+}
+xMSAA.set(pSVData->mxAccessBridge, uno::UNO_QUERY);
+ImplSalYieldMutexRelease();
+}
+else
+{   // tdf#155794: access without locking: hopefully this should be fine
+// as the bridge is typically inited in Desktop::Main() already and the
+// 

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - oox/source sc/source

2023-06-14 Thread Henry Castro (via logerrit)
 oox/source/token/tokens.txt   |1 +
 sc/source/filter/inc/condformatbuffer.hxx |3 +++
 sc/source/filter/oox/condformatbuffer.cxx |   15 +++
 sc/source/filter/oox/extlstcontext.cxx|6 ++
 4 files changed, 25 insertions(+)

New commits:
commit eb2de384f33875dabb98bf91d682111597d81784
Author: Henry Castro 
AuthorDate: Fri Mar 17 10:34:15 2023 -0400
Commit: Xisco Fauli 
CommitDate: Wed Jun 14 10:45:35 2023 +0200

sc: filter: oox: add missing tag "fillcolor"

To fill the positive color of the conditional format data bar:


 
 
 
 
 


Signed-off-by: Henry Castro 
Change-Id: I17e83a01a292ff941d92f6ae59954aa246ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149064
Tested-by: Jenkins CollaboraOffice 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152965
Tested-by: Jenkins
(cherry picked from commit aebf004ae72e914540526269499bae27f39e04bf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153013
Reviewed-by: Xisco Fauli 

diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt
index dee9010df789..eb5239d8a8ac 100644
--- a/oox/source/token/tokens.txt
+++ b/oox/source/token/tokens.txt
@@ -2228,6 +2228,7 @@ fileType
 fileVersion
 filetime
 fill
+fillColor
 fillClrLst
 fillFormulas
 fillId
diff --git a/sc/source/filter/inc/condformatbuffer.hxx 
b/sc/source/filter/inc/condformatbuffer.hxx
index 08e9053684e2..cdc8d4727baf 100644
--- a/sc/source/filter/inc/condformatbuffer.hxx
+++ b/sc/source/filter/inc/condformatbuffer.hxx
@@ -237,6 +237,7 @@ struct ExCfRuleModel
 ExCfRuleModel() : mnAxisColor( ColorTransparency, UNSIGNED_RGB_TRANSPARENT 
), mnNegativeColor( ColorTransparency, UNSIGNED_RGB_TRANSPARENT ), mbGradient( 
false ), mbIsLower( true ) {}
 // AxisColor
 ::Color mnAxisColor;
+::Color mnPositiveColor;
 // NegativeFillColor
 ::Color mnNegativeColor;
 OUString maAxisPosition; // DataBar
@@ -251,6 +252,7 @@ class ExtCfDataBarRule : public WorksheetHelper
 enum RuleType
 {
 DATABAR,
+POSITIVEFILLCOLOR,
 NEGATIVEFILLCOLOR,
 AXISCOLOR,
 CFVO,
@@ -264,6 +266,7 @@ public:
 ExtCfDataBarRule(ScDataBarFormatData* pTarget, const WorksheetHelper& 
rParent);
 void finalizeImport();
 void importDataBar(  const AttributeList& rAttribs );
+void importPositiveFillColor(  const AttributeList& rAttribs );
 void importNegativeFillColor(  const AttributeList& rAttribs );
 void importAxisColor(  const AttributeList& rAttribs );
 void importCfvo(  const AttributeList& rAttribs );
diff --git a/sc/source/filter/oox/condformatbuffer.cxx 
b/sc/source/filter/oox/condformatbuffer.cxx
index 1b397c2db316..649046e8b3b7 100644
--- a/sc/source/filter/oox/condformatbuffer.cxx
+++ b/sc/source/filter/oox/condformatbuffer.cxx
@@ -1398,6 +1398,12 @@ void ExtCfDataBarRule::finalizeImport()
 pDataBar->maAxisColor = maModel.mnAxisColor;
 break;
 }
+case POSITIVEFILLCOLOR:
+{
+ScDataBarFormatData* pDataBar = mpTarget;
+pDataBar->maPositiveColor = maModel.mnPositiveColor;
+break;
+}
 case NEGATIVEFILLCOLOR:
 {
 ScDataBarFormatData* pDataBar = mpTarget;
@@ -1456,6 +1462,15 @@ void ExtCfDataBarRule::importDataBar( const 
AttributeList& rAttribs )
 maModel.maAxisPosition = rAttribs.getString( XML_axisPosition, "automatic" 
);
 }
 
+void ExtCfDataBarRule::importPositiveFillColor( const AttributeList& rAttribs )
+{
+mnRuleType = POSITIVEFILLCOLOR;
+ThemeBuffer& rThemeBuffer = getTheme();
+GraphicHelper& rGraphicHelper = getBaseFilter().getGraphicHelper();
+::Color aColor = importOOXColor(rAttribs, rThemeBuffer, rGraphicHelper);
+maModel.mnPositiveColor = aColor;
+}
+
 void ExtCfDataBarRule::importNegativeFillColor( const AttributeList& rAttribs )
 {
 mnRuleType = NEGATIVEFILLCOLOR;
diff --git a/sc/source/filter/oox/extlstcontext.cxx 
b/sc/source/filter/oox/extlstcontext.cxx
index 1ea6b70d8707..2646f0969958 100644
--- a/sc/source/filter/oox/extlstcontext.cxx
+++ b/sc/source/filter/oox/extlstcontext.cxx
@@ -56,6 +56,12 @@ void ExtCfRuleContext::onStartElement( const AttributeList& 
rAttribs )
 xRule->importDataBar( rAttribs );
 break;
 }
+case XLS14_TOKEN( fillColor ):
+{
+ExtCfDataBarRuleRef xRule = 
getCondFormats().createExtCfDataBarRule(mpTarget);
+xRule->importPositiveFillColor( rAttribs );
+break;
+}
 case XLS14_TOKEN( negativeFillColor ):
 {
 ExtCfDataBarRuleRef xRule = 
getCondFormats().createExtCfDataBarRule(mpTarget);


[Libreoffice-bugs] [Bug 155825] Crash MCGR export special file odp -> pptx

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155825

--- Comment #3 from Regina Henschel  ---
I have written bug 155827 for the axial-linear problem. It is independent from
the crash here.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155827] New: MCGR FILESAVE PPTX axial and linear mixed color and transparency gradient is wrong in export

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155827

Bug ID: 155827
   Summary: MCGR FILESAVE PPTX axial and linear mixed color and
transparency gradient is wrong in export
   Product: LibreOffice
   Version: 7.6.0.0 beta1+
  Hardware: x86-64 (AMD64)
OS: Windows (All)
Status: UNCONFIRMED
  Severity: normal
  Priority: medium
 Component: Impress
  Assignee: libreoffice-bugs@lists.freedesktop.org
  Reporter: rb.hensc...@t-online.de

Created attachment 187903
  --> https://bugs.documentfoundation.org/attachment.cgi?id=187903=edit
Screenshot left pptx right fodp

Open attachment 187901 from bug 155825. It contains a shape and a screenshot of
the shape. Save the file to pptx. Open the saved file. You see that the linear
transparency gradient is exported as if it was axial.
(In the following the Number is the offset and the characters are the values.)
Imagine an axial color gradient with
   0 A, 1 B
together with a linear transparency gradient
   0 X, 1 Y.
Then the visual appearance is
   0 BX, 0.5 A middle_of_X_and_Y, 1 BY

But in because you apply axial after synchronizing you get 0 BY, 0.5 AX, 1 BY.

The error is in WriteGradientFill in oox/source/export/drawingml.cxx around
lines 780 to 820. The conversion from axial to linear has to be done before
synchronizeColorStops.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-ux-advise] [Bug 155546] Wizard not available when entering conditional formatting formula

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155546

Heiko Tietze  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 CC||libreoffice-ux-advise@lists
   ||.freedesktop.org
 Status|UNCONFIRMED |NEEDINFO

--- Comment #1 from Heiko Tietze  ---
What exactly do you mean with wizard? "No Fx icon" sounds like the functions
wizard but I see no relation to the conditional formatting which is all about
constant values.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Libreoffice-bugs] [Bug 155546] Wizard not available when entering conditional formatting formula

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155546

Heiko Tietze  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 CC||libreoffice-ux-advise@lists
   ||.freedesktop.org
 Status|UNCONFIRMED |NEEDINFO

--- Comment #1 from Heiko Tietze  ---
What exactly do you mean with wizard? "No Fx icon" sounds like the functions
wizard but I see no relation to the conditional formatting which is all about
constant values.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-ux-advise] [Bug 147980] Warning dialog shows only once for "Record changes"

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=147980

--- Comment #5 from Heiko Tietze  ---
(In reply to Po-Yen Huang from comment #0)
> Warning dialog shows only when "Record changes" turn off first time.
True only if you keep the dialog open. If you close the properties dialog, open
again, start and end recording again, you will get the warning.

But another question is if we need this a warning at all. You deliberately
uncheck the recording which of course should have the effect of stopping it.
And it's also not a destructive or crucial option, neither the dialog tells me
anything new.

"This action will exit the change recording mode.
No information about changes will be recorded from now on.

Exit change recording mode?"

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Libreoffice-bugs] [Bug 147980] Warning dialog shows only once for "Record changes"

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=147980

--- Comment #5 from Heiko Tietze  ---
(In reply to Po-Yen Huang from comment #0)
> Warning dialog shows only when "Record changes" turn off first time.
True only if you keep the dialog open. If you close the properties dialog, open
again, start and end recording again, you will get the warning.

But another question is if we need this a warning at all. You deliberately
uncheck the recording which of course should have the effect of stopping it.
And it's also not a destructive or crucial option, neither the dialog tells me
anything new.

"This action will exit the change recording mode.
No information about changes will be recorded from now on.

Exit change recording mode?"

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 106179] [META] Writer comment bugs and enhancements

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=106179

--- Comment #57 from fexave6784  ---
In this article, we will explore the common causes of crypto login issues and
provide you with helpful tips to resolve and prevent them.
https://sites.google.com/abcrypt.com/cryptocomlogin/home
https://sites.google.com/abcrypt.com/cryptocom-signin/home

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 151946] Opening spreadsheet very slow

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=151946

--- Comment #10 from Roman Kuznetsov <79045_79...@mail.ru> ---
https://gerrit.libreoffice.org/c/core/+/153006

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - sw/qa sw/source writerfilter/source

2023-06-14 Thread Miklos Vajna (via logerrit)
 sw/qa/extras/ooxmlexport/data/para-style-char-position.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport18.cxx  |   18 ++
 sw/source/filter/ww8/docxattributeoutput.cxx|8 
 writerfilter/source/dmapper/DomainMapper.cxx|   21 ++--
 writerfilter/source/dmapper/DomainMapper.hxx|6 ++-
 writerfilter/source/dmapper/DomainMapper_Impl.cxx   |4 +-
 writerfilter/source/dmapper/DomainMapper_Impl.hxx   |2 -
 writerfilter/source/dmapper/StyleSheetTable.cxx |1 
 8 files changed, 53 insertions(+), 7 deletions(-)

New commits:
commit cf2afb85305153aff5d7faca10216c4d0610dad0
Author: Miklos Vajna 
AuthorDate: Tue Jun 13 15:02:20 2023 +0200
Commit: Mike Kaganski 
CommitDate: Wed Jun 14 10:18:19 2023 +0200

DOCX filter: improve handling of negative  in paragraph styles

The bugdoc has a  in its Normal paragraph style,
which is almost not visible in Word, but we mapped this to default
subscript text in Writer, leading to very visible bad font height in
practice.

The root of the problem is that  works with an absolute
offset in half-points, while Writer works in percentages, so the
import/export code can only do a correct mapping in case the font size
is known. This initial mapping was added in commit
e70df84352d3670508a4666c97df44f82c1ce934 (try somewhat harder to read
w:position (bnc#773061), 2012-08-07), and later commit
d71cf6390a89ea6a4fab724e3a7996f28ca33661 (tdf#99602 writerfilter: import
subscript into character style, 2019-10-04) gave up on this for
character styles.

Fix the problem by working with paragraph styles similar to what the
binary DOC filter already does, just assuming that the font height from
the style won't be overwritten, or will be overwritten together with a
matching . Do this only for negative  for now,
as that's good enough for our needs. Do the opposite of this at export
time.

It would be still possible in the future to add native handling for
absolute escapements, and then this mapping would not be needed at all.

(cherry picked from commit 85f0a5d7bc54dfba75e8d6dd9c905bc1ac31d927)

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

diff --git a/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx 
b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx
new file mode 100644
index ..946ca0bf9cc2
Binary files /dev/null and 
b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
index ba2bdfed3c3f..00fbebcb3f4e 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
@@ -406,6 +406,24 @@ CPPUNIT_TEST_FIXTURE(Test, testNumberPortionFormatFromODT)
 assertXPath(pXmlDoc, "//w:pPr/w:rPr/w:sz", "val", "48");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testParaStyleCharPosition)
+{
+// Given a loaded document where the Normal paragraph style has 
:
+createSwDoc("para-style-char-position.docx");
+
+// When saving it back to DOCX:
+save("Office Open XML Text");
+
+// Then make sure that is not turned into a normal subscript text:
+xmlDocUniquePtr pXmlDoc = parseExport("word/styles.xml");
+// Without the accompanying fix in place, this test would have failed with:
+// - Expected: 1
+// - Actual  : 0
+// - XPath '/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position' 
number of nodes is incorrect
+// i.e. we wrote  instead of .
+assertXPath(pXmlDoc, 
"/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position", "val", "-1");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf150966_regularInset)
 {
 // Given a docx document with a rectangular shape with height cy="90" 
(EMU), tIns="18"
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index b954d74d1b4e..795d25ef8f82 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7693,8 +7693,14 @@ void DocxAttributeOutput::CharEscapement( const 
SvxEscapementItem& rEscapement )
 OString sIss;
 short nEsc = rEscapement.GetEsc(), nProp = 
rEscapement.GetProportionalHeight();
 
+bool bParaStyle = false;
+if (m_rExport.m_bStyDef && m_rExport.m_pCurrentStyle)
+{
+bParaStyle = m_rExport.m_pCurrentStyle->Which() == RES_TXTFMTCOLL;
+}
+
 // Simplify styles to avoid impossible complexity. Import and export as 
defaults only
-if ( m_rExport.m_bStyDef && nEsc )
+if ( m_rExport.m_bStyDef && nEsc && !(bParaStyle && nEsc < 0))
 {
 nProp = DFLT_ESC_PROP;
 nEsc = (nEsc > 0) ? 

[Libreoffice-bugs] [Bug 147514] How many copies you want of something should not be hidden in the print dialog

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=147514

Heiko Tietze  changed:

   What|Removed |Added

   See Also||https://bugs.documentfounda
   ||tion.org/show_bug.cgi?id=12
   ||7782

--- Comment #2 from Heiko Tietze  ---
Scrolled window and collapsed content was added for bug 127782.

While moving the number of pages out of the expanded section is easy to do, it
detaches this property from the associated collate and order options. If we
show all reaching the paper size and orientation requires scrolling. 

Please keep in mind that we aim to run on devices with small screens and the
dialog must not grow in size.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-ux-advise] [Bug 147514] How many copies you want of something should not be hidden in the print dialog

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=147514

Heiko Tietze  changed:

   What|Removed |Added

   See Also||https://bugs.documentfounda
   ||tion.org/show_bug.cgi?id=12
   ||7782

--- Comment #2 from Heiko Tietze  ---
Scrolled window and collapsed content was added for bug 127782.

While moving the number of pages out of the expanded section is easy to do, it
detaches this property from the associated collate and order options. If we
show all reaching the paper size and orientation requires scrolling. 

Please keep in mind that we aim to run on devices with small screens and the
dialog must not grow in size.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Libreoffice-commits] core.git: oox/CppunitTest_oox_mcgr.mk oox/Module_oox.mk oox/qa oox/source

2023-06-14 Thread Regina Henschel (via logerrit)
 oox/CppunitTest_oox_mcgr.mk  |   53 +
 oox/Module_oox.mk|1 
 oox/qa/unit/data/MCGR_FontworkColorGradient.fodp |  662 +++
 oox/qa/unit/data/MCGR_FontworkColorGradient.fodt |  331 +++
 oox/qa/unit/export.cxx   |   80 +-
 oox/qa/unit/mcgr.cxx |   73 ++
 oox/source/drawingml/fontworkhelpers.cxx |  314 ++
 7 files changed, 1236 insertions(+), 278 deletions(-)

New commits:
commit 0028c2311ca14669ca530cd4db422cd3cf9438ca
Author: Regina Henschel 
AuthorDate: Sat Jun 10 19:09:34 2023 +0200
Commit: Regina Henschel 
CommitDate: Wed Jun 14 10:09:51 2023 +0200

MCGR: Use BGradient in export of Fontwork to docx too

Transparency values are not exactly like in UI because converting
through rgb-color adds rounding inaccuracy. The unit tests are adjusted
accordingly. With only start and end values it was possible to use the
UI values directly. It would be possible to make special cases for
front and back value, but I think it is not worth the effort.

The previous solution had the error, that the stops were not mirrored
in case of non linear gradient. That is corrected now. The unit tests
are adjusted.

The previous solution had assumed that our 'intensity' at start or end
colors is the same as the 'lumMod' attribute in OOXML. However, this is
not the case. So now the 'intensity' is incorporated into the color.
Again, the unit tests are adjusted.

Change-Id: Id02e455dc09d12c5b453637fcb2bdc4f8f1529d1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152839
Tested-by: Jenkins
Reviewed-by: Regina Henschel 

diff --git a/oox/CppunitTest_oox_mcgr.mk b/oox/CppunitTest_oox_mcgr.mk
new file mode 100644
index ..ea7692e161fc
--- /dev/null
+++ b/oox/CppunitTest_oox_mcgr.mk
@@ -0,0 +1,53 @@
+# -*- 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,oox_mcgr))
+
+$(eval $(call gb_CppunitTest_use_externals,oox_mcgr,\
+   boost_headers \
+   libxml2 \
+))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,oox_mcgr, \
+oox/qa/unit/mcgr \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,oox_mcgr, \
+comphelper \
+cppu \
+cppuhelper \
+oox \
+sal \
+subsequenttest \
+test \
+unotest \
+utl \
+tl \
+))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,oox_mcgr))
+
+$(eval $(call gb_CppunitTest_use_ure,oox_mcgr))
+$(eval $(call gb_CppunitTest_use_vcl,oox_mcgr))
+
+$(eval $(call gb_CppunitTest_use_rdb,oox_mcgr,services))
+
+$(eval $(call gb_CppunitTest_use_custom_headers,oox_mcgr,\
+   officecfg/registry \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,oox_mcgr))
+
+$(eval $(call gb_CppunitTest_add_arguments,oox_mcgr, \
+
-env:arg-env=$(gb_Helper_LIBRARY_PATH_VAR)"{$(gb_Helper_LIBRARY_PATH_VAR)+=$(gb_Helper_LIBRARY_PATH_VAR)}"
 \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/oox/Module_oox.mk b/oox/Module_oox.mk
index f868a126a61c..dc07ab913c56 100644
--- a/oox/Module_oox.mk
+++ b/oox/Module_oox.mk
@@ -34,6 +34,7 @@ $(eval $(call gb_Module_add_check_targets,oox,\
CppunitTest_oox_vml \
CppunitTest_oox_shape \
CppunitTest_oox_export \
+CppunitTest_oox_mcgr \
 ))
 endif
 
diff --git a/oox/qa/unit/data/MCGR_FontworkColorGradient.fodp 
b/oox/qa/unit/data/MCGR_FontworkColorGradient.fodp
new file mode 100644
index ..e82401442c05
--- /dev/null
+++ b/oox/qa/unit/data/MCGR_FontworkColorGradient.fodp
@@ -0,0 +1,662 @@
+
+
+http://openoffice.org/2004/office; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink; 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:dc="http://purl.org/dc/elements/1.1/; 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:rpt="http://openoffice.org/2005/report; 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:ooow="http://openoffice.org/200
 

[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - sw/qa sw/source

2023-06-14 Thread Miklos Vajna (via logerrit)
 sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx |binary
 sw/qa/core/unocore/unocore.cxx   |   24 
 sw/source/core/unocore/unotext.cxx   |   32 +--
 3 files changed, 53 insertions(+), 3 deletions(-)

New commits:
commit 39a16c392b68bfa359f36a6d71cb43b373d019a6
Author: Miklos Vajna 
AuthorDate: Tue Jun 13 08:15:34 2023 +0200
Commit: Caolán McNamara 
CommitDate: Wed Jun 14 10:07:38 2023 +0200

sw floattable: fix anchor position of inner floating table

The bugdoc has an outer, split floating table and an inner, non-split
floating table. The anchor of the inner table was wrong: both were
anchored in the only paragraph in the body text, while the inner
floating table should be anchored inside the outer floating table.

The reason for this is commit 9592f56323de27f9e1d890ee6259a5f4f328cbd3
(n#695479 fix anchor handling in SwXText::convertToTextFrame(),
2012-02-20), which was necessary to make sure that old-style frames
after each other are all anchored to the body text, not inside each
other.

Fix the problem by leaving the behavior unchanged for empty paragraphs,
but at least when the inner anchor is to-para, the last paragraph of a fly
content is non-empty and the outer fly range contains the entire last
paragraph, then consider such a fly as "inside" the outer fly content,
rather than something that has to be moved so the anchor is still in the
body text.

CppunitTest_sw_rtfimport's testN695479, CppunitTest_sw_ooxmlexport10's
testFloatingTablesAnchor and CppunitTest_sw_ooxmlexport13's testFlyInFly
are all related tests and they continue to work after this change.

(cherry picked from commit c374628126ad222be48d5d06857b7dc6b879f783)

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

diff --git a/sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx 
b/sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx
new file mode 100644
index ..dc213b1b0d26
Binary files /dev/null and 
b/sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx differ
diff --git a/sw/qa/core/unocore/unocore.cxx b/sw/qa/core/unocore/unocore.cxx
index d17b1e19940a..603d56d449a1 100644
--- a/sw/qa/core/unocore/unocore.cxx
+++ b/sw/qa/core/unocore/unocore.cxx
@@ -29,6 +29,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 
 using namespace ::com::sun::star;
 
@@ -930,6 +932,28 @@ CPPUNIT_TEST_FIXTURE(SwCoreUnocoreTest, testFlySplit)
 CPPUNIT_ASSERT(bIsSplitAllowed);
 }
 
+CPPUNIT_TEST_FIXTURE(SwCoreUnocoreTest, testConvertToTextFrame)
+{
+// Given a document with 2 non-interesting frames, an inner frame and an 
outer frame:
+createSwDoc("floattable-outer-nonsplit-inner.docx");
+
+// When checking the anchor of the inner frame:
+SwDoc* pDoc = getSwDoc();
+const SwFrameFormats& rFrames = *pDoc->GetSpzFrameFormats();
+SwFrameFormat* pFrame3 = rFrames.FindFormatByName("Frame3");
+SwNodeIndex aFrame3Anchor = pFrame3->GetAnchor().GetContentAnchor()->nNode;
+
+// Then make sure it's anchored in the outer frame's last content node:
+SwFrameFormat* pFrame4 = rFrames.FindFormatByName("Frame4");
+SwPaM 
aPaM(*pFrame4->GetContent().GetContentIdx()->GetNode().EndOfSectionNode());
+aPaM.Move(fnMoveBackward, GoInContent);
+// Without the accompanying fix in place, this test would have failed with:
+// - Expected: SwNodeIndex (node 27)
+// - Actual  : SwNodeIndex (node 49)
+// i.e. Frame3 was anchored much later, in the body text, not in Frame4.
+CPPUNIT_ASSERT_EQUAL(aPaM.GetPoint()->nNode, aFrame3Anchor);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/unocore/unotext.cxx 
b/sw/source/core/unocore/unotext.cxx
index c2655901f66d..98b9cecbf57c 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1537,6 +1537,34 @@ static bool isGraphicNode(const SwFrameFormat* 
pFrameFormat)
 return index.GetNode().IsGrfNode();
 }
 
+/// Determines if the at-para rAnchor is anchored at the start or end of 
rAnchorCheckPam.
+static bool IsAtParaMatch(const SwPaM& rAnchorCheckPam, const SwFormatAnchor& 
rAnchor)
+{
+if (rAnchor.GetAnchorId() != RndStdIds::FLY_AT_PARA)
+{
+return false;
+}
+
+if (rAnchorCheckPam.Start()->GetNode() == *rAnchor.GetAnchorNode())
+{
+return true;
+}
+
+if (rAnchorCheckPam.End()->GetNode() == *rAnchor.GetAnchorNode())
+{
+SwTextNode* pEndTextNode = 
rAnchorCheckPam.End()->GetNode().GetTextNode();
+if (pEndTextNode && rAnchorCheckPam.End()->GetContentIndex() == 
pEndTextNode->Len())
+{
+// rAnchorCheckPam covers the 

[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - writerfilter/source

2023-06-14 Thread Noel Grandin (via logerrit)
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |4 
 writerfilter/source/dmapper/NumberingManager.cxx  |   10 
 writerfilter/source/dmapper/PropertyIds.cxx   |  689 ++
 writerfilter/source/dmapper/PropertyIds.hxx   |2 
 writerfilter/source/dmapper/PropertyMap.cxx   |   20 
 5 files changed, 360 insertions(+), 365 deletions(-)

New commits:
commit c631abe193bebf41d36a5ad69baa79940d1b4631
Author: Noel Grandin 
AuthorDate: Fri May 12 11:00:47 2023 +0200
Commit: Miklos Vajna 
CommitDate: Wed Jun 14 10:06:28 2023 +0200

avoid some OUString construction in writerfilter/

no need to repeatedly construct these

Change-Id: Ie271c8adaf1cb558d3174c9f325de524c46e399b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151698
Tested-by: Jenkins
Reviewed-by: Noel Grandin 
(cherry picked from commit 58208b97b972d6ddca5122893b3084c67b0c5ecd)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152991
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Miklos Vajna 

diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx 
b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 745a4ca355e5..ac3cf2aa6032 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -1606,7 +1606,7 @@ static void 
lcl_MoveBorderPropertiesToFrame(std::vector& r
 
 for( size_t nProperty = 0; nProperty < SAL_N_ELEMENTS( 
aBorderProperties ); ++nProperty)
 {
-OUString sPropertyName = 
getPropertyName(aBorderProperties[nProperty]);
+const OUString & sPropertyName = 
getPropertyName(aBorderProperties[nProperty]);
 beans::PropertyValue aValue;
 aValue.Name = sPropertyName;
 aValue.Value = 
xTextRangeProperties->getPropertyValue(sPropertyName);
@@ -4059,7 +4059,7 @@ void DomainMapper_Impl::PushShapeContext( const 
uno::Reference< drawing::XShape
 if ( bOnlyApplyCharHeight && eId != 
PROP_CHAR_HEIGHT )
 continue;
 
-const OUString sPropName = 
getPropertyName(eId);
+const OUString & sPropName = 
getPropertyName(eId);
 if ( beans::PropertyState_DEFAULT_VALUE == 
xShapePropertyState->getPropertyState(sPropName) )
 {
 const uno::Any aProp = 
GetPropertyFromStyleSheet(eId, pEntry, /*bDocDefaults=*/true, /*bPara=*/true);
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx 
b/writerfilter/source/dmapper/NumberingManager.cxx
index ea4fb36ec4a2..047e775d726f 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -276,9 +276,9 @@ void ListLevel::AddParaProperties( uno::Sequence< 
beans::PropertyValue >* props
 {
 uno::Sequence< beans::PropertyValue >& aProps = *props;
 
-OUString sFirstLineIndent = getPropertyName(
+const OUString & sFirstLineIndent = getPropertyName(
 PROP_FIRST_LINE_INDENT );
-OUString sIndentAt = getPropertyName(
+const OUString & sIndentAt = getPropertyName(
 PROP_INDENT_AT );
 
 bool hasFirstLineIndent = lcl_findProperty( aProps, sFirstLineIndent );
@@ -292,9 +292,9 @@ void ListLevel::AddParaProperties( uno::Sequence< 
beans::PropertyValue >* props
 // ParaFirstLineIndent -> FirstLineIndent
 // ParaLeftMargin -> IndentAt
 
-OUString sParaIndent = getPropertyName(
+const OUString & sParaIndent = getPropertyName(
 PROP_PARA_FIRST_LINE_INDENT );
-OUString sParaLeftMargin = getPropertyName(
+const OUString & sParaLeftMargin = getPropertyName(
 PROP_PARA_LEFT_MARGIN );
 
 for ( const auto& rParaProp : aParaProps )
@@ -615,7 +615,7 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
 }
 
 // Create the numbering style for these rules
-OUString sNumRulesName = getPropertyName( PROP_NUMBERING_RULES );
+const OUString & sNumRulesName = getPropertyName( PROP_NUMBERING_RULES 
);
 xStyle->setPropertyValue( sNumRulesName, uno::Any( m_xNumRules ) );
 }
 catch( const lang::IllegalArgumentException& )
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx 
b/writerfilter/source/dmapper/PropertyIds.cxx
index 31151ac6c229..935e9dfd2075 100644
--- a/writerfilter/source/dmapper/PropertyIds.cxx
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -18,357 +18,352 @@
  */
 #include 
 #include "PropertyIds.hxx"
+#include 
 
 namespace writerfilter::dmapper{
 
-OUString getPropertyName( PropertyIds eId )
+const OUString & getPropertyName( PropertyIds eId )
 {
-OUString sName;
-switch(eId) {
-case PROP_CHAR_WEIGHT: sName = "CharWeight"; break;
-case PROP_CHAR_POSTURE:sName = "CharPosture"; break;
-case PROP_CHAR_STRIKEOUT:  

[Libreoffice-bugs] [Bug 155825] Crash MCGR export special file odp -> pptx

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155825

Caolán McNamara  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155804] Row-wise and/or column-wise merge in 2D area

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155804

--- Comment #4 from Eyal Rozenberg  ---
(In reply to ady from comment #3)
> Then use copy + paste special > format only, or "Clone Formatting".

That doesn't do what I want either, if I want the merging to show all the
contents rather than have the first column hide the others. But - if I want
hiding, then that does help.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sc/source

2023-06-14 Thread Henry Castro (via logerrit)
 sc/source/filter/inc/condformatbuffer.hxx |1 +
 sc/source/filter/inc/extlstcontext.hxx|4 +++-
 sc/source/filter/oox/condformatbuffer.cxx |   13 +
 sc/source/filter/oox/extlstcontext.cxx|   28 
 4 files changed, 45 insertions(+), 1 deletion(-)

New commits:
commit 2fa664476f7ef233e41f6b445aa9a980ad345961
Author: Henry Castro 
AuthorDate: Fri Mar 17 10:47:31 2023 -0400
Commit: Xisco Fauli 
CommitDate: Wed Jun 14 09:32:16 2023 +0200

sc: filter: oox: Add a missing tag child of the parent tag "cfvo"


 
  0
 
 
  1
 
 
 
 
 
 


Signed-off-by: Henry Castro 
Change-Id: Ie98507e11a5cdeb0d1adc77a44fd79edb2f26d6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149066
Tested-by: Jenkins CollaboraOffice 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152998
Tested-by: Jenkins
(cherry picked from commit 3d4c4a95c32ad2a96831c3db552b0c389c596aea)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153015
Reviewed-by: Xisco Fauli 

diff --git a/sc/source/filter/inc/condformatbuffer.hxx 
b/sc/source/filter/inc/condformatbuffer.hxx
index 992f14e041a8..08e9053684e2 100644
--- a/sc/source/filter/inc/condformatbuffer.hxx
+++ b/sc/source/filter/inc/condformatbuffer.hxx
@@ -241,6 +241,7 @@ struct ExCfRuleModel
 ::Color mnNegativeColor;
 OUString maAxisPosition; // DataBar
 OUString maColorScaleType; // Cfvo
+OUString msScaleTypeValue; // Cfvo
 bool mbGradient; // DataBar
 bool mbIsLower; // Cfvo
 };
diff --git a/sc/source/filter/inc/extlstcontext.hxx 
b/sc/source/filter/inc/extlstcontext.hxx
index 8635c6029523..077ebdbebf8e 100644
--- a/sc/source/filter/inc/extlstcontext.hxx
+++ b/sc/source/filter/inc/extlstcontext.hxx
@@ -32,11 +32,13 @@ public:
 
 virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 
nElement, const AttributeList& rAttribs ) override;
 virtual voidonStartElement( const AttributeList& rAttribs ) 
override;
+virtual voidonCharacters( const OUString& rChars ) override;
+virtual voidonEndElement() override;
 
 private:
 ScDataBarFormatData* mpTarget;
-
 bool mbFirstEntry;
+ExtCfDataBarRuleRef mpRule;
 };
 
 struct ExtCondFormatRuleModel
diff --git a/sc/source/filter/oox/condformatbuffer.cxx 
b/sc/source/filter/oox/condformatbuffer.cxx
index 668467f7ccdf..1b397c2db316 100644
--- a/sc/source/filter/oox/condformatbuffer.cxx
+++ b/sc/source/filter/oox/condformatbuffer.cxx
@@ -1428,6 +1428,19 @@ void ExtCfDataBarRule::finalizeImport()
 pEntry->SetType(COLORSCALE_PERCENT);
 else if (maModel.maColorScaleType == "formula")
 pEntry->SetType(COLORSCALE_FORMULA);
+else if (maModel.maColorScaleType == "num")
+pEntry->SetType(COLORSCALE_VALUE);
+
+if (!maModel.msScaleTypeValue.isEmpty())
+{
+sal_Int32 nSize = 0;
+rtl_math_ConversionStatus eStatus = 
rtl_math_ConversionStatus_Ok;
+double fValue = 
rtl::math::stringToDouble(maModel.msScaleTypeValue, '.', '\0', , 
);
+if (eStatus == rtl_math_ConversionStatus_Ok && nSize == 
maModel.msScaleTypeValue.getLength())
+{
+pEntry->SetValue(fValue);
+}
+}
 break;
 }
 case UNKNOWN: // nothing to do
diff --git a/sc/source/filter/oox/extlstcontext.cxx 
b/sc/source/filter/oox/extlstcontext.cxx
index 45e60e7c6f5e..1ea6b70d8707 100644
--- a/sc/source/filter/oox/extlstcontext.cxx
+++ b/sc/source/filter/oox/extlstcontext.cxx
@@ -74,6 +74,7 @@ void ExtCfRuleContext::onStartElement( const AttributeList& 
rAttribs )
 xRule->importCfvo( rAttribs );
 xRule->getModel().mbIsLower = mbFirstEntry;
 mbFirstEntry = false;
+mpRule = xRule;
 break;
 }
 default:
@@ -81,6 +82,33 @@ void ExtCfRuleContext::onStartElement( const AttributeList& 
rAttribs )
 }
 }
 
+void ExtCfRuleContext::onCharacters( const OUString& rChars )
+{
+switch( getCurrentElement() )
+{
+case XM_TOKEN( f ):
+{
+if (mpRule)
+{
+mpRule->getModel().msScaleTypeValue = rChars;
+}
+}
+break;
+}
+}
+
+void ExtCfRuleContext::onEndElement()
+{
+switch( getCurrentElement() )
+{
+case XLS14_TOKEN( cfvo ):
+{
+mpRule.reset();
+break;
+}
+}
+}
+
 namespace {
 bool IsSpecificTextCondMode(ScConditionMode eMode)
 {


[Libreoffice-commits] core.git: filter/source vcl/source

2023-06-14 Thread Andrea Gelmini (via logerrit)
 filter/source/svg/svgwriter.cxx |2 +-
 vcl/source/filter/svm/SvmReader.cxx |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 667c7ea976fab4691660844560eb2dcc7ecbbd19
Author: Andrea Gelmini 
AuthorDate: Tue Jun 13 20:46:32 2023 +0200
Commit: Julien Nabet 
CommitDate: Wed Jun 14 09:09:36 2023 +0200

Fix typo

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

diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx
index be95c89de895..1826507bead8 100644
--- a/filter/source/svg/svgwriter.cxx
+++ b/filter/source/svg/svgwriter.cxx
@@ -3400,7 +3400,7 @@ void SVGActionWriter::ImplWriteActions( const 
GDIMetaFile& rMtf,
 const size_t nMaxPossibleEntries = 
aMemStm.remainingSize() / 4 * sizeof(double);
 if (nTmp > nMaxPossibleEntries)
 {
-SAL_WARN("filter.svg", "gradiant record claims to 
have: " << nTmp << " entries, but only " << nMaxPossibleEntries << " possible, 
clamping");
+SAL_WARN("filter.svg", "gradient record claims to 
have: " << nTmp << " entries, but only " << nMaxPossibleEntries << " possible, 
clamping");
 nTmp = nMaxPossibleEntries;
 }
 
diff --git a/vcl/source/filter/svm/SvmReader.cxx 
b/vcl/source/filter/svm/SvmReader.cxx
index 20462b620da5..56f2d933bbe9 100644
--- a/vcl/source/filter/svm/SvmReader.cxx
+++ b/vcl/source/filter/svm/SvmReader.cxx
@@ -1347,7 +1347,7 @@ rtl::Reference 
SvmReader::FloatTransparentHandler(ImplMetaReadData*
 const size_t nMaxPossibleEntries = mrStream.remainingSize() / 4 * 
sizeof(double);
 if (nTmp > nMaxPossibleEntries)
 {
-SAL_WARN("vcl.gdi", "gradiant record claims to have: " << nTmp << 
" entries, but only "
+SAL_WARN("vcl.gdi", "gradient record claims to have: " << nTmp << 
" entries, but only "
<< 
nMaxPossibleEntries
<< " 
possible, clamping");
 nTmp = nMaxPossibleEntries;


[Libreoffice-bugs] [Bug 155812] Open file with many page numbers spend too much time

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155812

--- Comment #3 from featheredreflection  ---
Like the original number, I add gaps, but this time there are more of them.
https://minicrossword.io

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - svgio/qa svgio/source

2023-06-14 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx|   18 ++
 svgio/qa/cppunit/data/tdf155819.svg   |   15 +++
 svgio/source/svgreader/svgstyleattributes.cxx |5 +++--
 3 files changed, 36 insertions(+), 2 deletions(-)

New commits:
commit edc8dfa49c1c5371177a49c9e661cbda4efd9dd6
Author: Xisco Fauli 
AuthorDate: Wed Jun 14 01:10:50 2023 +0200
Commit: Xisco Fauli 
CommitDate: Wed Jun 14 08:57:56 2023 +0200

tdf#155819: check marker property comes from a style sheet

Since 242b7d0162d55be0945ca849c3de841fbf6cb475
"svgio: simplify code" where bIsInStyleSheet was replaced by
getCssStyleParent() incorrectly

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

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index ad5852127551..559af49af695 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -135,6 +135,24 @@ CPPUNIT_TEST_FIXTURE(Test, testSymbol)
 assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "color", 
"#00d000");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf155819)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", 1);
+assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/polypolygon", 1);
+// Without the fix in place, this test would have failed with
+// - Expected: 4
+// - Actual  : 0
+assertXPath(pDocument, "/primitive2D/transform/transform", 4);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testFilterLuminanceToAlpha)
 {
 Primitive2DSequence aSequenceTdf132246 = 
parseSvg(u"/svgio/qa/cppunit/data/filterLuminanceToAlpha.svg");
diff --git a/svgio/qa/cppunit/data/tdf155819.svg 
b/svgio/qa/cppunit/data/tdf155819.svg
new file mode 100644
index ..30c2da4d1a5a
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf155819.svg
@@ -0,0 +1,15 @@
+
+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/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 58a982a8a927..9e9bd5e47e6d 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1151,7 +1151,7 @@ namespace svgio::svgreader
 if(SVGToken::Path == mrOwner.getType() || // path
 SVGToken::Polygon == mrOwner.getType() || // polygon, 
polyline
 SVGToken::Line == mrOwner.getType() ||// line
-getCssStyleParent())
+SVGToken::Style == mrOwner.getType())// tdf#150323
 {
 // try to add markers
 add_markers(rPath, rTarget, pHelpPointIndices);
@@ -1895,7 +1895,8 @@ namespace svgio::svgreader
 }
 case SVGToken::Marker:
 {
-if(getCssStyleParent())
+// tdf#155819: Using the marker property from a style 
sheet is equivalent to using all three (start, mid, end).
+if(mrOwner.getType() == SVGToken::Style)
 {
 readLocalUrl(aContent, maMarkerEndXLink);
 maMarkerStartXLink = maMarkerMidXLink = 
maMarkerEndXLink;


[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155819

--- Comment #3 from Commit Notification 
 ---
Xisco Fauli committed a patch related to this issue.
It has been pushed to "libreoffice-7-6":

https://git.libreoffice.org/core/commit/edc8dfa49c1c5371177a49c9e661cbda4efd9dd6

tdf#155819: check marker property comes from a style sheet

It will be available in 7.6.0.0.beta2.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155819

Commit Notification  changed:

   What|Removed |Added

 Whiteboard|target:24.2.0   |target:24.2.0
   ||target:7.6.0.0.beta2

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155804] Row-wise and/or column-wise merge in 2D area

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155804

--- Comment #3 from ady  ---
(In reply to Eyal Rozenberg from comment #2)
> (In reply to ady from comment #1)
> 
> But I don't want to copy-paste one row into the rest, each row has its own
> contents.

Then use copy + paste special > format only, or "Clone Formatting".

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - 2 commits - oox/source sc/source

2023-06-14 Thread Caolán McNamara (via logerrit)
 oox/source/export/drawingml.cxx   |   12 +++-
 sc/source/filter/oox/condformatbuffer.cxx |   76 ++
 2 files changed, 85 insertions(+), 3 deletions(-)

New commits:
commit f1fcea55e8653e75a24d1c1a574c6a4576b924d1
Author: Caolán McNamara 
AuthorDate: Tue Jun 13 14:37:56 2023 +0100
Commit: Xisco Fauli 
CommitDate: Wed Jun 14 08:55:21 2023 +0200

cid#1532377 Dereference before null check

Change-Id: Ie85e81cea63578413db2c69020dae6a105466cb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152963
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 
(cherry picked from commit f412c1e448b0268294ccbccee4f3a6a9e76a7b98)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153010
Reviewed-by: Xisco Fauli 

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 5b0772550471..dca260895af8 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -761,6 +761,14 @@ void DrawingML::WriteGradientFill(
 basegfx::utils::prepareColorStops(*pTransparenceGradient, aAlphaStops, 
aSingleAlpha);
 }
 
+if (nullptr == pGradient)
+{
+// an error - see comment in header - is to give neither pColorGradient
+// nor pTransparenceGradient
+assert(false && "pColorGradient or pTransparenceGradient should be 
set");
+return;
+}
+
 // apply steps if used. Need to do that before synchronizeColorStops
 // since that may add e.g. for AlphaStops all-the-same no-data entries,
 // so the number of entries might change
@@ -775,12 +783,10 @@ void DrawingML::WriteGradientFill(
 // method (at import time) will be exported again
 basegfx::utils::synchronizeColorStops(aColorStops, aAlphaStops, 
aSingleColor, aSingleAlpha);
 
-if (aColorStops.size() != aAlphaStops.size() || nullptr == pGradient)
+if (aColorStops.size() != aAlphaStops.size())
 {
 // this is an error - synchronizeColorStops above *has* to create that
 // state, see description there (!)
-// also an error - see comment in header - is to give neither 
pColorGradient
-// nor pTransparenceGradient
 assert(false && "oox::WriteGradientFill: non-synchronized gradients 
(!)");
 return;
 }
commit 1b282eac598d832e7d0af161541b8a3fcf4767c8
Author: Henry Castro 
AuthorDate: Fri Mar 17 10:40:23 2023 -0400
Commit: Xisco Fauli 
CommitDate: Wed Jun 14 08:55:09 2023 +0200

sc: filter: oox: add missing attribute "indexed"


 
 
 
 
 


Signed-off-by: Henry Castro 
Change-Id: If7f6c8c902e4cd0d775f1014acad3dcd19f13f28
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149065
Tested-by: Jenkins CollaboraOffice 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152968
Tested-by: Jenkins
(cherry picked from commit 77a14410c3faffb2e2b78c039a989987b0a8)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153014
Reviewed-by: Xisco Fauli 

diff --git a/sc/source/filter/oox/condformatbuffer.cxx 
b/sc/source/filter/oox/condformatbuffer.cxx
index ac5c2738aa47..668467f7ccdf 100644
--- a/sc/source/filter/oox/condformatbuffer.cxx
+++ b/sc/source/filter/oox/condformatbuffer.cxx
@@ -168,6 +168,76 @@ void ColorScaleRule::importCfvo( const AttributeList& 
rAttribs )
 ++mnCfvo;
 }
 
+// 
https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.indexedcolors?view=openxml-2.8.1
+static ::Color IndexedColors[] = {
+0x,
+0x00FF,
+0x00FF,
+0xFF00,
+0x00FF,
+0x0000,
+0x00FF00FF,
+0x,
+0x,
+0x00FF,
+0x00FF,
+0xFF00,
+0x00FF,
+0x0000,
+0x00FF00FF,
+0x,
+0x0080,
+0x8000,
+0x0080,
+0x00808000,
+0x00800080,
+0x8080,
+0x00C0C0C0,
+0x00808080,
+0x00FF,
+0x00993366,
+0x00CC,
+0x00CC,
+0x00660066,
+0x00FF8080,
+0x66CC,
+0x00FF,
+0x0080,
+0x00FF00FF,
+0x0000,
+0x,
+0x00800080,
+0x0080,
+0x8080,
+0x00FF,
+0xCCFF,
+0x00CC,
+0x00CCFFCC,
+0x0099,
+0x0099CCFF,
+0x00FF99CC,
+0x00CC99FF,
+0x00FFCC99,
+0x003366FF,
+0x0033,
+0x0099CC00,
+0x00FFCC00,
+0x00FF9900,
+0x00FF6600,
+0x0099,
+0x00969696,
+0x3366,
+0x00339966,
+0x3300,
+0x0000,
+0x00993300,
+0x00993366,
+0x0099,
+0x0033,
+0x, // System Foreground ?
+0x, // System Background ?
+};
+
 namespace {
 
 ::Color importOOXColor(const AttributeList& rAttribs, const ThemeBuffer& 
rThemeBuffer, const GraphicHelper& rGraphicHelper)
@@ -191,6 +261,12 @@ namespace {
 
 nColor = rThemeBuffer.getColorByIndex( nThemeIndex );
 }
+else if 

[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - vcl/inc vcl/unx

2023-06-14 Thread Khaled Hosny (via logerrit)
 vcl/inc/unx/fontmanager.hxx |3 +++
 vcl/unx/generic/fontmanager/fontconfig.cxx  |   20 ++--
 vcl/unx/generic/fontmanager/fontmanager.cxx |2 ++
 3 files changed, 23 insertions(+), 2 deletions(-)

New commits:
commit 40c0847d6fd12e81fda1528f7646f5288de2e24d
Author: Khaled Hosny 
AuthorDate: Tue Jun 13 12:36:24 2023 +0300
Commit: Xisco Fauli 
CommitDate: Wed Jun 14 08:53:35 2023 +0200

When adding application fonts, add them also to FontConfig

This way FontConfig can use them for missing chars font fallback.

Change-Id: I63be8a62db9bdacc83be2327555c558d4cd476bf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152954
Reviewed-by: Caolán McNamara 
Tested-by: Caolán McNamara 
(cherry picked from commit b416006052649ed69ef1dcd711187c860353a0db)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153012
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/vcl/inc/unx/fontmanager.hxx b/vcl/inc/unx/fontmanager.hxx
index a76474f856fc..a7817652d9ae 100644
--- a/vcl/inc/unx/fontmanager.hxx
+++ b/vcl/inc/unx/fontmanager.hxx
@@ -175,6 +175,9 @@ class VCL_PLUGIN_PUBLIC PrintFontManager
 */
 static void addFontconfigDir(const OString& rDirectory);
 
+/* register an application specific font file for libfontconfig */
+static void addFontconfigFile(const OString& rFile);
+
 std::set m_aPreviousLangSupportRequests;
 std::vector m_aCurrentRequests;
 Timer m_aFontInstallerTimer;
diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx 
b/vcl/unx/generic/fontmanager/fontconfig.cxx
index eb66017d98fa..a34d0e08b050 100644
--- a/vcl/unx/generic/fontmanager/fontconfig.cxx
+++ b/vcl/unx/generic/fontmanager/fontconfig.cxx
@@ -153,8 +153,6 @@ class FontCfgWrapper
 {
 FcFontSet* m_pFontSet;
 
-void addFontSet( FcSetName );
-
 FontCfgWrapper();
 ~FontCfgWrapper();
 
@@ -162,6 +160,8 @@ public:
 static FontCfgWrapper& get();
 static void release();
 
+void addFontSet( FcSetName );
+
 FcFontSet* getFontSet();
 
 void clear();
@@ -766,6 +766,22 @@ void PrintFontManager::addFontconfigDir( const OString& 
rDirName )
 }
 }
 
+void PrintFontManager::addFontconfigFile( const OString& rFileName )
+{
+const char* pFileName = rFileName.getStr();
+bool bFileOk = (FcConfigAppFontAddFile(FcConfigGetCurrent(), 
reinterpret_cast(pFileName) ) == FcTrue);
+
+SAL_INFO("vcl.fonts", "FcConfigAppFontAddFile(\"" << pFileName << "\") => 
" << std::boolalpha << bFileOk);
+
+if( !bFileOk )
+return;
+
+// FIXME: we want to add only the newly added font not re-add the whole
+// application font set.
+FontCfgWrapper& rWrapper = FontCfgWrapper::get();
+rWrapper.addFontSet( FcSetApplication );
+}
+
 static void addtopattern(FcPattern *pPattern,
 FontItalic eItalic, FontWeight eWeight, FontWidth eWidth, FontPitch ePitch)
 {
diff --git a/vcl/unx/generic/fontmanager/fontmanager.cxx 
b/vcl/unx/generic/fontmanager/fontmanager.cxx
index b8f99d122e1f..d7b6a211df13 100644
--- a/vcl/unx/generic/fontmanager/fontmanager.cxx
+++ b/vcl/unx/generic/fontmanager/fontmanager.cxx
@@ -159,6 +159,8 @@ std::vector PrintFontManager::addFontFile( 
std::u16string_view rFileUrl
 std::vector aFontIds = findFontFileIDs( nDirID, aName );
 if( aFontIds.empty() )
 {
+addFontconfigFile(OUStringToOString(aPath.GetFull(), 
osl_getThreadTextEncoding()));
+
 std::vector aNewFonts = analyzeFontFile(nDirID, aName);
 for (auto & font : aNewFonts)
 {


[Libreoffice-commits] core.git: i18npool/inc i18npool/source

2023-06-14 Thread Noel Grandin (via logerrit)
 i18npool/inc/localedata.hxx   |2 
 i18npool/source/localedata/LocaleNode.cxx |  109 ++
 i18npool/source/localedata/LocaleNode.hxx |4 +
 i18npool/source/localedata/filewriter.cxx |   26 +++
 i18npool/source/localedata/localedata.cxx |   21 +++--
 5 files changed, 94 insertions(+), 68 deletions(-)

New commits:
commit ee76ed70e97448082f4c00c5c4207a44e1a91617
Author: Noel Grandin 
AuthorDate: Tue Jun 13 21:39:31 2023 +0200
Commit: Noel Grandin 
CommitDate: Wed Jun 14 08:47:00 2023 +0200

speed up startup time

by avoid conversion of static locale data from sal_Unicode to OUString
data - we can declare the data as OUStringConstExpr arrays and then
no conversion is necessary.

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

diff --git a/i18npool/inc/localedata.hxx b/i18npool/inc/localedata.hxx
index f86954791f99..063637ca67f9 100644
--- a/i18npool/inc/localedata.hxx
+++ b/i18npool/inc/localedata.hxx
@@ -162,7 +162,7 @@ private:
 ///
 /// @throws css::uno::RuntimeException
 css::uno::Sequence< css::i18n::CalendarItem2 > getCalendarItems(
-sal_Unicode const * const * const allCalendars,
+OUString const * allCalendars,
 sal_Int16 & rnOffset,
 const sal_Int16 nWhichItem,
 const sal_Int16 nCalendar,
diff --git a/i18npool/source/localedata/LocaleNode.cxx 
b/i18npool/source/localedata/LocaleNode.cxx
index 0d24bc22e89a..08bf772321ad 100644
--- a/i18npool/source/localedata/LocaleNode.cxx
+++ b/i18npool/source/localedata/LocaleNode.cxx
@@ -1485,9 +1485,9 @@ static void lcl_writeAbbrFullNarrNames( const OFileWriter 
& of, const LocaleNode
 sal_uInt32 nChar = aFullName.iterateCodePoints( 
::temporary(sal_Int32(0)));
 aNarrName = OUString( , 1);
 }
-of.writeParameter( elementTag, "DefaultAbbrvName",  aAbbrName, i, j);
-of.writeParameter( elementTag, "DefaultFullName",   aFullName, i, j);
-of.writeParameter( elementTag, "DefaultNarrowName", aNarrName, i, j);
+of.writeOUStringLiteralParameter( elementTag, "DefaultAbbrvName",  
aAbbrName, i, j);
+of.writeOUStringLiteralParameter( elementTag, "DefaultFullName",   
aFullName, i, j);
+of.writeOUStringLiteralParameter( elementTag, "DefaultNarrowName", 
aNarrName, i, j);
 }
 
 static void lcl_writeTabTagString( const OFileWriter & of, const char* pTag, 
const char* pStr )
@@ -1550,7 +1550,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) 
const
 OUString useLocale =   getAttr().getValueByName("ref");
 if (!useLocale.isEmpty()) {
 useLocale = useLocale.replace( '-', '_');
-of.writeRefFunction("getAllCalendars_", useLocale);
+of.writeOUStringRefFunction("getAllCalendars_", useLocale);
 return;
 }
 sal_Int16 nbOfCalendars = sal::static_int_cast( 
getNumberOfChildren() );
@@ -1585,7 +1585,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) 
const
 for ( i = 0; i < nbOfCalendars; i++) {
 LocaleNode * calNode = getChildAt (i);
 OUString calendarID = calNode -> getAttr().getValueByName("unoid");
-of.writeParameter( "calendarID", calendarID, i);
+of.writeOUStringLiteralParameter( "calendarID", calendarID, i);
 bool bGregorian = calendarID == "gregorian";
 if (!bHasGregorian)
 bHasGregorian = bGregorian;
@@ -1597,7 +1597,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) 
const
 else
 calIt->second = true;
 str = calNode -> getAttr().getValueByName("default");
-of.writeDefaultParameter("Calendar", str, i);
+of.writeOUStringLiteralDefaultParameter("Calendar", str, i);
 
 sal_Int16 nChild = 0;
 
@@ -1614,8 +1614,8 @@ void LCCalendarNode::generateCode (const OFileWriter ) 
const
 }
 }
 if (!ref_name.isEmpty() && daysNode == nullptr) {
-of.writeParameter("dayRef", u"ref", i);
-of.writeParameter("dayRefName", ref_name, i);
+of.writeOUStringLiteralParameter("dayRef", u"ref", i);
+of.writeOUStringLiteralParameter("dayRefName", ref_name, i);
 nbOfDays[i] = 0;
 } else {
 if (daysNode == nullptr)
@@ -1627,7 +1627,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) 
const
 for (j = 0; j < nbOfDays[i]; j++) {
 LocaleNode *currNode = daysNode -> getChildAt(j);
 OUString dayID( currNode->getChildAt(0)->getValue());
-of.writeParameter("dayID", dayID, i, j);
+of.writeOUStringLiteralParameter("dayID", dayID, i, j);
 if ( j == 0 && bGregorian && dayID != "sun" )
 incError( "First day of a week of a Gregorian calendar 
must be sun");
 

[Libreoffice-commits] core.git: i18npool/source

2023-06-14 Thread Noel Grandin (via logerrit)
 i18npool/source/localedata/LocaleNode.cxx |   24 ++---
 i18npool/source/localedata/LocaleNode.hxx |7 +++
 i18npool/source/localedata/filewriter.cxx |   54 ++
 i18npool/source/localedata/localedata.cxx |   19 +-
 i18npool/source/localedata/saxparser.cxx  |1 
 5 files changed, 83 insertions(+), 22 deletions(-)

New commits:
commit 3af9bd139458b534ae72e3e010c8725b826fd12c
Author: Noel Grandin 
AuthorDate: Tue Jun 13 21:10:01 2023 +0200
Commit: Noel Grandin 
CommitDate: Wed Jun 14 08:46:51 2023 +0200

speed up startup time

by avoid conversion of static locale data from sal_Unicode to OUString
data - we can declare the data as OUStringConstExpr arrays and then
no conversion is necessary.

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

diff --git a/i18npool/source/localedata/LocaleNode.cxx 
b/i18npool/source/localedata/LocaleNode.cxx
index 14232338b9f1..0d24bc22e89a 100644
--- a/i18npool/source/localedata/LocaleNode.cxx
+++ b/i18npool/source/localedata/LocaleNode.cxx
@@ -562,11 +562,11 @@ void LCFormatNode::generateCode (const OFileWriter ) 
const
 switch (mnSection)
 {
 case 0:
-of.writeRefFunction("getAllFormats0_", useLocale, 
"replaceTo0");
+of.writeOUStringRefFunction("getAllFormats0_", useLocale, 
"replaceTo0");
 of.writeRefFunction("getDateAcceptancePatterns_", useLocale);
 break;
 case 1:
-of.writeRefFunction("getAllFormats1_", useLocale, 
"replaceTo1");
+of.writeOUStringRefFunction("getAllFormats1_", useLocale, 
"replaceTo1");
 break;
 }
 ++mnSection;
@@ -610,17 +610,17 @@ void LCFormatNode::generateCode (const OFileWriter ) 
const
 str = currNodeAttr.getValueByName("msgid");
 if (!aMsgIdSet.insert( str).second)
 incErrorStr( "Error: Duplicated msgid=\"%s\" in FormatElement.\n", 
str);
-of.writeParameter("FormatKey", str, formatCount);
+of.writeOUStringLiteralParameter("FormatKey", str, formatCount);
 
 str = currNodeAttr.getValueByName("default");
 bool bDefault = str == "true";
-of.writeDefaultParameter("FormatElement", str, formatCount);
+of.writeOUStringLiteralDefaultParameter("FormatElement", str, 
formatCount);
 
 aType = currNodeAttr.getValueByName("type");
-of.writeParameter("FormatType", aType, formatCount);
+of.writeOUStringLiteralParameter("FormatType", aType, formatCount);
 
 aUsage = currNodeAttr.getValueByName("usage");
-of.writeParameter("FormatUsage", aUsage, formatCount);
+of.writeOUStringLiteralParameter("FormatUsage", aUsage, formatCount);
 
 aFormatIndex = currNodeAttr.getValueByName("formatindex");
 sal_Int16 formatindex = static_cast(aFormatIndex.toInt32());
@@ -636,7 +636,7 @@ void LCFormatNode::generateCode (const OFileWriter ) 
const
 incErrorInt( "Error: Duplicated formatindex=\"%d\" in 
FormatElement.\n", formatindex);
 bShowNextFreeFormatIndex = true;
 }
-of.writeIntParameter("Formatindex", formatCount, formatindex);
+of.writeOUStringLiteralIntParameter("Formatindex", formatCount, 
formatindex);
 
 // Ensure only one default per usage and type.
 if (bDefault)
@@ -652,7 +652,7 @@ void LCFormatNode::generateCode (const OFileWriter ) 
const
 const LocaleNode * n = currNode -> findNode("FormatCode");
 if (n)
 {
-of.writeParameter("FormatCode", n->getValue(), formatCount);
+of.writeOUStringLiteralParameter("FormatCode", n->getValue(), 
formatCount);
 // Check separator usage for some FormatCode elements.
 const LocaleNode* pCtype = nullptr;
 switch (formatindex)
@@ -821,9 +821,9 @@ void LCFormatNode::generateCode (const OFileWriter ) 
const
 incError( "No FormatCode in FormatElement.");
 n = currNode -> findNode("DefaultName");
 if (n)
-of.writeParameter("FormatDefaultName", n->getValue(), formatCount);
+of.writeOUStringLiteralParameter("FormatDefaultName", 
n->getValue(), formatCount);
 else
-of.writeParameter("FormatDefaultName", std::u16string_view(), 
formatCount);
+of.writeOUStringLiteralParameter("FormatDefaultName", 
std::u16string_view(), formatCount);
 
 }
 
@@ -918,7 +918,7 @@ void LCFormatNode::generateCode (const OFileWriter ) 
const
 of.writeAsciiString(" = ");
 of.writeInt( formatCount - mnFormats);
 of.writeAsciiString(";\n");
-of.writeAsciiString("static const sal_Unicode* ");
+of.writeAsciiString("static constexpr rtl::OUStringConstExpr ");
 of.writeAsciiString("FormatElementsArray");
 

[Libreoffice-commits] core.git: Branch 'feature/cib_contract891c' - 2 commits - configure.ac external/nss

2023-06-14 Thread Thorsten Behrens (via logerrit)
Rebased ref, commits from common ancestor:
commit 019743acfc717518cfca49f4fc326adea9661789
Author: Thorsten Behrens 
AuthorDate: Wed Jun 14 08:44:09 2023 +0200
Commit: Thorsten Behrens 
CommitDate: Wed Jun 14 08:45:14 2023 +0200

Release 5.4.18

Change-Id: I151cefaadc35a14c308d095bda6b044db369556a

diff --git a/configure.ac b/configure.ac
index ced1de25fcf1..425e1cb7c1a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([LibreOffice],[5.4.17.0],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[5.4.18.0],[],[],[http://documentfoundation.org/])
 
 AC_PREREQ([2.59])
 
commit 29cdc81fd9d0d4dd2a26d780cfbb8a2e1a3ec810
Author: Thorsten Behrens 
AuthorDate: Wed Jun 14 01:00:36 2023 +0200
Commit: Thorsten Behrens 
CommitDate: Wed Jun 14 08:45:06 2023 +0200

Fix nss build for devtoolset-7 string erase

Error was: nss_bogo_shim.cc:43:66: error: no matching function for
call to ‘std::basic_string..'

Change-Id: I357d61fcb6299ac87edac2229a1a134199e7d37a

diff --git a/external/nss/UnpackedTarball_nss.mk 
b/external/nss/UnpackedTarball_nss.mk
index e77f92341d91..04d098cadc19 100644
--- a/external/nss/UnpackedTarball_nss.mk
+++ b/external/nss/UnpackedTarball_nss.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\
 external/nss/nss-win32-make.patch.1 \
 external/nss/ubsan.patch.0 \
 external/nss/clang-cl.patch.0 \
+external/nss/nss-std-string.patch.1 \
 external/nss/nss.vs2015.patch \
 external/nss/nss.vs2015.pdb.patch \
 $(if $(filter iOS,$(OS)), \
diff --git a/external/nss/nss-std-string.patch.1 
b/external/nss/nss-std-string.patch.1
new file mode 100644
index ..2669cfb51a4a
--- /dev/null
+++ b/external/nss/nss-std-string.patch.1
@@ -0,0 +1,15 @@
+diff -ur nss.org/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc 
nss/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
+--- nss.org/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc  2023-06-13 
22:06:35.757518272 +0200
 nss/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc  2023-06-13 
22:06:50.521508892 +0200
+@@ -40,8 +40,8 @@
+ }
+ 
+ static void StringRemoveNewlines(std::string& str) {
+-  str.erase(std::remove(str.begin(), str.end(), '\n'), str.cend());
+-  str.erase(std::remove(str.begin(), str.end(), '\r'), str.cend());
++  str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
++  str.erase(std::remove(str.begin(), str.end(), '\r'), str.end());
+ }
+ 
+ class TestAgent {
+Only in nss/nss/gtests/nss_bogo_shim: nss_bogo_shim.cc~


[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/qa sw/source writerfilter/source

2023-06-14 Thread Miklos Vajna (via logerrit)
 sw/qa/extras/ooxmlexport/data/para-style-char-position.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport18.cxx  |   18 ++
 sw/source/filter/ww8/docxattributeoutput.cxx|8 
 writerfilter/source/dmapper/DomainMapper.cxx|   21 ++--
 writerfilter/source/dmapper/DomainMapper.hxx|6 ++-
 writerfilter/source/dmapper/DomainMapper_Impl.cxx   |4 +-
 writerfilter/source/dmapper/DomainMapper_Impl.hxx   |2 -
 writerfilter/source/dmapper/StyleSheetTable.cxx |1 
 8 files changed, 53 insertions(+), 7 deletions(-)

New commits:
commit ddf8903e9b7528671e752d24717056f2db039464
Author: Miklos Vajna 
AuthorDate: Tue Jun 13 15:02:20 2023 +0200
Commit: Miklos Vajna 
CommitDate: Wed Jun 14 08:43:45 2023 +0200

DOCX filter: improve handling of negative  in paragraph styles

The bugdoc has a  in its Normal paragraph style,
which is almost not visible in Word, but we mapped this to default
subscript text in Writer, leading to very visible bad font height in
practice.

The root of the problem is that  works with an absolute
offset in half-points, while Writer works in percentages, so the
import/export code can only do a correct mapping in case the font size
is known. This initial mapping was added in commit
e70df84352d3670508a4666c97df44f82c1ce934 (try somewhat harder to read
w:position (bnc#773061), 2012-08-07), and later commit
d71cf6390a89ea6a4fab724e3a7996f28ca33661 (tdf#99602 writerfilter: import
subscript into character style, 2019-10-04) gave up on this for
character styles.

Fix the problem by working with paragraph styles similar to what the
binary DOC filter already does, just assuming that the font height from
the style won't be overwritten, or will be overwritten together with a
matching . Do this only for negative  for now,
as that's good enough for our needs. Do the opposite of this at export
time.

It would be still possible in the future to add native handling for
absolute escapements, and then this mapping would not be needed at all.

Change-Id: I771c7bed27fa2596153aa77c472c91b819fa4cb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152962
Reviewed-by: Miklos Vajna 
Tested-by: Jenkins
(cherry picked from commit 85f0a5d7bc54dfba75e8d6dd9c905bc1ac31d927)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153011

diff --git a/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx 
b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx
new file mode 100644
index ..946ca0bf9cc2
Binary files /dev/null and 
b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
index 50a058d19c9d..fbb87915369e 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
@@ -615,6 +615,24 @@ CPPUNIT_TEST_FIXTURE(Test, testNumberPortionFormatFromODT)
 assertXPath(pXmlDoc, "//w:pPr/w:rPr/w:sz", "val", "48");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testParaStyleCharPosition)
+{
+// Given a loaded document where the Normal paragraph style has 
:
+createSwDoc("para-style-char-position.docx");
+
+// When saving it back to DOCX:
+save("Office Open XML Text");
+
+// Then make sure that is not turned into a normal subscript text:
+xmlDocUniquePtr pXmlDoc = parseExport("word/styles.xml");
+// Without the accompanying fix in place, this test would have failed with:
+// - Expected: 1
+// - Actual  : 0
+// - XPath '/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position' 
number of nodes is incorrect
+// i.e. we wrote  instead of .
+assertXPath(pXmlDoc, 
"/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position", "val", "-1");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf150966_regularInset)
 {
 // Given a docx document with a rectangular shape with height cy="90" 
(EMU), tIns="18"
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index a75682761d84..ba5d14bd8c90 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7791,8 +7791,14 @@ void DocxAttributeOutput::CharEscapement( const 
SvxEscapementItem& rEscapement )
 OString sIss;
 short nEsc = rEscapement.GetEsc(), nProp = 
rEscapement.GetProportionalHeight();
 
+bool bParaStyle = false;
+if (m_rExport.m_bStyDef && m_rExport.m_pCurrentStyle)
+{
+bParaStyle = m_rExport.m_pCurrentStyle->Which() == RES_TXTFMTCOLL;
+}
+
 // Simplify styles to avoid impossible complexity. Import and export as 
defaults only
-if ( m_rExport.m_bStyDef && nEsc )
+if ( m_rExport.m_bStyDef && nEsc && !(bParaStyle && nEsc < 0))
 {
 nProp = DFLT_ESC_PROP;

[Libreoffice-bugs] [Bug 155826] Flowchart, [Connect Standard] connects [Process] and [Start End], Press the [Ctrl] key, scrolls the mouse wheel, and the page zooms. The position and shape of [Connect

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155826

Charles <13720880...@163.com> changed:

   What|Removed |Added

   Hardware|x86-64 (AMD64)  |All

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155826] New: Flowchart, [Connect Standard] connects [Process] and [Start End], Press the [Ctrl] key, scrolls the mouse wheel, and the page zooms. The position and shape of [Con

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155826

Bug ID: 155826
   Summary: Flowchart, [Connect Standard] connects [Process] and
[Start End], Press the [Ctrl] key, scrolls the mouse
wheel, and the page zooms. The position and shape of
[Connect Standard] changes
   Product: LibreOffice
   Version: 7.5.2.2 release
  Hardware: x86-64 (AMD64)
OS: Windows (All)
Status: UNCONFIRMED
  Severity: normal
  Priority: medium
 Component: Draw
  Assignee: libreoffice-bugs@lists.freedesktop.org
  Reporter: 13720880...@163.com

Description:
Flowchart, [Connect Standard] connects [Process] and [Start End], Press the
[Ctrl] key, scrolls the mouse wheel, and the page zooms. The position and shape
of [Connect Standard] changes.
But it is OK after reboot LibreOffice.

Steps to Reproduce:
1.Creat a Draw
2.Drag and drop [Process] or [Start-End]
3.Drag and drop [Connect-Standard]
4.Connect from [Start-End] to [Process] by [Connect-Standard]
5.Press the [Ctrl] button and scroll the mouse wheel back and forth to zoom the
page

Actual Results:
The position and shape of [Connect Standard] have changed and detached from
[Start End]/[Process].


Expected Results:
The [Connect-Standard] position and shape do not change.


Reproducible: Sometimes


User Profile Reset: No

Additional Info:
[Information automatically included from LibreOffice]
Locale: zh-CN
Module: TextDocument
[Information guessed from browser]
OS: Windows (All)
OS is 64bit: no

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-bugs] [Bug 155736] Fileopen DOCX:Page numbers (from field of course, but inside a nested block SDT) are missing in the footer for a particular file

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155736

SATYA SRINIVAS K  changed:

   What|Removed |Added

   Assignee|libreoffice-b...@lists.free |skompe...@opentext.com
   |desktop.org |

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - 2 commits - include/oox oox/source writerfilter/source

2023-06-14 Thread Tomaž Vajngerl (via logerrit)
 include/oox/drawingml/color.hxx  |3 ++
 oox/source/drawingml/color.cxx   |   24 +++
 oox/source/drawingml/fillproperties.cxx  |   16 +--
 oox/source/drawingml/textcharacterproperties.cxx |   15 --
 writerfilter/source/ooxml/model.xml  |   12 +--
 5 files changed, 36 insertions(+), 34 deletions(-)

New commits:
commit 92a7222b04f18644f6a58d1503ab0d29ca8b057c
Author: Tomaž Vajngerl 
AuthorDate: Sat Jun 10 22:22:17 2023 +0900
Commit: Miklos Vajna 
CommitDate: Wed Jun 14 08:34:17 2023 +0200

oox: fix theme data in model.xml to use a correct types

Change-Id: Ifaa725d8a3e6c4cfefc92a6c5fcdb581610d3ce6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152832
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 
(cherry picked from commit 3a6d360b5e585b8e92cc0d58d5fbc497448e11fb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152990
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Miklos Vajna 

diff --git a/writerfilter/source/ooxml/model.xml 
b/writerfilter/source/ooxml/model.xml
index 8082c433e89b..89a1d9f91425 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -10997,13 +10997,13 @@
   
 
 
-  
+  
 
 
-  
+  
 
 
-  
+  
 
   
   
@@ -12591,13 +12591,13 @@
   
 
 
-  
+  
 
 
-  
+  
 
 
-  
+  
 
 
   
commit b9aa62a714370b63ff93f55f1e599e4cad4c7eef
Author: Tomaž Vajngerl 
AuthorDate: Fri Jun 9 23:34:24 2023 +0900
Commit: Miklos Vajna 
CommitDate: Wed Jun 14 08:34:08 2023 +0200

oox: remove code duplication and add getComplexColor to oox::Color

Change-Id: I9cfbc851d4f303a5a8c92183f01cb5b6545b7984
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152800
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 
(cherry picked from commit c1470e15bd0643be8d91aaf6a0d25c78867d0b3e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152969
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Miklos Vajna 

diff --git a/include/oox/drawingml/color.hxx b/include/oox/drawingml/color.hxx
index 75812c200c28..245e655d7c78 100644
--- a/include/oox/drawingml/color.hxx
+++ b/include/oox/drawingml/color.hxx
@@ -30,6 +30,7 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace oox { class GraphicHelper; }
 
@@ -117,6 +118,8 @@ public:
 /// Compares this color with rOther.
 bool equals(const Color& rOther, const GraphicHelper& rGraphicHelper, 
::Color nPhClr) const;
 
+model::ComplexColor getComplexColor() const;
+
 private:
 /** Internal helper for getColor(). */
 voidsetResolvedRgb( ::Color nRgb ) const;
diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx
index 592d0734efc2..e9c645b99b7c 100644
--- a/oox/source/drawingml/color.cxx
+++ b/oox/source/drawingml/color.cxx
@@ -567,6 +567,30 @@ sal_Int16 Color::getLumOff() const
 return 0;
 }
 
+model::ComplexColor Color::getComplexColor() const
+{
+model::ComplexColor aComplexColor;
+
aComplexColor.setSchemeColor(model::convertToThemeColorType(getSchemeColorIndex()));
+
+if (getTintOrShade() > 0)
+{
+aComplexColor.addTransformation({model::TransformationType::Tint, 
getTintOrShade()});
+}
+else if (getTintOrShade() < 0)
+{
+sal_Int16 nShade = o3tl::narrowing(-getTintOrShade());
+aComplexColor.addTransformation({model::TransformationType::Shade, 
nShade});
+}
+
+if (getLumMod() != 1)
+aComplexColor.addTransformation({model::TransformationType::LumMod, 
getLumMod()});
+
+if (getLumOff() != 0)
+aComplexColor.addTransformation({model::TransformationType::LumOff, 
getLumOff()});
+
+return aComplexColor;
+}
+
 ::Color Color::getColor( const GraphicHelper& rGraphicHelper, ::Color nPhClr ) 
const
 {
 const sal_Int32 nTempC1 = mnC1;
diff --git a/oox/source/drawingml/fillproperties.cxx 
b/oox/source/drawingml/fillproperties.cxx
index fe00d12cf078..0a2e53928076 100644
--- a/oox/source/drawingml/fillproperties.cxx
+++ b/oox/source/drawingml/fillproperties.cxx
@@ -430,24 +430,12 @@ void FillProperties::pushToPropMap( ShapePropertyMap& 
rPropMap,
 if (aFillColor == nPhClr)
 {
 
aComplexColor.setSchemeColor(model::convertToThemeColorType(nPhClrTheme));
-rPropMap.setProperty(PROP_FillComplexColor, 
model::color::createXComplexColor(aComplexColor));
 }
 else
 {
-
aComplexColor.setSchemeColor(model::convertToThemeColorType(maFillColor.getSchemeColorIndex()));
-if (maFillColor.getLumMod() != 1)
- 

[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - docmodel/source editeng/source svx/source

2023-06-14 Thread Tomaž Vajngerl (via logerrit)
 docmodel/source/color/ComplexColorJSON.cxx|   52 +-
 editeng/source/items/textitem.cxx |9 ++--
 svx/source/theme/ThemeColorPaletteManager.cxx |2 -
 3 files changed, 33 insertions(+), 30 deletions(-)

New commits:
commit 81ae86d5f9e6d06300a2d6cf160de004c881ade5
Author: Tomaž Vajngerl 
AuthorDate: Fri Jun 9 16:06:37 2023 +0900
Commit: Miklos Vajna 
CommitDate: Wed Jun 14 08:33:12 2023 +0200

fix wrong transform type, error handling when JSON parsing

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

diff --git a/docmodel/source/color/ComplexColorJSON.cxx 
b/docmodel/source/color/ComplexColorJSON.cxx
index 409ecd27277b..f4d6fdf0af1b 100644
--- a/docmodel/source/color/ComplexColorJSON.cxx
+++ b/docmodel/source/color/ComplexColorJSON.cxx
@@ -18,40 +18,42 @@ namespace model::color
 bool convertFromJSON(OString const& rJsonString, model::ComplexColor& 
rComplexColor)
 {
 model::ComplexColor aComplexColor;
-std::stringstream aStream((std::string(rJsonString)));
-boost::property_tree::ptree aRootTree;
+
 try
 {
+std::stringstream aStream((std::string(rJsonString)));
+boost::property_tree::ptree aRootTree;
 boost::property_tree::read_json(aStream, aRootTree);
+
+sal_Int32 nThemeType = aRootTree.get("ThemeIndex", -1);
+
aComplexColor.setSchemeColor(model::convertToThemeColorType(nThemeType));
+boost::property_tree::ptree aTransformTree = 
aRootTree.get_child("Transformations");
+for (const auto& rEachTransformationNode :
+ boost::make_iterator_range(aTransformTree.equal_range("")))
+{
+auto const& rTransformationTree = rEachTransformationNode.second;
+std::string sType = rTransformationTree.get("Type", 
"");
+sal_Int16 nValue = rTransformationTree.get("Value", 0);
+
+auto eType = model::TransformationType::Undefined;
+if (sType == "LumOff")
+eType = model::TransformationType::LumOff;
+else if (sType == "LumMod")
+eType = model::TransformationType::LumMod;
+else if (sType == "Tint")
+eType = model::TransformationType::Tint;
+else if (sType == "Shade")
+eType = model::TransformationType::Shade;
+
+if (eType != model::TransformationType::Undefined)
+aComplexColor.addTransformation({ eType, nValue });
+}
 }
 catch (const boost::property_tree::json_parser_error& /*exception*/)
 {
 return false;
 }
 
-sal_Int32 nThemeType = aRootTree.get("ThemeIndex", -1);
-aComplexColor.setSchemeColor(model::convertToThemeColorType(nThemeType));
-boost::property_tree::ptree aTransformTree = 
aRootTree.get_child("Transformations");
-for (const auto& rEachTransformationNode :
- boost::make_iterator_range(aTransformTree.equal_range("")))
-{
-auto const& rTransformationTree = rEachTransformationNode.second;
-std::string sType = rTransformationTree.get("Type", "");
-sal_Int16 nValue = rTransformationTree.get("Value", 0);
-
-auto eType = model::TransformationType::Undefined;
-if (sType == "LumOff")
-eType = model::TransformationType::LumOff;
-else if (sType == "LumMod")
-eType = model::TransformationType::LumMod;
-else if (sType == "Tint")
-eType = model::TransformationType::Tint;
-else if (sType == "Shade")
-eType = model::TransformationType::Shade;
-
-if (eType != model::TransformationType::Undefined)
-aComplexColor.addTransformation({ eType, nValue });
-}
 rComplexColor = aComplexColor;
 return true;
 }
diff --git a/editeng/source/items/textitem.cxx 
b/editeng/source/items/textitem.cxx
index 3e7cc6c6a736..f4194da865a6 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -1555,11 +1555,11 @@ bool SvxColorItem::PutValue( const uno::Any& rVal, 
sal_uInt8 nMemberId )
 return false;
 
 if (sComplexColorJson.isEmpty())
-{
 return false;
-}
+
 OString aJSON = OUStringToOString(sComplexColorJson, 
RTL_TEXTENCODING_ASCII_US);
-model::color::convertFromJSON(aJSON, maComplexColor);
+if (!model::color::convertFromJSON(aJSON, maComplexColor))
+return false;
 }
 break;
 case MID_COMPLEX_COLOR:
@@ -1575,7 +1575,8 @@ bool SvxColorItem::PutValue( const uno::Any& rVal, 
sal_uInt8 nMemberId )
 case MID_COLOR_RGB:
 default:
 {
-return rVal >>= mColor;
+if (!(rVal >>= mColor))
+return false;
 }
 break;
 }
diff --git 

[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155819

Xisco Faulí  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - download.lst external/openssl

2023-06-14 Thread Taichi Haradaguchi (via logerrit)
 download.lst   
|4 
 
external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1
 |  221 --
 external/openssl/README
|2 
 external/openssl/UnpackedTarball_openssl.mk
|2 
 external/openssl/openssl-no-_umul128-on-aarch64.patch.1
|   58 --
 5 files changed, 3 insertions(+), 284 deletions(-)

New commits:
commit 390844869c973efafdaf8a0a766b3113488a4fd6
Author: Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Sun Jun 11 17:36:54 2023 +0900
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Wed Jun 14 08:19:36 2023 +0200

openssl: upgrade to release 3.0.9

Fixes CVE-2023-1255, CVE-2023-2650 and 3 more CVEs that
probably don't affect LibreOffice.

Change-Id: Ic615b008298471267121a0f4deb227ddb3a0409e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152851
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi  <20001...@ymail.ne.jp>
(cherry picked from commit 2137d04d1ddb80691c29de0df99fc2ba58820ce0)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152970
Reviewed-by: Xisco Fauli 
(cherry picked from commit 66ccf3207806776d13203b7bdbea760128e37d10)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152977
Reviewed-by: Michael Stahl 

diff --git a/download.lst b/download.lst
index 4b38bd9d0d87..1a8e7d036da9 100644
--- a/download.lst
+++ b/download.lst
@@ -419,8 +419,8 @@ OPENLDAP_TARBALL := openldap-2.4.59.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-OPENSSL_SHA256SUM := 
6c13d2bf38fdf31eac3ce2a347073673f5d63263398f1f69d0df4a41253e4b3e
-OPENSSL_TARBALL := openssl-3.0.8.tar.gz
+OPENSSL_SHA256SUM := 
eb1ab04781474360f77c318ab89d8c5a03abc38e63d65a603cabbf1b00a1dc90
+OPENSSL_TARBALL := openssl-3.0.9.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git 
a/external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1
 
b/external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1
deleted file mode 100644
index d96d1d76883e..
--- 
a/external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1
+++ /dev/null
@@ -1,221 +0,0 @@
-From 959c59c7a0164117e7f8366466a32bb1f8d77ff1 Mon Sep 17 00:00:00 2001
-From: Pauli 
-Date: Wed, 8 Mar 2023 15:28:20 +1100
-Subject: [PATCH] x509: excessive resource use verifying policy constraints
-
-A security vulnerability has been identified in all supported versions
-of OpenSSL related to the verification of X.509 certificate chains
-that include policy constraints.  Attackers may be able to exploit this
-vulnerability by creating a malicious certificate chain that triggers
-exponential use of computational resources, leading to a denial-of-service
-(DoS) attack on affected systems.
-
-Fixes CVE-2023-0464
-
-Reviewed-by: Tomas Mraz 
-Reviewed-by: Shane Lontis 
-(Merged from https://github.com/openssl/openssl/pull/20568)

- crypto/x509/pcy_local.h |  8 +++-
- crypto/x509/pcy_node.c  | 12 +---
- crypto/x509/pcy_tree.c  | 36 ++--
- 3 files changed, 42 insertions(+), 14 deletions(-)
-
-diff --git a/crypto/x509/pcy_local.h b/crypto/x509/pcy_local.h
-index 18b53cc09e..cba107ca03 100644
 a/crypto/x509/pcy_local.h
-+++ b/crypto/x509/pcy_local.h
-@@ -111,6 +111,11 @@ struct X509_POLICY_LEVEL_st {
- };
- 
- struct X509_POLICY_TREE_st {
-+/* The number of nodes in the tree */
-+size_t node_count;
-+/* The maximum number of nodes in the tree */
-+size_t node_maximum;
-+
- /* This is the tree 'level' data */
- X509_POLICY_LEVEL *levels;
- int nlevel;
-@@ -157,7 +162,8 @@ X509_POLICY_NODE 
*ossl_policy_tree_find_sk(STACK_OF(X509_POLICY_NODE) *sk,
- X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
-  X509_POLICY_DATA *data,
-  X509_POLICY_NODE *parent,
-- X509_POLICY_TREE *tree);
-+ X509_POLICY_TREE *tree,
-+ int extra_data);
- void ossl_policy_node_free(X509_POLICY_NODE *node);
- int ossl_policy_node_match(const X509_POLICY_LEVEL *lvl,
-const X509_POLICY_NODE *node, const ASN1_OBJECT 
*oid);
-diff --git a/crypto/x509/pcy_node.c b/crypto/x509/pcy_node.c
-index 9d9a7ea179..450f95a655 100644
 a/crypto/x509/pcy_node.c
-+++ b/crypto/x509/pcy_node.c
-@@ -59,10 +59,15 @@ X509_POLICY_NODE *ossl_policy_level_find_node(const 
X509_POLICY_LEVEL *level,
- X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
-  X509_POLICY_DATA 

[Libreoffice-commits] core.git: sw/qa

2023-06-14 Thread Miklos Vajna (via logerrit)
 sw/qa/extras/htmlexport/htmlexport.cxx |6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit 4e06ba6e57d8f1166b6e54924a7228b5c85962ba
Author: Miklos Vajna 
AuthorDate: Tue Jun 13 20:10:43 2023 +0200
Commit: Miklos Vajna 
CommitDate: Wed Jun 14 08:17:36 2023 +0200

CppunitTest_sw_htmlexport: avoid reqif magic in testOleNodataReqIf

Set the filter options explicitly, rather than inferring it from the
test name.

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

diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx 
b/sw/qa/extras/htmlexport/htmlexport.cxx
index 0f8d4497d793..c4479353e7f5 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -1056,8 +1056,12 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, 
testTransparentImageReqIf)
 CPPUNIT_ASSERT_MESSAGE(aMessage.toUtf8().getStr(), 
aSource.endsWith(".png"));
 }
 
-DECLARE_HTMLEXPORT_TEST(testOleNodataReqIf, "reqif-ole-nodata.odt")
+CPPUNIT_TEST_FIXTURE(HtmlExportTest, testOleNodataReqIf)
 {
+createSwDoc("reqif-ole-nodata.odt");
+setFilterOptions("xhtmlns=reqif-xhtml");
+save(mpFilter);
+
 // This failed, io::IOException was thrown during the filter() call.
 SvMemoryStream aStream;
 WrapReqifFromTempFile(aStream);


[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed

2023-06-14 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=155819

Commit Notification  changed:

   What|Removed |Added

 Whiteboard||target:24.2.0

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Libreoffice-commits] core.git: svgio/qa svgio/source

2023-06-14 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx|   18 ++
 svgio/qa/cppunit/data/tdf155819.svg   |   15 +++
 svgio/source/svgreader/svgstyleattributes.cxx |5 +++--
 3 files changed, 36 insertions(+), 2 deletions(-)

New commits:
commit d3f0a59f3c47095d4b1d8c01b1316a7dc7f5467d
Author: Xisco Fauli 
AuthorDate: Wed Jun 14 01:10:50 2023 +0200
Commit: Xisco Fauli 
CommitDate: Wed Jun 14 08:08:28 2023 +0200

tdf#155819: check marker property comes from a style sheet

Since 242b7d0162d55be0945ca849c3de841fbf6cb475
"svgio: simplify code" where bIsInStyleSheet was replaced by
getCssStyleParent() incorrectly

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

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index ad5852127551..559af49af695 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -135,6 +135,24 @@ CPPUNIT_TEST_FIXTURE(Test, testSymbol)
 assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "color", 
"#00d000");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf155819)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", 1);
+assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/polypolygon", 1);
+// Without the fix in place, this test would have failed with
+// - Expected: 4
+// - Actual  : 0
+assertXPath(pDocument, "/primitive2D/transform/transform", 4);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testFilterLuminanceToAlpha)
 {
 Primitive2DSequence aSequenceTdf132246 = 
parseSvg(u"/svgio/qa/cppunit/data/filterLuminanceToAlpha.svg");
diff --git a/svgio/qa/cppunit/data/tdf155819.svg 
b/svgio/qa/cppunit/data/tdf155819.svg
new file mode 100644
index ..30c2da4d1a5a
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf155819.svg
@@ -0,0 +1,15 @@
+
+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/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 99267c762dc5..5f3a3f4aea8a 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1151,7 +1151,7 @@ namespace svgio::svgreader
 if(SVGToken::Path == mrOwner.getType() || // path
 SVGToken::Polygon == mrOwner.getType() || // polygon, 
polyline
 SVGToken::Line == mrOwner.getType() ||// line
-getCssStyleParent())
+SVGToken::Style == mrOwner.getType())// tdf#150323
 {
 // try to add markers
 add_markers(rPath, rTarget, pHelpPointIndices);
@@ -1894,7 +1894,8 @@ namespace svgio::svgreader
 }
 case SVGToken::Marker:
 {
-if(getCssStyleParent())
+// tdf#155819: Using the marker property from a style 
sheet is equivalent to using all three (start, mid, end).
+if(mrOwner.getType() == SVGToken::Style)
 {
 readLocalUrl(aContent, maMarkerEndXLink);
 maMarkerStartXLink = maMarkerMidXLink = 
maMarkerEndXLink;


[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - chart2/qa chart2/source sc/qa sw/qa

2023-06-14 Thread Gülşah Köse (via logerrit)
 chart2/qa/extras/chart2import.cxx   |  
 92 ++
 chart2/qa/extras/chart2import2.cxx  |  
 14 -
 chart2/qa/extras/charttest.hxx  |  
 38 
 chart2/qa/extras/data/pptx/PieChartWithAutomaticLayout_SizeAndPosition.pptx 
|binary
 chart2/source/view/main/ChartView.cxx   |  
 18 +
 sc/qa/uitest/chart/chartDataLabels.py   |  
  8 
 sw/qa/extras/layout/layout2.cxx |  
  4 
 7 files changed, 158 insertions(+), 16 deletions(-)

New commits:
commit c93d88a7d321483e9d040fad17394a738f8cde7c
Author: Gülşah Köse 
AuthorDate: Wed Nov 23 17:05:28 2022 +0300
Commit: Aron Budea 
CommitDate: Wed Jun 14 08:06:15 2023 +0200

tdf#91265 Use same plot area distance as used in MSO

Changes the postion calculation for pie charts, where the margin
min distance is now constant for pie charts, but unchanged for
other chart types.

This changes the positions of various pie charts used in tests,
which have been changed to the new value after the cases have been
checked.

Added a new test with all 3 use cases (chart area width equals
height, width is greater than height, width is less than height).

Change-Id: I51f98f336a7c64a3e6762144fc7dc8d9df80f696
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143179
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 
(cherry picked from commit 959fbfc000d2e3167b2b57b6d11bea231993b4f0)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153017
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Aron Budea 

diff --git a/chart2/qa/extras/chart2import.cxx 
b/chart2/qa/extras/chart2import.cxx
index 243597a060ab..d9f443466d9f 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -139,6 +139,7 @@ public:
 void testFixedSizeBarChartVeryLongLabel();
 void testAutomaticSizeBarChartVeryLongLabel();
 void testTotalsRowIgnored();
+void testPieChartPlotAreaMarginWithAutomaticLayout();
 
 CPPUNIT_TEST_SUITE(Chart2ImportTest);
 CPPUNIT_TEST(Fdo60083);
@@ -226,6 +227,7 @@ public:
 CPPUNIT_TEST(testFixedSizeBarChartVeryLongLabel);
 CPPUNIT_TEST(testAutomaticSizeBarChartVeryLongLabel);
 CPPUNIT_TEST(testTotalsRowIgnored);
+CPPUNIT_TEST(testPieChartPlotAreaMarginWithAutomaticLayout);
 
 CPPUNIT_TEST_SUITE_END();
 };
@@ -2319,6 +2321,96 @@ void Chart2ImportTest::testTotalsRowIgnored()
 }
 }
 
+void Chart2ImportTest::testPieChartPlotAreaMarginWithAutomaticLayout()
+{
+// tdf#91265
+// Checks the margin and calculation of the plot area for the pie chart 
inside the chart area.
+
+loadFromURL(u"pptx/PieChartWithAutomaticLayout_SizeAndPosition.pptx");
+
+OUString aCheckShapeName = "CID/D=0:CS=0:CT=0:Series=0";
+// Chart Wuse case Width == Height
+{
+// Load chart Chart_2_2 - 2cm x 2cm -
+auto xDocument = getChartDocFromDrawImpressNamed(0, u"Chart_2_2");
+CPPUNIT_ASSERT(xDocument.is());
+
+uno::ReferencexChartDocument(xDocument, 
uno::UNO_QUERY);
+CPPUNIT_ASSERT(xChartDocument.is());
+
+// Get the shape of the diagram / chart
+uno::Reference 
xDrawPageSupplier(xChartDocument, uno::UNO_QUERY);
+CPPUNIT_ASSERT(xDrawPageSupplier.is());
+uno::Reference xDrawPage = 
xDrawPageSupplier->getDrawPage();
+uno::Reference xShapes(xDrawPage->getByIndex(0), 
uno::UNO_QUERY);
+CPPUNIT_ASSERT(xShapes.is());
+
+uno::Reference xChartDiagramShape = 
getShapeByName(xShapes, aCheckShapeName);
+CPPUNIT_ASSERT(xChartDiagramShape.is());
+
+// Size
+CPPUNIT_ASSERT_DOUBLES_EQUAL(1300, 
xChartDiagramShape->getSize().Width, 5);  // calculated chart area size - 2 * 
margin
+CPPUNIT_ASSERT_DOUBLES_EQUAL(1300, 
xChartDiagramShape->getSize().Height, 5); // calculated chart area size - 2 * 
margin
+// Position
+CPPUNIT_ASSERT_DOUBLES_EQUAL(350, xChartDiagramShape->getPosition().X, 
5); // margin
+CPPUNIT_ASSERT_DOUBLES_EQUAL(350, xChartDiagramShape->getPosition().Y, 
5); // margin
+}
+
+// Chart use case - Width < Height
+{
+// Load chart Chart_3_4 - 3cm x 4cm
+auto xDocument = getChartDocFromDrawImpressNamed(0, u"Chart_3_4");
+CPPUNIT_ASSERT(xDocument.is());
+
+uno::ReferencexChartDocument(xDocument, 
uno::UNO_QUERY);
+CPPUNIT_ASSERT(xChartDocument.is());
+
+// Get the shape of the diagram / chart
+uno::Reference 
xDrawPageSupplier(xChartDocument, uno::UNO_QUERY);
+CPPUNIT_ASSERT(xDrawPageSupplier.is());
+uno::Reference xDrawPage = 
xDrawPageSupplier->getDrawPage();
+uno::Reference xShapes(xDrawPage->getByIndex(0), 
uno::UNO_QUERY);
+CPPUNIT_ASSERT(xShapes.is());
+
+ 

[Libreoffice-commits] core.git: vcl/source

2023-06-14 Thread Julien Nabet (via logerrit)
 vcl/source/filter/png/PngImageReader.cxx |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit a2eb4bcf2363c13af81e4c53710c2703158130bf
Author: Julien Nabet 
AuthorDate: Tue Jun 13 21:43:07 2023 +0200
Commit: Julien Nabet 
CommitDate: Wed Jun 14 08:03:01 2023 +0200

Fix heap-buffer-overflow in vcl/PngImageReader

From Jenkins_Linux_Ubsan:
25488 ==1050==ERROR: AddressSanitizer: heap-buffer-overflow on 
address 0x6030001a44a4 at pc 0x004b6b04 bp 0x7ffed00d4630 sp 0x7ffed00d3de0
25489 WRITE of size 24 at 0x6030001a44a4 thread T0
25490 #0 0x4b6b03 in __asan_memcpy 
/home/tdf/lode/packages/llvm-llvmorg-12.0.1.src/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22
25491 #1 0x7f3dab812b94 in SvStream::ReadBytes(void*, unsigned 
long) /tools/source/stream/stream.cxx:1134:17
25492 #2 0x7f3da1fc7a8a in (anonymous 
namespace)::getImportantChunks(SvStream&, SvStream&, unsigned int, unsigned 
int) /vcl/source/filter/png/PngImageReader.cxx:270:27
25493 #3 0x7f3da1fb7364 in (anonymous 
namespace)::reader(SvStream&, Graphic&, GraphicFilterImportFlags, 
vcl::ScopedBitmapAccess*, vcl::ScopedBitmapAccess*) 
/vcl/source/filter/png/PngImageReader.cxx:714:13
25494 #4 0x7f3da1fb9663 in vcl::PngImageReader::read(Graphic&) 
/vcl/source/filter/png/PngImageReader.cxx:830:55
25495 #5 0x7f3d8299c092 in PngFilterTest::testApng() 
/vcl/qa/cppunit/png/PngFilterTest.cxx:380:32
...
since bf944e33569e4a1d6236a54671b7320cdc6ffaf6
tdf#104877 Add basic APNG format support

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

diff --git a/vcl/source/filter/png/PngImageReader.cxx 
b/vcl/source/filter/png/PngImageReader.cxx
index d560736e686a..ec4e2d421e3c 100644
--- a/vcl/source/filter/png/PngImageReader.cxx
+++ b/vcl/source/filter/png/PngImageReader.cxx
@@ -266,7 +266,8 @@ void getImportantChunks(SvStream& rInStream, SvStream& 
rOutStream, sal_uInt32 nW
 // Seek back to start of chunk
 rInStream.SeekRel(-PNG_TYPE_SIZE - PNG_SIZE_SIZE);
 // Copy chunk to rOutStream
-std::vector aData(nChunkSize + PNG_TYPE_SIZE + 
PNG_SIZE_SIZE);
+std::vector aData(nChunkSize + PNG_TYPE_SIZE + 
PNG_SIZE_SIZE
+   + PNG_CRC_SIZE);
 rInStream.ReadBytes(aData.data(),
 PNG_TYPE_SIZE + PNG_SIZE_SIZE + nChunkSize 
+ PNG_CRC_SIZE);
 rOutStream.WriteBytes(aData.data(),


<    1   2   3   4