Rebased ref, commits from common ancestor:
commit df87f0aa08861e53f0d05997fe347d982a3b2f74
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Fri Jan 17 14:56:13 2025 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:21:41 2025 +0100

    sw: HTML import: apply hard formatting at insert position ...
    
    ... even if the paragraph style contains the same item, but with a
    different value.
    
    Surprisingly, SfxItemSet::Differentiate() doesn't actually compare if
    the items in the 2 sets have the same value, just that 2 items with the
    same WhichId exist.
    
    Also, apply paragraph attributes, except list and breaks and other ones.
    
    (follow-up to commit f45d2fa85ba89eb7d71b51c3324f5938509b3201)
    
    (cherry-pick of commit f8126c5d93f2807030da20e2de39f3c72c92e7d3)
    
    Change-Id: I1e11705f63c1f059e2f5baa658238f2d62f6c66c

diff --git a/sw/qa/extras/uiwriter/data/placeholder-bold-style-override.fodt 
b/sw/qa/extras/uiwriter/data/placeholder-bold-style-override.fodt
new file mode 100644
index 000000000000..aed6e40f6648
--- /dev/null
+++ b/sw/qa/extras/uiwriter/data/placeholder-bold-style-override.fodt
@@ -0,0 +1,121 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; 
xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:c
 alcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
 xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:officeooo="http://openoffice.org/2009/office"; 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:
 meta:1.0" 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
+ 
<office:meta><meta:creation-date>2024-08-08T18:32:28.420082817</meta:creation-date><dc:date>2024-08-08T18:33:51.021911316</dc:date><meta:editing-duration>PT1M27S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:document-statistic
 meta:table-count="0" meta:image-count="0" meta:object-count="0" 
meta:page-count="1" meta:paragraph-count="1" meta:word-count="3" 
meta:character-count="21" 
meta:non-whitespace-character-count="19"/><meta:generator>ZetaOffice/7.4.8.0.0$Linux_X86_64
 
LibreOffice_project/ab7057b1137e2241f51e62b58a0c605ec9a4b29c</meta:generator></office:meta>
+ <office:font-face-decls>
+  <style:font-face style:name="Arial Unicode MS1" svg:font-family="'Arial 
Unicode MS'" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Liberation Serif" svg:font-family="'Liberation 
Serif'" style:font-family-generic="roman" style:font-pitch="variable"/>
+  <style:font-face style:name="Noto Serif CJK SC" svg:font-family="'Noto Serif 
CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Arial" svg:font-family="Arial"/>
+  <style:font-face style:name="Arial2" svg:font-family="Arial" 
style:font-family-generic="roman" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <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="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%" loext:color-lum-mod="100%" loext:color-lum-off="0%" 
style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="de" 
fo:country="DE" style:letter-kerning="true" style:font-name-asian="Noto Serif 
CJK SC" style:font-size-asian="10.5pt" style:language-asian="zh" 
style:country-asian="CN" style:font-name-complex="Arial Unicode MS1" 
style:font-size-complex="12pt" style:language-complex="hi" 
style:country-complex="IN"/>
+  </style:default-style>
+  <style:default-style style:family="paragraph">
+   <style:paragraph-properties fo:orphans="2" fo:widows="2" 
fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" 
style:punctuation-wrap="hanging" style:line-break="strict" 
style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
+   <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" 
fo:language="de" fo:country="DE" style:letter-kerning="true" 
style:font-name-asian="Noto Serif CJK SC" style:font-size-asian="10.5pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Arial Unicode MS1" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" 
fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" 
loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" 
loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/>
+  </style:default-style>
+  <style:default-style style:family="table">
+   <style:table-properties table:border-model="collapsing"/>
+  </style:default-style>
+  <style:default-style style:family="table-row">
+   <style:table-row-properties fo:keep-together="auto"/>
+  </style:default-style>
+  <style:style style:name="Standard" style:family="paragraph" 
style:class="text">
+      <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" 
loext:contextual-spacing="false" fo:text-align="start" 
style:justify-single-word="false" fo:orphans="2" fo:widows="2" 
style:writing-mode="lr-tb"/>
+      <style:text-properties style:font-name="Arial" fo:font-family="Arial" 
style:font-family-generic="roman" style:font-pitch="variable" 
fo:font-size="9pt" fo:font-weight="bold" style:font-size-asian="9pt" 
style:font-weight-asian="bold" style:font-name-complex="Arial2" 
style:font-family-complex="Arial" style:font-family-generic-complex="system" 
style:font-pitch-complex="variable" style:font-size-complex="9pt"/>
+  </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:text-align="center" 
style:justify-single-word="false"/>
+  </style:style>
+
+  <text:outline-style style:name="Outline">
+   <text:outline-level-style text:level="1" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="2" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="3" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="4" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="5" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="6" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="7" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="8" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="9" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="10" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+  </text:outline-style>
+  <text:notes-configuration text:note-class="footnote" style:num-format="1" 
text:start-value="0" text:footnotes-position="page" 
text:start-numbering-at="document"/>
+  <text:notes-configuration text:note-class="endnote" style:num-format="i" 
text:start-value="0"/>
+  <text:linenumbering-configuration text:number-lines="false" 
text:offset="0.499cm" style:num-format="1" text:number-position="left" 
text:increment="5"/>
+ </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="P114" style:family="paragraph" 
style:parent-style-name="Standard">
+      <style:paragraph-properties fo:text-align="start" 
style:justify-single-word="false" fo:orphans="0" fo:widows="0"/>
+      <style:text-properties fo:font-weight="normal" 
style:font-weight-asian="normal" style:font-name-complex="Arial2" 
style:font-size-complex="9pt" style:font-weight-complex="normal"/>
+  </style:style>
+  <style:page-layout style:name="pm1">
+   <style:page-layout-properties fo:page-width="21.001cm" 
fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" 
fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" 
fo:margin-right="2cm" style:writing-mode="lr-tb" 
style:footnote-max-height="0cm" loext:margin-gutter="0cm">
+    <style:footnote-sep style:width="0.018cm" 
style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" 
style:line-style="solid" style:adjustment="left" style:rel-width="25%" 
style:color="#000000"/>
+   </style:page-layout-properties>
+   <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"/>
+ </office:master-styles>
+ <office:body>
+  <office:text>
+   <text:sequence-decls>
+    <text:sequence-decl text:display-outline-level="0" 
text:name="Illustration"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+   </text:sequence-decls>
+   <text:p text:style-name="P114">MEINPLATZHALTER</text:p>
+  </office:text>
+ </office:body>
+</office:document>
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx 
b/sw/qa/extras/uiwriter/uiwriter.cxx
index 2d04c9cd7be5..f3285e9aaa9f 100755
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -14,6 +14,7 @@
 #include <com/sun/star/i18n/TextConversionOption.hpp>
 #include <com/sun/star/frame/DispatchHelper.hpp>
 #include <com/sun/star/style/CaseMap.hpp>
+#include <com/sun/star/style/ParagraphAdjust.hpp>
 #include <vcl/errcode.hxx>
 #include <swmodeltestbase.hxx>
 #include <ndtxt.hxx>
@@ -266,6 +267,7 @@ public:
     void testTdf113877_Standard_style();
     void testPlaceholderHTMLPaste();
     void testPlaceholderHTMLInsert();
+    void testPlaceholderHTMLPasteStyleOverride();
 
     CPPUNIT_TEST_SUITE(SwUiWriterTest);
     CPPUNIT_TEST(testReplaceForward);
@@ -414,6 +416,7 @@ public:
     CPPUNIT_TEST(testTdf113877_Standard_style);
     CPPUNIT_TEST(testPlaceholderHTMLPaste);
     CPPUNIT_TEST(testPlaceholderHTMLInsert);
+    CPPUNIT_TEST(testPlaceholderHTMLPasteStyleOverride);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -5261,6 +5264,62 @@ void SwUiWriterTest::testPlaceholderHTMLInsert()
         getProperty<float>(getRun(getParagraph(4), 1, " test"), "CharWeight"));
 }
 
+void SwUiWriterTest::testPlaceholderHTMLPasteStyleOverride()
+{
+    {
+        SwDoc *const pDoc = createDoc();
+
+        SwWrtShell* const pWrtShell = pDoc->GetDocShell()->GetWrtShell();
+        pWrtShell->Insert("AAA");
+        pWrtShell->SplitNode();
+        pWrtShell->Insert("BBB");
+
+        lcl_dispatchCommand(mxComponent, ".uno:SelectAll", {});
+        lcl_dispatchCommand(mxComponent, ".uno:Copy", {});
+    }
+
+    SwDoc *const pDoc = createDoc("placeholder-bold-style-override.fodt");
+
+    // select placeholder field
+    SwWrtShell* const pWrtShell = pDoc->GetDocShell()->GetWrtShell();
+    pWrtShell->Right(CRSR_SKIP_CHARS, /*bSelect=*/true, 15, 
/*bBasicCall=*/false);
+
+    // Paste special as HTML
+    uno::Sequence<beans::PropertyValue> aPropertyValues = 
comphelper::InitPropertySequence(
+        { { "SelectedFormat", 
uno::Any(static_cast<sal_uInt32>(SotClipboardFormatId::HTML)) } });
+
+    lcl_dispatchCommand(mxComponent, ".uno:ClipboardFormatItems", 
aPropertyValues);
+
+    // style sets it to bold
+    uno::Reference<style::XStyleFamiliesSupplier> xSFS(mxComponent, 
uno::UNO_QUERY);
+    uno::Reference<container::XNameContainer> xStyles(
+        xSFS->getStyleFamilies()->getByName("ParagraphStyles"), 
uno::UNO_QUERY);
+    uno::Reference<beans::XPropertySet> 
xStandard(xStyles->getByName("Standard"), uno::UNO_QUERY);
+    uno::Reference<beans::XPropertySet> xTextbody(xStyles->getByName("Text 
body"), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, getProperty<float>(xStandard, 
"CharWeight"));
+    CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, getProperty<float>(xTextbody, 
"CharWeight"));
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(style::ParagraphAdjust_CENTER),
+                         getProperty<sal_Int16>(xTextbody, "ParaAdjust"));
+
+    CPPUNIT_ASSERT_EQUAL(int(3), getParagraphs());
+
+    // but hard formatting overrides to normal
+    CPPUNIT_ASSERT_EQUAL(
+        awt::FontWeight::NORMAL,
+        getProperty<float>(getRun(getParagraph(1), 1, "AAA"), "CharWeight"));
+    CPPUNIT_ASSERT_EQUAL(
+        awt::FontWeight::NORMAL,
+        getProperty<float>(getRun(getParagraph(2), 1, "BBB"), "CharWeight"));
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(style::ParagraphAdjust_LEFT),
+                         getProperty<sal_Int16>(getParagraph(1), 
"ParaAdjust"));
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(style::ParagraphAdjust_LEFT),
+                         getProperty<sal_Int16>(getParagraph(2), 
"ParaAdjust"));
+    CPPUNIT_ASSERT_EQUAL(OUString("Text body"),
+                         getProperty<OUString>(getParagraph(1), 
"ParaStyleName"));
+    CPPUNIT_ASSERT_EQUAL(OUString("Text body"),
+                         getProperty<OUString>(getParagraph(2), 
"ParaStyleName"));
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SwUiWriterTest);
 CPPUNIT_PLUGIN_IMPLEMENT();
 
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 5cf00d312615..107ffc5645ce 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -34,6 +34,7 @@
 
 #include <vcl/errinf.hxx>
 #include <svl/stritem.hxx>
+#include <svl/itemiter.hxx>
 #include <svtools/imap.hxx>
 #include <svtools/htmltokn.h>
 #include <svtools/htmlkywd.hxx>
