Repository.mk | 6 basic/source/runtime/methods.cxx | 63 chart2/source/controller/dialogs/dlg_CreationWizard.cxx | 3 chart2/source/view/inc/PlottingPositionHelper.hxx | 4 comphelper/source/misc/accessiblewrapper.cxx | 4 compilerplugins/clang/test/unusedfields.cxx | 1 configure.ac | 2 connectivity/source/drivers/evoab2/EApi.cxx | 54 connectivity/source/drivers/evoab2/EApi.h | 2 connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx | 125 connectivity/source/drivers/evoab2/NResultSet.cxx | 125 connectivity/source/drivers/firebird/PreparedStatement.cxx | 6 connectivity/source/drivers/firebird/Util.cxx | 6 connectivity/source/drivers/flat/EDatabaseMetaData.cxx | 2 connectivity/source/drivers/mysqlc/mysqlc_general.cxx | 3 connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.cxx | 32 connectivity/source/drivers/postgresql/pq_databasemetadata.cxx | 2 connectivity/source/inc/java/tools.hxx | 4 cui/source/tabpages/tpcolor.cxx | 12 dbaccess/source/ui/querydesign/QueryTextView.cxx | 1 dev/null |binary distro-configs/Jenkins/linux_clang_dbgutil_64 | 1 download.lst | 8 editeng/source/editeng/impedit2.cxx | 6 editeng/source/editeng/impedit3.cxx | 10 editeng/source/uno/unotext.cxx | 16 emfio/source/reader/wmfreader.cxx | 2 extensions/source/propctrlr/handlerhelper.hxx | 1 external/expat/expat-winapi.patch | 15 external/libassuan/ExternalProject_libassuan.mk | 1 external/nss/UnpackedTarball_nss.mk | 2 external/nss/nss-android.patch.1 | 6 external/nss/nss-ios.patch | 6 external/nss/nss-restore-manual-pre-dependencies.patch.1 | 4 external/nss/nss-win-arm64.patch | 66 external/nss/nss.getopt.patch.0 | 25 external/nss/nss_macosx.patch | 14 external/zxing/0001-Use-a-patch-file-to-document-changes-from-upstream-s.patch | 35 external/zxing/0002-Update-stb_image_write-from-1.14-to-1.16.patch | 361 external/zxing/0003-Update-stb_image-from-2.25-to-2.27.patch | 1162 ++ external/zxing/0004-Apply-stb-PR-1223-to-stb_image.patch | 98 external/zxing/UnpackedTarball_zxing.mk | 4 filter/source/msfilter/svdfppt.cxx | 8 filter/source/pdf/pdfexport.cxx | 12 filter/source/xsltdialog/xmlfilterjar.hxx | 1 forms/source/component/EventThread.hxx | 1 forms/source/xforms/propertysetbase.hxx | 1 fpicker/source/office/contentenumeration.hxx | 4 fpicker/source/office/fileview.cxx | 10 framework/inc/uielement/toolbarwrapper.hxx | 2 framework/source/uielement/recentfilesmenucontroller.cxx | 6 hwpfilter/source/htags.cxx | 26 hwpfilter/source/hwpreader.cxx | 64 i18npool/inc/bullet.h | 32 include/comphelper/accessiblewrapper.hxx | 2 include/comphelper/interfacecontainer3.hxx | 8 include/editeng/unotext.hxx | 4 include/filter/msfilter/svdfppt.hxx | 3 include/oox/crypto/StrongEncryptionDataSpace.hxx | 4 include/sfx2/basedlgs.hxx | 2 include/sfx2/sidebar/SidebarPanelBase.hxx | 4 include/svtools/imageresourceaccess.hxx | 4 include/svx/sdr/contact/viewcontact.hxx | 5 include/svx/svdundo.hxx | 19 include/vcl/BitmapBuffer.hxx | 4 include/vcl/fieldvalues.hxx | 3 include/vcl/filter/PngImageReader.hxx | 4 lotuswordpro/source/filter/lwpdrawobj.cxx | 171 lotuswordpro/source/filter/lwpsdwdrawheader.hxx | 16 lotuswordpro/source/filter/lwpsdwgrouploaderv0102.cxx | 7 oox/source/drawingml/shape.cxx | 30 oox/source/export/drawingml.cxx | 6 oox/source/token/properties.txt | 1 readlicense_oo/license/CREDITS.fodt | 4846 +++++----- sc/inc/kahan.hxx | 123 sc/qa/uitest/calc_tests/columns.py | 20 sc/qa/uitest/calc_tests/rows.py | 12 sc/qa/uitest/calc_tests8/tdf144940.py | 72 sc/qa/unit/data/fods/tdf126116.fods | 170 sc/qa/unit/data/ods/tdf128895_emptyHiddenCols.ods |binary sc/qa/unit/functions_array.cxx | 16 sc/qa/unit/scshapetest.cxx | 4 sc/qa/unit/subsequent_export-test.cxx | 18 sc/qa/unit/subsequent_filters-test2.cxx | 13 sc/source/core/data/column4.cxx | 12 sc/source/core/data/documen3.cxx | 6 sc/source/core/data/drwlayer.cxx | 16 sc/source/core/data/validat.cxx | 6 sc/source/core/tool/compiler.cxx | 3 sc/source/core/tool/interpr1.cxx | 6 sc/source/filter/html/htmlpars.cxx | 10 sc/source/filter/xml/XMLTableHeaderFooterContext.cxx | 11 sc/source/filter/xml/xmlcoli.cxx | 1 sc/source/ui/StatisticsDialogs/RegressionDialog.cxx | 11 sc/source/ui/app/inputhdl.cxx | 4 sc/source/ui/cctrl/checklistmenu.cxx | 9 sc/source/ui/dbgui/PivotLayoutDialog.cxx | 3 sc/source/ui/drawfunc/fuins1.cxx | 4 sc/source/ui/inc/checklistmenu.hxx | 2 sc/source/ui/optdlg/tpcalc.cxx | 8 sc/source/ui/unoobj/cellsuno.cxx | 16 sc/source/ui/unoobj/viewuno.cxx | 24 sc/source/ui/view/cellsh3.cxx | 8 sc/source/ui/view/gridwin.cxx | 20 sc/source/ui/view/output.cxx | 41 sc/source/ui/xmlsource/xmlsourcedlg.cxx | 2 sc/uiconfig/scalc/ui/filterdropdown.ui | 1 sd/qa/unit/data/pptx/tdf145162.pptx |binary sd/qa/unit/data/pptx/tdfpictureplaceholder.pptx |binary sd/qa/unit/export-tests-ooxml3.cxx | 36 sd/source/ui/animations/CustomAnimationList.cxx | 2 sd/source/ui/annotations/annotationwindow.cxx | 9 sd/source/ui/func/fuinsert.cxx | 4 sd/source/ui/unoidl/unomodel.cxx | 8 sd/uiconfig/sdraw/popupmenu/draw.xml | 1 sd/uiconfig/simpress/popupmenu/draw.xml | 1 sfx2/inc/recentdocsview.hxx | 2 sfx2/source/control/recentdocsview.cxx | 8 sfx2/source/dialog/basedlgs.cxx | 7 sfx2/source/dialog/templdlg.cxx | 12 sfx2/source/doc/doctemplates.cxx | 27 shell/source/backends/kf5be/kf5backend.cxx | 2 shell/source/unix/exec/shellexec.cxx | 1 solenv/flatpak-manifest.in | 18 sot/source/unoolestorage/xolesimplestorage.hxx | 2 starmath/inc/token.hxx | 1 starmath/inc/view.hxx | 4 starmath/source/edit.cxx | 5 starmath/source/view.cxx | 24 svtools/source/dialogs/ServerDetailsControls.cxx | 2 svx/inc/galbrws2.hxx | 1 svx/source/dialog/svxruler.cxx | 4 svx/source/fmcomp/gridcell.cxx | 5 svx/source/gallery2/galbrws2.cxx | 14 svx/source/sdr/contact/viewcontact.cxx | 19 svx/source/svdraw/svdedtv1.cxx | 2 svx/source/svdraw/svdpage.cxx | 12 svx/source/svdraw/svdtrans.cxx | 20 svx/source/svdraw/svdundo.cxx | 48 svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx | 4 sw/inc/editsh.hxx | 2 sw/inc/ndarr.hxx | 8 sw/inc/ndtxt.hxx | 2 sw/inc/section.hxx | 5 sw/inc/unochart.hxx | 3 sw/qa/core/text/data/empty-numbering-page-split.fodt | 62 sw/qa/core/text/data/image.png |binary sw/qa/core/text/text.cxx | 16 sw/qa/extras/odfimport/data/tdf146257.odt |binary sw/qa/extras/odfimport/odfimport.cxx | 32 sw/qa/extras/ooxmlexport/data/list_notcounted_indent.fodt | 141 sw/qa/extras/ooxmlexport/data/tdf147115_defaultStyle.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 5 sw/qa/extras/ooxmlexport/ooxmlexport14.cxx | 26 sw/qa/extras/tiledrendering/tiledrendering.cxx | 2 sw/qa/extras/uiwriter/data/tdf135061.odt |binary sw/qa/extras/uiwriter/data/tdf136452.fodt | 80 sw/qa/extras/uiwriter/uiwriter.cxx | 24 sw/qa/extras/uiwriter/uiwriter2.cxx | 114 sw/qa/extras/uiwriter/uiwriter3.cxx | 55 sw/qa/extras/uiwriter/uiwriter4.cxx | 2 sw/source/core/doc/DocumentContentOperationsManager.cxx | 30 sw/source/core/doc/docchart.cxx | 23 sw/source/core/doc/docnew.cxx | 21 sw/source/core/doc/number.cxx | 27 sw/source/core/docnode/nodes.cxx | 182 sw/source/core/docnode/section.cxx | 31 sw/source/core/edit/edfld.cxx | 6 sw/source/core/fields/reffld.cxx | 4 sw/source/core/frmedt/feshview.cxx | 8 sw/source/core/inc/doctxm.hxx | 2 sw/source/core/inc/sectfrm.hxx | 4 sw/source/core/layout/frmtool.cxx | 13 sw/source/core/layout/sectfrm.cxx | 11 sw/source/core/layout/trvlfrm.cxx | 2 sw/source/core/swg/SwXMLTextBlocks1.cxx | 16 sw/source/core/text/frmform.cxx | 10 sw/source/core/text/inftxt.cxx | 3 sw/source/core/txtnode/ndtxt.cxx | 34 sw/source/core/txtnode/thints.cxx | 8 sw/source/core/unocore/unochart.cxx | 6 sw/source/filter/ww8/docxattributeoutput.cxx | 33 sw/source/filter/ww8/wrtw8sty.cxx | 28 sw/source/filter/ww8/wrtww8.hxx | 4 sw/source/ui/dbui/dbinsdlg.cxx | 4 sw/source/uibase/dochdl/swdtflvr.cxx | 6 sw/source/uibase/docvw/AnnotationWin2.cxx | 11 sw/source/uibase/docvw/OverlayRanges.hxx | 1 sw/source/uibase/docvw/PostItMgr.cxx | 3 sw/source/uibase/docvw/ShadowOverlayObject.hxx | 4 sw/source/uibase/docvw/edtwin.cxx | 13 sw/source/uibase/fldui/fldmgr.cxx | 53 sw/source/uibase/inc/conttree.hxx | 3 sw/source/uibase/inc/wrtsh.hxx | 2 sw/source/uibase/utlui/content.cxx | 68 sw/source/uibase/wrtsh/wrtsh2.cxx | 8 sw/uiconfig/swriter/ui/gotopagedialog.ui | 1 tools/source/datetime/ttime.cxx | 5 translations | 2 uitest/impress_tests/drawinglayer.py | 8 unotools/source/ucbhelper/xtempfile.cxx | 6 vcl/headless/svpgdi.cxx | 7 vcl/inc/win/salgdi.h | 4 vcl/inc/win/winlayout.hxx | 6 vcl/qa/cppunit/pdfexport/data/link-wrong-page-partial.odg |binary vcl/qa/cppunit/pdfexport/pdfexport.cxx | 28 vcl/qt5/Qt5Widget.cxx | 8 vcl/source/app/salvtables.cxx | 13 vcl/source/app/svdata.cxx | 17 vcl/source/control/field.cxx | 4 vcl/source/treelist/treelistbox.cxx | 18 vcl/uiconfig/ui/printdialog.ui | 1 vcl/unx/gtk3/gtkinst.cxx | 103 vcl/unx/gtk3/gtkobject.cxx | 5 vcl/unx/gtk3/gtksalmenu.cxx | 1 vcl/win/gdi/salfont.cxx | 32 vcl/win/gdi/winlayout.cxx | 38 writerfilter/source/dmapper/StyleSheetTable.cxx | 6 xmlsecurity/source/gpg/SecurityEnvironment.hxx | 3 xmlsecurity/source/helper/ooxmlsecparser.hxx | 1 xmlsecurity/source/helper/xsecparser.hxx | 1 xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx | 6 xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx | 6 223 files changed, 6582 insertions(+), 3596 deletions(-)
New commits: commit 586cec3019b28c0e936ec5976616caaf03254a01 Merge: c1f57e52a8d2 422e0ad9fe10 Author: Thorsten Behrens <[email protected]> AuthorDate: Sat Feb 12 12:17:20 2022 +0100 Commit: Thorsten Behrens <[email protected]> CommitDate: Sat Feb 12 12:17:20 2022 +0100 Merge remote-tracking branch 'origin/libreoffice-7-2' into feature/cib_contract6721c Update to upstream branch HEAD for 7.2.6 pre commit 422e0ad9fe102ac44466acc6a1748f967d61246b Author: Caolán McNamara <[email protected]> AuthorDate: Fri Feb 11 14:54:45 2022 +0000 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Fri Feb 11 19:57:23 2022 +0100 Resolves: tdf#147325 "Edit in SQL View" should accept tab Change-Id: I286281c317c30e5c189747f2d4844a0d5dd0828f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129830 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/dbaccess/source/ui/querydesign/QueryTextView.cxx b/dbaccess/source/ui/querydesign/QueryTextView.cxx index 600f18c20300..653d9c5f2952 100644 --- a/dbaccess/source/ui/querydesign/QueryTextView.cxx +++ b/dbaccess/source/ui/querydesign/QueryTextView.cxx @@ -40,6 +40,7 @@ OQueryTextView::OQueryTextView(OQueryContainerWindow* pParent, OQueryController& m_xSQL->DisableInternalUndo(); m_xSQL->SetHelpId(HID_CTL_QRYSQLEDIT); m_xSQL->SetModifyHdl(LINK(this, OQueryTextView, ModifyHdl)); + m_xSQL->SetAcceptsTab(true); m_timerUndoActionCreation.SetTimeout(1000); m_timerUndoActionCreation.SetInvokeHandler(LINK(this, OQueryTextView, OnUndoActionTimer)); commit 63fcec3105b060cffde5e94fe688c8a59418e4c0 Author: Caolán McNamara <[email protected]> AuthorDate: Fri Jan 28 11:34:23 2022 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Feb 11 17:53:34 2022 +0100 use our own tempfile mechanism Change-Id: Ie7853ea8bd083d1056872cfad4323ff6cede235f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129071 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit 45c15e1112e03b8b211ed0968ed1b16d5ed4ddfe) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129758 diff --git a/hwpfilter/source/htags.cxx b/hwpfilter/source/htags.cxx index d0a7d772ce15..7ff67b8b2016 100644 --- a/hwpfilter/source/htags.cxx +++ b/hwpfilter/source/htags.cxx @@ -19,6 +19,9 @@ #include "precompile.h" +#include <o3tl/char16_t2wchar_t.hxx> +#include <unotools/tempfile.hxx> + #include <string.h> #include "hwplib.h" @@ -106,27 +109,20 @@ void OlePicture::Read(HWPFile & hwpf) delete [] data; return; } - FILE *fp; - char tname[200]; - wchar_t wtname[200]; - tmpnam(tname); - if (nullptr == (fp = fopen(tname, "wb"))) - { - delete [] data; - return; - } - fwrite(data, size, 1, fp); + + utl::TempFile aTempFile; + aTempFile.EnableKillingFile(); + + SvFileStream aOutputStream(aTempFile.GetURL(), StreamMode::WRITE); + aOutputStream.WriteBytes(data, size); delete [] data; - fclose(fp); - MultiByteToWideChar(CP_ACP, 0, tname, -1, wtname, 200); - if( StgOpenStorage(wtname, nullptr, + aOutputStream.Close(); + if( StgOpenStorage(o3tl::toW(aTempFile.GetFileName().getStr()), nullptr, STGM_READWRITE|STGM_SHARE_EXCLUSIVE|STGM_TRANSACTED, nullptr, 0, &pis) != S_OK ) { pis = nullptr; - unlink(tname); return; } - unlink(tname); #else hwpf.SkipBlock(size); #endif commit d0df2d899c602f165bfcc9239b3ba6504069671c Author: Stephan Bergmann <[email protected]> AuthorDate: Tue Feb 8 20:57:10 2022 +0100 Commit: Stephan Bergmann <[email protected]> CommitDate: Fri Feb 11 15:13:55 2022 +0100 Remove COMPILER_PLUGINS_CXX from distro-configs/Jenkins/linux_clang_dbgutil_64 It had originally been added with e754d0931ca75403647cc16100edd98e7e5ceadb "Remove CXXFLAGS_CXX11 from Clang plugin compilation", so "if COMPILER_PLUGINS_CXX is not set, simply default it to g++ instead of trying to construct an acceptable CLANGCXX value from CXX (which would be Clang). (The problem with using Clang without CXXFLAGS_CXX11 is that Clang, unlike GCC, typically defaults to C++03, but building compilerplugins requires C++11 at least. That would cause e.g. the Gerrit/Jenkins linux_clang_dbgutil_64 builds to fail---but which also needs COMPILER_PLUGINS_CXX to be explicitly set to 'g++ -std=c++11' as GCC on those machines is still 4.8.5 defaulting to C++03." But that should no longer be an issue with contemporary Clang, which defaults to >= C++11 for quite a while now. On the other hand, when trying to update the Clang used by <https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/> from 5.0.2 to 12.0.1, and adding > export COMPILER_PLUGINS_CXX="ccache $LODE_HOME"/opt_private/gcc-7.3.0/bin/g++ to <https://git.libreoffice.org/lode/+/refs/heads/master/bin/linux_clang_dbgutil_64.env> (where this setting arguably belongs, rather than in distro-configs/Jenkins/linux_clang_dbgutil_64, anyway), which is needed because that version of Clang (and thus loplugin built against it) cannot be built with the baseline CentOS 7 GCC 4.8.5, that setting of COMPILER_PLUGINS_CXX got overriden by the one in distro-configs/Jenkins/linux_clang_dbgutil_64, and configure failed due to > configure:21069: checking clang/Basic/SourceLocation.h usability > configure:21069: ccache g++ -std=c++11 -c -I/home/tdf/sberg/lode/opt_private/clang-llvmorg-12.0.1/include -std=c++14 -fno-exceptions -fno-rtti -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/\ > tdf/sberg/lode/packages/llvm-llvmorg-12.0.1.src/clang/include -I/home/tdf/sberg/lode/opt_private/clang-llvmorg-12.0.1/include -std=c++14 -fno-exceptions -fno-rtti -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_L\ > IMIT_MACROS -I/home/tdf/sberg/lode/packages/llvm-llvmorg-12.0.1.src/clang/include conftest.cpp >&5 > g++: error: unrecognized command line option '-std=c++14' > g++: error: unrecognized command line option '-std=c++14' > configure:21069: $? = 1 Change-Id: Ic33b116090f648ef645febb4fbb28ceb6a2a7cae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129692 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit a45f057d9d2bcd28e6b4342bbdf45fec38a43ac1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129763 Reviewed-by: Michael Stahl <[email protected]> diff --git a/distro-configs/Jenkins/linux_clang_dbgutil_64 b/distro-configs/Jenkins/linux_clang_dbgutil_64 index 0c83b89bcfe1..b2c041a55c5d 100644 --- a/distro-configs/Jenkins/linux_clang_dbgutil_64 +++ b/distro-configs/Jenkins/linux_clang_dbgutil_64 @@ -1,6 +1,5 @@ --enable-dbgutil --enable-compiler-plugins -COMPILER_PLUGINS_CXX=ccache g++ -std=c++11 --enable-kf5 --disable-compiler-plugins-analyzer-pch --disable-dependency-tracking commit bfff5c7dadf9628926fbb5cd0394fcfc4464eb0b Author: Caolán McNamara <[email protected]> AuthorDate: Fri Jan 28 15:02:54 2022 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Feb 11 14:53:38 2022 +0100 avoid dangling tmp files in hwp import if there is embedded data use office-binary-data to transport it instead of a temp file https: //issues.oasis-open.org/browse/OFFICE-3933 Change-Id: Ia1cebf0770c99210df09f03dbb507451d9cf7764 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129076 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit e95d5d5666505cb05e9660f24f6c7ae039451ef8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129759 diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx index 3b69da304af4..ec3cea113b69 100644 --- a/hwpfilter/source/hwpreader.cxx +++ b/hwpfilter/source/hwpreader.cxx @@ -515,62 +515,28 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo ) if( prop->flag >> 18 & 0x01 ) { padd( "draw:name", sXML_CDATA, ascii(Int2Str(hdo->index, "fillimage%d", buf))); - if( !prop->pictype ) + + EmPicture *emp = nullptr; + if (prop->pictype && strlen(prop->szPatternFile) > 3) + emp = hwpfile.GetEmPictureByName(prop->szPatternFile); + if (!emp) { padd( "xlink:href", sXML_CDATA, fromHcharStringToOUString(hstr2ucsstr(kstr2hstr( reinterpret_cast<uchar const *>(urltounix(prop->szPatternFile).c_str())).c_str()))); + padd( "xlink:type", sXML_CDATA, "simple"); + padd( "xlink:show", sXML_CDATA, "embed"); + padd( "xlink:actuate", sXML_CDATA, "onLoad"); } - else - { - EmPicture *emp = nullptr; - if ( strlen( prop->szPatternFile ) > 3) - emp = hwpfile.GetEmPictureByName(prop->szPatternFile); - if( emp ) - { - char filename[128+17+9]; - char dirname[128]; - int fd; -#ifdef _WIN32 - GetTempPathA(sizeof(dirname), dirname); - sprintf(filename, "%s%s",dirname, emp->name); - if( (fd = open( filename , _O_CREAT | _O_WRONLY | _O_BINARY , 0666)) >= 0 ) -#else - strcpy(dirname, "/tmp/"); - sprintf(filename, "%s%s", dirname, emp->name); - if( (fd = open( filename , O_CREAT | O_WRONLY , 0666)) >= 0 ) -#endif - { - size_t nWritten = write(fd, emp->data.get(), emp->size); - OSL_VERIFY(nWritten == emp->size); - close(fd); - } -#ifdef _WIN32 - int j; - for(j = 0 ; j < static_cast<int>(strlen( dirname )) ; j++) - { - if( dirname[j] == '\\' ) buf[j] = '/'; - else buf[j] = dirname[j]; - } - buf[j] = '\0'; - sprintf(filename, "file:///%s%s",buf, emp->name ); -#else - sprintf(filename, "file://%s%s",dirname, emp->name ); -#endif - padd( "xlink:href", sXML_CDATA, ascii(filename)); - } - else - { - padd( "xlink:href", sXML_CDATA, - fromHcharStringToOUString(hstr2ucsstr(kstr2hstr( reinterpret_cast<uchar const *>(urltounix(prop->szPatternFile).c_str())).c_str()))); - } - - } - padd( "xlink:type", sXML_CDATA, "simple"); - padd( "xlink:show", sXML_CDATA, "embed"); - padd( "xlink:actuate", sXML_CDATA, "onLoad"); rstartEl( "draw:fill-image", mxList); mxList->clear(); + if (emp) + { + rstartEl("office:binary-data", mxList); + std::shared_ptr<char> pStr(base64_encode_string(emp->data.get(), emp->size), Free<char>()); + rchars(ascii(pStr.get())); + rendEl("office:binary-data"); + } rendEl( "draw:fill-image"); } /* If there is a gradient, when a bitmap file is present, this is the first. */ commit 8e94ec9d93fe3e1057fb1aaa2f0419114c4ea11c Author: Caolán McNamara <[email protected]> AuthorDate: Thu Feb 10 10:53:27 2022 +0000 Commit: Michael Stahl <[email protected]> CommitDate: Fri Feb 11 14:32:50 2022 +0100 limit style export to words max style count and use std::vector LIBREOFFICE-U78X8I5G Change-Id: I436b4c13a4ce07f5e9e5d374163bc4de55cd2cde Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129766 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> diff --git a/sw/source/filter/ww8/wrtw8sty.cxx b/sw/source/filter/ww8/wrtw8sty.cxx index d6a09917715c..966309420b01 100644 --- a/sw/source/filter/ww8/wrtw8sty.cxx +++ b/sw/source/filter/ww8/wrtw8sty.cxx @@ -151,13 +151,13 @@ MSWordStyles::MSWordStyles( MSWordExportBase& rExport, bool bListStyles ) m_rExport.m_rDoc.GetFootnoteInfo().GetAnchorCharFormat( m_rExport.m_rDoc ); m_rExport.m_rDoc.GetFootnoteInfo().GetCharFormat( m_rExport.m_rDoc ); } - sal_uInt16 nAlloc = WW8_RESERVED_SLOTS + m_rExport.m_rDoc.GetCharFormats()->size() - 1 + + sal_uInt32 nAlloc = WW8_RESERVED_SLOTS + m_rExport.m_rDoc.GetCharFormats()->size() - 1 + m_rExport.m_rDoc.GetTextFormatColls()->size() - 1 + (bListStyles ? m_rExport.m_rDoc.GetNumRuleTable().size() - 1 : 0); + nAlloc = std::min<sal_uInt32>(nAlloc, MSWORD_MAX_STYLES_LIMIT); // somewhat generous ( free for up to 15 ) - m_pFormatA.reset( new SwFormat*[ nAlloc ] ); - memset( m_pFormatA.get(), 0, nAlloc * sizeof( SwFormat* ) ); + m_aFormatA.resize(nAlloc, nullptr); memset( m_aHeadingParagraphStyles, -1 , MAXLEVEL * sizeof( sal_uInt16)); BuildStylesTable(); @@ -173,7 +173,7 @@ sal_uInt16 MSWordStyles::GetSlot( const SwFormat* pFormat ) const { sal_uInt16 n; for ( n = 0; n < m_nUsedSlots; n++ ) - if ( m_pFormatA[n] == pFormat ) + if ( m_aFormatA[n] == pFormat ) return n; return 0xfff; // 0xfff: WW: zero } @@ -283,19 +283,19 @@ void MSWordStyles::BuildStylesTable() const SwCharFormats& rArr = *m_rExport.m_rDoc.GetCharFormats(); // first CharFormat // the default character style ( 0 ) will not be outputted ! - for( size_t n = 1; n < rArr.size(); n++ ) + for( size_t n = 1; n < rArr.size() && m_nUsedSlots < MSWORD_MAX_STYLES_LIMIT; n++ ) { SwCharFormat* pFormat = rArr[n]; - m_pFormatA[ BuildGetSlot( *pFormat ) ] = pFormat; + m_aFormatA[ BuildGetSlot( *pFormat ) ] = pFormat; } const SwTextFormatColls& rArr2 = *m_rExport.m_rDoc.GetTextFormatColls(); // then TextFormatColls // the default character style ( 0 ) will not be outputted ! - for( size_t n = 1; n < rArr2.size(); n++ ) + for( size_t n = 1; n < rArr2.size() && m_nUsedSlots < MSWORD_MAX_STYLES_LIMIT; n++ ) { SwTextFormatColl* pFormat = rArr2[n]; sal_uInt16 nId = BuildGetSlot( *pFormat ) ; - m_pFormatA[ nId ] = pFormat; + m_aFormatA[ nId ] = pFormat; if ( pFormat->IsAssignedToListLevelOfOutlineStyle() ) { int nLvl = pFormat->GetAssignedOutlineStyleLevel() ; @@ -308,7 +308,7 @@ void MSWordStyles::BuildStylesTable() return; const SwNumRuleTable& rNumRuleTable = m_rExport.m_rDoc.GetNumRuleTable(); - for (size_t i = 0; i < rNumRuleTable.size(); ++i) + for (size_t i = 0; i < rNumRuleTable.size() && m_nUsedSlots < MSWORD_MAX_STYLES_LIMIT; ++i) { const SwNumRule* pNumRule = rNumRuleTable[i]; if (pNumRule->IsAutoRule() || pNumRule->GetName().startsWith("WWNum")) @@ -348,8 +348,8 @@ void MSWordStyles::BuildStyleIds() for (sal_uInt16 n = 1; n < m_nUsedSlots; ++n) { OUString aName; - if(m_pFormatA[n]) - aName = m_pFormatA[n]->GetName(); + if (m_aFormatA[n]) + aName = m_aFormatA[n]->GetName(); else if (m_aNumRules.find(n) != m_aNumRules.end()) aName = m_aNumRules[n]->GetName(); @@ -613,8 +613,8 @@ void MSWordStyles::OutputStyle( SwFormat* pFormat, sal_uInt16 nPos ) for ( int nSuffix = 0; ; ++nSuffix ) { bool clash=false; for ( sal_uInt16 n = 1; n < m_nUsedSlots; ++n ) - if ( m_pFormatA[n] && - m_pFormatA[n]->GetName().equalsIgnoreAsciiCase(aName) ) + if ( m_aFormatA[n] && + m_aFormatA[n]->GetName().equalsIgnoreAsciiCase(aName) ) { clash = true; break; @@ -703,7 +703,7 @@ void MSWordStyles::OutputStylesTable() if (m_aNumRules.find(n) != m_aNumRules.end()) OutputStyle(m_aNumRules[n], n); else - OutputStyle( m_pFormatA[n], n ); + OutputStyle(m_aFormatA[n], n); } m_rExport.AttrOutput().EndStyles( m_nUsedSlots ); diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx index cad77799abe5..78b149ffd31b 100644 --- a/sw/source/filter/ww8/wrtww8.hxx +++ b/sw/source/filter/ww8/wrtww8.hxx @@ -1571,7 +1571,7 @@ class MSWordStyles { MSWordExportBase& m_rExport; sal_uInt16 m_aHeadingParagraphStyles[MAXLEVEL]; - std::unique_ptr<SwFormat*[]> m_pFormatA; ///< Slot <-> Character and paragraph style array (0 for list styles). + std::vector<SwFormat*> m_aFormatA; ///< Slot <-> Character and paragraph style array (0 for list styles). sal_uInt16 m_nUsedSlots; bool m_bListStyles; ///< If list styles are requested to be exported as well. std::map<sal_uInt16, const SwNumRule*> m_aNumRules; ///< Slot <-> List style map. @@ -1622,7 +1622,7 @@ public: /// Get styleId of the nId-th style (nId is its position in pFormatA). OString const & GetStyleId(sal_uInt16 nId) const; - const SwFormat* GetSwFormat(sal_uInt16 nId) const { return m_pFormatA[nId]; } + const SwFormat* GetSwFormat(sal_uInt16 nId) const { return m_aFormatA[nId]; } /// Get numbering rule of the nId-th style const SwNumRule* GetSwNumRule(sal_uInt16 nId) const; sal_uInt16 GetHeadingParagraphStyleId(sal_uInt16 nLevel) const { return m_aHeadingParagraphStyles[ nLevel ]; } commit 41626006aed655ef35c40312414f44fcad69d17a Author: Renwa Hiwa <[email protected]> AuthorDate: Wed Feb 9 10:02:14 2022 +0000 Commit: Xisco Fauli <[email protected]> CommitDate: Fri Feb 11 09:32:47 2022 +0100 Better handling of inetlocs LIBREOFFICE-39BBF6YM Change-Id: Iadae856a524a0ccda238785f60c8f3459e7b6157 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129714 Reviewed-by: Stephan Bergmann <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> (cherry picked from commit 7484c3393dc2216239cdb730983725fe2e08e730) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129623 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> diff --git a/shell/source/unix/exec/shellexec.cxx b/shell/source/unix/exec/shellexec.cxx index 87b78fe1d882..9e26cc64b385 100644 --- a/shell/source/unix/exec/shellexec.cxx +++ b/shell/source/unix/exec/shellexec.cxx @@ -138,6 +138,7 @@ void SAL_CALL ShellExec::execute( const OUString& aCommand, const OUString& aPar "XSystemShellExecute.execute, cannot process <" + aCommand + ">", {}, 0); } else if (pathname.endsWithIgnoreAsciiCase(".class") || pathname.endsWithIgnoreAsciiCase(".fileloc") + || pathname.endsWithIgnoreAsciiCase(".inetloc") || pathname.endsWithIgnoreAsciiCase(".jar")) { dir = true; commit 454436a92e19aa3cc02b001bd61befe19eb02966 Author: Jim Raykowski <[email protected]> AuthorDate: Thu Oct 21 09:09:51 2021 -0800 Commit: Michael Stahl <[email protected]> CommitDate: Wed Feb 9 11:08:17 2022 +0100 SwNavigator: Improve detection of when the content tree needs refreshed Makes the check that determines if the content tree needs refreshed be done only when the content tree is visible AND (the document has been modified since previous check OR an action has been made within the content tree that requires the tree to be refreshed) AND there is no writer shell action pending AND the content tree is not in a DnD. Change-Id: Ie67472d44573df6afafb08b7b3229a4e07fc9db5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124036 Tested-by: Jenkins Reviewed-by: Jim Raykowski <[email protected]> (cherry picked from commit 5c5f36aa73b11356a3bff0a9cc8b5fe8d1a776b9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129616 Tested-by: Gabor Kelemen <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/sw/source/uibase/inc/conttree.hxx b/sw/source/uibase/inc/conttree.hxx index f572bc76a983..5a52954e3da4 100644 --- a/sw/source/uibase/inc/conttree.hxx +++ b/sw/source/uibase/inc/conttree.hxx @@ -124,7 +124,8 @@ class SwContentTree final : public SfxListener // outline root mode drag & drop std::vector<std::unique_ptr<weld::TreeIter>> m_aDndOutlinesSelected; - bool m_bIgnoreViewChange = false; + bool m_bDocHasChanged = true; + bool m_bIgnoreDocChange = false; // used to prevent tracking update /** * Before any data will be deleted, the last active entry has to be found. diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 5985e21c41dd..31508a7aedf1 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -2388,7 +2388,7 @@ void SwContentTree::Display( bool bActive ) } } - if (!m_bIgnoreViewChange && GetEntryCount() == nOldEntryCount) + if (!m_bIgnoreDocChange && GetEntryCount() == nOldEntryCount) { m_xTreeView->vadjustment_set_value(nOldScrollPos); } @@ -2917,9 +2917,9 @@ void SwContentTree::Notify(SfxBroadcaster & rBC, SfxHint const& rHint) break; } case SfxHintId::DocChanged: - if (!m_bIgnoreViewChange) + if (!m_bIgnoreDocChange) { - m_bViewHasChanged = true; + m_bDocHasChanged = true; TimerUpdate(&m_aUpdTimer); } break; @@ -2964,7 +2964,7 @@ void SwContentTree::ExecCommand(std::string_view rCmd, bool bOutlineWithChildren return; } - m_bIgnoreViewChange = true; + m_bIgnoreDocChange = true; SwWrtShell *const pShell = GetWrtShell(); sal_Int8 nActOutlineLevel = m_nOutlineLevel; @@ -3253,7 +3253,7 @@ void SwContentTree::ExecCommand(std::string_view rCmd, bool bOutlineWithChildren } } } - m_bIgnoreViewChange = false; + m_bIgnoreDocChange = false; } void SwContentTree::ShowTree() @@ -3333,37 +3333,43 @@ static void lcl_SelectDrawObjectByName(weld::TreeView& rContentTree, std::u16str /** No idle with focus or while dragging */ IMPL_LINK_NOARG(SwContentTree, TimerUpdate, Timer *, void) { + // No need to update if content tree is not visible + if (!m_xTreeView->is_visible()) + return; + // No update while focus is not in document. // No update while drag and drop. // Query view because the Navigator is cleared too late. SwView* pView = GetParentWindow()->GetCreateView(); if(pView && pView->GetWrtShellPtr() && pView->GetWrtShellPtr()->GetWin() && - (pView->GetWrtShellPtr()->GetWin()->HasFocus() || m_bViewHasChanged) && + (pView->GetWrtShellPtr()->GetWin()->HasFocus() || m_bDocHasChanged || m_bViewHasChanged) && !IsInDrag() && !pView->GetWrtShellPtr()->ActionPend()) { - m_bViewHasChanged = false; - m_bIsIdleClear = false; - SwWrtShell* pActShell = pView->GetWrtShellPtr(); - if (State::CONSTANT == m_eState && !lcl_FindShell(m_pActiveShell)) - { - SetActiveShell(pActShell); - GetParentWindow()->UpdateListBox(); - } - - if (State::ACTIVE == m_eState && pActShell != GetWrtShell()) - { - SetActiveShell(pActShell); - } - else if ((State::ACTIVE == m_eState || (State::CONSTANT == m_eState && pActShell == GetWrtShell())) && - HasContentChanged()) + if (m_bDocHasChanged || m_bViewHasChanged) { - FindActiveTypeAndRemoveUserData(); - Display(true); + SwWrtShell* pActShell = pView->GetWrtShellPtr(); + if (State::CONSTANT == m_eState && !lcl_FindShell(m_pActiveShell)) + { + SetActiveShell(pActShell); + GetParentWindow()->UpdateListBox(); + } + if (State::ACTIVE == m_eState && pActShell != GetWrtShell()) + { + SetActiveShell(pActShell); + } + else if ((State::ACTIVE == m_eState || (State::CONSTANT == m_eState && pActShell == GetWrtShell())) && + HasContentChanged()) + { + FindActiveTypeAndRemoveUserData(); + Display(true); + } } - UpdateTracking(); + m_bIsIdleClear = false; + m_bDocHasChanged = false; + m_bViewHasChanged = false; } - else if (!pView && State::ACTIVE == m_eState && !m_bIsIdleClear) + else if (!pView && State::ACTIVE == m_eState && !m_bIsIdleClear) // this block seems never to be entered { if(m_pActiveShell) { @@ -3379,10 +3385,10 @@ void SwContentTree::UpdateTracking() if (State::HIDDEN == m_eState || !m_pActiveShell) return; - // m_bIgnoreViewChange is set on delete - if (m_bIgnoreViewChange) + // m_bIgnoreDocChange is set on delete and outline visibility toggle + if (m_bIgnoreDocChange) { - m_bIgnoreViewChange = false; + m_bIgnoreDocChange = false; return; } @@ -3995,7 +4001,7 @@ void SwContentTree::ExecuteContextMenuAction(const OString& rSelectedPopupEntry) case SHOW_OUTLINE_CONTENT_VISIBILITY: { m_pActiveShell->EnterStdMode(); - m_bIgnoreViewChange = true; + m_bIgnoreDocChange = true; SwOutlineContent* pCntFirst = reinterpret_cast<SwOutlineContent*>(m_xTreeView->get_id(*xFirst).toInt64()); // toggle the outline node outline content visible attribute @@ -4032,7 +4038,7 @@ void SwContentTree::ExecuteContextMenuAction(const OString& rSelectedPopupEntry) else m_pActiveShell->GotoOutline(pCntFirst->GetOutlinePos()); grab_focus(); - m_bIgnoreViewChange = false; + m_bIgnoreDocChange = false; } break; case 11: @@ -4324,7 +4330,7 @@ void SwContentTree::EditEntry(const weld::TreeIter& rEntry, EditEntryMode nMode) sal_uInt16 nSlot = 0; if(EditEntryMode::DELETE == nMode) - m_bIgnoreViewChange = true; + m_bIgnoreDocChange = true; uno::Reference< container::XNameAccess > xNameAccess, xSecond, xThird; switch(nType) commit 23821b60107d4d2e46f8f0e17b016bc84379b29e Author: Eike Rathke <[email protected]> AuthorDate: Sat Feb 5 22:43:13 2022 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Mon Feb 7 17:06:41 2022 +0100 Resolves: tdf#74577 tdf#92960 Create missing offsets in very outer table ... if local table is outer table. Change-Id: I5996609264f4ad9efa8d76a8d0ab730bf1dded24 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129540 Reviewed-by: Eike Rathke <[email protected]> Tested-by: Jenkins (cherry picked from commit 8a9b870a40c41c7cae6e43452b593804fa17f831) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129550 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> (cherry picked from commit 2ea7055ea6115051a92c66a439b02d83bb067db7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129561 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx index 5ea874ac8841..7e735054a9db 100644 --- a/sc/source/filter/html/htmlpars.cxx +++ b/sc/source/filter/html/htmlpars.cxx @@ -755,6 +755,16 @@ void ScHTMLLayoutParser::SetWidths() sal_uInt16 nMax = static_cast<sal_uInt16>(pLocalColOffset->back()); if ( aPageSize.Width() < nMax ) aPageSize.setWidth( nMax ); + if (nTableLevel == 0) + { + // Local table is very outer table, create missing offsets. + for (auto it = pLocalColOffset->begin(); it != pLocalColOffset->end(); ++it) + { + // Only exact offsets, do not use MakeColNoRef(). + if (maColOffset.find(*it) == maColOffset.end()) + maColOffset.insert(*it); + } + } } for ( size_t i = nFirstTableCell, nListSize = maList.size(); i < nListSize; ++i ) { commit 3fa7c7618500bf5914e19cb3714f301f7bff305a Author: Mike Kaganski <[email protected]> AuthorDate: Sun Jan 30 14:12:46 2022 +0300 Commit: Xisco Fauli <[email protected]> CommitDate: Mon Feb 7 17:06:31 2022 +0100 tdf#132388: reimplement fix for tdf#142487 Each call to css::i18n::XTextSearch::SearchForward transliterates input string, making performance of repeated calls unacceptable. So prepare the transliterated strings once, and use the offset sequence to map search results to indices into original string. Change-Id: Ie08dd5a408aca9a950067db285a480b41a3f9a16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129162 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129208 (cherry picked from commit 8efa3dd53aaf98ed258c9f340800504c9e874b78) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129257 diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index e3a30f324525..d4a4ce74ed0a 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -68,7 +68,7 @@ #include <o3tl/char16_t2wchar_t.hxx> // include search util -#include <com/sun/star/util/SearchFlags.hpp> +#include <com/sun/star/i18n/Transliteration.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <i18nutil/searchopt.hxx> #include <unotools/textsearch.hxx> @@ -1269,6 +1269,7 @@ void SbRtl_Replace(StarBASIC *, SbxArray & rPar, bool) return; } } + --lStartPos; // Make it 0-based sal_Int32 lCount = -1; if (nArgCount >= 5) @@ -1304,40 +1305,52 @@ void SbRtl_Replace(StarBASIC *, SbxArray & rPar, bool) } const OUString aExpStr = rPar.Get(1)->GetOUString(); - const OUString aFindStr = rPar.Get(2)->GetOUString(); + OUString aFindStr = rPar.Get(2)->GetOUString(); const OUString aReplaceStr = rPar.Get(3)->GetOUString(); - const sal_Int32 nExpStrLen = aExpStr.getLength(); - const sal_Int32 nFindStrLen = aFindStr.getLength(); - // tdf#142487 - use utl::TextSearch in order to implement the replace algorithm - i18nutil::SearchOptions2 aSearchOptions; - aSearchOptions.searchString = aFindStr; - aSearchOptions.AlgorithmType2 = util::SearchAlgorithms2::ABSOLUTE; + OUString aSrcStr(aExpStr); + sal_Int32 nPrevPos = std::min(lStartPos, aSrcStr.getLength()); + css::uno::Sequence<sal_Int32> aOffset; if (bCaseInsensitive) - aSearchOptions.transliterateFlags |= TransliterationFlags::IGNORE_CASE; - utl::TextSearch textSearch(aSearchOptions); + { + // tdf#132389: case-insensitive operation for non-ASCII characters + // tdf#142487: use css::i18n::Transliteration to correctly handle ß -> ss expansion + // tdf#132388: We can't use utl::TextSearch (css::i18n::XTextSearch), because each call to + // css::i18n::XTextSearch::SearchForward transliterates input string, making + // performance of repeated calls unacceptable + auto xTrans = css::i18n::Transliteration::create(comphelper::getProcessComponentContext()); + xTrans->loadModule(css::i18n::TransliterationModules_IGNORE_CASE, {}); + aFindStr = xTrans->transliterate(aFindStr, 0, aFindStr.getLength(), aOffset); + aSrcStr = xTrans->transliterate(aSrcStr, nPrevPos, aSrcStr.getLength() - nPrevPos, aOffset); + nPrevPos = std::distance(aOffset.begin(), + std::lower_bound(aOffset.begin(), aOffset.end(), nPrevPos)); + } + + auto getExpStrPos = [aOffset, nExpLen = aExpStr.getLength()](sal_Int32 nSrcStrPos) -> sal_Int32 + { + assert(!aOffset.hasElements() || aOffset.getLength() >= nSrcStrPos); + if (!aOffset.hasElements()) + return nSrcStrPos; + return aOffset.getLength() > nSrcStrPos ? aOffset[nSrcStrPos] : nExpLen; + }; // Note: the result starts from lStartPos, removing everything to the left. See i#94895. - sal_Int32 nPrevPos = std::min(lStartPos - 1, nExpStrLen); - OUStringBuffer sResult(nExpStrLen - nPrevPos); + OUStringBuffer sResult(aSrcStr.getLength() - nPrevPos); sal_Int32 nCounts = 0; while (lCount == -1 || lCount > nCounts) { - sal_Int32 nStartPos = nPrevPos; - sal_Int32 aEndPos = aExpStr.getLength(); - if (textSearch.SearchForward(aExpStr, &nStartPos, &aEndPos)) - { - sResult.append(aExpStr.getStr() + nPrevPos, nStartPos - nPrevPos); - sResult.append(aReplaceStr); - nPrevPos = nStartPos + nFindStrLen; - nCounts++; - } - else - { + sal_Int32 nPos = aSrcStr.indexOf(aFindStr, nPrevPos); + if (nPos < 0) break; - } + + lStartPos = getExpStrPos(nPrevPos); + sResult.append(aExpStr.getStr() + lStartPos, getExpStrPos(nPos) - lStartPos); + sResult.append(aReplaceStr); + nPrevPos = nPos + aFindStr.getLength(); + nCounts++; } - sResult.append(aExpStr.getStr() + nPrevPos, nExpStrLen - nPrevPos); + lStartPos = getExpStrPos(nPrevPos); + sResult.append(aExpStr.getStr() + lStartPos, aExpStr.getLength() - lStartPos); rPar.Get(0)->PutString(sResult.makeStringAndClear()); } commit de72b5f7dd3893ef0d4655cb7943ac0e8ed3c81d Author: Caolán McNamara <[email protected]> AuthorDate: Sat Feb 5 20:38:53 2022 +0000 Commit: Michael Stahl <[email protected]> CommitDate: Mon Feb 7 15:14:06 2022 +0100 qt5: crash entering ë with french IM which for me with french IM enabled on my keyboard is physically AltGr+[ (crashes here on trying to underline ¨ with a length of 2) then e. Change-Id: Id59bd84af2ab4d8403b11b1a13efb2bbdb608199 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129539 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx index 6cb548c0d028..02bc22ee3d44 100644 --- a/vcl/qt5/Qt5Widget.cxx +++ b/vcl/qt5/Qt5Widget.cxx @@ -664,7 +664,15 @@ void Qt5Widget::inputMethodEvent(QInputMethodEvent* pEvent) if (aCharFormat.fontStrikeOut()) aETIP |= ExtTextInputAttr::RedText; for (int j = rAttr.start; j < rAttr.start + rAttr.length; j++) + { + SAL_WARN_IF(j >= static_cast<int>(aTextAttrs.size()), "vcl.qt5", + "QInputMethodEvent::Attribute out of range. Broken range: " + << rAttr.start << "," << rAttr.start + rAttr.length + << " Legal range: 0," << aTextAttrs.size()); + if (j >= static_cast<int>(aTextAttrs.size())) + break; aTextAttrs[j] = aETIP; + } } break; } commit 4aca1392079f16a32d0caeb52a8871163413da09 Author: Caolán McNamara <[email protected]> AuthorDate: Sat Feb 5 19:01:45 2022 +0000 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Sun Feb 6 14:08:58 2022 +0100 Resolves: tdf#147218 label doesn't have use-underline set so the _ is shown to the user, not used to add an underline Change-Id: I2de707a2d1da8d842ef03497f9b8f69d37368f12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129443 Tested-by: Adolfo Jayme Barrientos <[email protected]> Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/vcl/uiconfig/ui/printdialog.ui b/vcl/uiconfig/ui/printdialog.ui index f289f482a544..4084057c6564 100644 --- a/vcl/uiconfig/ui/printdialog.ui +++ b/vcl/uiconfig/ui/printdialog.ui @@ -1036,6 +1036,7 @@ <object class="GtkLabel" id="pagespersheettxt"> <property name="visible">True</property> <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> commit 61339f316ec7a91733b62ca667faeca0b75297e9 Author: Caolán McNamara <[email protected]> AuthorDate: Wed Feb 2 12:59:49 2022 +0000 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Fri Feb 4 15:39:25 2022 +0100 tdf#125849 cannot modify the ruler unit of measure in translated UI Change-Id: Ica74dd5e55d30605ee03affa4b724ffa4ec65b5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129334 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/include/vcl/fieldvalues.hxx b/include/vcl/fieldvalues.hxx index e8f78bd5e119..b00fc5a47128 100644 --- a/include/vcl/fieldvalues.hxx +++ b/include/vcl/fieldvalues.hxx @@ -29,7 +29,8 @@ class LocaleDataWrapper; namespace vcl { -VCL_DLLPUBLIC FieldUnit StringToMetric(const OUString& rMetricString); +VCL_DLLPUBLIC FieldUnit EnglishStringToMetric(const OUString& rEnglishMetricString); + VCL_DLLPUBLIC bool TextToValue(const OUString& rStr, double& rValue, sal_Int64 nBaseValue, sal_uInt16 nDecDigits, const LocaleDataWrapper& rLocaleDataWrapper, FieldUnit eUnit); diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx index e6b57aac5fb7..6b27d7ce722d 100644 --- a/svx/source/dialog/svxruler.cxx +++ b/svx/source/dialog/svxruler.cxx @@ -3257,7 +3257,7 @@ void SvxRuler::MenuSelect(std::string_view ident) if (ident.empty()) return; /* Handler of the context menus for switching the unit of measurement */ - SetUnit(vcl::StringToMetric(OUString::fromUtf8(ident))); + SetUnit(vcl::EnglishStringToMetric(OUString::fromUtf8(ident))); } void SvxRuler::TabMenuSelect(const OString& rIdent) @@ -3338,7 +3338,7 @@ void SvxRuler::Command( const CommandEvent& rCommandEvent ) for ( sal_uInt16 i = nCount; i; --i ) { OString sIdent = xMenu->get_id(i - 1); - FieldUnit eMenuUnit = vcl::StringToMetric(OUString::fromUtf8(sIdent)); + FieldUnit eMenuUnit = vcl::EnglishStringToMetric(OUString::fromUtf8(sIdent)); xMenu->set_active(sIdent, eMenuUnit == eUnit); if( bReduceMetric ) { diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx index 1d1375b24d7b..7d815ad0acc9 100644 --- a/vcl/source/app/svdata.cxx +++ b/vcl/source/app/svdata.cxx @@ -29,6 +29,7 @@ #include <vcl/QueueInfo.hxx> #include <vcl/cvtgrf.hxx> #include <vcl/dockwin.hxx> +#include <vcl/fieldvalues.hxx> #include <vcl/menu.hxx> #include <vcl/print.hxx> #include <vcl/settings.hxx> @@ -277,6 +278,22 @@ const FieldUnitStringList& ImplGetFieldUnits() return pSVData->maCtrlData.maFieldUnitStrings; } +namespace vcl +{ + FieldUnit EnglishStringToMetric(const OUString& rEnglishMetricString) + { + sal_uInt32 nUnits = SAL_N_ELEMENTS(SV_FUNIT_STRINGS); + for (sal_uInt32 i = 0; i < nUnits; ++i) + { + const char *pId = strchr(SV_FUNIT_STRINGS[i].first, '\004'); + assert(pId); + if (rEnglishMetricString.equalsAscii(pId+1)) + return SV_FUNIT_STRINGS[i].second; + } + return FieldUnit::NONE; + } +} + const FieldUnitStringList& ImplGetCleanedFieldUnits() { ImplSVData* pSVData = ImplGetSVData(); diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx index cc5a6330d1a9..281566ed174a 100644 --- a/vcl/source/control/field.cxx +++ b/vcl/source/control/field.cxx @@ -960,7 +960,7 @@ static OUString ImplMetricToString( FieldUnit rUnit ) return OUString(); } -namespace vcl +namespace { FieldUnit StringToMetric(const OUString &rMetricString) { @@ -979,7 +979,7 @@ namespace vcl static FieldUnit ImplMetricGetUnit(const OUString& rStr) { OUString aStr = ImplMetricGetUnitText(rStr); - return vcl::StringToMetric(aStr); + return StringToMetric(aStr); } static FieldUnit ImplMap2FieldUnit( MapUnit meUnit, tools::Long& nDecDigits ) commit 04b4c269fc2e4001eb37c4b2c34a023a44ca6ebe Author: Miklos Vajna <[email protected]> AuthorDate: Wed Feb 2 16:02:19 2022 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Fri Feb 4 09:12:15 2022 +0100 tdf#137920 sw: avoid layout loop when inserting at-char anchored large image Regression from commit d250ca91c79f457102daf4da81446b7f130fb0ee (sw: insert image: set anchor to at-char by default, 2019-11-18), the problem was that the document has 2 pages, the first page would host the anchor of an inserted image and looped while creating/deleting a next page frame when updating the layout on inserting of an image. This problem was less visible before, as the at-para anchor is a different codepath, which was the previous default. The primary problem is that the loop in SwLayAction::Action() assumes that we make progress, so in case m_bAgain is set, then doing the layout again won't re-set m_bAgain, but it happened here. That happens because each iteration calls SwFrame::InsertPage(), followed by a SwPageFrame::DestroyImpl(). Examining the backtrace of the SwPageFrame ctor leads to SwTextFrame::FormatAdjust() which tries to split the text frame only in case it has either a number portion or a text portion, but the check there was incomplete: a "none" number format results in no number portion, leading to this loop. Fix the problem by checking for HasVisibleNumberingOrBullet() before assuming that we can split an empty text frame into two pieces where at least one of them is not empty. (cherry picked from commit 3e9975cf507e24e9c501575c501833164d217acc) Change-Id: I454e1ec275ad6c00202e65b97adb79647d11a0b7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129395 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129410 diff --git a/sw/qa/core/text/data/empty-numbering-page-split.fodt b/sw/qa/core/text/data/empty-numbering-page-split.fodt new file mode 100644 index 000000000000..517ad2e0fb26 --- /dev/null +++ b/sw/qa/core/text/data/empty-numbering-page-split.fodt @@ -0,0 +1,62 @@ +<?xml version='1.0' encoding='UTF-8'?> +<office:document xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> + <office:styles> + <style:default-style style:family="paragraph"> + <style:text-properties fo:font-size="12pt"/> + </style:default-style> + <style:style style:name="Standard" style:family="paragraph" style:class="text"/> + <style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text"> + <style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" fo:keep-with-next="always"/> + <style:text-properties fo:font-size="14pt"/> + </style:style> + <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text"> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.212cm"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:class="text"> + <style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" fo:break-before="page"/> + </style:style> + <text:outline-style style:name="Outline"> + <text:outline-level-style text:level="1" style:num-format=""> + <style:list-level-properties text:min-label-distance="0.381cm"/> + </text:outline-level-style> + </text:outline-style> + </office:styles> + <office:automatic-styles> + <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="Intro"> + <style:paragraph-properties style:page-number="1"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0cm"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.6cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm2"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.499cm"/> + </style:header-style> + <style:footer-style/> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Standard" style:page-layout-name="pm1" style:next-style-name="Intro"> + <style:header> + <text:p/> + </style:header> + <style:footer> + <text:p/> + </style:footer> + </style:master-page> + <style:master-page style:name="Intro" style:page-layout-name="pm2"/> + </office:master-styles> + <office:body> + <office:text text:use-soft-page-breaks="true"> + <text:h text:style-name="Heading_20_1" text:outline-level="1"/> + <text:p text:style-name="P1"/> + </office:text> + </office:body> +</office:document> diff --git a/sw/qa/core/text/data/image.png b/sw/qa/core/text/data/image.png new file mode 100644 index 000000000000..49e71b07ae8b Binary files /dev/null and b/sw/qa/core/text/data/image.png differ diff --git a/sw/qa/core/text/text.cxx b/sw/qa/core/text/text.cxx index 4db880e687f4..5f1b89e34247 100644 --- a/sw/qa/core/text/text.cxx +++ b/sw/qa/core/text/text.cxx @@ -135,6 +135,22 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testTabOverMarginSection) CPPUNIT_ASSERT_LESS(static_cast<sal_Int32>(5000), nWidth); } +CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testEmptyNumberingPageSplit) +{ + // Given a document with 2 pages: the only para on page 1 is a numbering without a number + // portion: + createSwDoc(DATA_DIRECTORY, "empty-numbering-page-split.fodt"); + + // When inserting an image that doesn't fit the body frame: + // Then make sure that the layout update after insertion finishes: + uno::Sequence<beans::PropertyValue> aArgs = { + comphelper::makePropertyValue("FileName", + m_directories.getURLFromSrc(DATA_DIRECTORY) + "image.png"), + }; + // Without the accompanying fix in place, this never finished. + dispatchCommand(mxComponent, ".uno:InsertGraphic", aArgs); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx index f9f6935e9a9d..bdd3f1d9d17c 100644 --- a/sw/source/core/text/frmform.cxx +++ b/sw/source/core/text/frmform.cxx @@ -1117,13 +1117,21 @@ void SwTextFrame::FormatAdjust( SwTextFormatter &rLine, } else { + const SwTextNode* pTextNode = GetTextNodeForParaProps(); + bool bHasVisibleNumRule = nStrLen == TextFrameIndex(0) && pTextNode->GetNumRule(); + + if (!pTextNode->HasVisibleNumberingOrBullet()) + { + bHasVisibleNumRule = false; + } + // Only split frame, if the frame contains // content or contains no content, but has a numbering. // i#84870 - No split, if text frame only contains one // as-character anchored object. if ( !bOnlyContainsAsCharAnchoredObj && (nStrLen > TextFrameIndex(0) || - (nStrLen == TextFrameIndex(0) && GetTextNodeForParaProps()->GetNumRule())) + bHasVisibleNumRule ) ) { SplitFrame( nEnd ); commit 6694e3ea9c2f05a20245d94c5c1eda955cb3aacc Author: zhutyra <zhutyra> AuthorDate: Tue Feb 1 13:54:55 2022 +0000 Commit: Michael Stahl <[email protected]> CommitDate: Thu Feb 3 12:01:14 2022 +0100 read of width/height uses wrong record size this initially went wrong at: commit b4fb7a437bb0ce987702b12008737756623618ac Date: Mon May 23 21:38:40 2011 +0100 fix up some more endian LIBREOFFICE-SBQ5TJRS Change-Id: Ie418f530f55288351f73f3c0cbab9ac48e6b6964 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129259 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> diff --git a/lotuswordpro/source/filter/lwpdrawobj.cxx b/lotuswordpro/source/filter/lwpdrawobj.cxx index 11bc3bcb5a98..f1abe2c438f3 100644 --- a/lotuswordpro/source/filter/lwpdrawobj.cxx +++ b/lotuswordpro/source/filter/lwpdrawobj.cxx @@ -1388,8 +1388,12 @@ void LwpDrawBitmap::Read() if (aInfoHeader2.nHeaderLen == sizeof(BmpInfoHeader)) { - m_pStream->ReadUInt32( aInfoHeader2.nWidth ); - m_pStream->ReadUInt32( aInfoHeader2.nHeight ); + sal_uInt16 nTmp; + + m_pStream->ReadUInt16( nTmp ); + aInfoHeader2.nWidth = nTmp; + m_pStream->ReadUInt16( nTmp ); + aInfoHeader2.nHeight = nTmp; m_pStream->ReadUInt16( aInfoHeader2.nPlanes ); m_pStream->ReadUInt16( aInfoHeader2.nBitCount ); commit 17dd787a4ca9c17883e0bdfc75c89c2fa7ec169e Author: zhutyra <zhutyra> AuthorDate: Tue Feb 1 14:07:26 2022 +0000 Commit: Michael Stahl <[email protected]> CommitDate: Thu Feb 3 11:59:31 2022 +0100 ensure bounds checking LIBREOFFICE-SBQ5TJRS Change-Id: I71f35bc120fdd70298685131f29a6bb822d50f11 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129261 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> diff --git a/lotuswordpro/source/filter/lwpdrawobj.cxx b/lotuswordpro/source/filter/lwpdrawobj.cxx index ce3f5249786d..11bc3bcb5a98 100644 --- a/lotuswordpro/source/filter/lwpdrawobj.cxx +++ b/lotuswordpro/source/filter/lwpdrawobj.cxx @@ -1369,21 +1369,20 @@ void LwpDrawBitmap::Read() m_pStream->ReadUInt16( m_aBmpRec.nTranslation ); m_pStream->ReadUInt16( m_aBmpRec.nRotation ); + // 20 == length of draw-specific fields. if (m_aObjHeader.nRecLen < 20) throw BadRead(); - // 20 == length of draw-specific fields. - // 14 == length of bmp file header. - m_aBmpRec.nFileSize = m_aObjHeader.nRecLen - 20 + 14; + sal_uInt64 nBmpPos = m_pStream->Tell(); + sal_uInt64 nBmpLen = + std::min<sal_uInt64>(m_aObjHeader.nRecLen - 20, m_pStream->remainingSize()); BmpInfoHeader2 aInfoHeader2; m_pStream->ReadUInt32( aInfoHeader2.nHeaderLen ); - if (!m_pStream->good()) + if (!m_pStream->good() || nBmpLen < aInfoHeader2.nHeaderLen) throw BadRead(); - m_pImageData.reset( new sal_uInt8 [m_aBmpRec.nFileSize] ); - sal_uInt32 N; sal_uInt32 rgbTableSize; @@ -1407,7 +1406,7 @@ void LwpDrawBitmap::Read() rgbTableSize = 3 * (1 << N); } } - else + else if (aInfoHeader2.nHeaderLen >= sizeof(BmpInfoHeader2)) { m_pStream->ReadUInt32( aInfoHeader2.nWidth ); m_pStream->ReadUInt32( aInfoHeader2.nHeight ); @@ -1426,9 +1425,15 @@ void LwpDrawBitmap::Read() { rgbTableSize = 4 * (1 << N); } - + } + else + { + throw BadRead(); } + m_aBmpRec.nFileSize = static_cast<sal_uInt32>(nBmpLen + 14); + m_pImageData.reset( new sal_uInt8 [m_aBmpRec.nFileSize] ); + sal_uInt32 nOffBits = 14 + aInfoHeader2.nHeaderLen + rgbTableSize; m_pImageData[0] = 'B'; m_pImageData[1] = 'M'; @@ -1445,50 +1450,10 @@ void LwpDrawBitmap::Read() m_pImageData[12] = static_cast<sal_uInt8>(nOffBits >> 16); m_pImageData[13] = static_cast<sal_uInt8>(nOffBits >> 24); - sal_uInt32 nDIBRemaining; sal_uInt8* pPicData = m_pImageData.get(); - if (aInfoHeader2.nHeaderLen== sizeof(BmpInfoHeader)) - { - m_pImageData[14] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen); - m_pImageData[15] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen >> 8); - m_pImageData[16] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen >> 16); - m_pImageData[17] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen >> 24); - m_pImageData[18] = static_cast<sal_uInt8>(aInfoHeader2.nWidth); - m_pImageData[19] = static_cast<sal_uInt8>(aInfoHeader2.nWidth >> 8); - m_pImageData[20] = static_cast<sal_uInt8>(aInfoHeader2.nHeight); - m_pImageData[21] = static_cast<sal_uInt8>(aInfoHeader2.nHeight >> 8); - m_pImageData[22] = static_cast<sal_uInt8>(aInfoHeader2.nPlanes); - m_pImageData[23] = static_cast<sal_uInt8>(aInfoHeader2.nPlanes >> 8); - m_pImageData[24] = static_cast<sal_uInt8>(aInfoHeader2.nBitCount); - m_pImageData[25] = static_cast<sal_uInt8>(aInfoHeader2.nBitCount >> 8); - - nDIBRemaining = m_aBmpRec.nFileSize - 26; - pPicData += 26*sizeof(sal_uInt8); - } - else - { - m_pImageData[14] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen); - m_pImageData[15] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen >> 8); - m_pImageData[16] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen >> 16); - m_pImageData[17] = static_cast<sal_uInt8>(aInfoHeader2.nHeaderLen >> 24); - m_pImageData[18] = static_cast<sal_uInt8>(aInfoHeader2.nWidth); - m_pImageData[19] = static_cast<sal_uInt8>(aInfoHeader2.nWidth >> 8); - m_pImageData[20] = static_cast<sal_uInt8>(aInfoHeader2.nWidth >> 16); - m_pImageData[21] = static_cast<sal_uInt8>(aInfoHeader2.nWidth >> 24); - m_pImageData[22] = static_cast<sal_uInt8>(aInfoHeader2.nHeight); - m_pImageData[23] = static_cast<sal_uInt8>(aInfoHeader2.nHeight >> 8); - m_pImageData[24] = static_cast<sal_uInt8>(aInfoHeader2.nHeight >> 16); - m_pImageData[25] = static_cast<sal_uInt8>(aInfoHeader2.nHeight >> 24); - m_pImageData[26] = static_cast<sal_uInt8>(aInfoHeader2.nPlanes); - m_pImageData[27] = static_cast<sal_uInt8>(aInfoHeader2.nPlanes >> 8); - m_pImageData[28] = static_cast<sal_uInt8>(aInfoHeader2.nBitCount); - m_pImageData[29] = static_cast<sal_uInt8>(aInfoHeader2.nBitCount >> 8); - - nDIBRemaining = m_aBmpRec.nFileSize - 30; - pPicData += 30*sizeof(sal_uInt8); - } - if (nDIBRemaining != m_pStream->ReadBytes(pPicData, nDIBRemaining)) + m_pStream->Seek(nBmpPos); + if (nBmpLen != m_pStream->ReadBytes(pPicData + 14, nBmpLen)) throw BadRead(); } commit d5e470882c7538716a9810d757e7481304e9724e Author: Justin Luth <[email protected]> AuthorDate: Wed Feb 2 13:56:22 2022 +0200 Commit: Xisco Fauli <[email protected]> CommitDate: Thu Feb 3 10:44:16 2022 +0100 tdf#147115 writerfilter: style is only default if default=true This was a dumb mistake in LO 2018 (so perhaps LO 6.2). Regression from commit 6b7f12f6108f136d60bd77e3787ef6a2632038cd Change-Id: I2adc642ffe9c2af1037fcc0a5d2b83c993511258 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129386 Tested-by: Jenkins Reviewed-by: Justin Luth <[email protected]> (cherry picked from commit 71303d77febfd51a493ce797933143cc318818cf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129339 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 8e9830755c17c3351f074b251f30f3216b481214) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129340 diff --git a/sw/qa/extras/ooxmlexport/data/tdf147115_defaultStyle.docx b/sw/qa/extras/ooxmlexport/data/tdf147115_defaultStyle.docx new file mode 100644 index 000000000000..e75099c6aa9e Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf147115_defaultStyle.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx index 17f05d1dcd16..a32862ac7b9a 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx @@ -361,6 +361,11 @@ DECLARE_OOXMLEXPORT_TEST(testDefaultStyle, "defaultStyle.docx") CPPUNIT_ASSERT_EQUAL(2, getPages()); } +DECLARE_OOXMLEXPORT_TEST(testTdf147115_defaultStyle, "tdf147115_defaultStyle.docx") +{ + CPPUNIT_ASSERT_EQUAL_MESSAGE( "Default Style", OUString("Standard"), getProperty<OUString>(getParagraph(1), "ParaStyleName") ); +} + DECLARE_OOXMLEXPORT_TEST(testTdf117988, "tdf117988.docx") { CPPUNIT_ASSERT_EQUAL(1, getPages()); diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx index ba3b0d97550e..70f36fac78d4 100644 --- a/writerfilter/source/dmapper/StyleSheetTable.cxx +++ b/writerfilter/source/dmapper/StyleSheetTable.cxx @@ -467,8 +467,12 @@ void StyleSheetTable::lcl_attribute(Id Name, Value & val) if (m_pImpl->m_pCurrentEntry->nStyleTypeCode != STYLE_TYPE_UNKNOWN) { // "If this attribute is specified by multiple styles, then the last instance shall be used." - if ( m_pImpl->m_pCurrentEntry->nStyleTypeCode == STYLE_TYPE_PARA && !m_pImpl->m_pCurrentEntry->sStyleIdentifierD.isEmpty() ) + if (m_pImpl->m_pCurrentEntry->bIsDefaultStyle + && m_pImpl->m_pCurrentEntry->nStyleTypeCode == STYLE_TYPE_PARA + && !m_pImpl->m_pCurrentEntry->sStyleIdentifierD.isEmpty()) + { m_pImpl->m_sDefaultParaStyleName = m_pImpl->m_pCurrentEntry->sStyleIdentifierD; + } beans::PropertyValue aValue; aValue.Name = "default"; commit b8b4dd7e909a46fe1777a64124d5fa0187a1ad70 Author: Caolán McNamara <[email protected]> AuthorDate: Mon Jan 31 20:40:52 2022 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Tue Feb 1 11:14:04 2022 +0100 tdf#147032 unselect anything set_cursor selected as its side-effect Change-Id: I723bbd82fc01f644de3bfb2a80b4640cec0cfbca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129250 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> diff --git a/sd/source/ui/animations/CustomAnimationList.cxx b/sd/source/ui/animations/CustomAnimationList.cxx index 3c67edc5c831..4f366979e20e 100644 --- a/sd/source/ui/animations/CustomAnimationList.cxx +++ b/sd/source/ui/animations/CustomAnimationList.cxx @@ -815,6 +815,8 @@ void CustomAnimationList::update() } while (mxTreeView->iter_next(*xEntry)); } + // tdf#147032 unselect what previous set_cursor may have caused to get selected as a side-effect + mxTreeView->unselect_all(); for (const auto& rEntry : aNewSelection) mxTreeView->select(*rEntry); commit 7c8b41bc322720dc9434fbef1f10a6740913165e Author: Caolán McNamara <[email protected]> AuthorDate: Thu Jan 13 16:57:48 2022 +0000 Commit: Michael Stahl <[email protected]> CommitDate: Mon Jan 31 14:30:37 2022 +0100 ofz#43577 valid reclen must be >= 20 Change-Id: I454bff4acfcd85701a7f094a8bd76898825e9ce2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128388 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 444477a07bcaf59181dbbc719b913566091deadc) ofz: Use-of-uninitialized-value Change-Id: I6b768b80d972c5379005efecfb803463ca648b4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128644 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 7b37a1a5144a3a4c8b0803b7e2da81e9e108bf66) ofz: Undefined-Shift Change-Id: Ib935359071ef9e390aa3d6c9713ed48241ad18e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129066 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit e863b90a0e5fc90c3b824e4b0012f9389b87a3ac) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129183 Reviewed-by: Michael Stahl <[email protected]> diff --git a/lotuswordpro/source/filter/lwpdrawobj.cxx b/lotuswordpro/source/filter/lwpdrawobj.cxx index 5de7ae30894d..ce3f5249786d 100644 --- a/lotuswordpro/source/filter/lwpdrawobj.cxx +++ b/lotuswordpro/source/filter/lwpdrawobj.cxx @@ -1369,14 +1369,21 @@ void LwpDrawBitmap::Read() m_pStream->ReadUInt16( m_aBmpRec.nTranslation ); m_pStream->ReadUInt16( m_aBmpRec.nRotation ); + if (m_aObjHeader.nRecLen < 20) + throw BadRead(); + // 20 == length of draw-specific fields. // 14 == length of bmp file header. m_aBmpRec.nFileSize = m_aObjHeader.nRecLen - 20 + 14; - m_pImageData.reset( new sal_uInt8 [m_aBmpRec.nFileSize] ); BmpInfoHeader2 aInfoHeader2; m_pStream->ReadUInt32( aInfoHeader2.nHeaderLen ); + if (!m_pStream->good()) + throw BadRead(); + + m_pImageData.reset( new sal_uInt8 [m_aBmpRec.nFileSize] ); + sal_uInt32 N; sal_uInt32 rgbTableSize; @@ -1391,7 +1398,7 @@ void LwpDrawBitmap::Read() throw BadRead(); N = aInfoHeader2.nPlanes * aInfoHeader2.nBitCount; - if (N == 24) + if (N >= 16) { rgbTableSize = 0; } @@ -1411,7 +1418,7 @@ void LwpDrawBitmap::Read() throw BadRead(); N = aInfoHeader2.nPlanes * aInfoHeader2.nBitCount; - if (N == 24) + if (N >= 16) { rgbTableSize = 0; } commit 2cdf4b6580135b6586a3f4a10132e748eb68049b Author: Caolán McNamara <[email protected]> AuthorDate: Fri Jan 28 19:40:40 2022 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Mon Jan 31 12:23:09 2022 +0100 upgrade expat to 2.4.4 Change-Id: I1f2694abd9f577e0b4fedbf27118b52be8a1a688 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129180 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins diff --git a/download.lst b/download.lst index 502a0c0cfaef..bb6328ee0a2e 100644 --- a/download.lst +++ b/download.lst @@ -50,8 +50,8 @@ export EPUBGEN_TARBALL := libepubgen-0.1.1.tar.xz export ETONYEK_SHA256SUM := b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a export ETONYEK_VERSION_MICRO := 10 export ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.xz -export EXPAT_SHA256SUM := 2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40 -export EXPAT_TARBALL := expat-2.4.1.tar.bz2 +export EXPAT_SHA256SUM := 5963005ff8720735beb2d2db669afc681adcbcb43dd1eb397d5c2dd7adbc631f +export EXPAT_TARBALL := expat-2.4.4.tar.gz export FIREBIRD_SHA256SUM := acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76 export FIREBIRD_TARBALL := Firebird-3.0.7.33374-0.tar.bz2 export FONTCONFIG_SHA256SUM := 19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5 diff --git a/external/expat/expat-winapi.patch b/external/expat/expat-winapi.patch index bd4da1472fc8..7eae7d5d6139 100644 --- a/external/expat/expat-winapi.patch +++ b/external/expat/expat-winapi.patch @@ -13,15 +13,12 @@ --- misc/expat-2.1.0/lib/xmlparse.c 2021-05-23 16:56:25.000000000 +0100 +++ misc/build/expat-2.1.0/lib/xmlparse.c 2021-05-25 12:42:11.997173600 +0100 -@@ -92,6 +92,11 @@ +@@ -64,6 +64,8 @@ + #endif - #include <expat_config.h> - -+#ifdef _WIN32 + #ifdef _WIN32 +# undef HAVE_GETRANDOM +# undef HAVE_SYSCALL_GETRANDOM -+#endif -+ - #include "ascii.h" - #include "expat.h" - #include "siphash.h" + /* force stdlib to define rand_s() */ + # if ! defined(_CRT_RAND_S) + # define _CRT_RAND_S commit 3db1a060a033a2f84bdf798bed3c7e2515a498ce Author: Kevin Suo <[email protected]> AuthorDate: Thu Jan 27 10:28:10 2022 +0800 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Sun Jan 30 19:38:01 2022 +0100 Add CIRCLED NUMBER TWENTY ONE through CIRCLED NUMBER FIFTY to numbring list Previously we only supported CIRCLED NUMBER ONE through CIRCLED NUMBER TWENTY. Unicode already has CIRCLED NUMBER TWENTY ONE through CIRCLED NUMBER FIFTY. This improves Circled Numbering, especially for CJK. E.g. ➀, ➁, ➂, ... ㉑, ㉒, ㉓, ... ㊽, ㊾, ㊿. Change-Id: I7c4c851f03522fef9d44163da7450cf69aab3889 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129015 Tested-by: Jenkins Reviewed-by: Eike Rathke <[email protected]> (cherry picked from commit 7e380a76e1f0faa90fdf8f0575053d4a1ca6e1de) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129069 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/i18npool/inc/bullet.h b/i18npool/inc/bullet.h index 67ea0f7d2600..403d197d2c88 100644 --- a/i18npool/inc/bullet.h +++ b/i18npool/inc/bullet.h @@ -239,7 +239,37 @@ const sal_Unicode table_CircledNumber[] = { 0x2470, // CIRCLED NUMBER SEVENTEEN 0x2471, // CIRCLED NUMBER EIGHTEEN 0x2472, // CIRCLED NUMBER NINETEEN - 0x2473 // CIRCLED NUMBER TWENTY + 0x2473, // CIRCLED NUMBER TWENTY + 0x3251, // CIRCLED NUMBER TWENTY ONE + 0x3252, // CIRCLED NUMBER TWENTY TWO + 0x3253, // CIRCLED NUMBER TWENTY THREE + 0x3254, // CIRCLED NUMBER TWENTY FOUR + 0x3255, // CIRCLED NUMBER TWENTY FIVE + 0x3256, // CIRCLED NUMBER TWENTY SIX + 0x3257, // CIRCLED NUMBER TWENTY SEVEN + 0x3258, // CIRCLED NUMBER TWENTY EIGHT + 0x3259, // CIRCLED NUMBER TWENTY NINE + 0x325A, // CIRCLED NUMBER THIRTY + 0x325B, // CIRCLED NUMBER THIRTY ONE + 0x325C, // CIRCLED NUMBER THIRTY TWO + 0x325D, // CIRCLED NUMBER THIRTY THREE + 0x325E, // CIRCLED NUMBER THIRTY FOUR + 0x325F, // CIRCLED NUMBER THIRTY FIVE + 0x32B1, // CIRCLED NUMBER THIRTY SIX + 0x32B2, // CIRCLED NUMBER THIRTY SEVEN + 0x32B3, // CIRCLED NUMBER THIRTY EIGHT + 0x32B4, // CIRCLED NUMBER THIRTY NINE + 0x32B5, // CIRCLED NUMBER FORTY + 0x32B6, // CIRCLED NUMBER FORTY ONE + 0x32B7, // CIRCLED NUMBER FORTY TWO + 0x32B8, // CIRCLED NUMBER FORTY THREE + 0x32B9, // CIRCLED NUMBER FORTY FOUR + 0x32BA, // CIRCLED NUMBER FORTY FIVE + 0x32BB, // CIRCLED NUMBER FORTY SIX + 0x32BC, // CIRCLED NUMBER FORTY SEVEN + 0x32BD, // CIRCLED NUMBER FORTY EIGHT + 0x32BE, // CIRCLED NUMBER FORTY NINE + 0x32BF // CIRCLED NUMBER FIFTY }; const sal_Unicode table_HangulJamo_ko[] = { commit af8709defeb90464c8724d3fe5fb8cbbf6efc2b8 Author: Caolán McNamara <[email protected]> AuthorDate: Wed Jan 26 11:57:13 2022 +0000 Commit: Xisco Fauli <[email protected]> CommitDate: Thu Jan 27 11:50:05 2022 +0100 ofz#44080 throw exception on a negative length Change-Id: I3e2286cea69908fae3a2dd177d10fca2b7f0c877 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128956 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> diff --git a/lotuswordpro/source/filter/lwpdrawobj.cxx b/lotuswordpro/source/filter/lwpdrawobj.cxx index a697b6b0de48..5de7ae30894d 100644 --- a/lotuswordpro/source/filter/lwpdrawobj.cxx +++ b/lotuswordpro/source/filter/lwpdrawobj.cxx @@ -1093,6 +1093,9 @@ XFFrame* LwpDrawTextBox::CreateDrawObj(const OUString& rStyleName ) aEncoding = LwpCharSetMgr::GetTextCharEncoding(); } + if (TextLength < 2) + throw BadRead(); + XFParagraph* pXFPara = new XFParagraph(); pXFPara->Add(OUString(reinterpret_cast<char*>(m_aTextRec.pTextString), (TextLength-2), aEncoding)); pXFPara->SetStyleName(rStyleName); commit d2c6ee14cd2860e270cec40783778c96680d7594 Author: Christian Lohmaier <[email protected]> AuthorDate: Wed Jan 26 14:51:13 2022 +0100 Commit: Christian Lohmaier <[email protected]> CommitDate: Wed Jan 26 14:52:57 2022 +0100 update credits Change-Id: Ib2d0e2477b932669ab55b36abcfc347d43dc8bcd (cherry picked from commit 65564103f619aa75eb1d1872546af78caf3144b6) diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt index f78992595ba9..defaf1519d8b 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:officeooo="http://openoffice.org/2009/office" 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:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rpt="http://openoffice.org/2005/report" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns :config:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="ur n:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" 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.2.4.1$Linux_X86_64 LibreOffice_project/27d75539669ac387bb498e35313b970b7fe9c4f9</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="4478" meta:word-count="16560" meta:character-count="119483" meta:non-whitespace-character-count="104713"/><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.2.5.2$Linux_X86_64 LibreOffice_project/499f9727c189e6ef3471021d6132d4c694f357e5</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="4490" meta:word-count="16608" meta:character-count="119832" meta:non-whitespace-character-count="105021"/><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">543</config:config-item> + <config:config-item config:name="ViewAreaTop" config:type="long">1155</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">55167</config:config-item> - <config:config-item config:name="ViewAreaHeight" config:type="long">31302</config:config-item> + <config:config-item config:name="ViewAreaWidth" config:type="long">21354</config:config-item> + <config:config-item config:name="ViewAreaHeight" config:type="long">32334</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">543</config:config-item> - <config:config-item config:name="VisibleRight" config:type="long">55667</config:config-item> - <config:config-item config:name="VisibleBottom" config:type="long">31843</config:config-item> + <config:config-item config:name="VisibleTop" config:type="long">1155</config:config-item> + <config:config-item config:name="VisibleRight" config:type="long">21853</config:config-item> + <config:config-item config:name="VisibleBottom" config:type="long">33487</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> @@ -97,7 +97,7 @@ </config:config-item-map-indexed> <config:config-item config:name="PrinterSetup" config:type="base64Binary"/> <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item> - <config:config-item config:name="Rsid" config:type="int">10417964</config:config-item> + <config:config-item config:name="Rsid" config:type="int">10472559</config:config-item> <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/> <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item> <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item> @@ -165,7 +165,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:flow-with-text="true"/> - <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:font-independent-line-spacing="false"> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false"> <style:tab-stops/> </style:paragraph-properties> <style:text-properties style:use-window-font-color="true" loext:opacity="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="Mangal" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/> @@ -343,23 +343,23 @@ </office:styles> <office:automatic-styles> <style:style style:name="Tabelle1" style:family="table"> - <style:table-properties style:width="25.91cm" table:align="left"/> + <style:table-properties style:width="20.93cm" table:align="left"/> </style:style> <style:style style:name="Tabelle1.A" style:family="table-column"> - <style:table-column-properties style:column-width="6.775cm"/> + <style:table-column-properties style:column-width="5.138cm"/> </style:style> <style:style style:name="Tabelle1.B" style:family="table-column"> - <style:table-column-properties style:column-width="6.828cm"/> + <style:table-column-properties style:column-width="4.807cm"/> </style:style> <style:style style:name="Tabelle1.C" style:family="table-column"> - <style:table-column-properties style:column-width="5.479cm"/> + <style:table-column-properties style:column-width="5.498cm"/> + </style:style> + <style:style style:name="Tabelle1.D" style:family="table-column"> + <style:table-column-properties style:column-width="5.487cm"/> </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.B397" 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"> <style:table-properties style:width="18.157cm" table:align="left"/> </style:style> @@ -418,23 +418,26 @@ <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="32.762cm" table:align="left"/> + <style:table-properties style:width="20.93cm" table:align="left"/> </style:style> <style:style style:name="Tabelle5.A" style:family="table-column"> - <style:table-column-properties style:column-width="8.098cm"/> + <style:table-column-properties style:column-width="4.606cm"/> </style:style> <style:style style:name="Tabelle5.B" style:family="table-column"> - <style:table-column-properties style:column-width="11.829cm"/> + <style:table-column-properties style:column-width="7.142cm"/> </style:style> <style:style style:name="Tabelle5.C" style:family="table-column"> - <style:table-column-properties style:column-width="6.272cm"/> + <style:table-column-properties style:column-width="4.801cm"/> </style:style> <style:style style:name="Tabelle5.D" style:family="table-column"> - <style:table-column-properties style:column-width="6.563cm"/> + <style:table-column-properties style:column-width="4.382cm"/> </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.B680" 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"> <style:text-properties fo:font-size="2pt" style:font-size-asian="2pt" style:font-size-complex="2pt"/> </style:style> @@ -493,34 +496,33 @@ <style:style style:name="P17" style:family="paragraph" style:parent-style-name="Table_20_Contents"> <style:text-properties fo:font-size="2pt" style:font-size-asian="2pt" style:font-size-complex="2pt"/> </style:style> - <style:style style:name="P18" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1"/> - <style:style style:name="P19" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1"> + <style:style style:name="P18" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> - <style:style style:name="P20" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L2"> + <style:style style:name="P19" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L2"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> - <style:style style:name="P21" style:family="paragraph" style:parent-style-name="Text_20_body"> + <style:style style:name="P20" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> - <style:style style:name="P22" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L3"/> - <style:style style:name="P23" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L3"> + <style:style style:name="P21" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L3"/> + <style:style style:name="P22" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L3"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> - <style:style style:name="P24" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L4"/> - <style:style style:name="P25" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L4"> + <style:style style:name="P23" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L4"/> + <style:style style:name="P24" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L4"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> - <style:style style:name="P26" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L5"/> - <style:style style:name="P27" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L5"> + <style:style style:name="P25" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L5"/> + <style:style style:name="P26" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L5"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> - <style:style style:name="P28" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L6"/> - <style:style style:name="P29" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L6"> + <style:style style:name="P27" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L6"/> + <style:style style:name="P28" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L6"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> - <style:style style:name="P30" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L7"/> - <style:style style:name="P31" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L7"> + <style:style style:name="P29" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L7"/> + <style:style style:name="P30" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L7"> <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false"/> </style:style> <style:style style:name="T1" style:family="text"> @@ -1074,7 +1076,7 @@ </draw:frame> <text:section text:style-name="Sect1" text:name="BgContainer"> <text:p text:style-name="P16">Credits</text:p> - <text:p text:style-name="Text_20_body">1715 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2021-12-27 20:52:04.</text:p> + <text:p text:style-name="Text_20_body">1722 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2022-01-26 14:15:58.</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"> @@ -1082,12 +1084,12 @@ <table:table-column table:style-name="Tabelle1.B"/> <table:table-column table:style-name="Tabelle1.C"/> <table:table-column table:style-name="Tabelle1.D"/> - <table:table-row table:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Ruediger Timm<text:line-break/>Commits: 82464<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">Caolán McNamara<text:line-break/>Commits: 32225<text:line-break/>Joined: 2000-10-10</text:p> + <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 32348<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">Kurt Zenker<text:line-break/>Commits: 31752<text:line-break/>Joined: 2000-09-25</text:p> @@ -1096,7 +1098,7 @@ <text:p text:style-name="Table_20_Contents">Oliver Bolte<text:line-break/>Commits: 31008<text:line-break/>Joined: 2000-09-19</text:p> </table:table-cell> </table:table-row> - <table:table-row table:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <text:p text:style-name="Table_20_Contents">Jens-Heiner Rechtien [hr]<text:line-break/>Commits: 28805<text:line-break/>Joined: 2000-09-18</text:p> </table:table-cell> @@ -1104,27 +1106,27 @@ <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: 19446<text:line-break/>Joined: 2000-10-04</text:p> + <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 19480<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: 15438<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: 15641<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:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <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> </table:table-cell> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 9042<text:line-break/>Joined: 2010-03-23</text:p> + <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 9049<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">Miklos Vajna<text:line-break/>Commits: 8727<text:line-break/>Joined: 2010-07-29</text:p> + <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 8765<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">Michael Stahl<text:line-break/>Commits: 7856<text:line-break/>Joined: 2008-06-16</text:p> + <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 7869<text:line-break/>Joined: 2008-06-16</text:p> </table:table-cell> </table:table-row> - <table:table-row table:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string"> <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> @@ -1132,41 +1134,41 @@ <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> </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: 5031<text:line-break/>Joined: 2000-10-11</text:p> + <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 5042<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">Frank Schoenheit [fs]<text:line-break/>Commits: 5008<text:line-break/>Joined: 2000-09-19</text:p> </table:table-cell> </table:table-row> - <table:table-row table:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <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>Julien Nabet<text:line-break/>Commits: 3339<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: 3373<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">Hans-Joachim Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 2000-09-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>Andrea Gelmini<text:line-break/>Commits: 2958<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: 2993<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p> </table:table-cell> </table:table-row> - <table:table-row table:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <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: 2906<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: 2947<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-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">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">Luboš Luňák<text:line-break/>Commits: 2754<text:line-break/>Joined: 2010-09-21</text:p> + <text:p text:style-name="Table_20_Contents">Luboš Luňák<text:line-break/>Commits: 2770<text:line-break/>Joined: 2010-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">Jan Holesovsky<text:line-break/>Commits: 2667<text:line-break/>Joined: 2009-06-23</text:p> + <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2668<text:line-break/>Joined: 2009-06-23</text:p> </table:table-cell> </table:table-row> - <table:table-row table:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <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> </table:table-cell> @@ -1174,13 +1176,13 @@ <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-cell table:style-name="Tabelle1.A1" office:value-type="string"> - <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2464<text:line-break/>Joined: 2004-08-05</text:p> + <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2469<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: 2454<text:line-break/>Joined: 2009-10-14</text:p> </table:table-cell> </table:table-row> - <table:table-row table:style-name="TableLine94282141847424"> + <table:table-row table:style-name="TableLine102518304"> <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>Norbert Thiebaud<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p> </table:table-cell> @@ -1188,15 +1190,15 @@ <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thomas Arnhold<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-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">Philipp Lohmann [pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p> ... etc. - the rest is truncated
