download.lst | 4 +- external/expat/expat-winapi.patch | 5 +- sal/osl/unx/uunxapi.cxx | 3 + sc/qa/unit/data/ods/tdf170515_invalid_parameters.ods |binary sc/qa/unit/subsequent_export_test2.cxx | 26 +++++++++++++ sc/source/filter/excel/xestream.cxx | 5 ++ sc/source/filter/excel/xetable.cxx | 4 +- sc/source/filter/excel/xltools.cxx | 10 +++++ sc/source/filter/inc/xestream.hxx | 3 + sc/source/filter/inc/xltools.hxx | 2 + sw/qa/extras/ooxmlexport/data/redline-range-comment.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport25.cxx | 17 ++++++++ sw/qa/writerfilter/dmapper/DomainMapper_Impl.cxx | 23 +++++++++++ sw/qa/writerfilter/dmapper/data/redline-range-comment.docx |binary sw/source/filter/ww8/docxattributeoutput.cxx | 13 ++++++ sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx | 2 - wizards/source/scriptforge/SF_String.xba | 4 +- 17 files changed, 109 insertions(+), 12 deletions(-)
New commits: commit 86b31e4e03df389abff0019d93907943b42dc241 Author: Christian Lohmaier <[email protected]> AuthorDate: Mon Feb 2 15:14:31 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 4 10:57:46 2026 +0100 uunxapi.cxx: add pre/postmac headers for sandboxed build side-effect of dec1441f716c7631622b9b3e32fdbc666502c006 that removed unnecessary Carbon.h headers and along with that the premac one that would have been applied also to sal/osl/unx/uunxapi.cxx Change-Id: I058e074d3ba7fb42d1ca70e497c6219820597119 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198551 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <[email protected]> (cherry picked from commit ab214fc9f3cd0c69756dbbdf181b3da93069d7e2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198559 diff --git a/sal/osl/unx/uunxapi.cxx b/sal/osl/unx/uunxapi.cxx index 37db3c987315..6af6fbb61a4d 100644 --- a/sal/osl/unx/uunxapi.cxx +++ b/sal/osl/unx/uunxapi.cxx @@ -47,7 +47,10 @@ OString osl::OUStringToOString(std::u16string_view s) #if HAVE_FEATURE_MACOSX_SANDBOX +#include <premac.h> #include <Foundation/Foundation.h> +#include <postmac.h> + #include <Security/Security.h> #include <mach-o/dyld.h> commit fc6f353a0669032042487cd242742b6562ff0aaf Author: Aron Budea <[email protected]> AuthorDate: Fri Jan 30 14:47:44 2026 +1030 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 4 10:57:45 2026 +0100 tdf#170515 sc: formula with invalid parameters saved into XLSX Calc/ODS is more forgiving about accepting input, the bugdoc had this: =COUNTIF(BASE(1;14);"vv") Here the first parameter of COUNTIF isn't valid, Excel doesn't even allow entering it, and fails opening the XLSX with such formula. No problem in Calc, formula simply gives Err:504 result. Fix: don't export formula with Err:504 (IllegalParameter error) result to XLSX. Change-Id: Ic453440f385b665e56488a61a7c80bf458c4effd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198391 Tested-by: Jenkins Reviewed-by: Aron Budea <[email protected]> (cherry picked from commit bebe7a0b270506b4d1a32bd99740865fbfbea3a3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198518 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/sc/qa/unit/data/ods/tdf170515_invalid_parameters.ods b/sc/qa/unit/data/ods/tdf170515_invalid_parameters.ods new file mode 100644 index 000000000000..35ac902111e6 Binary files /dev/null and b/sc/qa/unit/data/ods/tdf170515_invalid_parameters.ods differ diff --git a/sc/qa/unit/subsequent_export_test2.cxx b/sc/qa/unit/subsequent_export_test2.cxx index 9c6400375cd9..e2d2bdfeab50 100644 --- a/sc/qa/unit/subsequent_export_test2.cxx +++ b/sc/qa/unit/subsequent_export_test2.cxx @@ -1566,6 +1566,32 @@ CPPUNIT_TEST_FIXTURE(ScExportTest2, testTdf137543XLSX) u"_xlfn.LET(_xlpm.first,B5:E15,_xlfn.CHOOSEROWS(_xlpm.first, 1, 3, 5, 7, 9, 11))"); } +CPPUNIT_TEST_FIXTURE(ScExportTest2, testTdf170515_invalid_parameters) +{ + createScDoc("ods/tdf170515_invalid_parameters.ods"); + + save(TestFilter::XLSX); + xmlDocUniquePtr pSheet = parseExport(u"xl/worksheets/sheet1.xml"_ustr); + CPPUNIT_ASSERT(pSheet); + + // No function must be saved into the XLSX, the parameters are invalid (Err:504 in Calc), + // and Excel fails to open the result + // Function with invalid parameter: =COUNTIF(BASE(1;14);"VV") + CPPUNIT_ASSERT_EQUAL(0, + countXPathNodes(pSheet, "/x:worksheet/x:sheetData/x:row[1]/x:c[1]/x:f")); + // Function with invalid parameter: =COUNTIF("hello";"VV") + CPPUNIT_ASSERT_EQUAL(0, + countXPathNodes(pSheet, "/x:worksheet/x:sheetData/x:row[2]/x:c[1]/x:f")); + // Function with invalid parameter: =COUNTIF(1;"VV") + CPPUNIT_ASSERT_EQUAL(0, + countXPathNodes(pSheet, "/x:worksheet/x:sheetData/x:row[3]/x:c[1]/x:f")); + // Function with invalid parameter: =COUNTIF(TEXT(1;"#");"VV") + CPPUNIT_ASSERT_EQUAL(0, + countXPathNodes(pSheet, "/x:worksheet/x:sheetData/x:row[4]/x:c[1]/x:f")); + // Just check one of them that it has the right text + assertXPathContent(pSheet, "/x:worksheet/x:sheetData/x:row[1]/x:c[1]/x:v", u"#VALUE!"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx index d1650cfc1c41..1b0274f09dbc 100644 --- a/sc/source/filter/excel/xestream.cxx +++ b/sc/source/filter/excel/xestream.cxx @@ -665,7 +665,8 @@ static const char* lcl_GetErrorString( FormulaError nScErrCode ) } } -void XclXmlUtils::GetFormulaTypeAndValue( ScFormulaCell& rCell, const char*& rsType, OUString& rsValue ) +void XclXmlUtils::GetFormulaTypeAndValue( ScFormulaCell& rCell, const char*& rsType, + OUString& rsValue, bool* pbWriteFormula ) { sc::FormulaResultValue aResValue = rCell.GetResult(); @@ -674,6 +675,8 @@ void XclXmlUtils::GetFormulaTypeAndValue( ScFormulaCell& rCell, const char*& rsT case sc::FormulaResultValue::Error: rsType = "e"; rsValue = ToOUString(lcl_GetErrorString(aResValue.mnError)); + if ( pbWriteFormula ) + *pbWriteFormula = XclTools::IsFormulaWithErrorValid(aResValue.mnError); break; case sc::FormulaResultValue::Value: rsType = rCell.GetFormatType() == SvNumFormatType::LOGICAL diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index e28f6b6e657f..680a390f3ca5 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -943,7 +943,8 @@ void XclExpFormulaCell::SaveXml( XclExpXmlStream& rStrm ) { const char* sType = nullptr; OUString sValue; - XclXmlUtils::GetFormulaTypeAndValue( mrScFmlaCell, sType, sValue ); + bool bWriteFormula = true; + XclXmlUtils::GetFormulaTypeAndValue( mrScFmlaCell, sType, sValue, &bWriteFormula ); sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream(); rWorksheet->startElement( XML_c, XML_r, XclXmlUtils::ToOString(rStrm.GetRoot().GetStringBuf(), GetXclPos()).getStr(), @@ -952,7 +953,6 @@ void XclExpFormulaCell::SaveXml( XclExpXmlStream& rStrm ) // OOXTODO: XML_cm, XML_vm, XML_ph ); - bool bWriteFormula = true; bool bTagStarted = false; ScAddress aScPos( static_cast< SCCOL >( GetXclPos().mnCol ), static_cast< SCROW >( GetXclPos().mnRow ), rStrm.GetRoot().GetCurrScTab() ); diff --git a/sc/source/filter/excel/xltools.cxx b/sc/source/filter/excel/xltools.cxx index c6ecb31ed6d5..84e637e034c8 100644 --- a/sc/source/filter/excel/xltools.cxx +++ b/sc/source/filter/excel/xltools.cxx @@ -218,6 +218,16 @@ sal_uInt8 XclTools::GetXclErrorCode( FormulaError nScError ) return EXC_ERR_NA; } +bool XclTools::IsFormulaWithErrorValid( FormulaError nScError ) +{ + switch ( nScError ) + { + // illegal parameter, eg. COUNTIF(1, "x") + case FormulaError::IllegalParameter: return false; + default: return true; + } +} + FormulaError XclTools::GetScErrorCode( sal_uInt8 nXclError ) { switch( nXclError ) diff --git a/sc/source/filter/inc/xestream.hxx b/sc/source/filter/inc/xestream.hxx index 4da0e0b6067a..15082cc7abc8 100644 --- a/sc/source/filter/inc/xestream.hxx +++ b/sc/source/filter/inc/xestream.hxx @@ -251,7 +251,8 @@ public: XclXmlUtils(const XclXmlUtils&) = delete; XclXmlUtils& operator=(const XclXmlUtils&) = delete; - static void GetFormulaTypeAndValue( ScFormulaCell& rCell, const char*& sType, OUString& rValue); + static void GetFormulaTypeAndValue( ScFormulaCell& rCell, const char*& sType, OUString& rValue, + bool* pbWriteFormula = nullptr ); static OUString GetStreamName( const char* sStreamDir, const char* sStream, sal_Int32 nId ); static OString ToOString( const Color& rColor ); diff --git a/sc/source/filter/inc/xltools.hxx b/sc/source/filter/inc/xltools.hxx index f67d896af949..057b1a684864 100644 --- a/sc/source/filter/inc/xltools.hxx +++ b/sc/source/filter/inc/xltools.hxx @@ -119,6 +119,8 @@ public: /** Converts a Calc error code to an Excel error code. */ static sal_uInt8 GetXclErrorCode( FormulaError nScError ); + /** Checks if erroneous formula is valid (file can be opened) in Excel */ + static bool IsFormulaWithErrorValid( FormulaError nScError ); /** Converts an Excel error code to a Calc error code. */ static FormulaError GetScErrorCode( sal_uInt8 nXclError ); commit f71f658d2e587d74803b9f4428989540fa56357f Author: Jean-Pierre Ledure <[email protected]> AuthorDate: Mon Feb 2 15:29:18 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 4 10:57:45 2026 +0100 ScriptForge fix tdf#169176 comma in file names Per https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#file-and-directory-names the comma and the semicolon are not reserved characters in folder or file names. Not in Windows, and also not in Linux. The regular expressions used to filter valid file names have been reviewed accordingly in the ScriptForge.SF_String module. No impact on user scripts, except a better tolerance. No impact on user documentation. Change-Id: I2c4bd442764e0362e1ca6f44603311b0b7ca7679 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198552 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/wizards/source/scriptforge/SF_String.xba b/wizards/source/scriptforge/SF_String.xba index 01205534fcb9..3342d1427aaa 100644 --- a/wizards/source/scriptforge/SF_String.xba +++ b/wizards/source/scriptforge/SF_String.xba @@ -60,8 +60,8 @@ Const REGEXTIMEMIN = "([0-5][0-9])" Const REGEXTIMESEC = REGEXTIMEMIN Const REGEXDIGITS = "^[0-9]+$" Const REGEXEMAIL = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$" -Const REGEXFILELINUX = "^[^<>:;,?""*|\]+$" -Const REGEXFILEWIN = "^([A-Z]|[a-z]:)?[^<>:;,?""*|]+$" +Const REGEXFILELINUX = "^[^<>:?""*|\]+$" +Const REGEXFILEWIN = "^([A-Z]|[a-z]:)?[^<>:?""*|]+$" Const REGEXHEXA = "^(0X|&H)?[0-9A-F]+$" ' Includes 0xFF and &HFF Const REGEXIPV4 = "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" Const REGEXNUMBER = "^[-+]?(([0-9]+)?\.)?[0-9]+([eE][-+]?[0-9]+)?$" commit 6a35463c5459bd98791d89e68cedcc8692683528 Author: Miklos Vajna <[email protected]> AuthorDate: Thu Jan 29 08:37:37 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 4 10:57:45 2026 +0100 cool#13988 DOCX export: fix missing delete flag on deleted comments with ranges Load the bugdoc, see that the comment is marked as deleted (is anchored inside a delete redline), save, reload, the comment is no longer deleted. This is because we write redline start/end around DOCX "runs", and the comment reference dummy character is one such dummy run. So unless explicit redline markup is written, comments (their comment reference) is not inside a redline. Fix this by checking if we'll write comment references (part of comment end) in DocxAttributeOutput::EndRun(). If we're inside a delete, write the delete redline markup around the comment reference, too. Doing the same for inserts would make sense, but then first we would need to tweak Writer's UI to insert new comments outside redlines, otherwise UITest_writer_tests7's tdf90401.tdf90401.test_tdf142902_remove_personal_info_in_DOCX would break. Change-Id: I8d6db05c8a9fd1d5e1e619843967e3f21fb43e59 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198353 Tested-by: Jenkins Reviewed-by: Miklos Vajna <[email protected]> (cherry picked from commit a72506da82d2e0334e23a8c3c1cd07282fdd7ca3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198364 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/sw/qa/extras/ooxmlexport/data/redline-range-comment.docx b/sw/qa/extras/ooxmlexport/data/redline-range-comment.docx new file mode 100644 index 000000000000..1110971401f5 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/redline-range-comment.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport25.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport25.cxx index 319ced5eba2c..9a2bf41b986a 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport25.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport25.cxx @@ -290,6 +290,23 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf167082) CPPUNIT_ASSERT_EQUAL(OUString("Heading 1"), aStyleName); } +CPPUNIT_TEST_FIXTURE(Test, testRangeCommentInDeleteDocxExport) +{ + // Given a document with a comment that is inside a delete redline: + createSwDoc("redline-range-comment.docx"); + + // When exporting that to DOCX: + save(TestFilter::DOCX); + + // Then make sure that the comment reference is inside the delete redline: + xmlDocUniquePtr pXmlDoc = parseExport(u"word/document.xml"_ustr); + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 1 + // - Actual : 0 + // i.e. the comment anchor was outside the redline. + CPPUNIT_ASSERT_EQUAL(1, countXPathNodes(pXmlDoc, "//w:del/w:r/w:commentReference")); +} + CPPUNIT_TEST_FIXTURE(Test, testFloatingTableAnchorPosExport) { // Given a document with two floating tables after each other: diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index b349f53fa821..16dc68ccf6b0 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -2003,7 +2003,20 @@ void DocxAttributeOutput::EndRun(const SwTextNode* pNode, sal_Int32 nPos, sal_In DoWriteBookmarksStart(m_rBookmarksStart, m_pMoveRedlineData); DoWriteBookmarksEnd(m_rBookmarksEnd, false, false); // Write non-moverange bookmarks DoWritePermissionsStart(); + + // Surround annotation references with redline start/end markup if we're inside a delete. + bool bHasAnnotationMarkReferencesInDel = !m_rAnnotationMarksEnd.empty() && m_pRedlineData + && m_pRedlineData->GetType() == RedlineType::Delete; + if (bHasAnnotationMarkReferencesInDel) + { + StartRedline(m_pRedlineData, bLastRun); + } DoWriteAnnotationMarks(); + if (bHasAnnotationMarkReferencesInDel) + { + EndRedline(m_pRedlineData, bLastRun); + } + // if there is some redlining in the document, output it bool bSkipRedline = false; if (nLen == 1) commit 5661048acf7174aa5d66939d2fe1fa6c611b117b Author: Miklos Vajna <[email protected]> AuthorDate: Fri Jan 23 09:31:05 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 4 10:57:45 2026 +0100 cool#13988 DOCX import: fix missing delete flag on deleted comments with ranges The bugdoc has commented text range inside a deletion. The import result doesn't mark the comment as deleted. Comments with a single anchor point work fine, since commit 419b70b5d4db227509614bdea5b4b89bcf7a6032 (tdf#105485 DOCX: import deleted comments as deleted, 2019-08-26). Fix the problem by invoking CheckRedline() in DomainMapper_Impl::PopAnnotation() in the range case as well, that correctly creates the delete redline for the comment anchor. This is shared code for any redlines, so fixes inserts, too. Change-Id: I620e1419cee79ab729ea7be248f1ad079a9fc536 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198125 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins (cherry picked from commit 5d101c9919c7c0798df092bd31b828d0a144abba) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198145 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/sw/qa/writerfilter/dmapper/DomainMapper_Impl.cxx b/sw/qa/writerfilter/dmapper/DomainMapper_Impl.cxx index a98f682ab6c4..9349fae282ef 100644 --- a/sw/qa/writerfilter/dmapper/DomainMapper_Impl.cxx +++ b/sw/qa/writerfilter/dmapper/DomainMapper_Impl.cxx @@ -29,6 +29,8 @@ #include <ndtxt.hxx> #include <swtable.hxx> #include <txatbase.hxx> +#include <wrtsh.hxx> +#include <IDocumentRedlineAccess.hxx> using namespace ::com::sun::star; @@ -532,6 +534,27 @@ CPPUNIT_TEST_FIXTURE(Test, testFieldCharHeightHeaderToC) = rAutoFormat.GetStyleHandle()->Get(RES_CHRATR_FONTSIZE); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(480), rFontHeightItem.GetHeight()); } + +CPPUNIT_TEST_FIXTURE(Test, testAnnotationMarkRedline) +{ + // Given a document with a commented text range, inside a redline: + // When importing that document: + createSwDoc("redline-range-comment.docx"); + + // Then make sure the comment anchor is inside a redline: + SwDocShell* pDocShell = getSwDocShell(); + SwWrtShell* pWrtShell = pDocShell->GetWrtShell(); + pWrtShell->SttEndDoc(/*bStt=*/true); + pWrtShell->Right(SwCursorSkipMode::Chars, /*bSelect=*/false, 7, /*bBasicCall=*/false); + SwPaM* pCursor = pWrtShell->GetCursor(); + SwField* pField = SwCursorShell::GetFieldAtCursor(pCursor, true); + CPPUNIT_ASSERT_EQUAL(SwFieldIds::Postit, pField->Which()); + const IDocumentRedlineAccess& rIDRA = pDocShell->GetDoc()->getIDocumentRedlineAccess(); + const SwRangeRedline* pRedline = rIDRA.GetRedline(*pCursor->Start(), nullptr); + // Without the accompanying fix in place, this test would have failed, the anchor point was not + // inside a redline. + CPPUNIT_ASSERT(pRedline); +} } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/writerfilter/dmapper/data/redline-range-comment.docx b/sw/qa/writerfilter/dmapper/data/redline-range-comment.docx new file mode 100644 index 000000000000..1110971401f5 Binary files /dev/null and b/sw/qa/writerfilter/dmapper/data/redline-range-comment.docx differ diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx index 0499b42776f1..69a7d810488a 100644 --- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx +++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx @@ -4793,7 +4793,6 @@ void DomainMapper_Impl::PopAnnotation() { uno::Sequence< beans::PropertyValue > aEmptyProperties; appendTextContent( m_xAnnotationField, aEmptyProperties ); - CheckRedline( m_xAnnotationField->getAnchor( ) ); } else { @@ -4855,6 +4854,7 @@ void DomainMapper_Impl::PopAnnotation() xCursor->setString(OUString()); } } + CheckRedline(m_xAnnotationField->getAnchor()); m_aAnnotationPositions.erase( m_nAnnotationId ); } catch (uno::Exception const&) commit ddea1db48331e15c7ec4b4027f4e142fce15c717 Author: Xisco Fauli <[email protected]> AuthorDate: Mon Feb 2 10:28:30 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 4 10:57:45 2026 +0100 expat: upgrade to 2.7.4 Downloaded from https://github.com/libexpat/libexpat/releases/download/R_2_7_4/expat-2.7.4.tar.xz Change-Id: I7058df85bf0fbac6608b83967b635382859e4db6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198521 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 79631c2369df3dcd858abd725bb1c7fd1459652b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198531 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/download.lst b/download.lst index c0b238734f3b..0f035d0227d9 100644 --- a/download.lst +++ b/download.lst @@ -111,8 +111,8 @@ ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -EXPAT_SHA256SUM := 71df8f40706a7bb0a80a5367079ea75d91da4f8c65c58ec59bcdfbf7decdab9f -EXPAT_TARBALL := expat-2.7.3.tar.xz +EXPAT_SHA256SUM := 9e9cabb457c1e09de91db2706d8365645792638eb3be1f94dbb2149301086ac0 +EXPAT_TARBALL := expat-2.7.4.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/expat/expat-winapi.patch b/external/expat/expat-winapi.patch index 5cef970a2bf2..8abe65ae7cf1 100644 --- a/external/expat/expat-winapi.patch +++ b/external/expat/expat-winapi.patch @@ -1,11 +1,10 @@ --- misc/expat-2.5.0/lib/expat_external.h 2022-10-25 01:32:54.000000000 +0900 +++ misc/build/expat-2.5.0/lib/expat_external.h 2022-10-30 23:09:47.339459134 +0900 -@@ -88,11 +88,6 @@ +@@ -88,10 +88,6 @@ # ifndef XML_BUILDING_EXPAT /* using Expat from an application */ --# if defined(_MSC_EXTENSIONS) && ! defined(__BEOS__) \ -- && ! defined(__CYGWIN__) +-# if defined(_MSC_VER) && ! defined(__BEOS__) && ! defined(__CYGWIN__) -# define XMLIMPORT __declspec(dllimport) -# endif -