@@ -520,7 +521,12 @@ SvParserState SwHTMLParser::CallParser()
         m_xDoc->getIDocumentRedlineAccess().SplitRedline( aInsertionRangePam );
 
         ::std::unique_ptr<SfxItemSet> pSet{new 
SfxItemSet(m_xDoc->GetAttrPool(),
-                        RES_CHRATR_BEGIN, RES_CHRATR_END-1)};
+                RES_CHRATR_BEGIN, RES_CHRATR_END-1,
+                RES_PARATR_BEGIN, RES_PARATR_NUMRULE-1,
+                RES_PARATR_NUMRULE+1, RES_PARATR_CONNECT_BORDER,
+                RES_LR_SPACE, RES_UL_SPACE,
+                XATTR_FILL_FIRST, XATTR_FILL_LAST,
+                0)};
         if (pPos->nNode.GetNode().GetTextNode()->GetAttr(*pSet, 0, 0, false, 
false))
         {
             m_pTargetCharAttrs = std::move(pSet);
@@ -4721,7 +4727,23 @@ void SwHTMLParser::SetTextCollAttrs( HTMLAttrContext 
*pContext )
     if (m_pTargetCharAttrs)
     {
         std::unique_ptr<SfxItemSet> const pCharSet(new 
SfxItemSet(*m_pTargetCharAttrs));
-        pCharSet->Differentiate(pCollToSet->GetAttrSet());
+        std::vector<sal_uInt16> clear;
+        // do not use SfxItemSet::Differentiate(), it doesn't compare values!
+        for (SfxItemIter it{*pCharSet}; !it.IsAtEnd(); it.NextItem())
+        {
+            SfxPoolItem const& rItem{*it.GetCurItem()};
+            if (SfxPoolItem const*const 
pItem{pCollToSet->GetAttrSet().GetItem(rItem.Which(), true)})
+            {
+                if (rItem == *pItem)
+                {
+                    clear.emplace_back(rItem.Which());
+                }
+            }
+        }
+        for (auto const it : clear)
+        {
+            pCharSet->ClearItem(it);
+        }
         m_xDoc->getIDocumentContentOperations().InsertItemSet(*m_pPam, 
*pCharSet);
     }
 
commit 95053c40c572961c321487c92232a136ec78b4b2
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Mon Nov 27 08:02:59 2023 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:16 2025 +0100

    tdf#158302 fix build against system-libxml-2.12
    
    Seen in a fedora:40 container, using --with-system-libcmis,
    --with-system-liblangtag and --with-system-xmlsec.
    
    Change-Id: I9d748d3dc0b70dbfdfcb6b99c9ce8440bda6f326
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159980
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    (cherry picked from commit c8f7408db73d2f2ccacb25a2b4fef8dfebdfc6cb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161661
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 764890a53cea2ccb6d2fb6d8c7edb5e1c91ecdc0)
    (cherry picked from commit 81cc1e539114cf826f82c3d3718fe0dfacf66a9a)

diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx 
b/filter/source/xsltfilter/LibXSLTTransformer.cxx
index 1da4103ddd92..803ddd642938 100644
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx
@@ -317,7 +317,7 @@ namespace XSLT
         }
         else
         {
-            xmlErrorPtr lastErr = xmlGetLastError();
+            const xmlError* lastErr = xmlGetLastError();
             OUString msg;
             if (lastErr)
                 msg = OUString::createFromAscii(lastErr->message);
diff --git a/helpcompiler/source/HelpLinker.cxx 
b/helpcompiler/source/HelpLinker.cxx
index d2e3080ca102..f28335b52245 100644
--- a/helpcompiler/source/HelpLinker.cxx
+++ b/helpcompiler/source/HelpLinker.cxx
@@ -861,11 +861,14 @@ void HelpLinker::main( std::vector<std::string> &args,
 // Variable to set an exception in "C" StructuredXMLErrorFunction
 static const HelpProcessingException* GpXMLParsingException = nullptr;
 
-extern "C" void StructuredXMLErrorFunction(void *userData, xmlErrorPtr error)
-{
-    (void)userData;
-    (void)error;
+extern "C" {
 
+#if LIBXML_VERSION >= 21200
+static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, const 
xmlError* error)
+#else
+static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, 
xmlErrorPtr error)
+#endif
+{
     std::string aErrorMsg = error->message;
     std::string aXMLParsingFile;
     if( error->file != nullptr )
@@ -878,6 +881,8 @@ extern "C" void StructuredXMLErrorFunction(void *userData, 
xmlErrorPtr error)
     xmlSetStructuredErrorFunc( nullptr, nullptr );
 }
 
+}
+
 HelpProcessingErrorInfo& HelpProcessingErrorInfo::operator=( const struct 
HelpProcessingException& e )
 {
     m_eErrorClass = e.m_eErrorClass;
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx
index 804ca252cba7..8e0d62a405f5 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -700,7 +700,7 @@ namespace xmloff { namespace token {
         XML_EMBEDDED_VISIBLE_AREA,
         XML_EMBOSSED,
         XML_EMISSIVE_COLOR,
-        XML_EMPTY,
+        XML_TOKEN_EMPTY,
         XML_EMPTY_LINE_REFRESH,
         XML_ENABLE_NUMBERING,
         XML_ENABLED,
diff --git a/opencl/inc/opencl_device_selection.h 
b/opencl/inc/opencl_device_selection.h
index f7d592de6e89..ca7107bbdea3 100644
--- a/opencl/inc/opencl_device_selection.h
+++ b/opencl/inc/opencl_device_selection.h
@@ -21,6 +21,7 @@
 #include <string.h>
 
 #include <clew/clew.h>
+#include <libxml/parser.h>
 #include <libxml/xmlwriter.h>
 #include <libxml/xmlstring.h>
 #include <tools/stream.hxx>
diff --git a/sax/source/fastparser/fastparser.cxx 
b/sax/source/fastparser/fastparser.cxx
index ab2ab0dc63f3..21ef66c49e38 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -567,7 +567,7 @@ Event& Entity::getEvent( CallbackType aType )
 OUString lclGetErrorMessage( xmlParserCtxtPtr ctxt, const OUString& sSystemId, 
sal_Int32 nLine )
 {
     const sal_Char* pMessage;
-    xmlErrorPtr error = xmlCtxtGetLastError( ctxt );
+    const xmlError* error = xmlCtxtGetLastError( ctxt );
     if( error && error->message )
         pMessage = error->message;
     else
diff --git a/sc/source/core/tool/interpr7.cxx b/sc/source/core/tool/interpr7.cxx
index 5a811d881373..a6df1838853d 100644
--- a/sc/source/core/tool/interpr7.cxx
+++ b/sc/source/core/tool/interpr7.cxx
@@ -32,6 +32,7 @@
 
 #include <cstring>
 #include <memory>
+#include <libxml/parser.h>
 
 using namespace com::sun::star;
 
diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx 
b/sc/source/filter/xml/XMLExportDataPilot.cxx
index 37100699b3b2..9df9c4b1ece2 100644
--- a/sc/source/filter/xml/XMLExportDataPilot.cxx
+++ b/sc/source/filter/xml/XMLExportDataPilot.cxx
@@ -127,7 +127,7 @@ void ScXMLExportDataPilot::WriteDPCondition(const 
ScQueryEntry& aQueryEntry, boo
 
     if (aQueryEntry.IsQueryByEmpty())
     {
-        rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, 
GetXMLToken(XML_EMPTY));
+        rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, 
GetXMLToken(XML_TOKEN_EMPTY));
     }
     else if (aQueryEntry.IsQueryByNonEmpty())
     {
diff --git a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx 
b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
index 77d2711bbe2f..c5ba4cfece6c 100644
--- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
+++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
@@ -388,7 +388,7 @@ private:
             case SC_EQUAL:
             {
                 if (rEntry.IsQueryByEmpty())
-                    return GetXMLToken(XML_EMPTY);
+                    return GetXMLToken(XML_TOKEN_EMPTY);
                 else if (rEntry.IsQueryByNonEmpty())
                     return GetXMLToken(XML_NOEMPTY);
 
diff --git a/sc/source/filter/xml/xmlfilti.cxx 
b/sc/source/filter/xml/xmlfilti.cxx
index 2a846cdab262..144d0ca88da1 100644
--- a/sc/source/filter/xml/xmlfilti.cxx
+++ b/sc/source/filter/xml/xmlfilti.cxx
@@ -399,7 +399,7 @@ void ScXMLConditionContext::GetOperator(
         rEntry.eOp = SC_BOTPERC;
     else if (IsXMLToken(aOpStr, XML_BOTTOM_VALUES))
         rEntry.eOp = SC_BOTVAL;
-    else if (IsXMLToken(aOpStr, XML_EMPTY))
+    else if (IsXMLToken(aOpStr, XML_TOKEN_EMPTY))
         rEntry.SetQueryByEmpty();
     else if (aOpStr == ">")
         rEntry.eOp = SC_GREATER;
@@ -843,7 +843,7 @@ void ScXMLDPConditionContext::EndElement()
     else
         aFilterField.eConnect = SC_AND;
     pFilterContext->SetIsCaseSensitive(bIsCaseSensitive);
-    if (IsXMLToken(sOperator, XML_EMPTY))
+    if (IsXMLToken(sOperator, XML_TOKEN_EMPTY))
         aFilterField.SetQueryByEmpty();
     else if (IsXMLToken(sOperator, XML_NOEMPTY))
         aFilterField.SetQueryByNonEmpty();
diff --git a/test/source/primitive2dxmldump.cxx 
b/test/source/primitive2dxmldump.cxx
index 6523c4c0c971..3f28b412c959 100644
--- a/test/source/primitive2dxmldump.cxx
+++ b/test/source/primitive2dxmldump.cxx
@@ -15,6 +15,8 @@
 #include <rtl/strbuf.hxx>
 
 #include <memory>
+#include <libxml/parser.h>
+#include <sal/log.hxx>
 
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
diff --git a/unoxml/source/dom/attr.cxx b/unoxml/source/dom/attr.cxx
index 39cb53230c9a..8655bb2a8f07 100644
--- a/unoxml/source/dom/attr.cxx
+++ b/unoxml/source/dom/attr.cxx
@@ -22,6 +22,7 @@
 #include <string.h>
 
 #include <memory>
+#include <libxml/entities.h>
 
 #include <osl/diagnose.h>
 
diff --git a/unoxml/source/dom/document.cxx b/unoxml/source/dom/document.cxx
index b9c167ee2486..c514ef71a8da 100644
--- a/unoxml/source/dom/document.cxx
+++ b/unoxml/source/dom/document.cxx
@@ -41,6 +41,7 @@
 #include "../events/eventdispatcher.hxx"
 
 #include <string.h>
+#include <libxml/xmlIO.h>
 
 #include <osl/diagnose.h>
 
diff --git a/unoxml/source/dom/documentbuilder.cxx 
b/unoxml/source/dom/documentbuilder.cxx
index 71a6dc6f1785..291fb47347f7 100644
--- a/unoxml/source/dom/documentbuilder.cxx
+++ b/unoxml/source/dom/documentbuilder.cxx
@@ -25,6 +25,7 @@
 
 #include <libxml/xmlerror.h>
 #include <libxml/tree.h>
+#include <libxml/parser.h>
 
 #include <memory>
 
diff --git a/unoxml/source/dom/entity.cxx b/unoxml/source/dom/entity.cxx
index 87d0f9c74efb..9b3a66ef2116 100644
--- a/unoxml/source/dom/entity.cxx
+++ b/unoxml/source/dom/entity.cxx
@@ -22,6 +22,7 @@
 #include <osl/diagnose.h>
 
 #include <string.h>
+#include <libxml/entities.h>
 
 using namespace css::uno;
 using namespace css::xml::dom;
diff --git a/unoxml/source/xpath/xpathapi.cxx b/unoxml/source/xpath/xpathapi.cxx
index faf243b6ff69..7732f3484a34 100644
--- a/unoxml/source/xpath/xpathapi.cxx
+++ b/unoxml/source/xpath/xpathapi.cxx
@@ -26,6 +26,7 @@
 #include <libxml/xmlerror.h>
 #include <libxml/xpath.h>
 #include <libxml/xpathInternals.h>
+#include <libxml/xmlIO.h>
 
 #include <rtl/ustrbuf.hxx>
 
@@ -250,7 +251,7 @@ namespace XPath
         return selectSingleNode(contextNode, expr);
     }
 
-    static OUString make_error_message(xmlErrorPtr pError)
+    static OUString make_error_message(const xmlError* pError)
     {
         OUStringBuffer buf;
         if (pError) {
@@ -293,7 +294,11 @@ namespace XPath
             SAL_WARN("unoxml", "libxml2 error: " << str);
         }
 
+#if LIBXML_VERSION >= 21200
+        static void structured_error_func(void *, const xmlError* error)
+#else
         static void structured_error_func(void *, xmlErrorPtr error)
+#endif
         {
             SAL_WARN("unoxml", "libxml2 error: " << make_error_message(error));
         }
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 1b84a01f7db1..075f74554665 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -701,7 +701,7 @@ namespace xmloff { namespace token {
         TOKEN( "embedded-visible-area",           XML_EMBEDDED_VISIBLE_AREA ),
         TOKEN( "embossed",                        XML_EMBOSSED ),
         TOKEN( "emissive-color",                  XML_EMISSIVE_COLOR ),
-        TOKEN( "empty",                           XML_EMPTY ),
+        TOKEN( "empty",                           XML_TOKEN_EMPTY ),
         TOKEN( "empty-line-refresh",              XML_EMPTY_LINE_REFRESH ),
         TOKEN( "enable-numbering",                XML_ENABLE_NUMBERING ),
         TOKEN( "enabled",                         XML_ENABLED ),
diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 8d72a86fe088..44e9840fd2a9 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -76,7 +76,7 @@ using namespace ::xmloff::token;
 #define DPMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
 #define TMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
 #define PMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
-#define MAP_END() { nullptr, 0, 0, XML_EMPTY, 0 ,0, 
SvtSaveOptions::ODFVER_010, false }
+#define MAP_END() { nullptr, 0, 0, XML_TOKEN_EMPTY, 0 ,0, 
SvtSaveOptions::ODFVER_010, false }
 
 // entry list for graphic properties
 
diff --git a/xmloff/source/style/PageMasterStyleMap.cxx 
b/xmloff/source/style/PageMasterStyleMap.cxx
index 7b11abbd2795..eda04a909231 100644
--- a/xmloff/source/style/PageMasterStyleMap.cxx
+++ b/xmloff/source/style/PageMasterStyleMap.cxx
@@ -153,7 +153,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] =
     PLMAP( "FootnoteLineRelativeWidth", XML_NAMESPACE_STYLE,    XML__EMPTY,    
 XML_TYPE_PERCENT8|MID_FLAG_SPECIAL_ITEM,    CTF_PM_FTN_LINE_WIDTH ),
     PLMAP( "FootnoteLineTextDistance", XML_NAMESPACE_STYLE,    XML__EMPTY,     
XML_TYPE_MEASURE|MID_FLAG_SPECIAL_ITEM,    CTF_PM_FTN_LINE_DISTANCE ),
     PLMAP( "FootnoteLineWeight",        XML_NAMESPACE_STYLE,    
XML_FOOTNOTE_SEP,    XML_TYPE_MEASURE16|MID_FLAG_ELEMENT_ITEM,    
CTF_PM_FTN_LINE_WEIGHT ),
-    PLMAP( "FootnoteLineStyle",     XML_NAMESPACE_STYLE,    XML_EMPTY,  
XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM,  CTF_PM_FTN_LINE_STYLE ),
+    PLMAP( "FootnoteLineStyle",     XML_NAMESPACE_STYLE,    XML_TOKEN_EMPTY,  
XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM,  CTF_PM_FTN_LINE_STYLE ),
 
     //////////////////////////////////////////////////////////////////////////
     //Index 92: Section for 'header-style' own section, all members *have* to 
use CTF_PM_HEADERFLAG in the context entry (the 5th one)
@@ -267,7 +267,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] =
     HFMAP( "FooterFillBitmapOffsetX",             XML_NAMESPACE_DRAW,     
XML_TILE_REPEAT_OFFSET,     
XML_SW_TYPE_BITMAPREPOFFSETX|MID_FLAG_MULTI_PROPERTY,   
CTF_PM_FOOTERREPEAT_OFFSET_X ),
     HFMAP( "FooterFillBitmapOffsetY",             XML_NAMESPACE_DRAW,     
XML_TILE_REPEAT_OFFSET,     
XML_SW_TYPE_BITMAPREPOFFSETY|MID_FLAG_MULTI_PROPERTY,   
CTF_PM_FOOTERREPEAT_OFFSET_Y ),
 
-    { nullptr, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, false } // 
index 190
+    { nullptr, 0, 0, XML_TOKEN_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, false 
} // index 190
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/table/XMLTableExport.cxx 
b/xmloff/source/table/XMLTableExport.cxx
index 0971e6fa5d03..e3973f0cf46b 100644
--- a/xmloff/source/table/XMLTableExport.cxx
+++ b/xmloff/source/table/XMLTableExport.cxx
@@ -63,7 +63,7 @@ using namespace ::com::sun::star::style;
 #define CMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TABLE_COLUMN,context)
 #define RMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TABLE_ROW,context)
 #define CELLMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TABLE_CELL,context)
-#define MAP_END { nullptr, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, 
false }
+#define MAP_END { nullptr, 0, 0, XML_TOKEN_EMPTY, 0, 0, 
SvtSaveOptions::ODFVER_010, false }
 
 const XMLPropertyMapEntry* getColumnPropertiesMap()
 {
diff --git a/xmlsecurity/inc/xmlsec/saxhelper.hxx 
b/xmlsecurity/inc/xmlsec/saxhelper.hxx
index 44e61de8e0ef..87a12672b3c1 100644
--- a/xmlsecurity/inc/xmlsec/saxhelper.hxx
+++ b/xmlsecurity/inc/xmlsec/saxhelper.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_XMLSECURITY_INC_XMLSEC_SAXHELPER_HXX
 #define INCLUDED_XMLSECURITY_INC_XMLSEC_SAXHELPER_HXX
 
+#include "libxml/parser.h"
 #include "libxml/tree.h"
 
 #include <com/sun/star/xml/sax/SAXException.hpp>
commit e815355217637e592431c731215eb253510a723a
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Tue Jul 4 08:31:28 2023 +0200
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    Fix Linux --without-system-libxml build
    
    ...after 362dfc50a28a918ec73609a00d2851eb3058375d "libxslt: upgrade to 
release
    1.1.38"
    
    Change-Id: Id0ebf5676f79c43bb4fab3a33a2a19e303881aef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153942
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit d1fc1c326470461def5ab092a311afee31950880)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154000
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit 2808d5a6874d5956d99e02feb0fbf55a7343d63c)

diff --git a/external/libxslt/ExternalPackage_xslt.mk 
b/external/libxslt/ExternalPackage_xslt.mk
index f0fd5336297d..df7bc6c52a98 100644
--- a/external/libxslt/ExternalPackage_xslt.mk
+++ b/external/libxslt/ExternalPackage_xslt.mk
@@ -25,7 +25,7 @@ $(eval $(call 
gb_ExternalPackage_add_file,xslt,$(LIBO_LIB_FOLDER)/libexslt.dll,w
 endif
 else # OS!=WNT
 $(eval $(call 
gb_ExternalPackage_add_file,xslt,$(LIBO_LIB_FOLDER)/libxslt.so.1,libxslt/.libs/libxslt.so.1.1.$(LIBXSLT_VERSION_MICRO)))
-$(eval $(call 
gb_ExternalPackage_add_file,xslt,$(LIBO_LIB_FOLDER)/libexslt.so.0,libexslt/.libs/libexslt.so.0.8.20))
+$(eval $(call 
gb_ExternalPackage_add_file,xslt,$(LIBO_LIB_FOLDER)/libexslt.so.0,libexslt/.libs/libexslt.so.0.8.21))
 endif
 endif # DISABLE_DYNLOADING
 
commit c3b2af7edb2b3a1b11eddcf0798584f37abe3d4d
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Tue May 23 21:15:52 2023 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    upgrade to libxml2-2.11.4
    
    'checked' field removed with:
    
https://gitlab.gnome.org/GNOME/libxml2/-/commit/ce76ebfd1312459951d555ad9d87fb9a89eede55
    
    win32 'run_debug' removed with:
    
https://gitlab.gnome.org/GNOME/libxml2/-/commit/59f2f60e3eff07324f1c7cd861a444d714be750b
    
    add libxml2-XMLCALL-redefine.patch.0 to avoid:
    UnpackedTarball\libxml2\include\libxml/xmlexports.h(41): error C2220: the 
following warning is treated as an error
    UnpackedTarball\libxml2\include\libxml/xmlexports.h(41): warning C4005: 
'XMLCALL': macro redefinition
    UnpackedTarballxpat\libxpat_external.h(69): note: see previous definition 
of 'XMLCALL'
    
    Change-Id: Ia9b1540dc1b4eccf91662c8d995c036f71de6fc6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152176
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit fd6cbd983a3021d22321854d0414bdc42c6cb1b7)

diff --git a/external/libxml2/ExternalProject_xml2.mk 
b/external/libxml2/ExternalProject_xml2.mk
index c9add1663198..9c3fa052fc59 100644
--- a/external/libxml2/ExternalProject_xml2.mk
+++ b/external/libxml2/ExternalProject_xml2.mk
@@ -21,7 +21,7 @@ $(eval $(call gb_ExternalProject_use_nmake,xml2,build))
 $(call gb_ExternalProject_get_state_target,xml2,build):
        $(call gb_ExternalProject_run,build,\
                cscript /e:javascript configure.js \
-                       iconv=no icu=yes sax1=yes $(if 
$(MSVC_USE_DEBUG_RUNTIME),run_debug=yes cruntime=/MDd) \
+                       iconv=no icu=yes sax1=yes $(if 
$(MSVC_USE_DEBUG_RUNTIME),cruntime=/MDd) \
                        $(if $(filter TRUE,$(ENABLE_DBGUTIL)),debug=yes) \
                && nmake \
        ,win32)
diff --git a/external/libxml2/UnpackedTarball_xml2.mk 
b/external/libxml2/UnpackedTarball_xml2.mk
index 52523c5c8bd3..45a67cf63a42 100644
--- a/external/libxml2/UnpackedTarball_xml2.mk
+++ b/external/libxml2/UnpackedTarball_xml2.mk
@@ -16,6 +16,7 @@ $(eval $(call 
gb_UnpackedTarball_update_autoconf_configs,xml2))
 $(eval $(call gb_UnpackedTarball_add_patches,xml2,\
        external/libxml2/libxml2-global-symbols.patch \
        external/libxml2/libxml2-vc10.patch \
+       external/libxml2/libxml2-XMLCALL-redefine.patch.0 \
        $(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \
        external/libxml2/libxml2-icu.patch.0 \
 ))
diff --git a/external/libxml2/libxml2-XMLCALL-redefine.patch.0 
b/external/libxml2/libxml2-XMLCALL-redefine.patch.0
new file mode 100644
index 000000000000..d9ca23be7ce4
--- /dev/null
+++ b/external/libxml2/libxml2-XMLCALL-redefine.patch.0
@@ -0,0 +1,11 @@
+--- include/libxml/xmlexports.h        2023-05-24 12:48:46.179570708 +0100
++++ include/libxml/xmlexports.h        2023-05-24 12:48:56.563577488 +0100
+@@ -38,8 +38,6 @@
+ 
+ /** DOC_DISABLE */
+ /* Compatibility */
+-#define XMLCALL
+-#define XMLCDECL
+ #if !defined(LIBXML_DLL_IMPORT)
+ #define LIBXML_DLL_IMPORT XMLPUBVAR
+ #endif
diff --git a/external/libxml2/libxml2-icu.patch.0 
b/external/libxml2/libxml2-icu.patch.0
index b390b03d8787..84197763f878 100644
--- a/external/libxml2/libxml2-icu.patch.0
+++ b/external/libxml2/libxml2-icu.patch.0
@@ -23,7 +23,7 @@ diff -up win32/Makefile.msvc.dt win32/Makefile.msvc
  !if "$(STATIC)" == "1"
  LIBS = $(LIBS) advapi32.lib sicuuc.lib sicuin.lib sicudt.lib
  !else
-+!if "$(WITH_RUN_DEBUG)" == "1"
++!if "$(DEBUG)" == "1"
 +LIBS = $(LIBS) icuind.lib icuucd.lib icudtd.lib
 +!else
  LIBS = $(LIBS) icuuc.lib icuin.lib icudt.lib
diff --git a/external/redland/UnpackedTarball_raptor.mk 
b/external/redland/UnpackedTarball_raptor.mk
index 10cf2b5e5480..961047e16d3a 100644
--- a/external/redland/UnpackedTarball_raptor.mk
+++ b/external/redland/UnpackedTarball_raptor.mk
@@ -29,6 +29,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,raptor,\
        
external/redland/raptor/0001-CVE-2020-25713-raptor2-malformed-input-file-can-lead.patch.1
 \
        external/redland/raptor/libtool.patch \
        external/redland/raptor/Wint-conversion.patch \
+       external/redland/raptor/raptor-libxml2-11.patch.1 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/redland/raptor/raptor-libxml2-11.patch.1 
b/external/redland/raptor/raptor-libxml2-11.patch.1
new file mode 100644
index 000000000000..9bed29e50d0b
--- /dev/null
+++ b/external/redland/raptor/raptor-libxml2-11.patch.1
@@ -0,0 +1,15 @@
+--- raptor/src/raptor_libxml.c 2023-05-24 09:55:21.589275008 +0100
++++ raptor/src/raptor_libxml.c 2023-05-24 09:56:41.100324810 +0100
+@@ -246,9 +246,11 @@
+     
+     ret->owner = 1;
+ 
+-#if LIBXML_VERSION >= 20627
++#if LIBXML_VERSION >= 20627 && LIBXML_VERSION < 21100
+     /* Checked field was released in 2.6.27 on 2006-10-25
+      * 
http://git.gnome.org/browse/libxml2/commit/?id=a37a6ad91a61d168ecc4b29263def3363fff4da6
++     * and removed with
++     * 
https://gitlab.gnome.org/GNOME/libxml2/-/commit/ce76ebfd1312459951d555ad9d87fb9a89eede55
+      *
+      */
+ 
commit b177960c3a78613bddcd844a1376eb0418f56ff1
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Jan 3 20:45:14 2024 +0000
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    upgrade libxml2, libxslt & liblangtag
    
    what I'm really after is some vexating not-reproducible oss-fuzz msan
    warnings when using libxml2 in the fodt2pdf fuzzer. So lets upgrade
    libxml2 to the latest, which requires bumping libxslt, and then requires
    a newer liblangtag because of no longer implicit includes that it
    depended on.
    
    xmlKeepBlanksDefaultValue and xmlSubstituteEntitiesDefault are
    deprecated, we should get around to updating those uses
    
    Change-Id: I8fda0dffda0a7ea65407d246a3121875cb8ad4a4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161598
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 6875c975f80d8b813b1829a530162869a1e2d92e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163751
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 050a2db3964d5f02e2dd149cb7f76342457a6719)

diff --git a/download.lst b/download.lst
index cedefe9cf9ef..e8773650b4d0 100644
--- a/download.lst
+++ b/download.lst
@@ -135,8 +135,8 @@ export LIBGLTF_SHA256SUM := 
119e730fbf002dd0eaafa4930167267d7d910aa17f29979ca9ca
 export LIBGLTF_TARBALL := libgltf-0.1.0.tar.gz
 export LIBGPGERROR_SHA256SUM := 
4c4bcbc90116932e3acd37b37812d8653b1b189c1904985898e860af818aee69
 export LIBGPGERROR_TARBALL := libgpg-error-1.26.tar.bz2
-export LIBLANGTAG_SHA256SUM := 
d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e
-export LIBLANGTAG_TARBALL := liblangtag-0.6.2.tar.bz2
+export LIBLANGTAG_SHA256SUM := 
5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e
+export LIBLANGTAG_TARBALL := liblangtag-0.6.7.tar.bz2
 export LIBTOMMATH_SHA256SUM := 
986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f
 export LIBTOMMATH_TARBALL := ltm-1.2.1.tar.xz
 export LIBXMLSEC_SHA256SUM := 
99a8643f118bb1261a72162f83e2deba0f4f690893b4b90e1be4f708e8d481cc
@@ -144,8 +144,8 @@ export LIBXMLSEC_TARBALL := xmlsec1-1.2.24.tar.gz
 export LIBXML_SHA256SUM := 
59912db536ab56a3996489ea0299768c7bcffe57169f0235e7f962a91f483590
 export LIBXML_VERSION_MICRO := 9
 export LIBXML_TARBALL := libxml2-2.12.$(LIBXML_VERSION_MICRO).tar.xz
-export LIBXSLT_SHA256SUM := 
8247f33e9a872c6ac859aa45018bc4c4d00b97e2feac9eebc10c93ce1f34dd79
-export LIBXSLT_VERSION_MICRO := 35
+export LIBXSLT_SHA256SUM := 
2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0
+export LIBXSLT_VERSION_MICRO := 39
 export LIBXSLT_TARBALL := libxslt-1.1.$(LIBXSLT_VERSION_MICRO).tar.xz
 export LPSOLVE_SHA256SUM := 
171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695
 export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
diff --git a/external/libxml2/libxml2-global-symbols.patch 
b/external/libxml2/libxml2-global-symbols.patch
index cbbe5a622284..32146da4b3d7 100644
--- a/external/libxml2/libxml2-global-symbols.patch
+++ b/external/libxml2/libxml2-global-symbols.patch
@@ -13,7 +13,7 @@
  } LIBXML2_2.6.28;
  
  LIBXML2_2.6.32 {
-@@ -2231,3 +2231,49 @@
+@@ -2231,3 +2231,55 @@
    xmlPopOutputCallbacks;
  } LIBXML2_2.9.8;
  
@@ -23,6 +23,12 @@
 +    xmlNewSAXParserCtxt;
 +} LIBXML2_2.9.11;
 +
++LIBXML2_2.12.3 {
++    global:
++    xmlCtxtSetMaxAmplification;
++    xmlTextReaderSetMaxAmplification;
++} LIBXML2_2.11.4;
++
 +# HACK: export global variable accessor functions (globals.h)
 +LIBXML2_GLOBAL_VARIABLES {
 +    global:
diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx 
b/filter/source/xsltfilter/LibXSLTTransformer.cxx
index d828cbd91991..1da4103ddd92 100644
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx
@@ -476,7 +476,23 @@ namespace XSLT
         {   // backward compatibility for old clients using createInstance
             params = args;
         }
+
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4996)
+#endif
         xmlSubstituteEntitiesDefault(0);
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
         m_parameters.clear();
         for (int i = 0; i < params.getLength(); i++)
         {
diff --git a/helpcompiler/source/HelpCompiler.cxx 
b/helpcompiler/source/HelpCompiler.cxx
index 8f0301ca2fe0..4f73c3bda9f5 100644
--- a/helpcompiler/source/HelpCompiler.cxx
+++ b/helpcompiler/source/HelpCompiler.cxx
@@ -44,7 +44,21 @@ HelpCompiler::HelpCompiler(StreamTable &in_streamTable, 
const fs::path &in_input
     src(in_src), zipdir(in_zipdir), module(in_module), lang(in_lang), 
resCompactStylesheet(in_resCompactStylesheet),
     resEmbStylesheet(in_resEmbStylesheet), bExtensionMode( in_bExtensionMode )
 {
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4996)
+#endif
     xmlKeepBlanksDefaultValue = 0;
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
     char* os = getenv("OS");
     if (os)
     {
diff --git a/xmlsecurity/source/xmlsec/saxhelper.cxx 
b/xmlsecurity/source/xmlsec/saxhelper.cxx
index 6fb61db139f6..deeb3b768842 100644
--- a/xmlsecurity/source/xmlsec/saxhelper.cxx
+++ b/xmlsecurity/source/xmlsec/saxhelper.cxx
@@ -115,11 +115,24 @@ SAXHelper::SAXHelper( )
      * compile error:
      * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS ;
      */
-    xmlSubstituteEntitiesDefault( 1 ) ;
-
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4996)
+#endif
+    xmlSubstituteEntitiesDefault(1) ;
 #ifndef XMLSEC_NO_XSLT
     xmlIndentTreeOutput = 1 ;
 #endif /* XMLSEC_NO_XSLT */
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
 
     m_pParserCtxt = xmlNewParserCtxt() ;
 
commit 4d87dd0d04769ae0ed0c9131eb31ccf29f58a563
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Fri May 26 09:13:04 2023 +0200
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    external/libxml2: Fix missing external symbols needed by xmllint
    
    After 5b42f148e206cda19467e76c2f9915fc2b6fa5f6 "ExternalProject_libxml2 
still
    needs to build the xmllint executable" (which I had happened to prepare on
    macOS, so didn't originally notice the issue addressed here now), Linux 
builds
    like <https://ci.libreoffice.org/job/lo_callgrind_linux/13374/> started to 
fail
    with
    
    >   CCLD     xmllint
    > /opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ld: 
xmllint-xmllint.o: in function `testSAX':
    > 
/home/tdf/lode/jenkins/workspace/lo_callgrind_linux/workdir/UnpackedTarball/libxml2/xmllint.c:1646:
 undefined reference to `xmlNewSAXParserCtxt'
    > /opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ld: 
xmllint-xmllint.o: in function `myReallocFunc':
    > 
/home/tdf/lode/jenkins/workspace/lo_callgrind_linux/workdir/UnpackedTarball/libxml2/xmllint.c:357:
 undefined reference to `xmlMemSize'
    > collect2: error: ld returned 1 exit status
    > make[2]: *** [Makefile:1007: xmllint] Error 1
    > make[1]: *** 
[/home/tdf/lode/jenkins/workspace/lo_callgrind_linux/external/libxml2/ExternalProject_libxml2.mk:37:
 
/home/tdf/lode/jenkins/workspace/lo_callgrind_linux/workdir/ExternalProject/libxml2/build]
 Error 1
    
    Turns out that those two functions have been introduced after the previously
    used libxml2 2.10.4.  No idea how things are supposed to work (given that
    workdir/UnpackedTarball/libxml2/libxml2.syms starts off with "Retained for
    backward compatibility. Don't add new symbols.", it appears that there 
should be
    some other mechanism at play to make xmllint on Linux find the libxml2.so
    symbols it needs, but which doesn't work as intended in our build), but 
just add
    those two symbols to libxml2.syms for now.  (With a new version named
    LIBXML2_2.11.4, even if the symbols can actually have been introduced in 
some
    other version between 2.10.4 and 2.11.4, but who cares.)
    
    Change-Id: Ib9d5c7901fe94b8014a87b049fc27ef5658fd954
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152292
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit 7d9b3393e2632247624d8a1e3129365290d1b60b)

diff --git a/external/libxml2/libxml2-global-symbols.patch 
b/external/libxml2/libxml2-global-symbols.patch
index cfec9c530281..cbbe5a622284 100644
--- a/external/libxml2/libxml2-global-symbols.patch
+++ b/external/libxml2/libxml2-global-symbols.patch
@@ -13,10 +13,16 @@
  } LIBXML2_2.6.28;
  
  LIBXML2_2.6.32 {
-@@ -2231,3 +2231,43 @@
+@@ -2231,3 +2231,49 @@
    xmlPopOutputCallbacks;
  } LIBXML2_2.9.8;
  
++LIBXML2_2.11.4 {
++    global:
++    xmlMemSize;
++    xmlNewSAXParserCtxt;
++} LIBXML2_2.9.11;
++
 +# HACK: export global variable accessor functions (globals.h)
 +LIBXML2_GLOBAL_VARIABLES {
 +    global:
commit 2e5ce26b84498838e6e077d7f485d7e188845ce4
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Thu May 25 08:21:20 2023 +0200
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    ExternalProject_libxml2 still needs to build the xmllint executable
    
    No idea why fd6cbd983a3021d22321854d0414bdc42c6cb1b7 "upgrade to 
libxml2-2.11.4"
    started to only explicitly make libxml2.la (the commit message doesn't 
say), but
    that caused at least <https://ci.libreoffice.org/job/lo_ubsan/2788/> to fail
    with
    
    > make[1]: *** Deleting file 
'/home/tdf/lode/jenkins/workspace/lo_ubsan/workdir/CustomTarget/sfx2/classification/example.validated'
    > [build VAL] CustomTarget/sfx2/classification/example.validated
    > /bin/sh: 
/home/tdf/lode/jenkins/workspace/lo_ubsan/workdir/UnpackedTarball/libxml2//xmllint:
 No such file or directory
    > make[1]: *** 
[/home/tdf/lode/jenkins/workspace/lo_ubsan/sfx2/CustomTarget_classification.mk:20:
 
/home/tdf/lode/jenkins/workspace/lo_ubsan/workdir/CustomTarget/sfx2/classification/example.validated]
 Error 1
    
    Change-Id: I7e7aa2bae05cf8674720cfd72c78840cd7a28919
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152256
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit 5b42f148e206cda19467e76c2f9915fc2b6fa5f6)

diff --git a/external/libxml2/ExternalProject_xml2.mk 
b/external/libxml2/ExternalProject_xml2.mk
index 3982499e187d..c9add1663198 100644
--- a/external/libxml2/ExternalProject_xml2.mk
+++ b/external/libxml2/ExternalProject_xml2.mk
@@ -36,7 +36,7 @@ $(call gb_ExternalProject_get_state_target,xml2,build):
                        LDFLAGS="$(if $(SYSBASE),-L$(SYSBASE)/usr/lib)" \
                        CFLAGS="$(if $(SYSBASE),-I$(SYSBASE)/usr/include) $(if 
$(debug),-g)" \
                        $(if $(filter 
TRUE,$(DISABLE_DYNLOADING)),--disable-shared,--disable-static) \
-               && $(MAKE) \
+               && $(MAKE) libxml2.la xmllint \
        )
 endif
 
