xmloff/qa/unit/text.cxx          |    2 +-
 xmloff/source/style/styleexp.cxx |    3 ++-
 xmloff/source/text/txtstyli.cxx  |    5 +++--
 3 files changed, 6 insertions(+), 4 deletions(-)

New commits:
commit aed4c2d80c2f11b82631c097ed0b15a5cb52283d
Author:     Justin Luth <justin_l...@sil.org>
AuthorDate: Mon Dec 13 17:42:00 2021 +0200
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Tue Dec 14 10:36:48 2021 +0100

    tdf#62032 xmloff: list-level is positiveInteger, impl is 0-based
    
    Thanks for catching this Regina.
    
    Change-Id: Iaf6a0c9161378934818e392126a4437e55f5ddf8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126743
    Reviewed-by: Justin Luth <jl...@mail.com>
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    Tested-by: Jenkins

diff --git a/xmloff/qa/unit/text.cxx b/xmloff/qa/unit/text.cxx
index 78ebaf75e1bc..9ac9ac93dbc4 100644
--- a/xmloff/qa/unit/text.cxx
+++ b/xmloff/qa/unit/text.cxx
@@ -191,7 +191,7 @@ CPPUNIT_TEST_FIXTURE(XmloffStyleTest, 
testParaStyleListLevel)
     uno::Reference<beans::XPropertySet> 
xStyle(xStyleFamily->getByName("mystyle"), uno::UNO_QUERY);
     sal_Int16 nNumberingLevel{};
     CPPUNIT_ASSERT(xStyle->getPropertyValue("NumberingLevel") >>= 
nNumberingLevel);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(2), nNumberingLevel);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(1), nNumberingLevel);
 
     // Test the export as well:
 
diff --git a/xmloff/source/style/styleexp.cxx b/xmloff/source/style/styleexp.cxx
index 1a3a81f10c95..10ae6a22dcfa 100644
--- a/xmloff/source/style/styleexp.cxx
+++ b/xmloff/source/style/styleexp.cxx
@@ -147,7 +147,8 @@ void ExportStyleListlevel(const 
uno::Reference<beans::XPropertySetInfo>& xPropSe
         return;
     }
 
-    rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_LIST_LEVEL, 
OUString::number(nNumberingLevel));
+    // The spec is positiveInteger (1-based), but the implementation is 
0-based.
+    rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_LIST_LEVEL, 
OUString::number(++nNumberingLevel));
 }
 }
 
diff --git a/xmloff/source/text/txtstyli.cxx b/xmloff/source/text/txtstyli.cxx
index bcd55b140868..85db00df1901 100644
--- a/xmloff/source/text/txtstyli.cxx
+++ b/xmloff/source/text/txtstyli.cxx
@@ -118,9 +118,10 @@ void XMLTextStyleContext::SetAttribute( sal_Int32 nElement,
         case XML_ELEMENT(STYLE, XML_LIST_LEVEL):
         {
             sal_Int32 nTmp;
-            if (sax::Converter::convertNumber(nTmp, rValue) && nTmp >= 0 && 
nTmp <= 10)
+            // The spec is positiveInteger (1-based), but the implementation 
is 0-based.
+            if (sax::Converter::convertNumber(nTmp, rValue) && nTmp > 0 && 
nTmp <= 10)
             {
-                m_aListLevel.emplace(nTmp);
+                m_aListLevel.emplace(--nTmp);
             }
             break;
         }

Reply via email to