canvas/source/vcl/canvasfont.cxx | 32 canvas/source/vcl/canvasfont.hxx | 3 canvas/source/vcl/impltools.cxx | 27 canvas/source/vcl/impltools.hxx | 5 canvas/source/vcl/textlayout.cxx | 8 filter/source/xslt/odf2xhtml/export/common/styles/style_collector.xsl | 71 filter/source/xslt/odf2xhtml/export/common/styles/style_mapping_css.xsl | 17 filter/source/xslt/odf2xhtml/export/xhtml/opendoc2xhtml.xsl | 5 include/tools/datetime.hxx | 9 include/tools/duration.hxx | 72 readlicense_oo/license/CREDITS.fodt | 4291 +++++----- sc/inc/table.hxx | 8 sc/source/core/data/documen3.cxx | 3 sc/source/core/data/table4.cxx | 117 sc/source/ui/miscdlgs/linkarea.cxx | 8 scripting/source/pyprov/mailmerge.py | 10 static/emscripten/environment.js | 1 svgio/inc/svgcharacternode.hxx | 6 svgio/inc/svgtools.hxx | 1 svgio/qa/cppunit/SvgImportTest.cxx | 23 svgio/qa/cppunit/data/tdf156251.svg | 17 svgio/source/svgreader/svgcharacternode.cxx | 17 svgio/source/svgreader/svgdocumenthandler.cxx | 50 svgio/source/svgreader/svgtools.cxx | 16 svx/source/dialog/svxruler.cxx | 2 sw/inc/crsrsh.hxx | 11 sw/qa/extras/ooxmlexport/data/tdf153804.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport14.cxx | 17 sw/qa/extras/ooxmlimport/data/tdf154319-ToC_with_s_and_d.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport2.cxx | 2 sw/source/core/crsr/crstrvl.cxx | 15 sw/source/core/docnode/ndtbl.cxx | 6 sw/source/core/edit/edfcol.cxx | 2 sw/source/core/layout/flowfrm.cxx | 6 sw/source/core/layout/frmtool.cxx | 10 sw/source/core/layout/paintfrm.cxx | 8 sw/source/core/text/widorp.cxx | 2 sw/source/core/unocore/unostyle.cxx | 15 sw/source/uibase/uiview/viewport.cxx | 8 tools/CppunitTest_tools_test.mk | 1 tools/Library_tl.mk | 1 tools/qa/cppunit/test_duration.cxx | 278 tools/source/datetime/datetime.cxx | 38 tools/source/datetime/duration.cxx | 258 vcl/README.vars.md | 6 vcl/qa/cppunit/pdfexport/pdfexport.cxx | 2 vcl/qt5/QtInstance.cxx | 2 vcl/skia/gdiimpl.cxx | 4 vcl/source/fontsubset/fontsubset.cxx | 4 vcl/source/gdi/pdfwriter_impl.cxx | 14 vcl/unx/kf5/KF5SalInstance.cxx | 2 vcl/win/window/salframe.cxx | 9 wizards/source/scriptforge/SF_Session.xba | 2 writerfilter/source/dmapper/DomainMapper_Impl.cxx | 39 writerfilter/source/dmapper/DomainMapper_Impl.hxx | 2 55 files changed, 3290 insertions(+), 2293 deletions(-)
New commits: commit 0ef1d43cee7fca186618f14eb1582542cb8be340 Author: Satya <[email protected]> AuthorDate: Mon Jul 31 20:59:07 2023 +0530 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:17 2023 +0200 tdf#156372 sw: Stop adding GetLower to every cell in header table The code was doubling the lower spacing of the last paragraph in every cell of the table. This change is to not add the space when in tables, since that was intended to only apply to the last paragraph in the header. Change-Id: Ia8c2b31e3e56302735e858c39f80cc35e190af6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154643 Tested-by: Jenkins Reviewed-by: Justin Luth <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155101 diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx index a8057027221c..872e872083f8 100644 --- a/sw/source/core/layout/flowfrm.cxx +++ b/sw/source/core/layout/flowfrm.cxx @@ -1848,9 +1848,11 @@ SwTwips SwFlowFrame::CalcLowerSpace( const SwBorderAttrs* _pAttrs ) const // tdf#128195 Consider para spacing below last paragraph in header bool bHasSpacingBelowPara = m_rThis.GetUpper()->GetFormat()->getIDocumentSettingAccess().get( DocumentSettingId::HEADER_SPACING_BELOW_LAST_PARA); - if (bHasSpacingBelowPara && !m_rThis.IsInFly() && m_rThis.FindFooterOrHeader() && !GetFollow() - && !m_rThis.GetIndNext()) + if (bHasSpacingBelowPara && !m_rThis.IsInTab() && !m_rThis.IsInFly() + && m_rThis.FindFooterOrHeader() && !GetFollow() && !m_rThis.GetIndNext()) + { nLowerSpace += _pAttrs->GetULSpace().GetLower() + _pAttrs->CalcLineSpacing(); + } return nLowerSpace; } commit 3baab6b7747b3ac91972ab9467a95de2c30a3dd6 Author: Caolán McNamara <[email protected]> AuthorDate: Fri Jul 28 12:13:41 2023 +0100 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:17 2023 +0200 follow python recommendation and pass SSL contexts i.e. https://docs.python.org/3/library/ssl.html#security-considerations Change-Id: I67a0f9e1c25abc6644412b014f30933a7e681da2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155016 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <[email protected]> (cherry picked from commit 7c1bc868c506dd505a70400e87c394f2263da085) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155033 Reviewed-by: Michael Stahl <[email protected]> diff --git a/scripting/source/pyprov/mailmerge.py b/scripting/source/pyprov/mailmerge.py index 0ef37b477c81..6bd80430d147 100644 --- a/scripting/source/pyprov/mailmerge.py +++ b/scripting/source/pyprov/mailmerge.py @@ -47,7 +47,7 @@ from email.utils import formatdate from email.utils import parseaddr from socket import _GLOBAL_DEFAULT_TIMEOUT -import sys, smtplib, imaplib, poplib +import sys, ssl, smtplib, imaplib, poplib dbg = False # pythonloader looks for a static g_ImplementationHelper variable @@ -96,7 +96,7 @@ class PyMailSMTPService(unohelper.Base, XSmtpService): if dbg: print("Timeout: " + str(tout), file=sys.stderr) if port == 465: - self.server = smtplib.SMTP_SSL(server, port,timeout=tout) + self.server = smtplib.SMTP_SSL(server, port, timeout=tout, context=ssl.create_default_context()) else: self.server = smtplib.SMTP(server, port,timeout=tout) @@ -108,7 +108,7 @@ class PyMailSMTPService(unohelper.Base, XSmtpService): print("ConnectionType: " + connectiontype, file=sys.stderr) if connectiontype.upper() == 'SSL' and port != 465: self.server.ehlo() - self.server.starttls() + self.server.starttls(context=ssl.create_default_context()) self.server.ehlo() user = xAuthenticator.getUserName() @@ -299,7 +299,7 @@ class PyMailIMAPService(unohelper.Base, XMailService): print(connectiontype, file=sys.stderr) print("BEFORE", file=sys.stderr) if connectiontype.upper() == 'SSL': - self.server = imaplib.IMAP4_SSL(server, port) + self.server = imaplib.IMAP4_SSL(server, port, ssl_context=ssl.create_default_context()) else: self.server = imaplib.IMAP4(server, port) print("AFTER", file=sys.stderr) @@ -368,7 +368,7 @@ class PyMailPOP3Service(unohelper.Base, XMailService): print(connectiontype, file=sys.stderr) print("BEFORE", file=sys.stderr) if connectiontype.upper() == 'SSL': - self.server = poplib.POP3_SSL(server, port) + self.server = poplib.POP3_SSL(server, port, context=ssl.create_default_context()) else: tout = xConnectionContext.getValueByName("Timeout") if dbg: commit 2a3c58fabe7024f60dccface721bce5693fdb849 Author: Jean-Pierre Ledure <[email protected]> AuthorDate: Sun Jul 30 15:03:15 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:17 2023 +0200 ScriptForge (SF_Session) fix SendMail() w/o attachment Fix error message when no attachment is passed to the method. Execution will continue now without trouble. Change-Id: I447af45db97f086963027c131c6b5fb9dab93c7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155066 Reviewed-by: Jean-Pierre Ledure <[email protected]> Tested-by: Jenkins (cherry picked from commit 1e94999d6198258d1451584e96810bd8fb294653) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155040 (cherry picked from commit ec03e4833659eab7918c026ab9e60e83dbc8c5be) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155042 diff --git a/wizards/source/scriptforge/SF_Session.xba b/wizards/source/scriptforge/SF_Session.xba index b4292f36ea83..2bde313194b1 100644 --- a/wizards/source/scriptforge/SF_Session.xba +++ b/wizards/source/scriptforge/SF_Session.xba @@ -679,6 +679,8 @@ Check: If Not SF_FileSystem.FileExists(sFile) Then GoTo CatchNotExists vFileNames(i) = ConvertToUrl(sFile) Next i + Else + vFileNames = Array() End If Try: commit 5cbc5d05a8f65fd6e2edc66a0649e4c82cdf0c3a Author: Andreas Heinisch <[email protected]> AuthorDate: Fri Jul 28 09:37:47 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:17 2023 +0200 tdf#142600 - External links dialog: list database ranges Regression from commit 462f9d1f589a7afd66d3fc61925467d3b68e5b31 where the database ranges were dropped. Change-Id: Ic0e453fc6fe62849d72b6acf88ed7ebd3c47775b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155009 Reviewed-by: Eike Rathke <[email protected]> Tested-by: Jenkins (cherry picked from commit 2f2cd7558e1d01f9670436412d62d03f28bab2c1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155031 diff --git a/sc/source/ui/miscdlgs/linkarea.cxx b/sc/source/ui/miscdlgs/linkarea.cxx index 09cfe6c3c285..6b1716407561 100644 --- a/sc/source/ui/miscdlgs/linkarea.cxx +++ b/sc/source/ui/miscdlgs/linkarea.cxx @@ -29,6 +29,7 @@ #include <svtools/sfxecode.hxx> #include <o3tl/string_view.hxx> +#include <dbdata.hxx> #include <linkarea.hxx> #include <docsh.hxx> #include <tablink.hxx> @@ -259,6 +260,13 @@ void ScLinkedAreaDlg::UpdateSourceRanges() m_xLbRanges->append_text(pRangeData->GetName()); } } + // tdf#142600 - list database ranges + if (const auto pDBs = m_pSourceShell->GetDocument().GetDBCollection()) + { + const auto& rNamedDBs = pDBs->getNamedDBs(); + for (const auto& rNamedDB : rNamedDBs) + m_xLbRanges->append_text(rNamedDB->GetName()); + } } m_xLbRanges->thaw(); commit 92c93d538767bf22681fd6fac067cc3b7f2b53b3 Author: Michael Stahl <[email protected]> AuthorDate: Tue Jul 18 16:58:34 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:17 2023 +0200 tdf#146258 sw: invalidate section frame for new text frame at start SwFlowFrame::CalcUpperSpace() uses the first text frame inside to compute the upper margin of section frames. Before commit 69d2d24b3579ad21fb1ba2746f81a02f8bbfb984 this was working because a temporary SwTextFrame for the new SwTextNode was created and then deleted again, but while it was alive the SvULSpace item was copied and then it invalidated the section frame: 1 SwFrame::InvalidatePrt_() 2 SwContentFrame::Modify() at libreoffice-6-1/sw/source/core/layout/wsfrm.cxx:2336 3 SwTextFrame::SwClientNotify() ... 7 SwTextNode::Modify() 8 SwContentNode::SetAttr() 9 SwTextNode::SetAttr() 10 SwAttrSet::CopyToModify() 11 SwTextNode::CopyText() 12 SwTextNode::CopyText() 13 SwTextNode::MakeCopy() 14 SwNodes::CopyNodes() 15 sw::DocumentContentOperationsManager::CopyWithFlyInFly() 16 SwIntrnlSectRefLink::DataChanged() Now however nothing invalidates the section frame, so do it in InsertCnt_(), hopefully it works for columned sections too. (regression from commit 166b5010b402a41b192b1659093a25acf9065fd9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154594 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit 34b607bb455bd30d3adf8e3f72182c7cc4d062ee) [commit 34b607bb455bd30d3adf8e3f72182c7cc4d062ee used wrong issue id] Change-Id: I339286ac37c9ee9a0bef730a73215bc139386514 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154614 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index 6995ac638674..abf365493592 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -1606,6 +1606,16 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, pPageMaker->CheckInsert( nIndex ); pFrame->InsertBehind( pLay, pPrv ); + if (!pPrv) + { + if (SwSectionFrame *const pSection = pLay->FindSctFrame()) + { + if (pSection && pSection->ContainsAny() == pFrame) + { // tdf#146258 section PrtArea depends on paragraph upper margin + pSection->InvalidatePrt(); + } + } + } // #i27138# // notify accessibility paragraphs objects about changed // CONTENT_FLOWS_FROM/_TO relation. commit b6939039016ed490331b8e717406a8cb831f04d7 Author: Michael Stahl <[email protected]> AuthorDate: Mon Jul 17 21:37:07 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:17 2023 +0200 tdf#153319 sw: don't move footnotes to follow if portions in master SwTextFrameBreak::IsInside() may be called in different situations, during formatting it should be possible to move the footnotes, but when called from SwTextFrame::CalcPreps() this is problematic as it does not format the lines, it iterates over existing lines. The problem is that the footnote frame is moved to the follow's page, but the footnote portion remains on the master, and then the follow is joined while the footnote frame's mpReference still points to it. (regression from commit 391613785ae6fbb735cf7a86ea2f6a93161a8769) Change-Id: I4290dcd242a7f5292ad4f50c1407c9cd88e80a6a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154557 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit 7e9b2b71db72b8c4c9c6ca83d08d3b6b05775ac8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154545 Reviewed-by: Caolán McNamara <[email protected]> diff --git a/sw/source/core/text/widorp.cxx b/sw/source/core/text/widorp.cxx index 0c978b091c5c..195601f5478d 100644 --- a/sw/source/core/text/widorp.cxx +++ b/sw/source/core/text/widorp.cxx @@ -182,6 +182,8 @@ bool SwTextFrameBreak::IsInside( SwTextMargin const &rLine ) const } } if (!bFit && rLine.MaybeHasHints() && m_pFrame->GetFollow() + // tdf#153319 RemoveFootnote only works if this frame doesn't + && !rLine.GetNext() // contain the footnote portion // if using same footnote container as the follow, pointless to try? && m_pFrame->FindFootnoteBossFrame() != m_pFrame->GetFollow()->FindFootnoteBossFrame()) { commit 5c95968cc88e5eaa2b643839f71c0447cd84e297 Author: Khaled Hosny <[email protected]> AuthorDate: Tue Jul 25 17:18:48 2023 +0300 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:16 2023 +0200 tdf#156368: Fix setting watermark font for CJK/CTL text We were setting only Western font when getting the shape, so if there is no Western characters in the text the default font would be used. There is no separate setting for CJK/CTL fonts, so we sets the same font for all the three. Change-Id: If2ba2a206f95e0efe9139b9d092b1d6dbf05967c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154894 Tested-by: Jenkins Reviewed-by: خالد حسني <[email protected]> (cherry picked from commit 24d0a62bd75b9a895c419aa165da648ab18f134d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154920 Reviewed-by: Michael Stahl <[email protected]> diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx index 47b4eb61684d..9ac72b6a2902 100644 --- a/sw/source/core/edit/edfcol.cxx +++ b/sw/source/core/edit/edfcol.cxx @@ -1577,6 +1577,8 @@ static void lcl_placeWatermarkInHeader(const SfxWatermarkItem& rWatermark, xPropertySet->setPropertyValue(UNO_NAME_HORI_ORIENT_RELATION, uno::Any(text::RelOrientation::PAGE_PRINT_AREA)); xPropertySet->setPropertyValue(UNO_NAME_VERT_ORIENT_RELATION, uno::Any(text::RelOrientation::PAGE_PRINT_AREA)); xPropertySet->setPropertyValue(UNO_NAME_CHAR_FONT_NAME, uno::Any(sFont)); + xPropertySet->setPropertyValue(UNO_NAME_CHAR_FONT_NAME_ASIAN, uno::Any(sFont)); + xPropertySet->setPropertyValue(UNO_NAME_CHAR_FONT_NAME_COMPLEX, uno::Any(sFont)); xPropertySet->setPropertyValue(UNO_NAME_CHAR_HEIGHT, uno::Any(WATERMARK_AUTO_SIZE)); xPropertySet->setPropertyValue("Transformation", uno::Any(aMatrix)); commit 7e38de6c11306a14b3b8ea67de712723e4083e5d Author: Michael Stahl <[email protected]> AuthorDate: Thu Jul 20 11:54:26 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:16 2023 +0200 tdf#154990 vcl: PDF export: incorrect checks of annotation struct parents The first form annotation is missing /StructParent. The invalid value is -1, not 0. Typically 0 is the index of the MCIDs entry (m_aMCIDParents) in the ParentTree /Nums, but if there is not a single MCID in the document, this is omitted and 0 may be a valid annotation then. Change-Id: I9885d176eae272d98000f9d9f0ffae82558c0ea0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154668 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit 49dca4be647733507b2082a9c74187076a4a8d9b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154628 Reviewed-by: خالد حسني <[email protected]> diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 47bf5edbaf48..2e79a3289ec3 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -3644,7 +3644,7 @@ bool PDFWriterImpl::emitScreenAnnotations() // End Action dictionary. aLine.append("/OP 0 >>"); - if (0 < rScreen.m_nStructParent) + if (-1 != rScreen.m_nStructParent) { aLine.append("\n/StructParent "); aLine.append(rScreen.m_nStructParent); @@ -3877,7 +3877,7 @@ we check in the following sequence: } aLine.append( ">>\n" ); } - if( rLink.m_nStructParent > 0 ) + if (rLink.m_nStructParent != -1) { aLine.append( "/StructParent " ); aLine.append( rLink.m_nStructParent ); @@ -4720,7 +4720,7 @@ bool PDFWriterImpl::emitWidgetAnnotations() iRectMargin = 1; } - if (0 < rWidget.m_nStructParent) + if (-1 != rWidget.m_nStructParent) { aLine.append("/StructParent "); aLine.append(rWidget.m_nStructParent); commit 9d7b52ce8469d0da082849a98127a929f8a9df16 Author: Khaled Hosny <[email protected]> AuthorDate: Tue Jul 25 03:14:37 2023 +0300 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:16 2023 +0200 tdf#156437: Fix missing name inside embedded Type 1 font in PDF Regression from: commit 7415ce2b9795a78f836bc5e5bffb4b56eee26b21 Author: Khaled Hosny <[email protected]> Date: Mon Dec 5 20:52:13 2022 +0200 tdf#113048: Fix PDF ascender and descender of some fonts We were setting the font in PDF /Font dictionary, but not inside the font itself. Change-Id: I1936f615f62fd7afa8f31d66d35dbded879328c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154880 Tested-by: Jenkins Reviewed-by: خالد حسني <[email protected]> (cherry picked from commit 42f0422d19c4d0a2fb09654fb6d1d92e50f6dd5c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154864 Reviewed-by: Michael Stahl <[email protected]> diff --git a/vcl/source/fontsubset/fontsubset.cxx b/vcl/source/fontsubset/fontsubset.cxx index 4e6e03c04baf..1ecd358727bf 100644 --- a/vcl/source/fontsubset/fontsubset.cxx +++ b/vcl/source/fontsubset/fontsubset.cxx @@ -79,6 +79,10 @@ bool FontSubsetInfo::CreateFontSubset( mpReqEncodedIds = pReqEncodedIds; mnReqGlyphCount = nReqGlyphCount; + OString aPSName = m_aPSName.toUtf8(); + if (!mpReqFontName) + mpReqFontName = aPSName.getStr(); + // TODO: move the glyphid/encid/notdef reshuffling from the callers to here // dispatch to underlying subsetters commit 7cf8ad4df0d05228b351178d0a5209f1311143c0 Author: Michael Stahl <[email protected]> AuthorDate: Fri Jul 14 14:44:59 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:16 2023 +0200 tdf#156267 sw: remove DdeBookmarks in SwDoc::DelTable() On Copy, a SwTransferDdeLink is created, which also creates a DDE_BOOKMARK (it's the only thing that does that) without Undo. On Delete, the DelTable() creates SwUndoDelete which creates a SwHistoryBookmark; then the DeleteAndJoin() deletes the DdeBookmark. On Undo, the SwHistoryBookmark doesn't find its bookmark, and crashes. Because the DdeBookmark is artificial and deliberately created without Undo, DelTable() should prevent the SwHistoryBookmark by deleting it first. (regression from commit d81379db730a163c5ff75d4f3a3cddbd7b5eddda) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154440 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit 4270552395600487f9d680cfdc9cd0ad6f457497) cid#1538889 Pointer to local outside scope Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154767 Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit b6f3b76fb611a5f2c7f32296bc86316b6abb32cb) Change-Id: Ib24c788a49a6fee364b44a1dbc8d53870c074596 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154450 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index d004bbc32055..8b8e1b6af15e 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -1926,6 +1926,12 @@ void SwDoc::DeleteCol( const SwCursor& rCursor ) void SwDoc::DelTable(SwTableNode *const pTableNd) { + { + // tdf#156267 remove DdeBookmarks before deleting nodes + SwPaM aTmpPaM(*pTableNd, *pTableNd->EndOfSectionNode()); + SwDataChanged aTmp(aTmpPaM); + } + bool bNewTextNd = false; // Is it alone in a FlyFrame? SwNodeIndex aIdx( *pTableNd, -1 ); commit f72d4c3355e8710d311d91c71cc3ee9ae570d60f Author: László Németh <[email protected]> AuthorDate: Tue Jul 18 16:41:52 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:16 2023 +0200 tdf#150308 sw: fix missing top table border after hidden table rows First visible line of a table with preceding hidden deleted rows hid also the top border of the table, if the inner horizontal row borders drawn only by bottom-only borders (like in the default table style). Note: re-use an existing workaround to show the missing line, see commit 3a4b7c3555f2ffb4e89502bb04ff063d8c08f628 "fdo#39415: sw: fix collapsing border painting more:" Note: layout testing doesn't work, because of the missing calculation with the width of the enabled border of the row frame. Also there is a problem with metafile testing (empty meta file?). Change-Id: Ia8476a2ec592be1dc36e0ea71c10a71c257c29e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154595 Tested-by: Jenkins Reviewed-by: László Németh <[email protected]> (cherry picked from commit 379acb934164e673b708d0f3ec6b3ec046c8d73f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154612 Tested-by: László Németh <[email protected]> (cherry picked from commit bd392b1f7a7378e571e67858cb4bff3161ef07c1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154626 Reviewed-by: Michael Stahl <[email protected]> diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index b11b5e1d15e5..abdd57e5b576 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -2800,6 +2800,8 @@ void SwTabFramePainter::FindStylesForLine( Point& rStartPoint, /** * Special case: #i9860# * first line in follow table without repeated headlines + * Special case: tdf#150308 + * first visible line of a table with preceding hidden deleted rows */ static bool lcl_IsFirstRowInFollowTableWithoutRepeatedHeadlines( SwTabFrame const& rTabFrame, SwFrame const& rFrame, SvxBoxItem const& rBoxItem) @@ -2808,7 +2810,11 @@ static bool lcl_IsFirstRowInFollowTableWithoutRepeatedHeadlines( dynamic_cast<const SwRowFrame*>(rFrame.GetUpper()); return (pThisRowFrame && (pThisRowFrame->GetUpper() == &rTabFrame) - && rTabFrame.IsFollow() + && ( rTabFrame.IsFollow() + // tdf#150308 first table row isn't equal to the table row of the first + // row frame of the first table frame: there are invisible deleted rows + // in Hide Changes mode before the first visible table row + || rTabFrame.GetTable()->GetTabLines().front() != pThisRowFrame->GetTabLine() ) && !rTabFrame.GetTable()->GetRowsToRepeat() && ( !pThisRowFrame->GetPrev() || static_cast<const SwRowFrame*>(pThisRowFrame->GetPrev()) commit 438de66ed5855d3fa9587deb60c038c7caeb67d3 Author: Aron Budea <[email protected]> AuthorDate: Sun Jul 16 17:25:55 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:16 2023 +0200 tdf#155661 Apply border from center point not from whole size Regression from 6965bb07bb33429a7663a3f3ebe58ed89c4327d9 and 8b8a988f38b704e466211bb91a3269756c34222b. Change-Id: I2e8c21fbdbbc7efb4b473c63b098044384a70d6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154501 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> (cherry picked from commit 4202dfcae19ee47e9a3fda02fac34c18cb0d16ff) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154543 diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx index 4fcfbd10c247..677d8c117835 100644 --- a/vcl/skia/gdiimpl.cxx +++ b/vcl/skia/gdiimpl.cxx @@ -2036,8 +2036,8 @@ bool SkiaSalGraphicsImpl::drawGradient(const tools::PolyPolygon& rPolyPolygon, SkPoint::Make(toSkX(aPoly[1].X()), toSkY(aPoly[1].Y())) }; SkColor colors[3] = { endColor, startColor, endColor }; SkScalar border = SkDoubleToScalar(aGradient.GetBorder() / 100.0); - SkScalar pos[3] - = { std::min<SkScalar>(border, 0.5), 0.5, std::max<SkScalar>(1 - border, 0.5) }; + SkScalar pos[3] = { std::min<SkScalar>(border * 0.5f, 0.5f), 0.5f, + std::max<SkScalar>(1 - border * 0.5f, 0.5f) }; shader = SkGradientShader::MakeLinear(points, colors, pos, 3, SkTileMode::kClamp); } else commit 32a04c1ed7089862da1dbdbf69f06b3e474465bc Author: Sarper Akdemir <[email protected]> AuthorDate: Fri Jul 14 18:04:35 2023 +0300 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:41:16 2023 +0200 tdf#90023: vcl: fix tooltip displaying over two monitors on Windows To determine the WorkArea correctly in ImplSalGetWorkArea, pass in the mouse pointer as pParentRect. Similarly to how it has been done on: vcl/win/window/salframe.cxx:1393 Change-Id: I43123be315c5ea146c118e8e2a582ceaaab0a35e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154442 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <[email protected]> (cherry picked from commit dc5163af166cb2afb9811dbf0443e1fcceafbb9a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154463 Reviewed-by: Thorsten Behrens <[email protected]> (cherry picked from commit 2d3892f2bc51390825d6775c5f193c4864005a06) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154466 diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx index 5f1961a7f5d6..6ab7bc61d673 100644 --- a/vcl/win/window/salframe.cxx +++ b/vcl/win/window/salframe.cxx @@ -1595,7 +1595,14 @@ void WinSalFrame::SetPluginParent( SystemParentData* pNewParent ) void WinSalFrame::GetWorkArea( tools::Rectangle &rRect ) { RECT aRect; - ImplSalGetWorkArea( mhWnd, &aRect, nullptr ); + + // pass cursor's position to ImplSalGetWorkArea to determine work area on + // multi monitor setups correctly. + POINT aPoint; + GetCursorPos(&aPoint); + RECT aRect2{ aPoint.x, aPoint.y, aPoint.x + 2, aPoint.y + 2 }; + + ImplSalGetWorkArea( mhWnd, &aRect, &aRect2 ); rRect.SetLeft( aRect.left ); rRect.SetRight( aRect.right-1 ); rRect.SetTop( aRect.top ); commit 768882990c76dfde52e26d9bff071054d861439c Author: Bjoern Michaelsen <[email protected]> AuthorDate: Fri Jul 14 01:03:56 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:40:12 2023 +0200 tdf#153866: Fix TOX crash Im not sure why it should be valid that the ContentFrame should ever be nullptr here, but a simple check prevents the immediate crash. Change-Id: I19a2d04e41271ae6a5b6a3a79c31c3efd5db7875 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154404 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit d86a6d2b47c6a22d185dc631388ca3f2c0386a35) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154417 diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index 69b4e96caade..471e5d989780 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -368,6 +368,8 @@ void SwCursorShell::GotoTOXMarkBase() // Take the 1. and get the index type. Ask it for the actual index. const SwTOXType* pType = aMarks[0]->GetTOXType(); auto pContentFrame = pType->FindContentFrame(*GetDoc(), *GetLayout()); + if(!pContentFrame) + return; SwCallLink aLk(*this); // watch Cursor-Moves SwCursorSaveState aSaveState(*m_pCurrentCursor); assert(pContentFrame->IsTextFrame()); commit 3d9b6f605030b139868bdd961e6e8ed64a81d85a Author: Mike Kaganski <[email protected]> AuthorDate: Thu Jul 13 21:07:08 2023 +0300 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:40:12 2023 +0200 tdf#142808: use SvxLRSpaceItem::GetTextLeft instead of GetLeft Because we need the value without the negative (hanging) indent. Change-Id: I65f779476be5e8a57b723c289c6c3a9c75875bb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154398 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit a177a4474b8c31f44741e2834df2c76ea8074aa3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154419 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx index 671afa9f6737..d52e61bec130 100644 --- a/svx/source/dialog/svxruler.cxx +++ b/svx/source/dialog/svxruler.cxx @@ -2152,7 +2152,7 @@ void SvxRuler::ApplyTabs() = lAppNullOffset + (bRTL ? GetRightFrameMargin() : GetLeftFrameMargin()); if (mxRulerImpl->bIsTabsRelativeToIndent && mxParaItem) { - nTmpLeftIndentLogic += bRTL ? mxParaItem->GetRight() : mxParaItem->GetLeft(); + nTmpLeftIndentLogic += bRTL ? mxParaItem->GetRight() : mxParaItem->GetTextLeft(); } aTabStop.GetTabPos() = mxRulerImpl->lMaxRightLogic - lLogicNullOffset - nTmpLeftIndentLogic; commit 7392cb286052ead5faf4a1dad38f75b828362644 Author: Mike Kaganski <[email protected]> AuthorDate: Mon Jul 10 21:16:32 2023 +0300 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:40:12 2023 +0200 tdf#156130: Use default tab stop when TOC*N style doesn't define one When TOC*N style only defines one tab stop, it's used by Word as the page number position, and the tab between chapter number and chapter name is set to a default position. When the style has no tab stops, they are both defaulted. testTdf154319 is updated to test this. Change-Id: I561995a8e96882e1f17ee9982e3fc640e621cda2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154281 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit b915dd9e1559870045481403806dd073f4fb5818) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154260 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sw/qa/extras/ooxmlimport/data/tdf154319-ToC_with_s_and_d.docx b/sw/qa/extras/ooxmlimport/data/tdf154319-ToC_with_s_and_d.docx index dc5a67824c9d..91a9d0b8adea 100644 Binary files a/sw/qa/extras/ooxmlimport/data/tdf154319-ToC_with_s_and_d.docx and b/sw/qa/extras/ooxmlimport/data/tdf154319-ToC_with_s_and_d.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx index e516383e3255..dfda91089b40 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx @@ -1064,7 +1064,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf154319) // tdf#154360: check tab stops between the number and the entry text // The last (10th) level does not correspont to any MS level (only 9 levels there) constexpr sal_Int32 levelTabStops[] - = { 776, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, -1 }; + = { 776, 1552, 2328, 3104, 3881, 4657, 5433, 6209, 6985, -1 }; //start with level 1, 0 is the header level for (sal_Int32 nLevel = 1; nLevel < xLevelFormats->getCount(); ++nLevel) diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 3fccbbc635b1..f89d0321167d 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -6162,7 +6162,7 @@ void DomainMapper_Impl::handleAuthor } static uno::Sequence< beans::PropertyValues > lcl_createTOXLevelHyperlinks( bool bHyperlinks, const OUString& sChapterNoSeparator, - const uno::Sequence< beans::PropertyValues >& aLevel, const uno::Sequence<style::TabStop>& tabs) + const uno::Sequence< beans::PropertyValues >& aLevel, const std::optional<style::TabStop> numtab) { //create a copy of the level and add new entries @@ -6201,12 +6201,12 @@ static uno::Sequence< beans::PropertyValues > lcl_createTOXLevelHyperlinks( bool aNewLevel.push_back(item); - if (tabs.hasElements() && tokenType == tokENum) + if (numtab && tokenType == tokENum) { // There is a fixed tab stop position needed in the level after the numbering aNewLevel.push_back( { comphelper::makePropertyValue(tokType, OUString("TokenTabStop")), - comphelper::makePropertyValue("TabStopPosition", tabs[0].Position) }); + comphelper::makePropertyValue("TabStopPosition", numtab->Position) }); } } @@ -6588,7 +6588,7 @@ void DomainMapper_Impl::handleToc xLevelFormats->getByIndex( nLevel ) >>= aLevel; // Get the tab stops coming from the styles; store to the level definitions - uno::Sequence<style::TabStop> tabStops; + std::optional<style::TabStop> numTab; if (xChapterNumberingRules && xStyles) { // This relies on the chapter numbering rules already defined @@ -6613,13 +6613,38 @@ void DomainMapper_Impl::handleToc xTOC->getPropertyValue("ParaStyleLevel" + OUString::number(nLevel)) >>= style; uno::Reference<beans::XPropertySet> xStyle; if (xStyles->getByName(style) >>= xStyle) - xStyle->getPropertyValue("ParaTabStops") >>= tabStops; + { + if (uno::Reference<beans::XPropertyState> xPropState{ xStyle, + uno::UNO_QUERY }) + { + if (xPropState->getPropertyState("ParaTabStops") + == beans::PropertyState_DIRECT_VALUE) + { + if (uno::Sequence<style::TabStop> tabStops; + xStyle->getPropertyValue("ParaTabStops") >>= tabStops) + { + // If the style only has one tab stop, Word uses it for + // page number, and generates the other from defaults + if (tabStops.getLength() > 1) + numTab = tabStops[0]; + } + } + } + } + if (!numTab) + { + // Generate the default position. + // Word uses multiples of 440 twips for default chapter number tab stops + numTab.emplace(); + numTab->Position + = o3tl::convert(440 * nLevel, o3tl::Length::twip, o3tl::Length::mm100); + } } } uno::Sequence< beans::PropertyValues > aNewLevel = lcl_createTOXLevelHyperlinks( bHyperlinks, sChapterNoSeparator, - aLevel, tabStops); + aLevel, numTab); xLevelFormats->replaceByIndex( nLevel, uno::Any( aNewLevel ) ); } } commit 977880c3374b9dd99a33b022fa6133b8357de6bb Author: Xisco Fauli <[email protected]> AuthorDate: Wed Jul 12 17:46:01 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:40:11 2023 +0200 tdf#156251: Add gap between text elements when needed Partially revert a42f5faac7c6d4590e632cf40e3ba9eb618e6f56 "tdf#103888: Do not add a gap at the end of each text portion" and adapt code to keep tdf#103888 fixed Change-Id: I4b3f1ff7d87b1945233d9b05824d58af1e001d65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154364 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 5079e7937ef471a44dcf119dc6ae0a334d9c6adc) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154327 Reviewed-by: Michael Stahl <[email protected]> diff --git a/svgio/inc/svgcharacternode.hxx b/svgio/inc/svgcharacternode.hxx index 738ddf4d9e73..5fad2008ba1c 100644 --- a/svgio/inc/svgcharacternode.hxx +++ b/svgio/inc/svgcharacternode.hxx @@ -122,6 +122,9 @@ namespace svgio::svgreader /// the string data OUString maText; + // keep a copy of string data before space handling + OUString maTextBeforeSpaceHandling; + /// local helpers rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> createSimpleTextPrimitive( SvgTextPosition& rSvgTextPosition, @@ -141,10 +144,13 @@ namespace svgio::svgreader virtual const SvgStyleAttributes* getSvgStyleAttributes() const override; void decomposeText(drawinglayer::primitive2d::Primitive2DContainer& rTarget, SvgTextPosition& rSvgTextPosition) const; void whiteSpaceHandling(); + void addGap(); void concatenate(std::u16string_view rText); /// Text content const OUString& getText() const { return maText; } + + const OUString& getTextBeforeSpaceHandling() const { return maTextBeforeSpaceHandling; } }; } // end of namespace svgio::svgreader diff --git a/svgio/inc/svgtools.hxx b/svgio/inc/svgtools.hxx index fd9bdd396d9d..a21cf86c2606 100644 --- a/svgio/inc/svgtools.hxx +++ b/svgio/inc/svgtools.hxx @@ -126,7 +126,6 @@ namespace svgio::svgreader void readImageLink(const OUString& rCandidate, OUString& rXLink, OUString& rUrl, OUString& rMimeType, OUString& rData); OUString consolidateContiguousSpace(const OUString& rCandidate); - OUString xmlSpaceHandling(const OUString& rCandidate, bool bIsDefault); // #125325# removes block comment of the general form '/* ... */', returns // an adapted string or the original if no comments included diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index 16975f06f0b2..67793f0db3f1 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -459,7 +459,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf85770) assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]", "height", "11"); assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]", "familyname", "Times New Roman"); assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]", "fontcolor", "#000000"); - assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]", "text", "Start"); + assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]", "text", "Start "); assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]", "height", "11"); assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]", "familyname", "Times New Roman"); assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]", "fontcolor", "#000000"); @@ -842,6 +842,27 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf103888) assertXPath(pDocument, "/primitive2D/transform/transform/textsimpleportion[3]", "text", "hebung"); } +CPPUNIT_TEST_FIXTURE(Test, testTdf156251) +{ + Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf156251.svg"); + CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(aSequence.getLength())); + + drawinglayer::Primitive2dXmlDump dumper; + xmlDocUniquePtr pDocument = dumper.dumpAndParse(Primitive2DContainer(aSequence)); + + CPPUNIT_ASSERT (pDocument); + + // Without the fix in place, this test would have failed with + // - Expected: 'You are ' + // - Actual : 'You are' + assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]", "text", "You are "); + assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]", "text", "not "); + assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]", "text", "a banana!"); + assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]", "text", "You are "); + assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[5]", "text", "not "); + assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[6]", "text", "a banana!"); +} + CPPUNIT_TEST_FIXTURE(Test, testMaskText) { //Check that mask is applied on text diff --git a/svgio/qa/cppunit/data/tdf156251.svg b/svgio/qa/cppunit/data/tdf156251.svg new file mode 100644 index 000000000000..201a0aa69e99 --- /dev/null +++ b/svgio/qa/cppunit/data/tdf156251.svg @@ -0,0 +1,17 @@ +<svg viewBox="0 0 240 70" xmlns="http://www.w3.org/2000/svg"> + <style> + tspan { + fill: red; + } + </style> + + <text x="10" y="30" class="small"> + You are + <tspan>not</tspan> + a banana! + </text> + <text x="10" y="60" class="small"> + You are<tspan> not </tspan>a banana! + </text> +</svg> + diff --git a/svgio/source/svgreader/svgcharacternode.cxx b/svgio/source/svgreader/svgcharacternode.cxx index 4ca8a3468c02..4ffc46a483db 100644 --- a/svgio/source/svgreader/svgcharacternode.cxx +++ b/svgio/source/svgreader/svgcharacternode.cxx @@ -554,7 +554,22 @@ namespace svgio::svgreader void SvgCharacterNode::whiteSpaceHandling() { - maText = xmlSpaceHandling(maText, XmlSpace::Default == getXmlSpace()); + bool bIsDefault(XmlSpace::Default == getXmlSpace()); + // if xml:space="default" then remove all newline characters, otherwise convert them to space + // convert tab to space too + maText = maTextBeforeSpaceHandling = maText.replaceAll(u"\n", bIsDefault ? u"" : u" ").replaceAll(u"\t", u" "); + + if(bIsDefault) + { + // strip of all leading and trailing spaces + // and consolidate contiguous space + maText = consolidateContiguousSpace(maText.trim()); + } + } + + void SvgCharacterNode::addGap() + { + maText += " "; } void SvgCharacterNode::concatenate(std::u16string_view rText) diff --git a/svgio/source/svgreader/svgdocumenthandler.cxx b/svgio/source/svgreader/svgdocumenthandler.cxx index fffc4106c768..253374d71036 100644 --- a/svgio/source/svgreader/svgdocumenthandler.cxx +++ b/svgio/source/svgreader/svgdocumenthandler.cxx @@ -47,6 +47,7 @@ #include <svgtitledescnode.hxx> #include <sal/log.hxx> #include <osl/diagnose.h> +#include <o3tl/string_view.hxx> using namespace com::sun::star; @@ -55,7 +56,7 @@ namespace svgio::svgreader namespace { - void whiteSpaceHandling(svgio::svgreader::SvgNode const * pNode) + svgio::svgreader::SvgCharacterNode* whiteSpaceHandling(svgio::svgreader::SvgNode const * pNode, svgio::svgreader::SvgCharacterNode* pLast) { if(pNode) { @@ -74,7 +75,47 @@ namespace { // clean whitespace in text span svgio::svgreader::SvgCharacterNode* pCharNode = static_cast< svgio::svgreader::SvgCharacterNode* >(pCandidate); + pCharNode->whiteSpaceHandling(); + + // pCharNode may have lost all text. If that's the case, ignore + // as invalid character node + // Also ignore if textBeforeSpaceHandling just have spaces + if(!pCharNode->getText().isEmpty() && !o3tl::trim(pCharNode->getTextBeforeSpaceHandling()).empty()) + { + if(pLast) + { + bool bAddGap(true); + + // Do not add a gap if last node doesn't end with a space and + // current note doesn't start with a space + const sal_uInt32 nLastLength(pLast->getTextBeforeSpaceHandling().getLength()); + if(pLast->getTextBeforeSpaceHandling()[nLastLength - 1] != ' ' && pCharNode->getTextBeforeSpaceHandling()[0] != ' ') + bAddGap = false; + + // With this option a baseline shift between two char parts ('words') + // will not add a space 'gap' to the end of the (non-last) word. This + // seems to be the standard behaviour, see last bugdoc attached #122524# + const svgio::svgreader::SvgStyleAttributes* pStyleLast = pLast->getSvgStyleAttributes(); + const svgio::svgreader::SvgStyleAttributes* pStyleCurrent = pCandidate->getSvgStyleAttributes(); + + if(pStyleLast && pStyleCurrent && pStyleLast->getBaselineShift() != pStyleCurrent->getBaselineShift()) + { + bAddGap = false; + } + + // add in-between whitespace (single space) to last + // known character node + if(bAddGap) + { + pLast->addGap(); + } + } + + // remember new last corrected character node + pLast = pCharNode; + } + break; } case SVGToken::Tspan: @@ -82,7 +123,7 @@ namespace case SVGToken::Tref: { // recursively clean whitespaces in subhierarchy - whiteSpaceHandling(pCandidate); + pLast = whiteSpaceHandling(pCandidate, pLast); break; } default: @@ -94,8 +135,9 @@ namespace } } } - } + return pLast; + } } // end anonymous namespace SvgDocHdl::SvgDocHdl(const OUString& aAbsolutePath) @@ -501,7 +543,7 @@ namespace if(pWhitespaceCheck) { // cleanup read strings - whiteSpaceHandling(pWhitespaceCheck); + whiteSpaceHandling(pWhitespaceCheck, nullptr); } } diff --git a/svgio/source/svgreader/svgtools.cxx b/svgio/source/svgreader/svgtools.cxx index af10626af3ad..eec5133cc8a1 100644 --- a/svgio/source/svgreader/svgtools.cxx +++ b/svgio/source/svgreader/svgtools.cxx @@ -1473,22 +1473,6 @@ namespace svgio::svgreader return rCandidate; } - OUString xmlSpaceHandling(const OUString& rCandidate, bool bIsDefault) - { - // if xml:space="default" then remove all newline characters, otherwise convert them to space - // convert tab to space too - OUString aRetval(rCandidate.replaceAll(u"\n", bIsDefault ? u"" : u" ").replaceAll(u"\t", u" ")); - - if(bIsDefault) - { - // strip of all leading and trailing spaces - // and consolidate contiguous space - aRetval = consolidateContiguousSpace(aRetval.trim()); - } - - return aRetval; - } - ::std::vector< double > solveSvgNumberVector(const SvgNumberVector& rInput, const InfoProvider& rInfoProvider) { ::std::vector< double > aRetval; commit 39eeb13c05ae7de2b7801c459ba41a04d809d97e Author: Christian Lohmaier <[email protected]> AuthorDate: Wed Jul 12 19:14:33 2023 +0200 Commit: Andras Timar <[email protected]> CommitDate: Mon Jul 31 21:40:11 2023 +0200 update credits Change-Id: Ie5565acd9f6acdda012fb64ac0d43de3a375135c (cherry picked from commit 5a6b938d324798433298ec7320c813c82ace4590) diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt index 724c0b01ac90..0a626c770f60 100644 --- a/readlicense_oo/license/CREDITS.fodt +++ b/readlicense_oo/license/CREDITS.fodt @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:c alcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext: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:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form: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:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns: meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> - <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/7.5.4.2$Linux_X86_64 LibreOffice_project/36ccfdc35048b057fd9854c757a8b67ec53977b6</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="4752" meta:word-count="17716" meta:character-count="128073" meta:non-whitespace-character-count="112307"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta> + <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/7.5.4.2$Linux_X86_64 LibreOffice_project/36ccfdc35048b057fd9854c757a8b67ec53977b6</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="4767" meta:word-count="17771" meta:character-count="128480" meta:non-whitespace-character-count="112665"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta> <office:settings> <config:config-item-set config:name="ooo:view-settings"> - <config:config-item config:name="ViewAreaTop" config:type="long">2983</config:config-item> + <config:config-item config:name="ViewAreaTop" config:type="long">517</config:config-item> <config:config-item config:name="ViewAreaLeft" config:type="long">501</config:config-item> - <config:config-item config:name="ViewAreaWidth" config:type="long">21433</config:config-item> - <config:config-item config:name="ViewAreaHeight" config:type="long">26539</config:config-item> + <config:config-item config:name="ViewAreaWidth" config:type="long">21539</config:config-item> + <config:config-item config:name="ViewAreaHeight" config:type="long">26857</config:config-item> <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item> <config:config-item config:name="InBrowseMode" config:type="boolean">true</config:config-item> <config:config-item-map-indexed config:name="Views"> @@ -16,9 +16,9 @@ <config:config-item config:name="ViewLeft" config:type="long">3649</config:config-item> <config:config-item config:name="ViewTop" config:type="long">3434</config:config-item> <config:config-item config:name="VisibleLeft" config:type="long">501</config:config-item> - <config:config-item config:name="VisibleTop" config:type="long">2983</config:config-item> - <config:config-item config:name="VisibleRight" config:type="long">21932</config:config-item> - <config:config-item config:name="VisibleBottom" config:type="long">29520</config:config-item> + <config:config-item config:name="VisibleTop" config:type="long">517</config:config-item> + <config:config-item config:name="VisibleRight" config:type="long">22038</config:config-item> + <config:config-item config:name="VisibleBottom" config:type="long">27372</config:config-item> <config:config-item config:name="ZoomType" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item> @@ -83,7 +83,7 @@ </config:config-item-map-entry> </config:config-item-map-indexed> <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item> - <config:config-item config:name="Rsid" config:type="int">12361586</config:config-item> + <config:config-item config:name="Rsid" config:type="int">12476975</config:config-item> <config:config-item config:name="FootnoteInColumnToPageEnd" config:type="boolean">true</config:config-item> <config:config-item config:name="ProtectFields" config:type="boolean">false</config:config-item> <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item> @@ -174,7 +174,7 @@ <office:styles> <style:default-style style:family="graphic"> <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:writing-mode="lr-tb" style:flow-with-text="true"/> - <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false"> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:font-independent-line-spacing="false"> <style:tab-stops/> </style:paragraph-properties> <style:text-properties style:use-window-font-color="true" loext:opacity="0%" loext:color-lum-mod="100%" loext:color-lum-off="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="hu" fo:country="HU" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Mangal1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> @@ -352,24 +352,24 @@ </office:styles> <office:automatic-styles> <style:style style:name="Tabelle1" style:family="table"> - <style:table-properties style:width="21.01cm" table:align="left"/> + <style:table-properties style:width="21.116cm" table:align="left"/> </style:style> <style:style style:name="Tabelle1.A" style:family="table-column"> - <style:table-column-properties style:column-width="4.985cm"/> + <style:table-column-properties style:column-width="5.168cm"/> </style:style> <style:style style:name="Tabelle1.B" style:family="table-column"> - <style:table-column-properties style:column-width="4.847cm"/> + <style:table-column-properties style:column-width="4.976cm"/> </style:style> <style:style style:name="Tabelle1.C" style:family="table-column"> - <style:table-column-properties style:column-width="5.456cm"/> + <style:table-column-properties style:column-width="5.283cm"/> </style:style> <style:style style:name="Tabelle1.D" style:family="table-column"> - <style:table-column-properties style:column-width="5.722cm"/> + <style:table-column-properties style:column-width="5.689cm"/> </style:style> <style:style style:name="Tabelle1.A1" style:family="table-cell"> <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/> </style:style> - <style:style style:name="Tabelle1.D436" style:family="table-cell"> + <style:style style:name="Tabelle1.B438" style:family="table-cell"> <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/> </style:style> <style:style style:name="Tabelle2" style:family="table"> @@ -433,24 +433,24 @@ <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/> </style:style> <style:style style:name="Tabelle5" style:family="table"> - <style:table-properties style:width="22.417cm" table:align="left"/> + <style:table-properties style:width="21.116cm" table:align="left"/> </style:style> <style:style style:name="Tabelle5.A" style:family="table-column"> - <style:table-column-properties style:column-width="4.791cm"/> + <style:table-column-properties style:column-width="7.479cm"/> </style:style> <style:style style:name="Tabelle5.B" style:family="table-column"> - <style:table-column-properties style:column-width="5.955cm"/> + <style:table-column-properties style:column-width="4.546cm"/> </style:style> <style:style style:name="Tabelle5.C" style:family="table-column"> - <style:table-column-properties style:column-width="7.119cm"/> + <style:table-column-properties style:column-width="4.639cm"/> </style:style> <style:style style:name="Tabelle5.D" style:family="table-column"> - <style:table-column-properties style:column-width="4.553cm"/> + <style:table-column-properties style:column-width="4.452cm"/> </style:style> <style:style style:name="Tabelle5.A1" style:family="table-cell"> <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/> </style:style> - <style:style style:name="Tabelle5.C707" style:family="table-cell"> + <style:style style:name="Tabelle5.D709" style:family="table-cell"> <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/> </style:style> <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents"> @@ -1140,7 +1140,7 @@ </draw:frame> <text:section text:style-name="Sect1" text:name="BgContainer"> <text:p text:style-name="P30">Credits</text:p> - <text:p text:style-name="Text_20_body">1873 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2023-06-07 12:23:53.</text:p> + <text:p text:style-name="Text_20_body">1879 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2023-07-06 15:44:24.</text:p> <text:p text:style-name="Text_20_body"><text:span text:style-name="T1">*</text:span> marks developers whose first contributions happened after 2010-09-28.</text:p> <text:h text:style-name="Heading_20_2" text:outline-level="2">Developers committing code since 2010-09-28</text:h> <table:table table:name="Tabelle1" table:style-name="Tabelle1"> @@ -1170,15 +1170,15 @@ <text:p text:style-name="Table_20_Contents">Vladimir Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 2000-12-04</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 20570<text:line-break/>Joined: 2000-10-04</text:p> + <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 20586<text:line-break/>Joined: 2000-10-04</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 17692<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 17772<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 9559<text:line-break/>Joined: 2010-07-29</text:p> + <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 9593<text:line-break/>Joined: 2010-07-29</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Ivo Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 2002-09-09</text:p> @@ -1187,7 +1187,7 @@ <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 9160<text:line-break/>Joined: 2010-03-23</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 8217<text:line-break/>Joined: 2008-06-16</text:p> + <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 8246<text:line-break/>Joined: 2008-06-16</text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1195,7 +1195,7 @@ <text:p text:style-name="Table_20_Contents">Kohei Yoshida<text:line-break/>Commits: 5571<text:line-break/>Joined: 2009-06-19</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 5309<text:line-break/>Joined: 2000-10-11</text:p> + <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 5325<text:line-break/>Joined: 2000-10-11</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 5203<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-17</text:span></text:p> @@ -1206,16 +1206,16 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 3660<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 3670<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3648<text:line-break/>Joined: 2009-11-12</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 3541<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 3586<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 3251<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 3293<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1229,7 +1229,7 @@ <text:p text:style-name="Table_20_Contents">Ocke Janssen [oj]<text:line-break/>Commits: 2850<text:line-break/>Joined: 2000-09-20</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 2777<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 2844<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1237,18 +1237,18 @@ <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2672<text:line-break/>Joined: 2009-06-23</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Mathias Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 2000-09-20</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 2601<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Oliver Specht<text:line-break/>Commits: 2549<text:line-break/>Joined: 2000-09-21</text:p> + <text:p text:style-name="Table_20_Contents">Mathias Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 2000-09-20</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 2539<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Oliver Specht<text:line-break/>Commits: 2549<text:line-break/>Joined: 2000-09-21</text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2494<text:line-break/>Joined: 2004-08-05</text:p> + <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2495<text:line-break/>Joined: 2004-08-05</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 2488<text:line-break/>Joined: 2009-10-14</text:p> @@ -1265,10 +1265,10 @@ <text:p text:style-name="Table_20_Contents">Philipp Lohmann [pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 1988<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 1989<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 1824<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 1851<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Christian Lippka<text:line-break/>Commits: 1805<text:line-break/>Joined: 2000-09-25</text:p> @@ -1279,7 +1279,7 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 1712<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Armin Le Grand (allotropia)<text:line-break/>Commits: 1619<text:line-break/>Joined: 2000-09-25</text:p> + <text:p text:style-name="Table_20_Contents">Armin Le Grand (allotropia)<text:line-break/>Commits: 1624<text:line-break/>Joined: 2000-09-25</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 1486<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-08</text:span></text:p> @@ -1321,18 +1321,18 @@ <text:p text:style-name="Table_20_Contents">Daniel Rentz [dr]<text:line-break/>Commits: 1206<text:line-break/>Joined: 2000-09-28</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 1175<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-08</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 1184<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 1165<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 1181<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-08</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 1127<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-18</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 1130<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-18</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 1119<text:line-break/>Joined: 2008-06-01</text:p> + <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 1128<text:line-break/>Joined: 2008-06-01</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 1051<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-15</text:span></text:p> @@ -1360,16 +1360,16 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Malte Timmermann [mt]<text:line-break/>Commits: 864<text:line-break/>Joined: 2000-10-10</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Maxim Monastirsky<text:line-break/>Commits: 872<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Sven Jacobi<text:line-break/>Commits: 850<text:line-break/>Joined: 2000-09-21</text:p> + <text:p text:style-name="Table_20_Contents">Malte Timmermann [mt]<text:line-break/>Commits: 864<text:line-break/>Joined: 2000-10-10</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Maxim Monastirsky<text:line-break/>Commits: 850<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-27</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>László Németh<text:line-break/>Commits: 856<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>László Németh<text:line-break/>Commits: 847<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Sven Jacobi<text:line-break/>Commits: 850<text:line-break/>Joined: 2000-09-21</text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1383,10 +1383,13 @@ <text:p text:style-name="Table_20_Contents">Mikhail Voytenko<text:line-break/>Commits: 793<text:line-break/>Joined: 2001-01-16</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 756<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-10</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Khaled Hosny<text:line-break/>Commits: 793<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-28</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 767<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-10</text:span></text:p> + </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Carsten Driesner<text:line-break/>Commits: 748<text:line-break/>Joined: 2000-10-06</text:p> </table:table-cell> @@ -1396,13 +1399,10 @@ <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Katarina Behrens<text:line-break/>Commits: 745<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-13</text:span></text:p> </table:table-cell> - <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrzej Hunt<text:line-break/>Commits: 743<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-27</text:span></text:p> - </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>خالد حسني<text:line-break/>Commits: 741<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-28</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrzej Hunt<text:line-break/>Commits: 743<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-27</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Andre Fischer<text:line-break/>Commits: 730<text:line-break/>Joined: 2001-02-06</text:p> @@ -1436,7 +1436,7 @@ <text:p text:style-name="Table_20_Contents">Ingrid Halama<text:line-break/>Commits: 639<text:line-break/>Joined: 2001-01-19</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 624<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-30</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 625<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-30</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Dominguez<text:line-break/>Commits: 606<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-13</text:span></text:p> @@ -1444,16 +1444,16 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Seth Chaiklin<text:line-break/>Commits: 590<text:line-break/>Joined: <text:span text:style-name="T2">2019-11-13</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Seth Chaiklin<text:line-break/>Commits: 597<text:line-break/>Joined: <text:span text:style-name="T2">2019-11-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jochen Nitschke<text:line-break/>Commits: 587<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-02</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 577<text:line-break/>Joined: 2005-03-14</text:p> + <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 581<text:line-break/>Joined: 2005-03-14</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adolfo Jayme Barrientos<text:line-break/>Commits: 573<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-21</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adolfo Jayme Barrientos<text:line-break/>Commits: 574<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-21</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1464,7 +1464,7 @@ <text:p text:style-name="Table_20_Contents">Thomas Benisch [tbe]<text:line-break/>Commits: 551<text:line-break/>Joined: 2000-10-23</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jim Raykowski<text:line-break/>Commits: 519<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-16</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jim Raykowski<text:line-break/>Commits: 522<text:line-break/>Joined: <text:span text:style-name="T2">2017-04-16</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Jürgen Schmidt<text:line-break/>Commits: 512<text:line-break/>Joined: 2000-10-09</text:p> @@ -1475,7 +1475,7 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Foley<text:line-break/>Commits: 489<text:line-break/>Joined: <text:span text:style-name="T2">2011-09-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 478<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-21</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 480<text:line-break/>Joined: <text:span text:style-name="T2">2018-04-21</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>jan Iversen<text:line-break/>Commits: 474<text:line-break/>Joined: <text:span text:style-name="T2">2015-11-03</text:span></text:p> @@ -1486,10 +1486,10 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Heiko Tietze<text:line-break/>Commits: 445<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-06</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Heiko Tietze<text:line-break/>Commits: 447<text:line-break/>Joined: <text:span text:style-name="T2">2016-10-06</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashod Nakashian<text:line-break/>Commits: 394<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-07</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ashod Nakashian<text:line-break/>Commits: 396<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-07</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Dirk Voelzke<text:line-break/>Commits: 392<text:line-break/>Joined: 2000-11-27</text:p> @@ -1520,24 +1520,24 @@ <text:p text:style-name="Table_20_Contents">Matthias Huetsch [mhu]<text:line-break/>Commits: 360<text:line-break/>Joined: 2000-09-28</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Pierre Ledure<text:line-break/>Commits: 354<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-12</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jean-Pierre Ledure<text:line-break/>Commits: 355<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-12</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Patrick Luby<text:line-break/>Commits: 335<text:line-break/>Joined: 2000-09-21</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Henry Castro<text:line-break/>Commits: 342<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-09</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Ostrovsky<text:line-break/>Commits: 334<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-01</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Patrick Luby<text:line-break/>Commits: 335<text:line-break/>Joined: 2000-09-21</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marco Cecchetti<text:line-break/>Commits: 328<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-14</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Ostrovsky<text:line-break/>Commits: 334<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-01</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arnaud VERSINI<text:line-break/>Commits: 323<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-05</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marco Cecchetti<text:line-break/>Commits: 329<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Henry Castro<text:line-break/>Commits: 307<text:line-break/>Joined: <text:span text:style-name="T2">2015-01-09</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Arnaud VERSINI<text:line-break/>Commits: 325<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-05</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> @@ -1551,12 +1551,12 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chr. Rossmanith<text:line-break/>Commits: 300<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Lima<text:line-break/>Commits: 287<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-13</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 287<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-09</text:span></text:p> </table:table-cell> </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 286<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-09</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Lima<text:line-break/>Commits: 287<text:line-break/>Joined: <text:span text:style-name="T2">2020-11-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>August Sodora<text:line-break/>Commits: 285<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-18</text:span></text:p> @@ -1576,7 +1576,7 @@ <text:p text:style-name="Table_20_Contents">Lars Langhans<text:line-break/>Commits: 260<text:line-break/>Joined: 2000-09-22</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Bartosz Kosiorek<text:line-break/>Commits: 259<text:line-break/>Joined: 2010-09-17</text:p> + <text:p text:style-name="Table_20_Contents">Bartosz Kosiorek<text:line-break/>Commits: 260<text:line-break/>Joined: 2010-09-17</text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Muthu Subramanian<text:line-break/>Commits: 250<text:line-break/>Joined: 2010-08-25</text:p> @@ -1587,10 +1587,10 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Antoni Buj Gelonch<text:line-break/>Commits: 247<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-11</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andreas Heinisch<text:line-break/>Commits: 240<text:line-break/>Joined: <text:span text:style-name="T2">2019-05-13</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Regina Henschel<text:line-break/>Commits: 246<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Regina Henschel<text:line-break/>Commits: 237<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andreas Heinisch<text:line-break/>Commits: 243<text:line-break/>Joined: <text:span text:style-name="T2">2019-05-13</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Winfried Donkers<text:line-break/>Commits: 215<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-11</text:span></text:p> @@ -1598,10 +1598,10 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tamas Bunth<text:line-break/>Commits: 203<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-08</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dennis Francis<text:line-break/>Commits: 204<text:line-break/>Joined: <text:span text:style-name="T2">2018-11-15</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Dennis Francis<text:line-break/>Commits: 203<text:line-break/>Joined: <text:span text:style-name="T2">2018-11-15</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tamas Bunth<text:line-break/>Commits: 203<text:line-break/>Joined: <text:span text:style-name="T2">2016-03-08</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Ingo Schmidt<text:line-break/>Commits: 202<text:line-break/>Joined: 2004-02-05</text:p> @@ -1626,10 +1626,10 @@ </table:table-row> <table:table-row> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>François Tigeot<text:line-break/>Commits: 176<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-31</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tünde Tóth<text:line-break/>Commits: 177<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-14</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tünde Tóth<text:line-break/>Commits: 175<text:line-break/>Joined: <text:span text:style-name="T2">2019-03-14</text:span></text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>François Tigeot<text:line-break/>Commits: 176<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-31</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Philipp Riemer<text:line-break/>Commits: 171<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-25</text:span></text:p> @@ -1660,13 +1660,16 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Alexander Wilms<text:line-break/>Commits: 151<text:line-break/>Joined: <text:span text:style-name="T2">2012-05-26</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Gregor Hartmann<text:line-break/>Commits: 141<text:line-break/>Joined: 2000-10-12</text:p> + <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 149<text:line-break/>Joined: <text:span text:style-name="T2">2020-02-03</text:span></text:p> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthias Freund<text:line-break/>Commits: 141<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-08</text:span></text:p> + <text:p text:style-name="Table_20_Contents">Gregor Hartmann<text:line-break/>Commits: 141<text:line-break/>Joined: 2000-10-12</text:p> </table:table-cell> </table:table-row> <table:table-row> + <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> ... etc. - the rest is truncated