commit 54c1447d1e25e98f55ece3ccf2580252b56bc2c9
Author:     László Németh <nem...@numbertext.org>
AuthorDate: Thu Dec 29 22:09:55 2022 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    upgrade to hunspell 1.7.2
    
    Change-Id: If969eccc73926911a4a09440623adf83b8e2c520
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144869
    Tested-by: Jenkins
    Reviewed-by: László Németh <nem...@numbertext.org>
    (cherry picked from commit 247e161cf1dca6811998b67d1138062fa4e14381)

diff --git a/download.lst b/download.lst
index b87884bfc9f2..cedefe9cf9ef 100644
--- a/download.lst
+++ b/download.lst
@@ -85,8 +85,8 @@ export HARFBUZZ_SHA256SUM := 
ccec4930ff0bb2d0c40aee203075447954b64a8c2695202413c
 export HARFBUZZ_TARBALL := harfbuzz-1.4.8.tar.bz2
 export HSQLDB_SHA256SUM := 
d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370
 export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
-export HUNSPELL_SHA256SUM := 
b2d9c5369c2cc7f321cb5983fda2dbf007dce3d9e17519746840a6f0c4bf7444
-export HUNSPELL_TARBALL := hunspell-1.7.1.tar.gz
+export HUNSPELL_SHA256SUM := 
11ddfa39afe28c28539fe65fc4f1592d410c1e9b6dd7d8a91ca25d85e9ec65b8
+export HUNSPELL_TARBALL := hunspell-1.7.2.tar.gz
 export HYPHEN_SHA256SUM := 
