[Libreoffice-commits] core.git: 2 commits - i18nutil/source include/i18nutil include/unotools unotools/source

Noel Grandin noel.grandin at collabora.co.uk
Fri Mar 31 06:58:48 UTC 2017


 i18nutil/source/utility/scripttypedetector.cxx |   10 
 i18nutil/source/utility/unicode.cxx            |  293 +------------------------
 include/i18nutil/transliteration.hxx           |   80 +++---
 include/i18nutil/unicode.hxx                   |    6 
 include/unotools/charclass.hxx                 |    6 
 unotools/source/i18n/charclass.cxx             |   16 -
 unotools/source/i18n/textsearch.cxx            |    2 
 unotools/source/ucbhelper/ucbhelper.cxx        |    2 
 unotools/source/ucbhelper/ucblockbytes.cxx     |   12 -
 9 files changed, 85 insertions(+), 342 deletions(-)

New commits:
commit 3c56928c9245b87feb2c32dbd200ff108089db61
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Thu Mar 30 14:10:14 2017 +0200

    use actual UNO enums in unotools
    
    Change-Id: I71ee54a5eb70f1a322cc87cd940bc63ff95366b6
    Reviewed-on: https://gerrit.libreoffice.org/35906
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/unotools/charclass.hxx b/include/unotools/charclass.hxx
index 5c050ccba2a5..20f9857d0ac0 100644
--- a/include/unotools/charclass.hxx
+++ b/include/unotools/charclass.hxx
@@ -22,11 +22,13 @@
 
 #include <unotools/unotoolsdllapi.h>
 #include <i18nlangtag/languagetag.hxx>
+#include <com/sun/star/i18n/DirectionProperty.hpp>
 #include <com/sun/star/i18n/KCharacterType.hpp>
 #include <com/sun/star/i18n/KParseTokens.hpp>
 #include <com/sun/star/i18n/KParseType.hpp>
 #include <com/sun/star/i18n/ParseResult.hpp>
 #include <com/sun/star/i18n/XCharacterClassification.hpp>
+#include <com/sun/star/i18n/UnicodeScript.hpp>
 #include <osl/mutex.hxx>
 #include <rtl/character.hxx>
 
@@ -147,8 +149,8 @@ public:
     }
 
     sal_Int16 getType( const OUString& rStr, sal_Int32 nPos ) const;
-    sal_Int16 getCharacterDirection( const OUString& rStr, sal_Int32 nPos ) const;
-    sal_Int16 getScript( const OUString& rStr, sal_Int32 nPos ) const;
+    css::i18n::DirectionProperty getCharacterDirection( const OUString& rStr, sal_Int32 nPos ) const;
+    css::i18n::UnicodeScript getScript( const OUString& rStr, sal_Int32 nPos ) const;
     sal_Int32 getCharacterType( const OUString& rStr, sal_Int32 nPos ) const;
     sal_Int32 getStringType( const OUString& rStr, sal_Int32 nPos, sal_Int32 nCount ) const;
 
diff --git a/unotools/source/i18n/charclass.cxx b/unotools/source/i18n/charclass.cxx
index 47aeffa106f5..60e5227070a9 100644
--- a/unotools/source/i18n/charclass.cxx
+++ b/unotools/source/i18n/charclass.cxx
@@ -321,35 +321,35 @@ sal_Int16 CharClass::getType( const OUString& rStr, sal_Int32 nPos ) const
     }
 }
 
-sal_Int16 CharClass::getCharacterDirection( const OUString& rStr, sal_Int32 nPos ) const
+css::i18n::DirectionProperty CharClass::getCharacterDirection( const OUString& rStr, sal_Int32 nPos ) const
 {
     try
     {
         if ( xCC.is() )
-            return xCC->getCharacterDirection( rStr, nPos );
+            return (css::i18n::DirectionProperty)xCC->getCharacterDirection( rStr, nPos );
         else
-            return 0;
+            return css::i18n::DirectionProperty_LEFT_TO_RIGHT;
     }
     catch ( const Exception& )
     {
         SAL_WARN( "unotools.i18n", "getCharacterDirection: Exception caught!" );
-        return 0;
+        return css::i18n::DirectionProperty_LEFT_TO_RIGHT;
     }
 }
 
-sal_Int16 CharClass::getScript( const OUString& rStr, sal_Int32 nPos ) const
+css::i18n::UnicodeScript CharClass::getScript( const OUString& rStr, sal_Int32 nPos ) const
 {
     try
     {
         if ( xCC.is() )
-            return xCC->getScript( rStr, nPos );
+            return (css::i18n::UnicodeScript) xCC->getScript( rStr, nPos );
         else
-            return 0;
+            return UnicodeScript_kBasicLatin;
     }
     catch ( const Exception& )
     {
         SAL_WARN( "unotools.i18n", "getScript: Exception caught!" );
-        return 0;
+        return UnicodeScript_kBasicLatin;
     }
 }
 
