summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2021-07-29 17:49:08 +0200
committerEike Rathke <erack@redhat.com>2021-07-29 23:39:47 +0200
commitac80ec817eb07c77a51bc0729985a473c734182e (patch)
treef8ff40e86983752770117ef624d4c127cbb87cc4
parent1009cb94ba8d5adbe0b37f05c5eecf43d6cab60c (diff)
Make duplicate generated numbering identifiers unique, tdf#143526 follow-up
Change-Id: I28366c4e868e97b70e016b056b73b88b4cc8b812 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119677 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
-rw-r--r--i18npool/qa/cppunit/test_defaultnumberingprovider.cxx4
-rw-r--r--i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx17
2 files changed, 17 insertions, 4 deletions
diff --git a/i18npool/qa/cppunit/test_defaultnumberingprovider.cxx b/i18npool/qa/cppunit/test_defaultnumberingprovider.cxx
index 4770abb93808..f7382ede1a9f 100644
--- a/i18npool/qa/cppunit/test_defaultnumberingprovider.cxx
+++ b/i18npool/qa/cppunit/test_defaultnumberingprovider.cxx
@@ -57,10 +57,6 @@ CPPUNIT_TEST_FIXTURE(I18npoolDefaultnumberingproviderTest, testNumberingIdentifi
// FIXME: duplicate of NUMBER_UPPER_ZH_TW
case css::style::NumberingType::NUMBER_INDIC_DEVANAGARI:
// FIXME: duplicate of NUMBER_EAST_ARABIC_INDIC
- case css::style::NumberingType::NUMBER_DIGITAL_KO:
- // FIXME: duplicate of NUMBER_HANGUL_KO
- case css::style::NumberingType::NUMBER_DIGITAL2_KO:
- // FIXME: duplicate of NUMBER_LOWER_ZH
break;
default:
if (aID.isEmpty() || !aMap.insert(std::pair(aID, i)).second)
diff --git a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
index b7ee64cac5eb..a5a604903ad6 100644
--- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
+++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
@@ -1128,6 +1128,23 @@ OUString DefaultNumberingProvider::makeNumberingIdentifier(sal_Int16 index)
result.append(", ");
}
result.append("...");
+ // Make known duplicate generated identifiers unique.
+ // Note this alone works only for newly added numberings, if duplicates
+ // are in the wild further handling is needed when loading documents
+ // and asking for numberings.
+ switch (aSupportedTypes[index].nType)
+ {
+ case css::style::NumberingType::NUMBER_DIGITAL_KO:
+ // Duplicate of NUMBER_HANGUL_KO.
+ result.append(" (ko-x-digital)");
+ break;
+ case css::style::NumberingType::NUMBER_DIGITAL2_KO:
+ // Duplicate of NUMBER_LOWER_ZH.
+ result.append(" (ko)");
+ break;
+ default:
+ ; // nothing
+ }
return result.makeStringAndClear();
}
}