304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705
 export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
 export ICU_SHA256SUM := 
0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309
diff --git 
a/external/hunspell/0001-fix-LibreOffice-build-problem-with-basic_string-appe.patch
 
b/external/hunspell/0001-fix-LibreOffice-build-problem-with-basic_string-appe.patch
new file mode 100644
index 000000000000..3c6f9831b2b4
--- /dev/null
+++ 
b/external/hunspell/0001-fix-LibreOffice-build-problem-with-basic_string-appe.patch
@@ -0,0 +1,84 @@
+From 1587ea4ab5e8d94c9c0d552f7ab61c217ebdcbeb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= <nem...@numbertext.org>
+Date: Fri, 30 Dec 2022 12:20:02 +0100
+Subject: [PATCH] fix LibreOffice build problem with basic_string::append()
+
+---
+ src/hunspell/affentry.cxx | 6 +++---
+ src/hunspell/affixmgr.cxx | 8 ++++----
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/hunspell/affentry.cxx b/src/hunspell/affentry.cxx
+index 46e8b58..6ee23be 100644
+--- a/src/hunspell/affentry.cxx
++++ b/src/hunspell/affentry.cxx
+@@ -290,7 +290,7 @@ struct hentry* PfxEntry::check_twosfx(const std::string& 
word,
+     // back any characters that would have been stripped
+ 
+     std::string tmpword(strip);
+-    tmpword.append(word, start + appnd.size());
++    tmpword.append(word, start + appnd.size(), tmpl);
+ 
+     // now make sure all of the conditions on characters
+     // are met.  Please see the appendix at the end of
+@@ -338,7 +338,7 @@ std::string PfxEntry::check_twosfx_morph(const 
std::string& word,
+     // back any characters that would have been stripped
+ 
+     std::string tmpword(strip);
+-    tmpword.append(word, start + appnd.size());
++    tmpword.append(word, start + appnd.size(), tmpl);
+ 
+     // now make sure all of the conditions on characters
+     // are met.  Please see the appendix at the end of
+@@ -386,7 +386,7 @@ std::string PfxEntry::check_morph(const std::string& word,
+     // back any characters that would have been stripped
+ 
+     std::string tmpword(strip);
+-    tmpword.append(word, start + appnd.size());
++    tmpword.append(word, start + appnd.size(), tmpl);
+ 
+     // now make sure all of the conditions on characters
+     // are met.  Please see the appendix at the end of
+diff --git a/src/hunspell/affixmgr.cxx b/src/hunspell/affixmgr.cxx
+index 4d1ad2f..a8931c1 100644
+--- a/src/hunspell/affixmgr.cxx
++++ b/src/hunspell/affixmgr.cxx
+@@ -2465,7 +2465,7 @@ int AffixMgr::compound_check_morph(const std::string& 
word,
+           result.append(presult);
+           result.push_back(MSEP_FLD);
+           result.append(MORPH_PART);
+-          result.append(word, i);
++          result.append(word, i, word.size());
+           if (complexprefixes && HENTRY_DATA(rv))
+             result.append(HENTRY_DATA2(rv));
+           if (!HENTRY_FIND(rv, MORPH_STEM)) {
+@@ -2522,7 +2522,7 @@ int AffixMgr::compound_check_morph(const std::string& 
word,
+           result.append(presult);
+           result.push_back(MSEP_FLD);
+           result.append(MORPH_PART);
+-          result.append(word, i);
++          result.append(word, i, word.size());
+ 
+           if (HENTRY_DATA(rv)) {
+             if (complexprefixes)
+@@ -2573,7 +2573,7 @@ int AffixMgr::compound_check_morph(const std::string& 
word,
+             if (!m.empty()) {
+               result.push_back(MSEP_FLD);
+               result.append(MORPH_PART);
+-              result.append(word, i);
++              result.append(word, i, word.size());
+               line_uniq_app(m, MSEP_REC);
+               result.append(m);
+             }
+@@ -2665,7 +2665,7 @@ int AffixMgr::compound_check_morph(const std::string& 
word,
+           if (!m.empty()) {
+             result.push_back(MSEP_FLD);
+             result.append(MORPH_PART);
+-            result.append(word, i);
++            result.append(word, i, word.size());
+             line_uniq_app(m, MSEP_REC);
+             result.push_back(MSEP_FLD);
+             result.append(m);
+-- 
+2.17.1
+
diff --git a/external/hunspell/UnpackedTarball_hunspell.mk 
b/external/hunspell/UnpackedTarball_hunspell.mk
index 1c6a86a89478..166b3d498cf5 100644
--- a/external/hunspell/UnpackedTarball_hunspell.mk
+++ b/external/hunspell/UnpackedTarball_hunspell.mk
@@ -20,6 +20,7 @@ endif
 $(eval $(call gb_UnpackedTarball_set_patchlevel,hunspell,1))
 
 $(eval $(call gb_UnpackedTarball_add_patches,hunspell, \
+       
external/hunspell/0001-fix-LibreOffice-build-problem-with-basic_string-appe.patch
 \
 ))
 
 # vim: set noet sw=4 ts=4:
commit 611b5f20f764a7181f59f951d6dc71386001735e
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Aug 22 15:05:40 2022 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    upgrade to hunspell 1.7.1
    
    Change-Id: Ifff2f17d17ab2764f3703b008fcb096ff08c9315
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138690
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    (cherry picked from commit 46003cb1c4c770a9ba4eb9b2a55561c2ebeb3519)

diff --git a/download.lst b/download.lst
index 9c222f1e0cb8..b87884bfc9f2 100644
--- a/download.lst
+++ b/download.lst
@@ -85,8 +85,8 @@ export HARFBUZZ_SHA256SUM := 
ccec4930ff0bb2d0c40aee203075447954b64a8c2695202413c
 export HARFBUZZ_TARBALL := harfbuzz-1.4.8.tar.bz2
 export HSQLDB_SHA256SUM := 
d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370
 export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
-export HUNSPELL_SHA256SUM := 
57be4e03ae9dd62c3471f667a0d81a14513e314d4d92081292b90435944ff951
-export HUNSPELL_TARBALL := hunspell-1.7.0.tar.gz
+export HUNSPELL_SHA256SUM := 
b2d9c5369c2cc7f321cb5983fda2dbf007dce3d9e17519746840a6f0c4bf7444
+export HUNSPELL_TARBALL := hunspell-1.7.1.tar.gz
 export HYPHEN_SHA256SUM := 
304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705
 export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
 export ICU_SHA256SUM := 
0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309
commit ac8deb8b5c73d61b06d18d72657ab137f31e16cb
Author:     László Németh <nem...@numbertext.org>
AuthorDate: Wed Nov 7 13:18:36 2018 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Tue Jan 21 16:09:15 2025 +0100

    bump hunspell to 1.7
    
    Change-Id: Ia8d1f4831e651b3a8d5115f78e5a5239b56c71c4
    Reviewed-on: https://gerrit.libreoffice.org/63015
    Tested-by: Jenkins
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/configure.ac b/configure.ac
index 2e6210794782..edefdb34cd9c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9587,7 +9587,7 @@ else
     if test "$COM" = "MSC"; then
         HUNSPELL_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/hunspell.lib"
     else
-        
HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs 
-lhunspell-1.6"
+        
HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs 
-lhunspell-1.7"
     fi
     BUILD_TYPE="$BUILD_TYPE HUNSPELL"
 fi
diff --git a/download.lst b/download.lst
index 263439f3d8b6..9c222f1e0cb8 100644
--- a/download.lst
+++ b/download.lst
@@ -85,8 +85,8 @@ export HARFBUZZ_SHA256SUM := 
ccec4930ff0bb2d0c40aee203075447954b64a8c2695202413c
 export HARFBUZZ_TARBALL := harfbuzz-1.4.8.tar.bz2
 export HSQLDB_SHA256SUM := 
d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370
 export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
-export HUNSPELL_SHA256SUM := 
512e7d2ee69dad0b35ca011076405e56e0f10963a02d4859dbcc4faf53ca68e2
-export HUNSPELL_TARBALL := 
047c3feb121261b76dc16cdb62f54483-hunspell-1.6.0.tar.gz
+export HUNSPELL_SHA256SUM := 
57be4e03ae9dd62c3471f667a0d81a14513e314d4d92081292b90435944ff951
+export HUNSPELL_TARBALL := hunspell-1.7.0.tar.gz
 export HYPHEN_SHA256SUM := 
304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705
 export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
 export ICU_SHA256SUM := 
0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309
diff --git 
a/external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch 
b/external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch
deleted file mode 100644
index ab6b19d2442a..000000000000
--- a/external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch
+++ /dev/null
@@ -1,61599 +0,0 @@
-From dbac0be3ac61fc73f557ff5c95d8d5d93c272191 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caol...@redhat.com>
-Date: Mon, 23 Jan 2017 16:02:59 +0000
-Subject: [PATCH] Revert "Remove autotools autogenerated files"
-
-This reverts commit f53fc2c5f5a79b32010a76216fcdc0838243cc3f.
----
- Makefile.in                      |   951 ++
- aclocal.m4                       |  1290 ++
- compile                          |   347 +
- config.guess                     |  1421 +++
- config.h.in                      |   572 +
- config.sub                       |  1807 +++
- configure                        | 25046 +++++++++++++++++++++++++++++++++++++
- depcomp                          |   791 ++
- install-sh                       |   501 +
- ltmain.sh                        | 11147 +++++++++++++++++
- m4/Makefile.in                   |   518 +
- m4/isc-posix.m4                  |    26 +
- m4/libtool.m4                    |  8372 +++++++++++++
- m4/ltoptions.m4                  |   437 +
- m4/ltsugar.m4                    |   124 +
- m4/ltversion.m4                  |    23 +
- m4/lt~obsolete.m4                |    99 +
- man/Makefile.in                  |   862 ++
- man/hu/Makefile.in               |   638 +
- missing                          |   215 +
- mkinstalldirs                    |   162 +
- src/Makefile.in                  |   690 +
- src/hunspell/Makefile.in         |   791 ++
- src/parsers/Makefile.in          |   721 ++
- src/tools/Makefile.in            |   875 ++
- src/win_api/Makefile.in          |   515 +
- test-driver                      |   148 +
- tests/Makefile.in                |  1749 +++
- tests/suggestiontest/Makefile.in |   517 +
- 29 files changed, 61355 insertions(+)
- create mode 100644 Makefile.in
- create mode 100644 aclocal.m4
- create mode 100755 compile
- create mode 100755 config.guess
- create mode 100644 config.h.in
- create mode 100755 config.sub
- create mode 100755 configure
- create mode 100755 depcomp
- create mode 100755 install-sh
- create mode 100644 ltmain.sh
- create mode 100644 m4/Makefile.in
- create mode 100644 m4/isc-posix.m4
- create mode 100644 m4/libtool.m4
- create mode 100644 m4/ltoptions.m4
- create mode 100644 m4/ltsugar.m4
- create mode 100644 m4/ltversion.m4
- create mode 100644 m4/lt~obsolete.m4
- create mode 100644 man/Makefile.in
- create mode 100644 man/hu/Makefile.in
- create mode 100755 missing
- create mode 100755 mkinstalldirs
- create mode 100644 src/Makefile.in
- create mode 100644 src/hunspell/Makefile.in
- create mode 100644 src/parsers/Makefile.in
- create mode 100644 src/tools/Makefile.in
- create mode 100644 src/win_api/Makefile.in
- create mode 100755 test-driver
- create mode 100644 tests/Makefile.in
- create mode 100644 tests/suggestiontest/Makefile.in
-
-diff --git a/Makefile.in b/Makefile.in
-new file mode 100644
-index 0000000..a09871c
---- /dev/null
-+++ b/Makefile.in
-@@ -0,0 +1,951 @@
-+# Makefile.in generated by automake 1.15 from Makefile.am.
-+# @configure_input@
-+
-+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-+
-+# This Makefile.in is free software; the Free Software Foundation
-+# gives unlimited permission to copy and/or distribute it,
-+# with or without modifications, as long as this notice is preserved.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-+# PARTICULAR PURPOSE.
-+
-+@SET_MAKE@
-+
-+VPATH = @srcdir@
-+am__is_gnu_make = { \
-+  if test -z '$(MAKELEVEL)'; then \
-+    false; \
-+  elif test -n '$(MAKE_HOST)'; then \
-+    true; \
-+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
-+    true; \
-+  else \
-+    false; \
-+  fi; \
-+}
-+am__make_running_with_option = \
-+  case $${target_option-} in \
-+      ?) ;; \
-+      *) echo "am__make_running_with_option: internal error: invalid" \
-+              "target option '$${target_option-}' specified" >&2; \
-+         exit 1;; \
-+  esac; \
-+  has_opt=no; \
-+  sane_makeflags=$$MAKEFLAGS; \
-+  if $(am__is_gnu_make); then \
-+    sane_makeflags=$$MFLAGS; \
-+  else \
-+    case $$MAKEFLAGS in \
-+      *\[\ \  ]*) \
-+        bs=\; \
-+        sane_makeflags=`printf '%s
' "$$MAKEFLAGS" \
-+          | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
-+    esac; \
-+  fi; \
-+  skip_next=no; \
-+  strip_trailopt () \
-+  { \
-+    flg=`printf '%s
' "$$flg" | sed "s/$$1.*$$//"`; \
-+  }; \
-+  for flg in $$sane_makeflags; do \
-+    test $$skip_next = yes && { skip_next=no; continue; }; \
-+    case $$flg in \
-+      *=*|--*) continue;; \
-+        -*I) strip_trailopt 'I'; skip_next=yes;; \
-+      -*I?*) strip_trailopt 'I';; \
-+        -*O) strip_trailopt 'O'; skip_next=yes;; \
-+      -*O?*) strip_trailopt 'O';; \
-+        -*l) strip_trailopt 'l'; skip_next=yes;; \
-+      -*l?*) strip_trailopt 'l';; \
-+      -[dEDm]) skip_next=yes;; \
-+      -[JT]) skip_next=yes;; \
-+    esac; \
-+    case $$flg in \
-+      *$$target_option*) has_opt=yes; break;; \
-+    esac; \
-+  done; \
-+  test $$has_opt = yes
-+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-+pkgdatadir = $(datadir)/@PACKAGE@
-+pkgincludedir = $(includedir)/@PACKAGE@
-+pkglibdir = $(libdir)/@PACKAGE@
-+pkglibexecdir = $(libexecdir)/@PACKAGE@
-+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-+install_sh_DATA = $(install_sh) -c -m 644
-+install_sh_PROGRAM = $(install_sh) -c
-+install_sh_SCRIPT = $(install_sh) -c
-+INSTALL_HEADER = $(INSTALL_DATA)
-+transform = $(program_transform_name)
-+NORMAL_INSTALL = :
-+PRE_INSTALL = :
-+POST_INSTALL = :
-+NORMAL_UNINSTALL = :
-+PRE_UNINSTALL = :
-+POST_UNINSTALL = :
-+build_triplet = @build@
-+host_triplet = @host@
-+subdir = .
-+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-+am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \
-+      $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \
-+      $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \
-+      $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
-+      $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-+      $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-+      $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \
-+      $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-+      $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
-+      $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \
-+      $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-+      $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-+      $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-+      $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \
-+      $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \
-+      $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-+      $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \
-+      $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \
-+      $(top_srcdir)/configure.ac
-+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-+      $(ACLOCAL_M4)
-+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
-+      $(am__configure_deps) $(am__DIST_COMMON)
-+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
-+ configure.lineno config.status.lineno
-+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-+CONFIG_HEADER = config.h
-+CONFIG_CLEAN_FILES = hunspell.pc intl/Makefile
-+CONFIG_CLEAN_VPATH_FILES =
-+AM_V_P = $(am__v_P_@AM_V@)
-+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-+am__v_P_0 = false
-+am__v_P_1 = :
-+AM_V_GEN = $(am__v_GEN_@AM_V@)
-+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-+am__v_GEN_0 = @echo "  GEN     " $@;
-+am__v_GEN_1 = 
-+AM_V_at = $(am__v_at_@AM_V@)
-+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-+am__v_at_0 = @
-+am__v_at_1 = 
-+SOURCES =
-+DIST_SOURCES =
-+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-+      ctags-recursive dvi-recursive html-recursive info-recursive \
-+      install-data-recursive install-dvi-recursive \
-+      install-exec-recursive install-html-recursive \
-+      install-info-recursive install-pdf-recursive \
-+      install-ps-recursive install-recursive installcheck-recursive \
-+      installdirs-recursive pdf-recursive ps-recursive \
-+      tags-recursive uninstall-recursive
-+am__can_run_installinfo = \
-+  case $$AM_UPDATE_INFO_DIR in \
-+    n|no|NO) false;; \
-+    *) (install-info --version) >/dev/null 2>&1;; \
-+  esac
-+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-+am__vpath_adj = case $$p in \
-+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-+    *) f=$$p;; \
-+  esac;
-+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-+am__install_max = 40
-+am__nobase_strip_setup = \
-+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\*|]/\\&/g'`
-+am__nobase_strip = \
-+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-+am__nobase_list = $(am__nobase_strip_setup); \
-+  for p in $$list; do echo "$$p $$p"; done | \
-+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,,' | \
-+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-+    if (++n[$$2] == $(am__install_max)) \
-+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-+    END { for (dir in files) print dir, files[dir] }'
-+am__base_list = \
-+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/
/ /g' | \
-+  sed '$$!N;$$!N;$$!N;$$!N;s/
/ /g'
-+am__uninstall_files_from_dir = { \
-+  test -z "$$files" \
-+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-+         $(am__cd) "$$dir" && rm -f $$files; }; \
-+  }
-+am__installdirs = "$(DESTDIR)$(pkgconfdir)"
-+DATA = $(pkgconf_DATA)
-+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive       \
-+  distclean-recursive maintainer-clean-recursive
-+am__recursive_targets = \
-+  $(RECURSIVE_TARGETS) \
-+  $(RECURSIVE_CLEAN_TARGETS) \
-+  $(am__extra_recursive_targets)
-+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-+      cscope distdir dist dist-all distcheck
-+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
-+      $(LISP)config.h.in
-+# Read a list of newline-separated strings from the standard input,
-+# and print each of them once, without duplicates.  Input order is
-+# *not* preserved.
-+am__uniquify_input = $(AWK) '\
-+  BEGIN { nonempty = 0; } \
-+  { items[$$0] = 1; nonempty = 1; } \
-+  END { if (nonempty) { for (i in items) print i; }; } \
-+'
-+# Make sure the list of sources is unique.  This is necessary because,
-+# e.g., the same source file might be shared among _SOURCES variables
-+# for different programs/libraries.
-+am__define_uniq_tagged_files = \
-+  list='$(am__tagged_files)'; \
-+  unique=`for i in $$list; do \
-+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-+  done | $(am__uniquify_input)`
-+ETAGS = etags
-+CTAGS = ctags
-+CSCOPE = cscope
-+DIST_SUBDIRS = $(SUBDIRS)
-+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
-+      $(srcdir)/hunspell.pc.in $(top_srcdir)/intl/Makefile.in \
-+      ABOUT-NLS AUTHORS COPYING COPYING.LESSER ChangeLog INSTALL \
-+      NEWS README THANKS TODO compile config.guess config.rpath \
-+      config.sub install-sh ltmain.sh missing mkinstalldirs
-+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-+distdir = $(PACKAGE)-$(VERSION)
-+top_distdir = $(distdir)
-+am__remove_distdir = \
-+  if test -d "$(distdir)"; then \
-+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-+      && rm -rf "$(distdir)" \
-+      || { sleep 5 && rm -rf "$(distdir)"; }; \
-+  else :; fi
-+am__post_remove_distdir = $(am__remove_distdir)
-+am__relativize = \
-+  dir0=`pwd`; \
-+  sed_first='s,^\([^/]*\)/.*$$,,'; \
-+  sed_rest='s,^[^/]*/*,,'; \
-+  sed_last='s,^.*/\([^/]*\)$$,,'; \
-+  sed_butlast='s,/*[^/]*$$,,'; \
-+  while test -n "$$dir1"; do \
-+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-+    if test "$$first" != "."; then \
-+      if test "$$first" = ".."; then \
-+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-+      else \
-+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-+        if test "$$first2" = "$$first"; then \
-+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-+        else \
-+          dir2="../$$dir2"; \
-+        fi; \
-+        dir0="$$dir0"/"$$first"; \
-+      fi; \
-+    fi; \
-+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-+  done; \
-+  reldir="$$dir2"
-+DIST_ARCHIVES = $(distdir).tar.gz
-+GZIP_ENV = --best
-+DIST_TARGETS = dist-gzip
-+distuninstallcheck_listfiles = find . -type f -print
-+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
-+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-+distcleancheck_listfiles = find . -type f -print
-+ACLOCAL = @ACLOCAL@
-+ALLOCA = @ALLOCA@
-+AMTAR = @AMTAR@
-+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-+AR = @AR@
-+AS = @AS@
-+AUTOCONF = @AUTOCONF@
-+AUTOHEADER = @AUTOHEADER@
-+AUTOMAKE = @AUTOMAKE@
-+AWK = @AWK@
-+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
-+CATOBJEXT = @CATOBJEXT@
-+CC = @CC@
-+CCDEPMODE = @CCDEPMODE@
-+CFLAGS = @CFLAGS@
-+CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
-+CPP = @CPP@
-+CPPFLAGS = @CPPFLAGS@
-+CURSESLIB = @CURSESLIB@
-+CXX = @CXX@
-+CXXCPP = @CXXCPP@
-+CXXDEPMODE = @CXXDEPMODE@
-+CXXFLAGS = @CXXFLAGS@
-+CYGPATH_W = @CYGPATH_W@
-+DATADIRNAME = @DATADIRNAME@
-+DEFS = @DEFS@
-+DEPDIR = @DEPDIR@
-+DLLTOOL = @DLLTOOL@
-+DSYMUTIL = @DSYMUTIL@
-+DUMPBIN = @DUMPBIN@
-+ECHO_C = @ECHO_C@
-+ECHO_N = @ECHO_N@
-+ECHO_T = @ECHO_T@
-+EGREP = @EGREP@
-+EXEEXT = @EXEEXT@
-+FGREP = @FGREP@
-+GENCAT = @GENCAT@
-+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
-+GLIBC2 = @GLIBC2@
-+GLIBC21 = @GLIBC21@
-+GMSGFMT = @GMSGFMT@
-+GMSGFMT_015 = @GMSGFMT_015@
-+GREP = @GREP@
-+HAVE_ASPRINTF = @HAVE_ASPRINTF@
-+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
-+HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
-+HAVE_SNPRINTF = @HAVE_SNPRINTF@
-+HAVE_VISIBILITY = @HAVE_VISIBILITY@
-+HAVE_WPRINTF = @HAVE_WPRINTF@
-+HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@
-+HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@
-+INSTALL = @INSTALL@
-+INSTALL_DATA = @INSTALL_DATA@
-+INSTALL_PROGRAM = @INSTALL_PROGRAM@
-+INSTALL_SCRIPT = @INSTALL_SCRIPT@
-+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-+INSTOBJEXT = @INSTOBJEXT@
-+INTLBISON = @INTLBISON@
-+INTLLIBS = @INTLLIBS@
-+INTLOBJS = @INTLOBJS@
-+INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@
-+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
-+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-+LD = @LD@
-+LDFLAGS = @LDFLAGS@
-+LIBICONV = @LIBICONV@
-+LIBINTL = @LIBINTL@
-+LIBMULTITHREAD = @LIBMULTITHREAD@
-+LIBOBJS = @LIBOBJS@
-+LIBPTH = @LIBPTH@
-+LIBPTH_PREFIX = @LIBPTH_PREFIX@
-+LIBS = @LIBS@
-+LIBTHREAD = @LIBTHREAD@
-+LIBTOOL = @LIBTOOL@
-+LIPO = @LIPO@
-+LN_S = @LN_S@
-+LTLIBC = @LTLIBC@
-+LTLIBICONV = @LTLIBICONV@
-+LTLIBINTL = @LTLIBINTL@
-+LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-+LTLIBOBJS = @LTLIBOBJS@
-+LTLIBPTH = @LTLIBPTH@
-+LTLIBTHREAD = @LTLIBTHREAD@
-+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-+MAKEINFO = @MAKEINFO@
-+MANIFEST_TOOL = @MANIFEST_TOOL@
-+MKDIR_P = @MKDIR_P@
-+MSGFMT = @MSGFMT@
-+MSGFMT_015 = @MSGFMT_015@
-+MSGMERGE = @MSGMERGE@
-+NM = @NM@
-+NMEDIT = @NMEDIT@
-+OBJDUMP = @OBJDUMP@
-+OBJEXT = @OBJEXT@
-+OTOOL = @OTOOL@
-+OTOOL64 = @OTOOL64@
-+PACKAGE = @PACKAGE@
-+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-+PACKAGE_NAME = @PACKAGE_NAME@
-+PACKAGE_STRING = @PACKAGE_STRING@
-+PACKAGE_TARNAME = @PACKAGE_TARNAME@
-+PACKAGE_URL = @PACKAGE_URL@
-+PACKAGE_VERSION = @PACKAGE_VERSION@
-+PATH_SEPARATOR = @PATH_SEPARATOR@
-+POSUB = @POSUB@
-+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
-+RANLIB = @RANLIB@
-+READLINELIB = @READLINELIB@
-+SED = @SED@
-+SET_MAKE = @SET_MAKE@
-+SHELL = @SHELL@
-+STRIP = @STRIP@
-+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
-+USE_NLS = @USE_NLS@
-+VERSION = @VERSION@
-+WINDRES = @WINDRES@
-+WOE32 = @WOE32@
-+WOE32DLL = @WOE32DLL@
-+XFAILED = @XFAILED@
-+XGETTEXT = @XGETTEXT@
-+XGETTEXT_015 = @XGETTEXT_015@
-+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-+abs_builddir = @abs_builddir@
-+abs_srcdir = @abs_srcdir@
-+abs_top_builddir = @abs_top_builddir@
-+abs_top_srcdir = @abs_top_srcdir@
-+ac_ct_AR = @ac_ct_AR@
-+ac_ct_CC = @ac_ct_CC@
-+ac_ct_CXX = @ac_ct_CXX@
-+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-+am__include = @am__include@
-+am__leading_dot = @am__leading_dot@
-+am__quote = @am__quote@
-+am__tar = @am__tar@
-+am__untar = @am__untar@
-+bindir = @bindir@
-+build = @build@
-+build_alias = @build_alias@
-+build_cpu = @build_cpu@
-+build_os = @build_os@
-+build_vendor = @build_vendor@
-+builddir = @builddir@
-+datadir = @datadir@
-+datarootdir = @datarootdir@
-+docdir = @docdir@
-+dvidir = @dvidir@
-+exec_prefix = @exec_prefix@
-+host = @host@
-+host_alias = @host_alias@
-+host_cpu = @host_cpu@
-+host_os = @host_os@
-+host_vendor = @host_vendor@
-+htmldir = @htmldir@
-+includedir = @includedir@
-+infodir = @infodir@
-+install_sh = @install_sh@
-+libdir = @libdir@
-+libexecdir = @libexecdir@
-+localedir = @localedir@
-+localstatedir = @localstatedir@
-+mandir = @mandir@
-+mkdir_p = @mkdir_p@
-+oldincludedir = @oldincludedir@
-+pdfdir = @pdfdir@
-+prefix = @prefix@
-+program_transform_name = @program_transform_name@
-+psdir = @psdir@
-+sbindir = @sbindir@
-+sharedstatedir = @sharedstatedir@
-+srcdir = @srcdir@
-+sysconfdir = @sysconfdir@
-+target_alias = @target_alias@
-+top_build_prefix = @top_build_prefix@
-+top_builddir = @top_builddir@
-+top_srcdir = @top_srcdir@
-+ACLOCAL_AMFLAGS = -I m4
-+SUBDIRS = intl po src man tests
-+pkgconfdir = $(libdir)/pkgconfig
-+pkgconf_DATA = hunspell.pc
-+EXTRA_DIST = BUGS README.myspell AUTHORS.myspell license.myspell 
license.hunspell \
-+        ChangeLog.O COPYING.MPL COPYING.LESSER hunspell.pc.in
-+
-+all: config.h
-+      $(MAKE) $(AM_MAKEFLAGS) all-recursive
-+
-+.SUFFIXES:
-+am--refresh: Makefile
-+      @:
-+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-+      @for dep in $?; do \
-+        case '$(am__configure_deps)' in \
-+          *$$dep*) \
-+            echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-+            $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
-+              && exit 0; \
-+            exit 1;; \
-+        esac; \
-+      done; \
-+      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
-+      $(am__cd) $(top_srcdir) && \
-+        $(AUTOMAKE) --gnu Makefile
-+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-+      @case '$?' in \
-+        *config.status*) \
-+          echo ' $(SHELL) ./config.status'; \
-+          $(SHELL) ./config.status;; \
-+        *) \
-+          echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ 
$(am__depfiles_maybe)'; \
-+          cd $(top_builddir) && $(SHELL) ./config.status $@ 
$(am__depfiles_maybe);; \
-+      esac;
-+
-+$(top_builddir)/config.status: $(top_srcdir)/configure 
$(CONFIG_STATUS_DEPENDENCIES)
-+      $(SHELL) ./config.status --recheck
-+
-+$(top_srcdir)/configure:  $(am__configure_deps)
-+      $(am__cd) $(srcdir) && $(AUTOCONF)
-+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-+      $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-+$(am__aclocal_m4_deps):
-+
-+config.h: stamp-h1
-+      @test -f $@ || rm -f stamp-h1
-+      @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-+
-+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
-+      @rm -f stamp-h1
-+      cd $(top_builddir) && $(SHELL) ./config.status config.h
-+$(srcdir)/config.h.in:  $(am__configure_deps) 
-+      ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
-+      rm -f stamp-h1
-+      touch $@
-+
-+distclean-hdr:
-+      -rm -f config.h stamp-h1
-+hunspell.pc: $(top_builddir)/config.status $(srcdir)/hunspell.pc.in
-+      cd $(top_builddir) && $(SHELL) ./config.status $@
-+intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in
-+      cd $(top_builddir) && $(SHELL) ./config.status $@
-+
-+mostlyclean-libtool:
-+      -rm -f *.lo
-+
-+clean-libtool:
-+      -rm -rf .libs _libs
-+
-+distclean-libtool:
-+      -rm -f libtool config.lt
-+install-pkgconfDATA: $(pkgconf_DATA)
-+      @$(NORMAL_INSTALL)
-+      @list='$(pkgconf_DATA)'; test -n "$(pkgconfdir)" || list=; \
-+      if test -n "$$list"; then \
-+        echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfdir)'"; \
-+        $(MKDIR_P) "$(DESTDIR)$(pkgconfdir)" || exit 1; \
-+      fi; \
-+      for p in $$list; do \
-+        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-+        echo "$$d$$p"; \
-+      done | $(am__base_list) | \
-+      while read files; do \
-+        echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfdir)'"; \
-+        $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfdir)" || exit $$?; \
-+      done
-+
-+uninstall-pkgconfDATA:
-+      @$(NORMAL_UNINSTALL)
-+      @list='$(pkgconf_DATA)'; test -n "$(pkgconfdir)" || list=; \
-+      files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-+      dir='$(DESTDIR)$(pkgconfdir)'; $(am__uninstall_files_from_dir)
-+
-+# This directory's subdirectories are mostly independent; you can cd
-+# into them and run 'make' without going through this Makefile.
-+# To change the values of 'make' variables: instead of editing Makefiles,
-+# (1) if the variable is set in 'config.status', edit 'config.status'
-+#     (which will cause the Makefiles to be regenerated when you run 'make');
-+# (2) otherwise, pass the desired values on the 'make' command line.
-+$(am__recursive_targets):
-+      @fail=; \
-+      if $(am__make_keepgoing); then \
-+        failcom='fail=yes'; \
-+      else \
-+        failcom='exit 1'; \
-+      fi; \
-+      dot_seen=no; \
-+      target=`echo $@ | sed s/-recursive//`; \
-+      case "$@" in \
-+        distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-+        *) list='$(SUBDIRS)' ;; \
-+      esac; \
-+      for subdir in $$list; do \
-+        echo "Making $$target in $$subdir"; \
-+        if test "$$subdir" = "."; then \
-+          dot_seen=yes; \
-+          local_target="$$target-am"; \
-+        else \
-+          local_target="$$target"; \
-+        fi; \
-+        ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-+        || eval $$failcom; \
-+      done; \
-+      if test "$$dot_seen" = "no"; then \
-+        $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-+      fi; test -z "$$fail"
-+
-+ID: $(am__tagged_files)
-+      $(am__define_uniq_tagged_files); mkid -fID $$unique
-+tags: tags-recursive
-+TAGS: tags
-+
-+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-+      set x; \
-+      here=`pwd`; \
-+      if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-+        include_option=--etags-include; \
-+        empty_fix=.; \
-+      else \
-+        include_option=--include; \
-+        empty_fix=; \
-+      fi; \
-+      list='$(SUBDIRS)'; for subdir in $$list; do \
-+        if test "$$subdir" = .; then :; else \
-+          test ! -f $$subdir/TAGS || \
-+            set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-+        fi; \
-+      done; \
-+      $(am__define_uniq_tagged_files); \
-+      shift; \
-+      if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-+        test -n "$$unique" || unique=$$empty_fix; \
-+        if test $$# -gt 0; then \
-+          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-+            "$$@" $$unique; \
-+        else \
-+          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-+            $$unique; \
-+        fi; \
-+      fi
-+ctags: ctags-recursive
-+
-+CTAGS: ctags
-+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-+      $(am__define_uniq_tagged_files); \
-+      test -z "$(CTAGS_ARGS)$$unique" \
-+        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-+           $$unique
-+
-+GTAGS:
-+      here=`$(am__cd) $(top_builddir) && pwd` \
-+        && $(am__cd) $(top_srcdir) \
-+        && gtags -i $(GTAGS_ARGS) "$$here"
-+cscope: cscope.files
-+      test ! -s cscope.files \
-+        || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files 
$(CSCOPE_ARGS)
-+clean-cscope:
-+      -rm -f cscope.files
-+cscope.files: clean-cscope cscopelist
-+cscopelist: cscopelist-recursive
-+
-+cscopelist-am: $(am__tagged_files)
-+      list='$(am__tagged_files)'; \
-+      case "$(srcdir)" in \
-+        [\/]* | ?:[\/]*) sdir="$(srcdir)" ;; \
-+        *) sdir=$(subdir)/$(srcdir) ;; \
-+      esac; \
-+      for i in $$list; do \
-+        if test -f "$$i"; then \
-+          echo "$(subdir)/$$i"; \
-+        else \
-+          echo "$$sdir/$$i"; \
-+        fi; \
-+      done >> $(top_builddir)/cscope.files
-+
-+distclean-tags:
-+      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-+      -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-+
-+distdir: $(DISTFILES)
-+      $(am__remove_distdir)
-+      test -d "$(distdir)" || mkdir "$(distdir)"
-+      @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\*]/\\&/g'`; \
-+      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\*]/\\&/g'`; \
-+      list='$(DISTFILES)'; \
-+        dist_files=`for file in $$list; do echo $$file; done | \
-+        sed -e "s|^$$srcdirstrip/||;t" \
-+            -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-+      case $$dist_files in \
-+        */*) $(MKDIR_P) `echo "$$dist_files" | \
-+                         sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-+                         sort -u` ;; \
-+      esac; \
-+      for file in $$dist_files; do \
-+        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-+        if test -d $$d/$$file; then \
-+          dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-+          if test -d "$(distdir)/$$file"; then \
-+            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx 
{} \;; \
-+          fi; \
-+          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-+            cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-+            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx 
{} \;; \
-+          fi; \
-+          cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-+        else \
-+          test -f "$(distdir)/$$file" \
-+          || cp -p $$d/$$file "$(distdir)/$$file" \
-+          || exit 1; \
-+        fi; \
-+      done
-+      @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-+        if test "$$subdir" = .; then :; else \
-+          $(am__make_dryrun) \
-+            || test -d "$(distdir)/$$subdir" \
-+            || $(MKDIR_P) "$(distdir)/$$subdir" \
-+            || exit 1; \
-+          dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-+          $(am__relativize); \
-+          new_distdir=$$reldir; \
-+          dir1=$$subdir; dir2="$(top_distdir)"; \
-+          $(am__relativize); \
-+          new_top_distdir=$$reldir; \
-+          echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) 
top_distdir="$$new_top_distdir" distdir="$$new_distdir" \"; \
-+          echo "     am__remove_distdir=: am__skip_length_check=: 
am__skip_mode_fix=: distdir)"; \
-+          ($(am__cd) $$subdir && \
-+            $(MAKE) $(AM_MAKEFLAGS) \
-+              top_distdir="$$new_top_distdir" \
-+              distdir="$$new_distdir" \
-+              am__remove_distdir=: \
-+              am__skip_length_check=: \
-+              am__skip_mode_fix=: \
-+              distdir) \
-+            || exit 1; \
-+        fi; \
-+      done
-+      -test -n "$(am__skip_mode_fix)" \
-+      || find "$(distdir)" -type d ! -perm -755 \
-+              -exec chmod u+rwx,go+rx {} \; -o \
-+        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-+        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-+        ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-+      || chmod -R a+r "$(distdir)"
-+dist-gzip: distdir
-+      tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c 
>$(distdir).tar.gz
-+      $(am__post_remove_distdir)
-+
-+dist-bzip2: distdir
-+      tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c 
>$(distdir).tar.bz2
-+      $(am__post_remove_distdir)
-+
-+dist-lzip: distdir
-+      tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} 
>$(distdir).tar.lz
-+      $(am__post_remove_distdir)
-+
-+dist-xz: distdir
-+      tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c 
>$(distdir).tar.xz
-+      $(am__post_remove_distdir)
-+
-+dist-tarZ: distdir
-+      @echo WARNING: "Support for distribution archives compressed with" \
-+                     "legacy program 'compress' is deprecated." >&2
-+      @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-+      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-+      $(am__post_remove_distdir)
-+
-+dist-shar: distdir
-+      @echo WARNING: "Support for shar distribution archives is" \
-+                     "deprecated." >&2
-+      @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-+      shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
-+      $(am__post_remove_distdir)
-+
-+dist-zip: distdir
-+      -rm -f $(distdir).zip
-+      zip -rq $(distdir).zip $(distdir)
-+      $(am__post_remove_distdir)
-+
-+dist dist-all:
-+      $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
-+      $(am__post_remove_distdir)
-+
-+# This target untars the dist file and tries a VPATH configuration.  Then
-+# it guarantees that the distribution is self-contained by making another
-+# tarfile.
-+distcheck: dist
-+      case '$(DIST_ARCHIVES)' in \
-+      *.tar.gz*) \
-+        eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
-+      *.tar.bz2*) \
-+        bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-+      *.tar.lz*) \
-+        lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
-+      *.tar.xz*) \
-+        xz -dc $(distdir).tar.xz | $(am__untar) ;;\
-+      *.tar.Z*) \
-+        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-+      *.shar.gz*) \
-+        eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
-+      *.zip*) \
-+        unzip $(distdir).zip ;;\
-+      esac
-+      chmod -R a-w $(distdir)
-+      chmod u+w $(distdir)
-+      mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
-+      chmod a-w $(distdir)
-+      test -d $(distdir)/_build || exit 0; \
-+      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 
's,^[^:\/]:[\/],/,'` \
-+        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-+        && am__cwd=`pwd` \
-+        && $(am__cd) $(distdir)/_build/sub \
-+        && ../../configure \
-+          --with-included-gettext \
-+          $(AM_DISTCHECK_CONFIGURE_FLAGS) \
-+          $(DISTCHECK_CONFIGURE_FLAGS) \
-+          --srcdir=../.. --prefix="$$dc_install_base" \
-+        && $(MAKE) $(AM_MAKEFLAGS) \
-+        && $(MAKE) $(AM_MAKEFLAGS) dvi \
-+        && $(MAKE) $(AM_MAKEFLAGS) check \
-+        && $(MAKE) $(AM_MAKEFLAGS) install \
-+        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-+        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-+        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" 
\
-+              distuninstallcheck \
-+        && chmod -R a-w "$$dc_install_base" \
-+        && ({ \
-+             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
-+             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
-+             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
-+             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
-+                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
-+            } || { rm -rf "$$dc_destdir"; exit 1; }) \
-+        && rm -rf "$$dc_destdir" \
-+        && $(MAKE) $(AM_MAKEFLAGS) dist \
-+        && rm -rf $(DIST_ARCHIVES) \
-+        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-+        && cd "$$am__cwd" \
-+        || exit 1
-+      $(am__post_remove_distdir)
-+      @(echo "$(distdir) archives ready for distribution: "; \
-+        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-+        sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-+distuninstallcheck:
-+      @test -n '$(distuninstallcheck_dir)' || { \
-+        echo 'ERROR: trying to run $@ with an empty' \
-+             '$$(distuninstallcheck_dir)' >&2; \
-+        exit 1; \
-+      }; \
-+      $(am__cd) '$(distuninstallcheck_dir)' || { \
-+        echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
-+        exit 1; \
-+      }; \
-+      test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
-+         || { echo "ERROR: files left after uninstall:" ; \
-+              if test -n "$(DESTDIR)"; then \
-+                echo "  (check DESTDIR support)"; \
-+              fi ; \
-+              $(distuninstallcheck_listfiles) ; \
-+              exit 1; } >&2
-+distcleancheck: distclean
-+      @if test '$(srcdir)' = . ; then \
-+        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-+        exit 1 ; \
-+      fi
-+      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-+        || { echo "ERROR: files left in build directory after distclean:" ; \
-+             $(distcleancheck_listfiles) ; \
-+             exit 1; } >&2
-+check-am: all-am
-+check: check-recursive
-+all-am: Makefile $(DATA) config.h
-+installdirs: installdirs-recursive
-+installdirs-am:
-+      for dir in "$(DESTDIR)$(pkgconfdir)"; do \
-+        test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-+      done
-+install: install-recursive
-+install-exec: install-exec-recursive
-+install-data: install-data-recursive
-+uninstall: uninstall-recursive
-+
-+install-am: all-am
-+      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-+
-+installcheck: installcheck-recursive
-+install-strip:
-+      if test -z '$(STRIP)'; then \
-+        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-+          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s 
\
-+            install; \
-+      else \
-+        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-+          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s 
\
-+          "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-+      fi
-+mostlyclean-generic:
-+
-+clean-generic:
-+
-+distclean-generic:
-+      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-+      -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f 
$(CONFIG_CLEAN_VPATH_FILES)
-+
-+maintainer-clean-generic:
-+      @echo "This command is intended for maintainers to use"
-+      @echo "it deletes files that may require special tools to rebuild."
-+clean: clean-recursive
-+
-+clean-am: clean-generic clean-libtool mostlyclean-am
-+
-+distclean: distclean-recursive
-+      -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-+      -rm -f Makefile
-+distclean-am: clean-am distclean-generic distclean-hdr \
-+      distclean-libtool distclean-tags
-+
-+dvi: dvi-recursive
-+
-+dvi-am:
-+
-+html: html-recursive
-+
-+html-am:
-+
-+info: info-recursive
-+
-+info-am:
-+
-+install-data-am: install-pkgconfDATA
-+
-+install-dvi: install-dvi-recursive
-+
-+install-dvi-am:
-+
-+install-exec-am:
-+
-+install-html: install-html-recursive
-+
-+install-html-am:
-+
-+install-info: install-info-recursive
-+
-+install-info-am:
-+
-+install-man:
-+
-+install-pdf: install-pdf-recursive
-+
-+install-pdf-am:
-+
-+install-ps: install-ps-recursive
-+
-+install-ps-am:
-+
-+installcheck-am:
-+
-+maintainer-clean: maintainer-clean-recursive
-+      -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-+      -rm -rf $(top_srcdir)/autom4te.cache
-+      -rm -f Makefile
-+maintainer-clean-am: distclean-am maintainer-clean-generic
-+
-+mostlyclean: mostlyclean-recursive
-+
-+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-+
-+pdf: pdf-recursive
-+
-+pdf-am:
-+
-+ps: ps-recursive
-+
-+ps-am:
-+
-+uninstall-am: uninstall-pkgconfDATA
-+
-+.MAKE: $(am__recursive_targets) all install-am install-strip
-+
-+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
-+      am--refresh check check-am clean clean-cscope clean-generic \
-+      clean-libtool cscope cscopelist-am ctags ctags-am dist \
-+      dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
-+      dist-xz dist-zip distcheck distclean distclean-generic \
-+      distclean-hdr distclean-libtool distclean-tags distcleancheck \
-+      distdir distuninstallcheck dvi dvi-am html html-am info \
-+      info-am install install-am install-data install-data-am \
-+      install-dvi install-dvi-am install-exec install-exec-am \
-+      install-html install-html-am install-info install-info-am \
-+      install-man install-pdf install-pdf-am install-pkgconfDATA \
-+      install-ps install-ps-am install-strip installcheck \
-+      installcheck-am installdirs installdirs-am maintainer-clean \
-+      maintainer-clean-generic mostlyclean mostlyclean-generic \
-+      mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
-+      uninstall-am uninstall-pkgconfDATA
-+
-+.PRECIOUS: Makefile
-+
-+
-+# Tell versions [3.59,3.63) of GNU make to not export all variables.
-+# Otherwise a system limit (for SysV at least) may be exceeded.
-+.NOEXPORT:
-diff --git a/aclocal.m4 b/aclocal.m4
-new file mode 100644
-index 0000000..56658b6
---- /dev/null
-+++ b/aclocal.m4
-@@ -0,0 +1,1290 @@
-+# generated automatically by aclocal 1.15 -*- Autoconf -*-
-+
-+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
-+
-+# This file is free software; the Free Software Foundation
-+# gives unlimited permission to copy and/or distribute it,
-+# with or without modifications, as long as this notice is preserved.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-+# PARTICULAR PURPOSE.
-+
-+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], 
[])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-+m4_ifndef([AC_AUTOCONF_VERSION],
-+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-+[m4_warning([this file was generated for autoconf 2.69.
-+You have another version of autoconf.  It may work, but is not guaranteed to.
-+If you have problems, you may need to regenerate the build system entirely.
-+To do so, use the procedure documented by the package, typically 
'autoreconf'.])])
-+
-+dnl 'extern inline' a la ISO C99.
-+
-+dnl Copyright 2012-2016 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_EXTERN_INLINE],
-+[
-+  AH_VERBATIM([extern_inline],
-+[/* Please see the Gnulib manual for how to use these macros.
-+
-+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
-+   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
-+
-+   Suppress extern inline with Sun C in standards-conformance mode, as it
-+   mishandles inline functions that call each other.  E.g., for 'inline void f
-+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
-e 
... etc. - the rest is truncated

Reply via email to