From 642b7706101a991efc7e312f59dece640d8bfb60 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 3 Mar 2020 09:27:01 +0100 Subject: sw padded numbering: add layout lcl_formatArabicZero() looks a bit over-complicated with its hardcoded limit of 2. Word supports limits of 3, 4 and 5 as well, so prepare for handling them in a generic way. Change-Id: If6e5634b11616f0ac05e1387016e22f4b171bbfb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89864 Reviewed-by: Miklos Vajna Tested-by: Jenkins --- .../defaultnumberingprovider.cxx | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx') diff --git a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx index 7e746bb14d95..54eeaf841850 100644 --- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx +++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx @@ -552,6 +552,30 @@ bool should_ignore( const OUString& s ) return s == " " || (!s.isEmpty() && s[0]==0); } +/** + * Turn nNumber into a string and pad the result to 2 using zero characters. + */ +static OUString lcl_formatArabicZero(sal_Int32 nNumber) +{ + sal_Int32 nLimit = 2; + OUString aRet = OUString::number(nNumber); + sal_Int32 nDiff = nLimit - aRet.getLength(); + + if (nDiff <= 0) + { + return aRet; + } + + OUStringBuffer aBuffer; + aBuffer.setLength(nDiff); + for (sal_Int32 i = 0; i < nDiff; ++i) + { + aBuffer[i] = '0'; + } + aBuffer.append(aRet); + return aBuffer.makeStringAndClear(); +} + static Any getPropertyByName( const Sequence& aProperties, const char* name, bool bRequired ) @@ -913,6 +937,10 @@ DefaultNumberingProvider::makeNumberingString( const Sequence