diff --git a/unotools/source/i18n/textsearch.cxx b/unotools/source/i18n/textsearch.cxx
index 98dc9846083b..c548619e60e5 100644
--- a/unotools/source/i18n/textsearch.cxx
+++ b/unotools/source/i18n/textsearch.cxx
@@ -202,7 +202,7 @@ void TextSearch::Init( const SearchParam & rParam,
     {
     case SearchParam::SearchType::Wildcard:
         aSOpt.AlgorithmType2 = SearchAlgorithms2::WILDCARD;
-        aSOpt.algorithmType = SearchAlgorithms_MAKE_FIXED_SIZE;    // no old enum for that
+        aSOpt.algorithmType = SearchAlgorithms::SearchAlgorithms_MAKE_FIXED_SIZE;    // no old enum for that
         aSOpt.WildcardEscapeCharacter = rParam.GetWildEscChar();
         if (rParam.IsWildMatchSel())
             aSOpt.searchFlag |= SearchFlags::WILD_MATCH_SELECTION;
diff --git a/unotools/source/ucbhelper/ucbhelper.cxx b/unotools/source/ucbhelper/ucbhelper.cxx
index 37844f2b6dd3..f9eabf948e29 100644
--- a/unotools/source/ucbhelper/ucbhelper.cxx
+++ b/unotools/source/ucbhelper/ucbhelper.cxx
@@ -277,7 +277,7 @@ bool utl::UCBContentHelper::MakeFolder(
                 "unotools.ucbhelper",
                 "UCBContentHelper::MakeFolder(" << title
                     << ") InteractiveIOException \"" << e.Message
-                    << "\", code " << +e.Code);
+                    << "\", code " << + (sal_Int32)e.Code);
         }
     } catch (css::ucb::NameClashException const &) {
         exists = true;
diff --git a/unotools/source/ucbhelper/ucblockbytes.cxx b/unotools/source/ucbhelper/ucblockbytes.cxx
index d6374482e625..1aa5abaca117 100644
--- a/unotools/source/ucbhelper/ucblockbytes.cxx
+++ b/unotools/source/ucbhelper/ucblockbytes.cxx
@@ -267,7 +267,7 @@ public:
     struct Result {
         ResultType        type;
         Any               result;
-        sal_Int32         ioErrorCode;
+        IOErrorCode       ioErrorCode;
     };
 
     Result getResult(const sal_uInt32 milliSec);
@@ -315,7 +315,7 @@ private:
 
     ConditionRes      m_aRes;
     ResultType        m_aResultType;
-    sal_Int32         m_nIOErrorCode;
+    IOErrorCode       m_nIOErrorCode;
     Any               m_aResult;
 
     friend class ConditionRep;
@@ -457,7 +457,7 @@ Moderator::Moderator(
 
       m_aRes(m_aMutex,*this),
       m_aResultType(ResultType::NORESULT),
-      m_nIOErrorCode(0),
+      m_nIOErrorCode(IOErrorCode_ABORT),
       m_aResult(),
 
       m_aRep(m_aMutex,*this),
@@ -606,9 +606,9 @@ void SAL_CALL Moderator::run()
 {
     osl_setThreadName("utl::Moderator");
 
-    ResultType aResultType;
-    Any        aResult;
-    sal_Int32  nIOErrorCode = 0;
+    ResultType  aResultType;
+    Any         aResult;
+    IOErrorCode nIOErrorCode = IOErrorCode_ABORT;
 
     try
     {
commit 97844a113fcaf7e2a0c52203e6792c71e2389f39
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Thu Mar 30 12:43:12 2017 +0200

    use actual UNO enums in i18nutil
    
    Change-Id: I959b26471fe69c4ee8ecb7e2fd57a53e24187112
    Reviewed-on: https://gerrit.libreoffice.org/35905
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/i18nutil/source/utility/scripttypedetector.cxx b/i18nutil/source/utility/scripttypedetector.cxx
index 83826e308c6e..884bc304cd01 100644
--- a/i18nutil/source/utility/scripttypedetector.cxx
+++ b/i18nutil/source/utility/scripttypedetector.cxx
@@ -84,11 +84,11 @@ sal_Int32 ScriptTypeDetector::endOfScriptDirection( const OUString& Text, sal_In
 sal_Int16 ScriptTypeDetector::getCTLScriptType( const OUString& Text, sal_Int32 nPos )
 {
     static const ScriptTypeList typeList[] = {
-        { UnicodeScript_kHebrew, UnicodeScript_kHebrew, CTLScriptType::CTL_HEBREW },    // 10
-        { UnicodeScript_kArabic, UnicodeScript_kArabic, CTLScriptType::CTL_ARABIC },    // 11
-        { UnicodeScript_kDevanagari, UnicodeScript_kDevanagari, CTLScriptType::CTL_INDIC },     // 14
-        { UnicodeScript_kThai, UnicodeScript_kThai, CTLScriptType::CTL_THAI },      // 24
-        { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount,   CTLScriptType::CTL_UNKNOWN }    // 88
+        { UnicodeScript_kHebrew,      UnicodeScript_kHebrew,      CTLScriptType::CTL_HEBREW },    // 10
+        { UnicodeScript_kArabic,      UnicodeScript_kArabic,      CTLScriptType::CTL_ARABIC },    // 11
+        { UnicodeScript_kDevanagari,  UnicodeScript_kDevanagari,  CTLScriptType::CTL_INDIC },     // 14
+        { UnicodeScript_kThai,        UnicodeScript_kThai,        CTLScriptType::CTL_THAI },      // 24
+        { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount, CTLScriptType::CTL_UNKNOWN }    // 88
     };
 
     return unicode::getUnicodeScriptType(Text[nPos], typeList);
diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx
index 53fb973ca400..b2dd1d7be08b 100644
--- a/i18nutil/source/utility/unicode.cxx
+++ b/i18nutil/source/utility/unicode.cxx
@@ -37,299 +37,40 @@
 
 using namespace ::com::sun::star::i18n;
 
-static const ScriptTypeList defaultTypeList[] = {
-    { UnicodeScript_kBasicLatin,
-      UnicodeScript_kBasicLatin,
-      UnicodeScript_kBasicLatin },      // 0,
-    { UnicodeScript_kLatin1Supplement,
-      UnicodeScript_kLatin1Supplement,
-      UnicodeScript_kLatin1Supplement },// 1,
-    { UnicodeScript_kLatinExtendedA,
-      UnicodeScript_kLatinExtendedA,
-      UnicodeScript_kLatinExtendedA }, // 2,
-    { UnicodeScript_kLatinExtendedB,
-      UnicodeScript_kLatinExtendedB,
-      UnicodeScript_kLatinExtendedB }, // 3,
-    { UnicodeScript_kIPAExtension,
-      UnicodeScript_kIPAExtension,
-      UnicodeScript_kIPAExtension }, // 4,
-    { UnicodeScript_kSpacingModifier,
-      UnicodeScript_kSpacingModifier,
-      UnicodeScript_kSpacingModifier }, // 5,
-    { UnicodeScript_kCombiningDiacritical,
-      UnicodeScript_kCombiningDiacritical,
-      UnicodeScript_kCombiningDiacritical }, // 6,
-    { UnicodeScript_kGreek,
-      UnicodeScript_kGreek,
-      UnicodeScript_kGreek }, // 7,
-    { UnicodeScript_kCyrillic,
-      UnicodeScript_kCyrillic,
-      UnicodeScript_kCyrillic }, // 8,
-    { UnicodeScript_kArmenian,
-      UnicodeScript_kArmenian,
-      UnicodeScript_kArmenian }, // 9,
-    { UnicodeScript_kHebrew,
-      UnicodeScript_kHebrew,
-      UnicodeScript_kHebrew }, // 10,
-    { UnicodeScript_kArabic,
-      UnicodeScript_kArabic,
-      UnicodeScript_kArabic }, // 11,
-    { UnicodeScript_kSyriac,
-      UnicodeScript_kSyriac,
-      UnicodeScript_kSyriac }, // 12,
-    { UnicodeScript_kThaana,
-      UnicodeScript_kThaana,
-      UnicodeScript_kThaana }, // 13,
-    { UnicodeScript_kDevanagari,
-      UnicodeScript_kDevanagari,
-      UnicodeScript_kDevanagari }, // 14,
-    { UnicodeScript_kBengali,
-      UnicodeScript_kBengali,
-      UnicodeScript_kBengali }, // 15,
-    { UnicodeScript_kGurmukhi,
-      UnicodeScript_kGurmukhi,
-      UnicodeScript_kGurmukhi }, // 16,
-    { UnicodeScript_kGujarati,
-      UnicodeScript_kGujarati,
-      UnicodeScript_kGujarati }, // 17,
-    { UnicodeScript_kOriya,
-      UnicodeScript_kOriya,
-      UnicodeScript_kOriya }, // 18,
-    { UnicodeScript_kTamil,
-      UnicodeScript_kTamil,
-      UnicodeScript_kTamil }, // 19,
-    { UnicodeScript_kTelugu,
-      UnicodeScript_kTelugu,
-      UnicodeScript_kTelugu }, // 20,
-    { UnicodeScript_kKannada,
-      UnicodeScript_kKannada,
-      UnicodeScript_kKannada }, // 21,
-    { UnicodeScript_kMalayalam,
-      UnicodeScript_kMalayalam,
-      UnicodeScript_kMalayalam }, // 22,
-    { UnicodeScript_kSinhala,
-      UnicodeScript_kSinhala,
-      UnicodeScript_kSinhala }, // 23,
-    { UnicodeScript_kThai,
-      UnicodeScript_kThai,
-      UnicodeScript_kThai }, // 24,
-    { UnicodeScript_kLao,
-      UnicodeScript_kLao,
-      UnicodeScript_kLao }, // 25,
-    { UnicodeScript_kTibetan,
-      UnicodeScript_kTibetan,
-      UnicodeScript_kTibetan }, // 26,
-    { UnicodeScript_kMyanmar,
-      UnicodeScript_kMyanmar,
-      UnicodeScript_kMyanmar }, // 27,
-    { UnicodeScript_kGeorgian,
-      UnicodeScript_kGeorgian,
-      UnicodeScript_kGeorgian }, // 28,
-    { UnicodeScript_kHangulJamo,
-      UnicodeScript_kHangulJamo,
-      UnicodeScript_kHangulJamo }, // 29,
-    { UnicodeScript_kEthiopic,
-      UnicodeScript_kEthiopic,
-      UnicodeScript_kEthiopic }, // 30,
-    { UnicodeScript_kCherokee,
-      UnicodeScript_kCherokee,
-      UnicodeScript_kCherokee }, // 31,
-    { UnicodeScript_kUnifiedCanadianAboriginalSyllabics,
-      UnicodeScript_kUnifiedCanadianAboriginalSyllabics,
-      UnicodeScript_kUnifiedCanadianAboriginalSyllabics }, // 32,
-    { UnicodeScript_kOgham,
-      UnicodeScript_kOgham,
-      UnicodeScript_kOgham }, // 33,
-    { UnicodeScript_kRunic,
-      UnicodeScript_kRunic,
-      UnicodeScript_kRunic }, // 34,
-    { UnicodeScript_kKhmer,
-      UnicodeScript_kKhmer,
-      UnicodeScript_kKhmer }, // 35,
-    { UnicodeScript_kMongolian,
-      UnicodeScript_kMongolian,
-      UnicodeScript_kMongolian }, // 36,
-    { UnicodeScript_kLatinExtendedAdditional,
-      UnicodeScript_kLatinExtendedAdditional,
-      UnicodeScript_kLatinExtendedAdditional }, // 37,
-    { UnicodeScript_kGreekExtended,
-      UnicodeScript_kGreekExtended,
-      UnicodeScript_kGreekExtended }, // 38,
-    { UnicodeScript_kGeneralPunctuation,
-      UnicodeScript_kGeneralPunctuation,
-      UnicodeScript_kGeneralPunctuation }, // 39,
-    { UnicodeScript_kSuperSubScript,
-      UnicodeScript_kSuperSubScript,
-      UnicodeScript_kSuperSubScript }, // 40,
-    { UnicodeScript_kCurrencySymbolScript,
-      UnicodeScript_kCurrencySymbolScript,
-      UnicodeScript_kCurrencySymbolScript }, // 41,
-    { UnicodeScript_kSymbolCombiningMark,
-      UnicodeScript_kSymbolCombiningMark,
-      UnicodeScript_kSymbolCombiningMark }, // 42,
-    { UnicodeScript_kLetterlikeSymbol,
-      UnicodeScript_kLetterlikeSymbol,
-      UnicodeScript_kLetterlikeSymbol }, // 43,
-    { UnicodeScript_kNumberForm,
-      UnicodeScript_kNumberForm,
-      UnicodeScript_kNumberForm }, // 44,
-    { UnicodeScript_kArrow,
-      UnicodeScript_kArrow,
-      UnicodeScript_kArrow }, // 45,
-    { UnicodeScript_kMathOperator,
-      UnicodeScript_kMathOperator,
-      UnicodeScript_kMathOperator }, // 46,
-    { UnicodeScript_kMiscTechnical,
-      UnicodeScript_kMiscTechnical,
-      UnicodeScript_kMiscTechnical }, // 47,
-    { UnicodeScript_kControlPicture,
-      UnicodeScript_kControlPicture,
-      UnicodeScript_kControlPicture }, // 48,
-    { UnicodeScript_kOpticalCharacter,
-      UnicodeScript_kOpticalCharacter,
-      UnicodeScript_kOpticalCharacter }, // 49,
-    { UnicodeScript_kEnclosedAlphanumeric,
-      UnicodeScript_kEnclosedAlphanumeric,
-      UnicodeScript_kEnclosedAlphanumeric }, // 50,
-    { UnicodeScript_kBoxDrawing,
-      UnicodeScript_kBoxDrawing,
-      UnicodeScript_kBoxDrawing }, // 51,
-    { UnicodeScript_kBlockElement,
-      UnicodeScript_kBlockElement,
-      UnicodeScript_kBlockElement }, // 52,
-    { UnicodeScript_kGeometricShape,
-      UnicodeScript_kGeometricShape,
-      UnicodeScript_kGeometricShape }, // 53,
-    { UnicodeScript_kMiscSymbol,
-      UnicodeScript_kMiscSymbol,
-      UnicodeScript_kMiscSymbol }, // 54,
-    { UnicodeScript_kDingbat,
-      UnicodeScript_kDingbat,
-      UnicodeScript_kDingbat }, // 55,
-    { UnicodeScript_kBraillePatterns,
-      UnicodeScript_kBraillePatterns,
-      UnicodeScript_kBraillePatterns }, // 56,
-    { UnicodeScript_kCJKRadicalsSupplement,
-      UnicodeScript_kCJKRadicalsSupplement,
-      UnicodeScript_kCJKRadicalsSupplement }, // 57,
-    { UnicodeScript_kKangxiRadicals,
-      UnicodeScript_kKangxiRadicals,
-      UnicodeScript_kKangxiRadicals }, // 58,
-    { UnicodeScript_kIdeographicDescriptionCharacters,
-      UnicodeScript_kIdeographicDescriptionCharacters,
-      UnicodeScript_kIdeographicDescriptionCharacters }, // 59,
-    { UnicodeScript_kCJKSymbolPunctuation,
-      UnicodeScript_kCJKSymbolPunctuation,
-      UnicodeScript_kCJKSymbolPunctuation }, // 60,
-    { UnicodeScript_kHiragana,
-      UnicodeScript_kHiragana,
-      UnicodeScript_kHiragana }, // 61,
-    { UnicodeScript_kKatakana,
-      UnicodeScript_kKatakana,
-      UnicodeScript_kKatakana }, // 62,
-    { UnicodeScript_kBopomofo,
-      UnicodeScript_kBopomofo,
-      UnicodeScript_kBopomofo }, // 63,
-    { UnicodeScript_kHangulCompatibilityJamo,
-      UnicodeScript_kHangulCompatibilityJamo,
-      UnicodeScript_kHangulCompatibilityJamo }, // 64,
-    { UnicodeScript_kKanbun,
-      UnicodeScript_kKanbun,
-      UnicodeScript_kKanbun }, // 65,
-    { UnicodeScript_kBopomofoExtended,
-      UnicodeScript_kBopomofoExtended,
-      UnicodeScript_kBopomofoExtended }, // 66,
-    { UnicodeScript_kEnclosedCJKLetterMonth,
-      UnicodeScript_kEnclosedCJKLetterMonth,
-      UnicodeScript_kEnclosedCJKLetterMonth }, // 67,
-    { UnicodeScript_kCJKCompatibility,
-      UnicodeScript_kCJKCompatibility,
-      UnicodeScript_kCJKCompatibility }, // 68,
-    { UnicodeScript_k_CJKUnifiedIdeographsExtensionA,
-      UnicodeScript_k_CJKUnifiedIdeographsExtensionA,
-      UnicodeScript_k_CJKUnifiedIdeographsExtensionA }, // 69,
-    { UnicodeScript_kCJKUnifiedIdeograph,
-      UnicodeScript_kCJKUnifiedIdeograph,
-      UnicodeScript_kCJKUnifiedIdeograph }, // 70,
-    { UnicodeScript_kYiSyllables,
-      UnicodeScript_kYiSyllables,
-      UnicodeScript_kYiSyllables }, // 71,
-    { UnicodeScript_kYiRadicals,
-      UnicodeScript_kYiRadicals,
-      UnicodeScript_kYiRadicals }, // 72,
-    { UnicodeScript_kHangulSyllable,
-      UnicodeScript_kHangulSyllable,
-      UnicodeScript_kHangulSyllable }, // 73,
-    { UnicodeScript_kHighSurrogate,
-      UnicodeScript_kHighSurrogate,
-      UnicodeScript_kHighSurrogate }, // 74,
-    { UnicodeScript_kHighPrivateUseSurrogate,
-      UnicodeScript_kHighPrivateUseSurrogate,
-      UnicodeScript_kHighPrivateUseSurrogate }, // 75,
-    { UnicodeScript_kLowSurrogate,
-      UnicodeScript_kLowSurrogate,
-      UnicodeScript_kLowSurrogate }, // 76,
-    { UnicodeScript_kPrivateUse,
-      UnicodeScript_kPrivateUse,
-      UnicodeScript_kPrivateUse }, // 77,
-    { UnicodeScript_kCJKCompatibilityIdeograph,
-      UnicodeScript_kCJKCompatibilityIdeograph,
-      UnicodeScript_kCJKCompatibilityIdeograph }, // 78,
-    { UnicodeScript_kAlphabeticPresentation,
-      UnicodeScript_kAlphabeticPresentation,
-      UnicodeScript_kAlphabeticPresentation }, // 79,
-    { UnicodeScript_kArabicPresentationA,
-      UnicodeScript_kArabicPresentationA,
-      UnicodeScript_kArabicPresentationA }, // 80,
-    { UnicodeScript_kCombiningHalfMark,
-      UnicodeScript_kCombiningHalfMark,
-      UnicodeScript_kCombiningHalfMark }, // 81,
-    { UnicodeScript_kCJKCompatibilityForm,
-      UnicodeScript_kCJKCompatibilityForm,
-      UnicodeScript_kCJKCompatibilityForm }, // 82,
-    { UnicodeScript_kSmallFormVariant,
-      UnicodeScript_kSmallFormVariant,
-      UnicodeScript_kSmallFormVariant }, // 83,
-    { UnicodeScript_kArabicPresentationB,
-      UnicodeScript_kArabicPresentationB,
-      UnicodeScript_kArabicPresentationB }, // 84,
-    { UnicodeScript_kNoScript,
-      UnicodeScript_kNoScript,
-      UnicodeScript_kNoScript }, // 85,
-    { UnicodeScript_kHalfwidthFullwidthForm,
-      UnicodeScript_kHalfwidthFullwidthForm,
-      UnicodeScript_kHalfwidthFullwidthForm }, // 86,
-    { UnicodeScript_kScriptCount,
-      UnicodeScript_kScriptCount,
-      UnicodeScript_kNoScript } // 87,
+struct DefaultScriptTypeList {
+    com::sun::star::i18n::UnicodeScript from;
+    com::sun::star::i18n::UnicodeScript to;
+    com::sun::star::i18n::UnicodeScript value;
 };
 
-sal_Int16 SAL_CALL
-unicode::getUnicodeScriptType( const sal_Unicode ch, const ScriptTypeList* typeList, sal_Int16 unknownType ) {
 
-    if (!typeList) {
-        typeList = defaultTypeList;
-        unknownType = UnicodeScript_kNoScript;
-    }
+template<class L, typename T>
+T getScriptType( const sal_Unicode ch, const L* typeList, T unknownType ) {
 
-    sal_Int16 i = 0, type = typeList[0].to;
-    while (type < UnicodeScript_kScriptCount && ch > UnicodeScriptType[type][UnicodeScriptTypeTo]) {
+    sal_Int16 i = 0;
+    css::i18n::UnicodeScript type = typeList[0].to;
+    while (type < UnicodeScript_kScriptCount && ch > UnicodeScriptType[(int)type][UnicodeScriptTypeTo]) {
         type = typeList[++i].to;
     }
 
     return (type < UnicodeScript_kScriptCount &&
-            ch >= UnicodeScriptType[typeList[i].from][UnicodeScriptTypeFrom]) ?
+            ch >= UnicodeScriptType[static_cast<int>(typeList[i].from)][(int)UnicodeScriptTypeFrom]) ?
             typeList[i].value : unknownType;
 }
 
+sal_Int16 SAL_CALL
+unicode::getUnicodeScriptType( const sal_Unicode ch, const ScriptTypeList* typeList, sal_Int16 unknownType ) {
+    return getScriptType(ch, typeList, unknownType);
+}
+
 sal_Unicode SAL_CALL
 unicode::getUnicodeScriptStart( UnicodeScript type) {
-    return UnicodeScriptType[type][UnicodeScriptTypeFrom];
+    return UnicodeScriptType[(int)type][UnicodeScriptTypeFrom];
 }
 
 sal_Unicode SAL_CALL
 unicode::getUnicodeScriptEnd( UnicodeScript type) {
-    return UnicodeScriptType[type][UnicodeScriptTypeTo];
+    return UnicodeScriptType[(int)type][UnicodeScriptTypeTo];
 }
 
 sal_Int16 SAL_CALL
diff --git a/include/i18nutil/transliteration.hxx b/include/i18nutil/transliteration.hxx
index b8cafa68f14f..92709690ac27 100644
--- a/include/i18nutil/transliteration.hxx
+++ b/include/i18nutil/transliteration.hxx
@@ -31,96 +31,96 @@
 enum class TransliterationFlags {
     NONE                           = 0,
     /// Transliterate a string from upper case to lower case
-    UPPERCASE_LOWERCASE            = css::i18n::TransliterationModules_UPPERCASE_LOWERCASE,
+    UPPERCASE_LOWERCASE            = (int)css::i18n::TransliterationModules_UPPERCASE_LOWERCASE,
     /// Transliterate a string from lower case to upper case
-    LOWERCASE_UPPERCASE            = css::i18n::TransliterationModules_LOWERCASE_UPPERCASE,
+    LOWERCASE_UPPERCASE            = (int)css::i18n::TransliterationModules_LOWERCASE_UPPERCASE,
     /// Transliterate a string from half width character to full width character
-    HALFWIDTH_FULLWIDTH            = css::i18n::TransliterationModules_HALFWIDTH_FULLWIDTH,
+    HALFWIDTH_FULLWIDTH            = (int)css::i18n::TransliterationModules_HALFWIDTH_FULLWIDTH,
     /// Transliterate a string from full width character to half width character
-    FULLWIDTH_HALFWIDTH            = css::i18n::TransliterationModules_FULLWIDTH_HALFWIDTH,
+    FULLWIDTH_HALFWIDTH            = (int)css::i18n::TransliterationModules_FULLWIDTH_HALFWIDTH,
     /// Transliterate a Japanese string from Katakana to Hiragana
-    KATAKANA_HIRAGANA              = css::i18n::TransliterationModules_KATAKANA_HIRAGANA,
+    KATAKANA_HIRAGANA              = (int)css::i18n::TransliterationModules_KATAKANA_HIRAGANA,
     /// Transliterate a Japanese string from Hiragana to Katakana
-    HIRAGANA_KATAKANA              = css::i18n::TransliterationModules_HIRAGANA_KATAKANA,
+    HIRAGANA_KATAKANA              = (int)css::i18n::TransliterationModules_HIRAGANA_KATAKANA,
     /// Transliterate an ASCII number string to Simplified Chinese lower case number string in spellout format
-    NumToTextLower_zh_CN           = css::i18n::TransliterationModules_NumToTextLower_zh_CN,
+    NumToTextLower_zh_CN           = (int)css::i18n::TransliterationModules_NumToTextLower_zh_CN,
     /// Transliterate an ASCII number string to Simplified Chinese upper case number string in spellout format
-    NumToTextUpper_zh_CN           = css::i18n::TransliterationModules_NumToTextUpper_zh_CN,
+    NumToTextUpper_zh_CN           = (int)css::i18n::TransliterationModules_NumToTextUpper_zh_CN,
     /// Transliterate an ASCII number string to Traditional Chinese lower case number string in spellout format
-    NumToTextLower_zh_TW           = css::i18n::TransliterationModules_NumToTextLower_zh_TW,
+    NumToTextLower_zh_TW           = (int)css::i18n::TransliterationModules_NumToTextLower_zh_TW,
     /// Transliterate an ASCII number string to Traditional Chinese upper case number string in spellout format
-    NumToTextUpper_zh_TW           = css::i18n::TransliterationModules_NumToTextUpper_zh_TW,
+    NumToTextUpper_zh_TW           = (int)css::i18n::TransliterationModules_NumToTextUpper_zh_TW,
     /// Transliterate an ASCII number string to formal Korean Hangul number string in spellout format
-    NumToTextFormalHangul_ko       = css::i18n::TransliterationModules_NumToTextFormalHangul_ko,
+    NumToTextFormalHangul_ko       = (int)css::i18n::TransliterationModules_NumToTextFormalHangul_ko,
     /// Transliterate an ASCII number string to formal Korean Hanja lower case number string in spellout format
-    NumToTextFormalLower_ko        = css::i18n::TransliterationModules_NumToTextFormalLower_ko,
+    NumToTextFormalLower_ko        = (int)css::i18n::TransliterationModules_NumToTextFormalLower_ko,
     /// Transliterate an ASCII number string to formal Korean Hanja upper case number string in spellout format
-    NumToTextFormalUpper_ko        = css::i18n::TransliterationModules_NumToTextFormalUpper_ko,
+    NumToTextFormalUpper_ko        = (int)css::i18n::TransliterationModules_NumToTextFormalUpper_ko,
 
     /** The first character of the sentence is put in upper case
      */
-    SENTENCE_CASE                  = css::i18n::TransliterationModulesExtra::SENTENCE_CASE,
+    SENTENCE_CASE                  = (int)css::i18n::TransliterationModulesExtra::SENTENCE_CASE,
 
 
     /** The first character of the word is put in upper case.
      * This one is part
      */
-    TITLE_CASE                     = css::i18n::TransliterationModulesExtra::TITLE_CASE,
+    TITLE_CASE                     = (int)css::i18n::TransliterationModulesExtra::TITLE_CASE,
 
 
     /** All characters of the word are to change their case from small letters
      * to capital letters and vice versa.
      */
-    TOGGLE_CASE                    = css::i18n::TransliterationModulesExtra::TOGGLE_CASE,
+    TOGGLE_CASE                    = (int)css::i18n::TransliterationModulesExtra::TOGGLE_CASE,
 
-    NON_IGNORE_MASK                = css::i18n::TransliterationModules_NON_IGNORE_MASK,
+    NON_IGNORE_MASK                = (int)css::i18n::TransliterationModules_NON_IGNORE_MASK,
     IGNORE_MASK                    = 0x7fffff00,
 
     /// Ignore case when comparing strings by transliteration service
-    IGNORE_CASE                    = css::i18n::TransliterationModules_IGNORE_CASE,
+    IGNORE_CASE                    = (int)css::i18n::TransliterationModules_IGNORE_CASE,
     /// Ignore Hiragana and Katakana when comparing strings by transliteration service
-    IGNORE_KANA                    = css::i18n::TransliterationModules_IGNORE_KANA, // ja_JP
+    IGNORE_KANA                    = (int)css::i18n::TransliterationModules_IGNORE_KANA, // ja_JP
     /// Ignore full width and half width character when comparing strings by transliteration service
-    IGNORE_WIDTH                   = css::i18n::TransliterationModules_IGNORE_WIDTH, // ja_JP
+    IGNORE_WIDTH                   = (int)css::i18n::TransliterationModules_IGNORE_WIDTH, // ja_JP
     /// Ignore Japanese traditional Kanji character in Japanese fuzzy search
-    ignoreTraditionalKanji_ja_JP   = css::i18n::TransliterationModules_ignoreTraditionalKanji_ja_JP,
+    ignoreTraditionalKanji_ja_JP   = (int)css::i18n::TransliterationModules_ignoreTraditionalKanji_ja_JP,
     /// Ignore Japanese traditional Katakana and Hiragana character in Japanese fuzzy search
-    ignoreTraditionalKana_ja_JP    = css::i18n::TransliterationModules_ignoreTraditionalKana_ja_JP,
+    ignoreTraditionalKana_ja_JP    = (int)css::i18n::TransliterationModules_ignoreTraditionalKana_ja_JP,
     /// Ignore dash or minus sign in Japanese fuzzy search
-    ignoreMinusSign_ja_JP          = css::i18n::TransliterationModules_ignoreMinusSign_ja_JP,
+    ignoreMinusSign_ja_JP          = (int)css::i18n::TransliterationModules_ignoreMinusSign_ja_JP,
     /// Ignore Hiragana and Katakana iteration mark in Japanese fuzzy search
-    ignoreIterationMark_ja_JP      = css::i18n::TransliterationModules_ignoreIterationMark_ja_JP,
+    ignoreIterationMark_ja_JP      = (int)css::i18n::TransliterationModules_ignoreIterationMark_ja_JP,
     /// Ignore separator punctuations in Japanese fuzzy search
-    ignoreSeparator_ja_JP          = css::i18n::TransliterationModules_ignoreSeparator_ja_JP,
+    ignoreSeparator_ja_JP          = (int)css::i18n::TransliterationModules_ignoreSeparator_ja_JP,
     /// Ignore Katakana and Hiragana Zi/Zi and Zu/Zu  in Japanese fuzzy search
-    ignoreZiZu_ja_JP               = css::i18n::TransliterationModules_ignoreZiZu_ja_JP,
+    ignoreZiZu_ja_JP               = (int)css::i18n::TransliterationModules_ignoreZiZu_ja_JP,
     /// Ignore Katakana and Hiragana Ba/Gua and Ha/Fa in Japanese fuzzy search
-    ignoreBaFa_ja_JP               = css::i18n::TransliterationModules_ignoreBaFa_ja_JP,
+    ignoreBaFa_ja_JP               = (int)css::i18n::TransliterationModules_ignoreBaFa_ja_JP,
     /// Ignore Katakana and Hiragana Tsui/Tea/Ti and Dyi/Ji in Japanese fuzzy search
-    ignoreTiJi_ja_JP               = css::i18n::TransliterationModules_ignoreTiJi_ja_JP,
+    ignoreTiJi_ja_JP               = (int)css::i18n::TransliterationModules_ignoreTiJi_ja_JP,
     /// Ignore Katakana and Hiragana Hyu/Fyu and Byu/Gyu in Japanese fuzzy search
-    ignoreHyuByu_ja_JP             = css::i18n::TransliterationModules_ignoreHyuByu_ja_JP,
+    ignoreHyuByu_ja_JP             = (int)css::i18n::TransliterationModules_ignoreHyuByu_ja_JP,
     /// Ignore Katakana and Hiragana Se/Sye and Ze/Je in Japanese fuzzy search
-    ignoreSeZe_ja_JP               = css::i18n::TransliterationModules_ignoreSeZe_ja_JP,
+    ignoreSeZe_ja_JP               = (int)css::i18n::TransliterationModules_ignoreSeZe_ja_JP,
     /// Ignore Katakana YA/A which follows the character in either I or E row in Japanese fuzzy search
-    ignoreIandEfollowedByYa_ja_JP  = css::i18n::TransliterationModules_ignoreIandEfollowedByYa_ja_JP,
+    ignoreIandEfollowedByYa_ja_JP  = (int)css::i18n::TransliterationModules_ignoreIandEfollowedByYa_ja_JP,
     /// Ignore Katakana KI/KU which follows the character in SA column in Japanese fuzzy search
-    ignoreKiKuFollowedBySa_ja_JP   = css::i18n::TransliterationModules_ignoreKiKuFollowedBySa_ja_JP,
+    ignoreKiKuFollowedBySa_ja_JP   = (int)css::i18n::TransliterationModules_ignoreKiKuFollowedBySa_ja_JP,
     /// Ignore Japanese normal and small sized character in Japanese fuzzy search
-    ignoreSize_ja_JP               = css::i18n::TransliterationModules_ignoreSize_ja_JP,
+    ignoreSize_ja_JP               = (int)css::i18n::TransliterationModules_ignoreSize_ja_JP,
     /// Ignore Japanese prolonged sound mark in Japanese fuzzy search
-    ignoreProlongedSoundMark_ja_JP = css::i18n::TransliterationModules_ignoreProlongedSoundMark_ja_JP,
+    ignoreProlongedSoundMark_ja_JP = (int)css::i18n::TransliterationModules_ignoreProlongedSoundMark_ja_JP,
     /// Ignore middle dot in Japanese fuzzy search
-    ignoreMiddleDot_ja_JP          = css::i18n::TransliterationModules_ignoreMiddleDot_ja_JP,
+    ignoreMiddleDot_ja_JP          = (int)css::i18n::TransliterationModules_ignoreMiddleDot_ja_JP,
     /// Ignore white space characters, include space, TAB, return, etc. in Japanese fuzzy search
-    ignoreSpace_ja_JP              = css::i18n::TransliterationModules_ignoreSpace_ja_JP,
+    ignoreSpace_ja_JP              = (int)css::i18n::TransliterationModules_ignoreSpace_ja_JP,
     /// transliterate Japanese small sized character to normal sized character
-    smallToLarge_ja_JP             = css::i18n::TransliterationModules_smallToLarge_ja_JP,
+    smallToLarge_ja_JP             = (int)css::i18n::TransliterationModules_smallToLarge_ja_JP,
     /// transliterate Japanese normal sized character to small sized character
-    largeToSmall_ja_JP             = css::i18n::TransliterationModules_largeToSmall_ja_JP,
+    largeToSmall_ja_JP             = (int)css::i18n::TransliterationModules_largeToSmall_ja_JP,
 
-    IGNORE_DIACRITICS_CTL          = css::i18n::TransliterationModulesExtra::IGNORE_DIACRITICS_CTL,
-    IGNORE_KASHIDA_CTL             = css::i18n::TransliterationModulesExtra::IGNORE_KASHIDA_CTL
+    IGNORE_DIACRITICS_CTL          = (int)css::i18n::TransliterationModulesExtra::IGNORE_DIACRITICS_CTL,
+    IGNORE_KASHIDA_CTL             = (int)css::i18n::TransliterationModulesExtra::IGNORE_KASHIDA_CTL
 };
 namespace o3tl {
     template<> struct typed_flags<TransliterationFlags> : is_typed_flags<TransliterationFlags, 0x7fffffff> {};
diff --git a/include/i18nutil/unicode.hxx b/include/i18nutil/unicode.hxx
index ec517161f4dd..3380c69ad4c7 100644
--- a/include/i18nutil/unicode.hxx
+++ b/include/i18nutil/unicode.hxx
@@ -28,8 +28,8 @@
 class LanguageTag;
 
 struct ScriptTypeList {
-    sal_Int16 from;
-    sal_Int16 to;
+    css::i18n::UnicodeScript from;
+    css::i18n::UnicodeScript to;
     sal_Int16 value;
 };
 
@@ -38,7 +38,7 @@ class I18NUTIL_DLLPUBLIC unicode
 public:
 
     static sal_Int16 SAL_CALL getUnicodeType( const sal_Unicode ch );
-    static sal_Int16 SAL_CALL getUnicodeScriptType( const sal_Unicode ch, const ScriptTypeList *typeList = nullptr, sal_Int16 unknownType = 0 );
+    static sal_Int16 SAL_CALL getUnicodeScriptType( const sal_Unicode ch, const ScriptTypeList *typeList, sal_Int16 unknownType = 0 );
     static sal_Unicode SAL_CALL getUnicodeScriptStart(css::i18n::UnicodeScript type);
     static sal_Unicode SAL_CALL getUnicodeScriptEnd(css::i18n::UnicodeScript type);
     static sal_uInt8 SAL_CALL getUnicodeDirection( const sal_Unicode ch );


More information about the Libreoffice-commits mailing list