diff options
Diffstat (limited to 'i18npool/source/localedata/localedata.cxx')
-rw-r--r-- | i18npool/source/localedata/localedata.cxx | 931 |
1 files changed, 462 insertions, 469 deletions
diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx index acb0f781f863..7f59dabda5fb 100644 --- a/i18npool/source/localedata/localedata.cxx +++ b/i18npool/source/localedata/localedata.cxx @@ -23,16 +23,17 @@ #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/container/XIndexAccess.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> -#include <com/sun/star/text/HoriOrientation.hpp> #include <comphelper/sequence.hxx> #include <cppuhelper/implbase.hxx> #include <cppuhelper/supportsservice.hxx> +#include <editeng/svxenum.hxx> #include <localedata.hxx> #include <i18nlangtag/mslangid.hxx> #include <i18nlangtag/languagetag.hxx> #include <sal/log.hxx> #include <osl/diagnose.h> #include <sal/macros.h> +#include <o3tl/string_view.hxx> namespace com::sun::star::uno { class XComponentContext; } @@ -40,297 +41,328 @@ using namespace com::sun::star::i18n; using namespace com::sun::star::uno; using namespace com::sun::star::lang; using namespace com::sun::star; +using i18npool::DataLocaleLibrary; -typedef sal_Unicode** (* MyFunc_Type)( sal_Int16&); -typedef sal_Unicode const *** (* MyFunc_Type2)( sal_Int16&, sal_Int16& ); -typedef sal_Unicode const **** (* MyFunc_Type3)( sal_Int16&, sal_Int16&, sal_Int16& ); -typedef sal_Unicode const * const * (* MyFunc_FormatCode)( sal_Int16&, sal_Unicode const *&, sal_Unicode const *& ); +typedef OUString const * (* MyFuncOUString_Type)( sal_Int16&); +typedef OUString const ** (* MyFunc_Type2)( sal_Int16&, sal_Int16& ); +typedef OUString const *** (* MyFunc_Type3)( sal_Int16&, sal_Int16&, sal_Int16& ); +typedef OUString const * (* MyFunc_FormatCode)( sal_Int16&, sal_Unicode const *&, sal_Unicode const *& ); #ifndef DISABLE_DYNLOADING -static const char *lcl_DATA_EN = "localedata_en"; -static const char *lcl_DATA_ES = "localedata_es"; -static const char *lcl_DATA_EURO = "localedata_euro"; -static const char *lcl_DATA_OTHERS = "localedata_others"; +#ifdef SAL_DLLPREFIX +// mostly "lib*.so" +constexpr const char* lcl_DATA_EN = SAL_DLLPREFIX "localedata_en" SAL_DLLEXTENSION; +constexpr const char* lcl_DATA_ES = SAL_DLLPREFIX "localedata_es" SAL_DLLEXTENSION; +constexpr const char* lcl_DATA_EURO = SAL_DLLPREFIX "localedata_euro" SAL_DLLEXTENSION; +constexpr const char* lcl_DATA_OTHERS = SAL_DLLPREFIX "localedata_others" SAL_DLLEXTENSION; +#else +// mostly "*.dll" +constexpr const char* lcl_DATA_EN = "localedata_en" SAL_DLLEXTENSION; +constexpr const char* lcl_DATA_ES = "localedata_es" SAL_DLLEXTENSION; +constexpr const char* lcl_DATA_EURO = "localedata_euro" SAL_DLLEXTENSION; +constexpr const char* lcl_DATA_OTHERS = "localedata_others" SAL_DLLEXTENSION; +#endif + +static const char* getLibraryName(DataLocaleLibrary aLib) { + switch(aLib) { + case DataLocaleLibrary::EN: + return lcl_DATA_EN; + case DataLocaleLibrary::ES: + return lcl_DATA_ES; + case DataLocaleLibrary::EURO: + return lcl_DATA_EURO; + case DataLocaleLibrary::OTHERS: + return lcl_DATA_OTHERS; + } + return nullptr; +} -const struct { +constexpr struct { const char* pLocale; - const char* pLib; + i18npool::DataLocaleLibrary pLib; } aLibTable[] = { - { "en_US", lcl_DATA_EN }, - { "en_AU", lcl_DATA_EN }, - { "en_BZ", lcl_DATA_EN }, - { "en_CA", lcl_DATA_EN }, - { "en_GB", lcl_DATA_EN }, - { "en_IE", lcl_DATA_EN }, - { "en_JM", lcl_DATA_EN }, - { "en_NZ", lcl_DATA_EN }, - { "en_PH", lcl_DATA_EN }, - { "en_TT", lcl_DATA_EN }, - { "en_ZA", lcl_DATA_EN }, - { "en_ZW", lcl_DATA_EN }, - { "en_NA", lcl_DATA_EN }, - { "en_GH", lcl_DATA_EN }, - { "en_MW", lcl_DATA_EN }, - { "en_GM", lcl_DATA_EN }, - { "en_BW", lcl_DATA_EN }, - { "en_ZM", lcl_DATA_EN }, - { "en_LK", lcl_DATA_EN }, - { "en_NG", lcl_DATA_EN }, - { "en_KE", lcl_DATA_EN }, - { "en_DK", lcl_DATA_EN }, - - { "es_ES", lcl_DATA_ES }, - { "es_AR", lcl_DATA_ES }, - { "es_BO", lcl_DATA_ES }, - { "es_CL", lcl_DATA_ES }, - { "es_CO", lcl_DATA_ES }, - { "es_CR", lcl_DATA_ES }, - { "es_DO", lcl_DATA_ES }, - { "es_EC", lcl_DATA_ES }, - { "es_GT", lcl_DATA_ES }, - { "es_HN", lcl_DATA_ES }, - { "es_MX", lcl_DATA_ES }, - { "es_NI", lcl_DATA_ES }, - { "es_PA", lcl_DATA_ES }, - { "es_PE", lcl_DATA_ES }, - { "es_PR", lcl_DATA_ES }, - { "es_PY", lcl_DATA_ES }, - { "es_SV", lcl_DATA_ES }, - { "es_UY", lcl_DATA_ES }, - { "es_VE", lcl_DATA_ES }, - { "gl_ES", lcl_DATA_ES }, - - { "de_DE", lcl_DATA_EURO }, - { "de_AT", lcl_DATA_EURO }, - { "de_CH", lcl_DATA_EURO }, - { "de_LI", lcl_DATA_EURO }, - { "de_LU", lcl_DATA_EURO }, - { "fr_FR", lcl_DATA_EURO }, - { "fr_BE", lcl_DATA_EURO }, - { "fr_CA", lcl_DATA_EURO }, - { "fr_CH", lcl_DATA_EURO }, - { "fr_LU", lcl_DATA_EURO }, - { "fr_MC", lcl_DATA_EURO }, - { "fr_BF", lcl_DATA_EURO }, - { "fr_CI", lcl_DATA_EURO }, - { "fr_ML", lcl_DATA_EURO }, - { "fr_SN", lcl_DATA_EURO }, - { "fr_BJ", lcl_DATA_EURO }, - { "fr_NE", lcl_DATA_EURO }, - { "fr_TG", lcl_DATA_EURO }, - { "it_IT", lcl_DATA_EURO }, - { "it_CH", lcl_DATA_EURO }, - { "sl_SI", lcl_DATA_EURO }, - { "sv_SE", lcl_DATA_EURO }, - { "sv_FI", lcl_DATA_EURO }, - { "ca_ES", lcl_DATA_EURO }, - { "ca_ES_valencia", lcl_DATA_EURO }, - { "cs_CZ", lcl_DATA_EURO }, - { "sk_SK", lcl_DATA_EURO }, - { "da_DK", lcl_DATA_EURO }, - { "el_GR", lcl_DATA_EURO }, - { "fi_FI", lcl_DATA_EURO }, - { "is_IS", lcl_DATA_EURO }, - { "nl_BE", lcl_DATA_EURO }, - { "nl_NL", lcl_DATA_EURO }, - { "no_NO", lcl_DATA_EURO }, - { "nn_NO", lcl_DATA_EURO }, - { "nb_NO", lcl_DATA_EURO }, - { "nds_DE", lcl_DATA_EURO }, - { "pl_PL", lcl_DATA_EURO }, - { "pt_BR", lcl_DATA_EURO }, - { "pt_PT", lcl_DATA_EURO }, - { "ru_RU", lcl_DATA_EURO }, - { "tr_TR", lcl_DATA_EURO }, - { "tt_RU", lcl_DATA_EURO }, - { "et_EE", lcl_DATA_EURO }, - { "vro_EE", lcl_DATA_EURO }, - { "lb_LU", lcl_DATA_EURO }, - { "lt_LT", lcl_DATA_EURO }, - { "lv_LV", lcl_DATA_EURO }, - { "uk_UA", lcl_DATA_EURO }, - { "ro_RO", lcl_DATA_EURO }, - { "cy_GB", lcl_DATA_EURO }, - { "bg_BG", lcl_DATA_EURO }, - { "sr_Latn_ME", lcl_DATA_EURO }, - { "sr_Latn_RS", lcl_DATA_EURO }, - { "sr_Latn_CS", lcl_DATA_EURO }, - { "sr_ME", lcl_DATA_EURO }, - { "sr_RS", lcl_DATA_EURO }, - { "sr_CS", lcl_DATA_EURO }, - { "hr_HR", lcl_DATA_EURO }, - { "bs_BA", lcl_DATA_EURO }, - { "eu_ES", lcl_DATA_EURO }, - { "fo_FO", lcl_DATA_EURO }, - { "ga_IE", lcl_DATA_EURO }, - { "gd_GB", lcl_DATA_EURO }, - { "ka_GE", lcl_DATA_EURO }, - { "be_BY", lcl_DATA_EURO }, - { "kl_GL", lcl_DATA_EURO }, - { "mk_MK", lcl_DATA_EURO }, - { "br_FR", lcl_DATA_EURO }, - { "la_VA", lcl_DATA_EURO }, - { "cv_RU", lcl_DATA_EURO }, - { "wa_BE", lcl_DATA_EURO }, - { "fur_IT", lcl_DATA_EURO }, - { "gsc_FR", lcl_DATA_EURO }, - { "fy_NL", lcl_DATA_EURO }, - { "oc_FR", lcl_DATA_EURO }, - { "mt_MT", lcl_DATA_EURO }, - { "sc_IT", lcl_DATA_EURO }, - { "ast_ES", lcl_DATA_EURO }, - { "ltg_LV", lcl_DATA_EURO }, - { "hsb_DE", lcl_DATA_EURO }, - { "dsb_DE", lcl_DATA_EURO }, - { "rue_SK", lcl_DATA_EURO }, - { "an_ES", lcl_DATA_EURO }, - { "myv_RU", lcl_DATA_EURO }, - { "lld_IT", lcl_DATA_EURO }, - { "cu_RU", lcl_DATA_EURO }, - { "vec_IT", lcl_DATA_EURO }, - { "szl_PL", lcl_DATA_EURO }, - { "lij_IT", lcl_DATA_EURO }, - - { "ja_JP", lcl_DATA_OTHERS }, - { "ko_KR", lcl_DATA_OTHERS }, - { "zh_CN", lcl_DATA_OTHERS }, - { "zh_HK", lcl_DATA_OTHERS }, - { "zh_SG", lcl_DATA_OTHERS }, - { "zh_TW", lcl_DATA_OTHERS }, - { "zh_MO", lcl_DATA_OTHERS }, - { "en_HK", lcl_DATA_OTHERS }, // needs to be in OTHERS instead of EN because currency inherited from zh_HK - - { "ar_EG", lcl_DATA_OTHERS }, - { "ar_DZ", lcl_DATA_OTHERS }, - { "ar_LB", lcl_DATA_OTHERS }, - { "ar_SA", lcl_DATA_OTHERS }, - { "ar_TN", lcl_DATA_OTHERS }, - { "he_IL", lcl_DATA_OTHERS }, - { "hi_IN", lcl_DATA_OTHERS }, - { "kn_IN", lcl_DATA_OTHERS }, - { "ta_IN", lcl_DATA_OTHERS }, - { "te_IN", lcl_DATA_OTHERS }, - { "gu_IN", lcl_DATA_OTHERS }, - { "mr_IN", lcl_DATA_OTHERS }, - { "pa_IN", lcl_DATA_OTHERS }, - { "bn_IN", lcl_DATA_OTHERS }, - { "or_IN", lcl_DATA_OTHERS }, - { "en_IN", lcl_DATA_OTHERS }, // keep in OTHERS for IN - { "ml_IN", lcl_DATA_OTHERS }, - { "bn_BD", lcl_DATA_OTHERS }, - { "th_TH", lcl_DATA_OTHERS }, - - { "af_ZA", lcl_DATA_OTHERS }, - { "hu_HU", lcl_DATA_OTHERS }, - { "id_ID", lcl_DATA_OTHERS }, - { "ms_MY", lcl_DATA_OTHERS }, - { "en_MY", lcl_DATA_OTHERS }, // needs to be in OTHERS instead of EN because currency inherited from ms_MY - { "ia", lcl_DATA_OTHERS }, - { "mn_Cyrl_MN", lcl_DATA_OTHERS }, - { "az_AZ", lcl_DATA_OTHERS }, - { "sw_TZ", lcl_DATA_OTHERS }, - { "km_KH", lcl_DATA_OTHERS }, - { "lo_LA", lcl_DATA_OTHERS }, - { "rw_RW", lcl_DATA_OTHERS }, - { "eo", lcl_DATA_OTHERS }, - { "dz_BT", lcl_DATA_OTHERS }, - { "ne_NP", lcl_DATA_OTHERS }, - { "zu_ZA", lcl_DATA_OTHERS }, - { "nso_ZA", lcl_DATA_OTHERS }, - { "vi_VN", lcl_DATA_OTHERS }, - { "tn_ZA", lcl_DATA_OTHERS }, - { "xh_ZA", lcl_DATA_OTHERS }, - { "st_ZA", lcl_DATA_OTHERS }, - { "ss_ZA", lcl_DATA_OTHERS }, - { "ve_ZA", lcl_DATA_OTHERS }, - { "nr_ZA", lcl_DATA_OTHERS }, - { "ts_ZA", lcl_DATA_OTHERS }, - { "kmr_Latn_TR", lcl_DATA_OTHERS }, - { "ak_GH", lcl_DATA_OTHERS }, - { "af_NA", lcl_DATA_OTHERS }, - { "am_ET", lcl_DATA_OTHERS }, - { "ti_ER", lcl_DATA_OTHERS }, - { "tg_TJ", lcl_DATA_OTHERS }, - { "ky_KG", lcl_DATA_OTHERS }, - { "kk_KZ", lcl_DATA_OTHERS }, - { "fa_IR", lcl_DATA_OTHERS }, - { "ha_Latn_GH", lcl_DATA_OTHERS }, - { "ee_GH", lcl_DATA_OTHERS }, - { "sg_CF", lcl_DATA_OTHERS }, - { "lg_UG", lcl_DATA_OTHERS }, - { "uz_UZ", lcl_DATA_OTHERS }, - { "ln_CD", lcl_DATA_OTHERS }, - { "hy_AM", lcl_DATA_OTHERS }, - { "hil_PH", lcl_DATA_OTHERS }, - { "so_SO", lcl_DATA_OTHERS }, - { "gug_PY", lcl_DATA_OTHERS }, - { "tk_TM", lcl_DATA_OTHERS }, - { "my_MM", lcl_DATA_OTHERS }, - { "shs_CA", lcl_DATA_OTHERS }, - { "tpi_PG", lcl_DATA_OTHERS }, - { "ar_OM", lcl_DATA_OTHERS }, - { "ug_CN", lcl_DATA_OTHERS }, - { "om_ET", lcl_DATA_OTHERS }, - { "plt_MG", lcl_DATA_OTHERS }, - { "mai_IN", lcl_DATA_OTHERS }, - { "yi_US", lcl_DATA_OTHERS }, - { "haw_US", lcl_DATA_OTHERS }, - { "lif_NP", lcl_DATA_OTHERS }, - { "ur_PK", lcl_DATA_OTHERS }, - { "ht_HT", lcl_DATA_OTHERS }, - { "jbo", lcl_DATA_OTHERS }, - { "kab_DZ", lcl_DATA_OTHERS }, - { "pt_AO", lcl_DATA_OTHERS }, - { "pjt_AU", lcl_DATA_OTHERS }, - { "pap_BQ", lcl_DATA_OTHERS }, - { "pap_CW", lcl_DATA_OTHERS }, - { "ebo_CG", lcl_DATA_OTHERS }, - { "tyx_CG", lcl_DATA_OTHERS }, - { "axk_CG", lcl_DATA_OTHERS }, - { "beq_CG", lcl_DATA_OTHERS }, - { "bkw_CG", lcl_DATA_OTHERS }, - { "bvx_CG", lcl_DATA_OTHERS }, - { "dde_CG", lcl_DATA_OTHERS }, - { "iyx_CG", lcl_DATA_OTHERS }, - { "kkw_CG", lcl_DATA_OTHERS }, - { "kng_CG", lcl_DATA_OTHERS }, - { "ldi_CG", lcl_DATA_OTHERS }, - { "mdw_CG", lcl_DATA_OTHERS }, - { "mkw_CG", lcl_DATA_OTHERS }, - { "njx_CG", lcl_DATA_OTHERS }, - { "ngz_CG", lcl_DATA_OTHERS }, - { "njy_CG", lcl_DATA_OTHERS }, - { "puu_CG", lcl_DATA_OTHERS }, - { "sdj_CG", lcl_DATA_OTHERS }, - { "tek_CG", lcl_DATA_OTHERS }, - { "tsa_CG", lcl_DATA_OTHERS }, - { "vif_CG", lcl_DATA_OTHERS }, - { "xku_CG", lcl_DATA_OTHERS }, - { "yom_CG", lcl_DATA_OTHERS }, - { "sid_ET", lcl_DATA_OTHERS }, - { "bo_CN", lcl_DATA_OTHERS }, - { "bo_IN", lcl_DATA_OTHERS }, - { "ar_AE", lcl_DATA_OTHERS }, - { "ar_KW", lcl_DATA_OTHERS }, - { "bm_ML", lcl_DATA_OTHERS }, - { "pui_CO", lcl_DATA_OTHERS }, - { "lgr_SB", lcl_DATA_OTHERS }, - { "mos_BF", lcl_DATA_OTHERS }, - { "ny_MW", lcl_DATA_OTHERS }, - { "ar_BH", lcl_DATA_OTHERS }, - { "ar_IQ", lcl_DATA_OTHERS }, - { "ar_JO", lcl_DATA_OTHERS }, - { "ar_LY", lcl_DATA_OTHERS }, - { "ar_MA", lcl_DATA_OTHERS }, - { "ar_QA", lcl_DATA_OTHERS }, - { "ar_SY", lcl_DATA_OTHERS }, - { "ar_YE", lcl_DATA_OTHERS }, - { "ilo_PH", lcl_DATA_OTHERS }, - { "ha_Latn_NG", lcl_DATA_OTHERS }, - { "min_ID", lcl_DATA_OTHERS }, - { "sun_ID", lcl_DATA_OTHERS }, - { "en_IL", lcl_DATA_OTHERS } // needs to be in OTHERS instead of EN because inherits from he_IL + { "en_US", DataLocaleLibrary::EN }, + { "en_AU", DataLocaleLibrary::EN }, + { "en_BZ", DataLocaleLibrary::EN }, + { "en_CA", DataLocaleLibrary::EN }, + { "en_GB", DataLocaleLibrary::EN }, + { "en_IE", DataLocaleLibrary::EN }, + { "en_JM", DataLocaleLibrary::EN }, + { "en_NZ", DataLocaleLibrary::EN }, + { "en_PH", DataLocaleLibrary::EN }, + { "en_TT", DataLocaleLibrary::EN }, + { "en_ZA", DataLocaleLibrary::EN }, + { "en_ZW", DataLocaleLibrary::EN }, + { "en_NA", DataLocaleLibrary::EN }, + { "en_GH", DataLocaleLibrary::EN }, + { "en_MW", DataLocaleLibrary::EN }, + { "en_GM", DataLocaleLibrary::EN }, + { "en_BW", DataLocaleLibrary::EN }, + { "en_ZM", DataLocaleLibrary::EN }, + { "en_LK", DataLocaleLibrary::EN }, + { "en_NG", DataLocaleLibrary::EN }, + { "en_KE", DataLocaleLibrary::EN }, + { "en_DK", DataLocaleLibrary::EN }, + { "en_MU", DataLocaleLibrary::EN }, + + { "es_ES", DataLocaleLibrary::ES }, + { "es_AR", DataLocaleLibrary::ES }, + { "es_BO", DataLocaleLibrary::ES }, + { "es_CL", DataLocaleLibrary::ES }, + { "es_CO", DataLocaleLibrary::ES }, + { "es_CR", DataLocaleLibrary::ES }, + { "es_DO", DataLocaleLibrary::ES }, + { "es_EC", DataLocaleLibrary::ES }, + { "es_GT", DataLocaleLibrary::ES }, + { "es_HN", DataLocaleLibrary::ES }, + { "es_MX", DataLocaleLibrary::ES }, + { "es_NI", DataLocaleLibrary::ES }, + { "es_PA", DataLocaleLibrary::ES }, + { "es_PE", DataLocaleLibrary::ES }, + { "es_PR", DataLocaleLibrary::ES }, + { "es_PY", DataLocaleLibrary::ES }, + { "es_SV", DataLocaleLibrary::ES }, + { "es_UY", DataLocaleLibrary::ES }, + { "es_VE", DataLocaleLibrary::ES }, + { "gl_ES", DataLocaleLibrary::ES }, + { "oc_ES_aranes", DataLocaleLibrary::ES }, + + { "de_DE", DataLocaleLibrary::EURO }, + { "de_AT", DataLocaleLibrary::EURO }, + { "de_CH", DataLocaleLibrary::EURO }, + { "de_LI", DataLocaleLibrary::EURO }, + { "de_LU", DataLocaleLibrary::EURO }, + { "fr_FR", DataLocaleLibrary::EURO }, + { "fr_BE", DataLocaleLibrary::EURO }, + { "fr_CA", DataLocaleLibrary::EURO }, + { "fr_CH", DataLocaleLibrary::EURO }, + { "fr_LU", DataLocaleLibrary::EURO }, + { "fr_MC", DataLocaleLibrary::EURO }, + { "fr_BF", DataLocaleLibrary::EURO }, + { "fr_CI", DataLocaleLibrary::EURO }, + { "fr_ML", DataLocaleLibrary::EURO }, + { "fr_SN", DataLocaleLibrary::EURO }, + { "fr_BJ", DataLocaleLibrary::EURO }, + { "fr_NE", DataLocaleLibrary::EURO }, + { "fr_TG", DataLocaleLibrary::EURO }, + { "it_IT", DataLocaleLibrary::EURO }, + { "it_CH", DataLocaleLibrary::EURO }, + { "sl_SI", DataLocaleLibrary::EURO }, + { "sv_SE", DataLocaleLibrary::EURO }, + { "sv_FI", DataLocaleLibrary::EURO }, + { "ca_ES", DataLocaleLibrary::EURO }, + { "ca_ES_valencia", DataLocaleLibrary::EURO }, + { "cs_CZ", DataLocaleLibrary::EURO }, + { "sk_SK", DataLocaleLibrary::EURO }, + { "da_DK", DataLocaleLibrary::EURO }, + { "el_GR", DataLocaleLibrary::EURO }, + { "fi_FI", DataLocaleLibrary::EURO }, + { "is_IS", DataLocaleLibrary::EURO }, + { "nl_BE", DataLocaleLibrary::EURO }, + { "nl_NL", DataLocaleLibrary::EURO }, + { "no_NO", DataLocaleLibrary::EURO }, + { "nn_NO", DataLocaleLibrary::EURO }, + { "nb_NO", DataLocaleLibrary::EURO }, + { "nds_DE", DataLocaleLibrary::EURO }, + { "pl_PL", DataLocaleLibrary::EURO }, + { "pt_PT", DataLocaleLibrary::EURO }, + { "pt_BR", DataLocaleLibrary::EURO }, // needs to be in EURO because inherits from pt_PT + { "pt_MZ", DataLocaleLibrary::EURO }, // needs to be in EURO because inherits from pt_PT + { "ru_RU", DataLocaleLibrary::EURO }, + { "tr_TR", DataLocaleLibrary::EURO }, + { "tt_RU", DataLocaleLibrary::EURO }, + { "et_EE", DataLocaleLibrary::EURO }, + { "vro_EE", DataLocaleLibrary::EURO }, + { "lb_LU", DataLocaleLibrary::EURO }, + { "lt_LT", DataLocaleLibrary::EURO }, + { "lv_LV", DataLocaleLibrary::EURO }, + { "uk_UA", DataLocaleLibrary::EURO }, + { "ro_RO", DataLocaleLibrary::EURO }, + { "cy_GB", DataLocaleLibrary::EURO }, + { "bg_BG", DataLocaleLibrary::EURO }, + { "sr_Latn_ME", DataLocaleLibrary::EURO }, + { "sr_Latn_RS", DataLocaleLibrary::EURO }, + { "sr_Latn_CS", DataLocaleLibrary::EURO }, + { "sr_ME", DataLocaleLibrary::EURO }, + { "sr_RS", DataLocaleLibrary::EURO }, + { "sr_CS", DataLocaleLibrary::EURO }, + { "hr_HR", DataLocaleLibrary::EURO }, + { "bs_BA", DataLocaleLibrary::EURO }, + { "eu_ES", DataLocaleLibrary::EURO }, + { "fo_FO", DataLocaleLibrary::EURO }, + { "ga_IE", DataLocaleLibrary::EURO }, + { "gd_GB", DataLocaleLibrary::EURO }, + { "ka_GE", DataLocaleLibrary::EURO }, + { "be_BY", DataLocaleLibrary::EURO }, + { "kl_GL", DataLocaleLibrary::EURO }, + { "mk_MK", DataLocaleLibrary::EURO }, + { "br_FR", DataLocaleLibrary::EURO }, + { "la_VA", DataLocaleLibrary::EURO }, + { "cv_RU", DataLocaleLibrary::EURO }, + { "wa_BE", DataLocaleLibrary::EURO }, + { "fur_IT", DataLocaleLibrary::EURO }, + { "gsc_FR", DataLocaleLibrary::EURO }, + { "fy_NL", DataLocaleLibrary::EURO }, + { "oc_FR_lengadoc", DataLocaleLibrary::EURO }, + { "mt_MT", DataLocaleLibrary::EURO }, + { "sc_IT", DataLocaleLibrary::EURO }, + { "ast_ES", DataLocaleLibrary::EURO }, + { "ltg_LV", DataLocaleLibrary::EURO }, + { "hsb_DE", DataLocaleLibrary::EURO }, + { "dsb_DE", DataLocaleLibrary::EURO }, + { "rue_SK", DataLocaleLibrary::EURO }, + { "an_ES", DataLocaleLibrary::EURO }, + { "myv_RU", DataLocaleLibrary::EURO }, + { "lld_IT", DataLocaleLibrary::EURO }, + { "cu_RU", DataLocaleLibrary::EURO }, + { "vec_IT", DataLocaleLibrary::EURO }, + { "szl_PL", DataLocaleLibrary::EURO }, + { "lij_IT", DataLocaleLibrary::EURO }, + + { "ja_JP", DataLocaleLibrary::OTHERS }, + { "ko_KR", DataLocaleLibrary::OTHERS }, + { "zh_CN", DataLocaleLibrary::OTHERS }, + { "zh_HK", DataLocaleLibrary::OTHERS }, + { "zh_SG", DataLocaleLibrary::OTHERS }, + { "zh_TW", DataLocaleLibrary::OTHERS }, + { "zh_MO", DataLocaleLibrary::OTHERS }, + { "en_HK", DataLocaleLibrary::OTHERS }, // needs to be in OTHERS instead of EN because currency inherited from zh_HK + + { "ar_EG", DataLocaleLibrary::OTHERS }, + { "ar_DZ", DataLocaleLibrary::OTHERS }, + { "ar_LB", DataLocaleLibrary::OTHERS }, + { "ar_SA", DataLocaleLibrary::OTHERS }, + { "ar_TN", DataLocaleLibrary::OTHERS }, + { "he_IL", DataLocaleLibrary::OTHERS }, + { "hi_IN", DataLocaleLibrary::OTHERS }, + { "kn_IN", DataLocaleLibrary::OTHERS }, + { "ta_IN", DataLocaleLibrary::OTHERS }, + { "te_IN", DataLocaleLibrary::OTHERS }, + { "gu_IN", DataLocaleLibrary::OTHERS }, + { "mr_IN", DataLocaleLibrary::OTHERS }, + { "pa_IN", DataLocaleLibrary::OTHERS }, + { "bn_IN", DataLocaleLibrary::OTHERS }, + { "or_IN", DataLocaleLibrary::OTHERS }, + { "en_IN", DataLocaleLibrary::OTHERS }, // keep in OTHERS for IN + { "ml_IN", DataLocaleLibrary::OTHERS }, + { "bn_BD", DataLocaleLibrary::OTHERS }, + { "th_TH", DataLocaleLibrary::OTHERS }, + + { "af_ZA", DataLocaleLibrary::OTHERS }, + { "hu_HU", DataLocaleLibrary::OTHERS }, + { "id_ID", DataLocaleLibrary::OTHERS }, + { "ms_MY", DataLocaleLibrary::OTHERS }, + { "en_MY", DataLocaleLibrary::OTHERS }, // needs to be in OTHERS instead of EN because currency inherited from ms_MY + { "ia", DataLocaleLibrary::OTHERS }, + { "mn_Cyrl_MN", DataLocaleLibrary::OTHERS }, + { "az_AZ", DataLocaleLibrary::OTHERS }, + { "sw_TZ", DataLocaleLibrary::OTHERS }, + { "km_KH", DataLocaleLibrary::OTHERS }, + { "lo_LA", DataLocaleLibrary::OTHERS }, + { "rw_RW", DataLocaleLibrary::OTHERS }, + { "eo", DataLocaleLibrary::OTHERS }, + { "dz_BT", DataLocaleLibrary::OTHERS }, + { "ne_NP", DataLocaleLibrary::OTHERS }, + { "zu_ZA", DataLocaleLibrary::OTHERS }, + { "nso_ZA", DataLocaleLibrary::OTHERS }, + { "vi_VN", DataLocaleLibrary::OTHERS }, + { "tn_ZA", DataLocaleLibrary::OTHERS }, + { "xh_ZA", DataLocaleLibrary::OTHERS }, + { "st_ZA", DataLocaleLibrary::OTHERS }, + { "ss_ZA", DataLocaleLibrary::OTHERS }, + { "ve_ZA", DataLocaleLibrary::OTHERS }, + { "nr_ZA", DataLocaleLibrary::OTHERS }, + { "ts_ZA", DataLocaleLibrary::OTHERS }, + { "kmr_Latn_TR", DataLocaleLibrary::OTHERS }, + { "ak_GH", DataLocaleLibrary::OTHERS }, + { "af_NA", DataLocaleLibrary::OTHERS }, + { "am_ET", DataLocaleLibrary::OTHERS }, + { "ti_ER", DataLocaleLibrary::OTHERS }, + { "tg_TJ", DataLocaleLibrary::OTHERS }, + { "ky_KG", DataLocaleLibrary::OTHERS }, + { "kk_KZ", DataLocaleLibrary::OTHERS }, + { "fa_IR", DataLocaleLibrary::OTHERS }, + { "ha_Latn_GH", DataLocaleLibrary::OTHERS }, + { "ee_GH", DataLocaleLibrary::OTHERS }, + { "sg_CF", DataLocaleLibrary::OTHERS }, + { "lg_UG", DataLocaleLibrary::OTHERS }, + { "uz_UZ", DataLocaleLibrary::OTHERS }, + { "ln_CD", DataLocaleLibrary::OTHERS }, + { "hy_AM", DataLocaleLibrary::OTHERS }, + { "hil_PH", DataLocaleLibrary::OTHERS }, + { "so_SO", DataLocaleLibrary::OTHERS }, + { "gug_PY", DataLocaleLibrary::OTHERS }, + { "tk_TM", DataLocaleLibrary::OTHERS }, + { "my_MM", DataLocaleLibrary::OTHERS }, + { "shs_CA", DataLocaleLibrary::OTHERS }, + { "tpi_PG", DataLocaleLibrary::OTHERS }, + { "ar_OM", DataLocaleLibrary::OTHERS }, + { "ug_CN", DataLocaleLibrary::OTHERS }, + { "om_ET", DataLocaleLibrary::OTHERS }, + { "plt_MG", DataLocaleLibrary::OTHERS }, + { "mai_IN", DataLocaleLibrary::OTHERS }, + { "yi_US", DataLocaleLibrary::OTHERS }, + { "haw_US", DataLocaleLibrary::OTHERS }, + { "lif_NP", DataLocaleLibrary::OTHERS }, + { "ur_PK", DataLocaleLibrary::OTHERS }, + { "ht_HT", DataLocaleLibrary::OTHERS }, + { "jbo", DataLocaleLibrary::OTHERS }, + { "kab_DZ", DataLocaleLibrary::OTHERS }, + { "pt_AO", DataLocaleLibrary::OTHERS }, + { "pjt_AU", DataLocaleLibrary::OTHERS }, + { "pap_BQ", DataLocaleLibrary::OTHERS }, + { "pap_CW", DataLocaleLibrary::OTHERS }, + { "ebo_CG", DataLocaleLibrary::OTHERS }, + { "tyx_CG", DataLocaleLibrary::OTHERS }, + { "axk_CG", DataLocaleLibrary::OTHERS }, + { "beq_CG", DataLocaleLibrary::OTHERS }, + { "bkw_CG", DataLocaleLibrary::OTHERS }, + { "bvx_CG", DataLocaleLibrary::OTHERS }, + { "dde_CG", DataLocaleLibrary::OTHERS }, + { "iyx_CG", DataLocaleLibrary::OTHERS }, + { "kkw_CG", DataLocaleLibrary::OTHERS }, + { "kng_CG", DataLocaleLibrary::OTHERS }, + { "ldi_CG", DataLocaleLibrary::OTHERS }, + { "mdw_CG", DataLocaleLibrary::OTHERS }, + { "mkw_CG", DataLocaleLibrary::OTHERS }, + { "njx_CG", DataLocaleLibrary::OTHERS }, + { "ngz_CG", DataLocaleLibrary::OTHERS }, + { "njy_CG", DataLocaleLibrary::OTHERS }, + { "puu_CG", DataLocaleLibrary::OTHERS }, + { "sdj_CG", DataLocaleLibrary::OTHERS }, + { "tek_CG", DataLocaleLibrary::OTHERS }, + { "tsa_CG", DataLocaleLibrary::OTHERS }, + { "vif_CG", DataLocaleLibrary::OTHERS }, + { "xku_CG", DataLocaleLibrary::OTHERS }, + { "yom_CG", DataLocaleLibrary::OTHERS }, + { "sid_ET", DataLocaleLibrary::OTHERS }, + { "bo_CN", DataLocaleLibrary::OTHERS }, + { "bo_IN", DataLocaleLibrary::OTHERS }, + { "ar_AE", DataLocaleLibrary::OTHERS }, + { "ar_KW", DataLocaleLibrary::OTHERS }, + { "bm_ML", DataLocaleLibrary::OTHERS }, + { "pui_CO", DataLocaleLibrary::OTHERS }, + { "lgr_SB", DataLocaleLibrary::OTHERS }, + { "mos_BF", DataLocaleLibrary::OTHERS }, + { "ny_MW", DataLocaleLibrary::OTHERS }, + { "ar_BH", DataLocaleLibrary::OTHERS }, + { "ar_IQ", DataLocaleLibrary::OTHERS }, + { "ar_JO", DataLocaleLibrary::OTHERS }, + { "ar_LY", DataLocaleLibrary::OTHERS }, + { "ar_MA", DataLocaleLibrary::OTHERS }, + { "ar_QA", DataLocaleLibrary::OTHERS }, + { "ar_SY", DataLocaleLibrary::OTHERS }, + { "ar_YE", DataLocaleLibrary::OTHERS }, + { "ilo_PH", DataLocaleLibrary::OTHERS }, + { "ha_Latn_NG", DataLocaleLibrary::OTHERS }, + { "min_ID", DataLocaleLibrary::OTHERS }, + { "sun_ID", DataLocaleLibrary::OTHERS }, + { "en_IL", DataLocaleLibrary::OTHERS }, // needs to be in OTHERS instead of EN because inherits from he_IL + { "pdc_US", DataLocaleLibrary::OTHERS }, + { "dv_MV", DataLocaleLibrary::OTHERS }, + { "mfe_MU", DataLocaleLibrary::OTHERS }, + { "sat_IN", DataLocaleLibrary::OTHERS } }; #else @@ -380,31 +412,31 @@ LocaleDataImpl::~LocaleDataImpl() LocaleDataItem SAL_CALL LocaleDataImpl::getLocaleItem( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getLocaleItem" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getLocaleItem" )); if ( func ) { sal_Int16 dataItemCount = 0; - sal_Unicode **dataItem = func(dataItemCount); + OUString const *dataItem = func(dataItemCount); LocaleDataItem item{ - OUString(dataItem[0]), - OUString(dataItem[1]), - OUString(dataItem[2]), - OUString(dataItem[3]), - OUString(dataItem[4]), - OUString(dataItem[5]), - OUString(dataItem[6]), - OUString(dataItem[7]), - OUString(dataItem[8]), - OUString(dataItem[9]), - OUString(dataItem[10]), - OUString(dataItem[11]), - OUString(dataItem[12]), - OUString(dataItem[13]), - OUString(dataItem[14]), - OUString(dataItem[15]), - OUString(dataItem[16]), - OUString(dataItem[17]) + dataItem[0], + dataItem[1], + dataItem[2], + dataItem[3], + dataItem[4], + dataItem[5], + dataItem[6], + dataItem[7], + dataItem[8], + dataItem[9], + dataItem[10], + dataItem[11], + dataItem[12], + dataItem[13], + dataItem[14], + dataItem[15], + dataItem[16], + dataItem[17] }; return item; } @@ -418,34 +450,34 @@ LocaleDataImpl::getLocaleItem( const Locale& rLocale ) LocaleDataItem2 SAL_CALL LocaleDataImpl::getLocaleItem2( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getLocaleItem" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getLocaleItem" )); if ( func ) { sal_Int16 dataItemCount = 0; - sal_Unicode **dataItem = func(dataItemCount); + OUString const *dataItem = func(dataItemCount); assert(dataItemCount >= 18); LocaleDataItem2 item{ - OUString(dataItem[0]), - OUString(dataItem[1]), - OUString(dataItem[2]), - OUString(dataItem[3]), - OUString(dataItem[4]), - OUString(dataItem[5]), - OUString(dataItem[6]), - OUString(dataItem[7]), - OUString(dataItem[8]), - OUString(dataItem[9]), - OUString(dataItem[10]), - OUString(dataItem[11]), - OUString(dataItem[12]), - OUString(dataItem[13]), - OUString(dataItem[14]), - OUString(dataItem[15]), - OUString(dataItem[16]), - OUString(dataItem[17]), - dataItemCount >= 19 ? OUString(dataItem[18]) : OUString() + dataItem[0], + dataItem[1], + dataItem[2], + dataItem[3], + dataItem[4], + dataItem[5], + dataItem[6], + dataItem[7], + dataItem[8], + dataItem[9], + dataItem[10], + dataItem[11], + dataItem[12], + dataItem[13], + dataItem[14], + dataItem[15], + dataItem[16], + dataItem[17], + dataItemCount >= 19 ? dataItem[18] : OUString() }; return item; } @@ -541,15 +573,8 @@ oslGenericFunction lcl_LookupTableHelper::getFunctionSymbolByName( } } // Library not loaded, load it and add it to the list. -#ifdef SAL_DLLPREFIX - OString sModuleName = // mostly "lib*.so" - OString::Concat(SAL_DLLPREFIX) + i.pLib + SAL_DLLEXTENSION; -#else - OString sModuleName = // mostly "*.dll" - OString::Concat(i.pLib) + SAL_DLLEXTENSION; -#endif std::unique_ptr<osl::Module> module(new osl::Module()); - if ( module->loadRelative(&thisModule, sModuleName.getStr()) ) + if ( module->loadRelative(&thisModule, getLibraryName(i.pLib)) ) { std::unique_lock aGuard( maMutex ); auto pTmpModule = module.get(); @@ -671,14 +696,14 @@ Sequence< CalendarItem2 > &LocaleDataImpl::getCalendarItemByName(const OUString& } Sequence< CalendarItem2 > LocaleDataImpl::getCalendarItems( - sal_Unicode const * const * const allCalendars, sal_Int16 & rnOffset, + OUString const * allCalendars, sal_Int16 & rnOffset, const sal_Int16 nWhichItem, const sal_Int16 nCalendar, const Locale & rLocale, const Sequence< Calendar2 > & calendarsSeq ) { Sequence< CalendarItem2 > aItems; if ( allCalendars[rnOffset] == std::u16string_view(u"ref") ) { - aItems = getCalendarItemByName( OUString( allCalendars[rnOffset+1]), rLocale, calendarsSeq, nWhichItem); + aItems = getCalendarItemByName( allCalendars[rnOffset+1], rLocale, calendarsSeq, nWhichItem); rnOffset += 2; } else @@ -693,9 +718,9 @@ Sequence< CalendarItem2 > LocaleDataImpl::getCalendarItems( case REF_PMONTHS: for (CalendarItem2& rItem : asNonConstRange(aItems)) { - rItem = CalendarItem2{ OUString(allCalendars[rnOffset]), - OUString(allCalendars[rnOffset+1]), - OUString(allCalendars[rnOffset+2]), OUString(allCalendars[rnOffset+3])}; + rItem = CalendarItem2{ allCalendars[rnOffset], + allCalendars[rnOffset+1], + allCalendars[rnOffset+2], allCalendars[rnOffset+3]}; rnOffset += 4; } break; @@ -703,9 +728,9 @@ Sequence< CalendarItem2 > LocaleDataImpl::getCalendarItems( // Absent narrow name. for (CalendarItem2& rItem : asNonConstRange(aItems)) { - rItem = CalendarItem2{ OUString(allCalendars[rnOffset]), - OUString(allCalendars[rnOffset+1]), - OUString(allCalendars[rnOffset+2]), OUString()}; + rItem = CalendarItem2{ allCalendars[rnOffset], + allCalendars[rnOffset+1], + allCalendars[rnOffset+2], OUString()}; rnOffset += 3; } break; @@ -720,9 +745,9 @@ Sequence< Calendar2 > SAL_CALL LocaleDataImpl::getAllCalendars2( const Locale& rLocale ) { - sal_Unicode const * const * allCalendars = nullptr; + OUString const * allCalendars = nullptr; - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getAllCalendars" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getAllCalendars" )); if ( func ) { sal_Int16 calendarsCount = 0; @@ -750,9 +775,8 @@ LocaleDataImpl::getAllCalendars2( const Locale& rLocale ) offset++; sal_Int16 minimalDaysInFirstWeek = allCalendars[offset][0]; offset++; - Calendar2 aCalendar(days, months, gmonths, pmonths, eras, startOfWeekDay, + calendarsSeqRange[i] = Calendar2(days, months, gmonths, pmonths, eras, startOfWeekDay, minimalDaysInFirstWeek, defaultCalendar, calendarID); - calendarsSeqRange[i] = aCalendar; } return calendarsSeq; } @@ -777,26 +801,25 @@ LocaleDataImpl::getAllCalendars( const Locale& rLocale ) Sequence< Currency2 > SAL_CALL LocaleDataImpl::getAllCurrencies2( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getAllCurrencies" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getAllCurrencies" )); if ( func ) { sal_Int16 currencyCount = 0; - sal_Unicode **allCurrencies = func(currencyCount); + OUString const *allCurrencies = func(currencyCount); Sequence< Currency2 > seq(currencyCount); auto seqRange = asNonConstRange(seq); for(int i = 0, nOff = 0; i < currencyCount; i++, nOff += 8 ) { - Currency2 cur( - OUString(allCurrencies[nOff]), // string ID - OUString(allCurrencies[nOff+1]), // string Symbol - OUString(allCurrencies[nOff+2]), // string BankSymbol - OUString(allCurrencies[nOff+3]), // string Name + seqRange[i] = Currency2( + allCurrencies[nOff], // string ID + allCurrencies[nOff+1], // string Symbol + allCurrencies[nOff+2], // string BankSymbol + allCurrencies[nOff+3], // string Name allCurrencies[nOff+4][0] != 0, // boolean Default allCurrencies[nOff+5][0] != 0, // boolean UsedInCompatibleFormatCodes allCurrencies[nOff+6][0], // short DecimalPlaces allCurrencies[nOff+7][0] != 0 // boolean LegacyOnly ); - seqRange[i] = cur; } return seq; } @@ -822,7 +845,7 @@ LocaleDataImpl::getAllFormats( const Locale& rLocale ) MyFunc_FormatCode func; sal_Unicode const *from; sal_Unicode const *to; - sal_Unicode const *const *formatArray; + OUString const *formatArray; sal_Int16 formatCount; FormatSection() : func(nullptr), from(nullptr), to(nullptr), formatArray(nullptr), formatCount(0) {} @@ -844,20 +867,19 @@ LocaleDataImpl::getAllFormats( const Locale& rLocale ) sal_Int32 f = 0; for (const FormatSection & s : section) { - sal_Unicode const * const * const formatArray = s.formatArray; + OUString const * const formatArray = s.formatArray; if ( formatArray ) { for (int i = 0, nOff = 0; i < s.formatCount; ++i, nOff += 7, ++f) { - FormatElement elem( - OUString(formatArray[nOff]).replaceAll(s.from, s.to), - OUString(formatArray[nOff + 1]), - OUString(formatArray[nOff + 2]), - OUString(formatArray[nOff + 3]), - OUString(formatArray[nOff + 4]), + seqRange[f] = FormatElement( + formatArray[nOff].replaceAll(s.from, s.to), + formatArray[nOff + 1], + formatArray[nOff + 2], + formatArray[nOff + 3], + formatArray[nOff + 4], formatArray[nOff + 5][0], formatArray[nOff + 6][0] != 0); - seqRange[f] = elem; } } } @@ -868,17 +890,17 @@ LocaleDataImpl::getAllFormats( const Locale& rLocale ) Sequence< OUString > SAL_CALL LocaleDataImpl::getDateAcceptancePatterns( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getDateAcceptancePatterns" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getDateAcceptancePatterns" )); if (func) { sal_Int16 patternsCount = 0; - sal_Unicode **patternsArray = func( patternsCount ); + OUString const *patternsArray = func( patternsCount ); Sequence< OUString > seq( patternsCount ); auto seqRange = asNonConstRange(seq); for (sal_Int16 i = 0; i < patternsCount; ++i) { - seqRange[i] = OUString( patternsArray[i] ); + seqRange[i] = patternsArray[i]; } return seq; } @@ -897,13 +919,13 @@ LocaleDataImpl::getDateAcceptancePatterns( const Locale& rLocale ) OUString LocaleDataImpl::getCollatorRuleByAlgorithm( const Locale& rLocale, std::u16string_view algorithm ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getCollatorImplementation" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getCollatorImplementation" )); if ( func ) { sal_Int16 collatorCount = 0; - sal_Unicode **collatorArray = func(collatorCount); + OUString const *collatorArray = func(collatorCount); for(sal_Int16 i = 0; i < collatorCount; i++) if (algorithm == collatorArray[i * COLLATOR_ELEMENTS + COLLATOR_OFFSET_ALGO]) - return OUString(collatorArray[i * COLLATOR_ELEMENTS + COLLATOR_OFFSET_RULE]); + return collatorArray[i * COLLATOR_ELEMENTS + COLLATOR_OFFSET_RULE]; } return OUString(); } @@ -912,18 +934,17 @@ LocaleDataImpl::getCollatorRuleByAlgorithm( const Locale& rLocale, std::u16strin Sequence< Implementation > SAL_CALL LocaleDataImpl::getCollatorImplementations( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getCollatorImplementation" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getCollatorImplementation" )); if ( func ) { sal_Int16 collatorCount = 0; - sal_Unicode **collatorArray = func(collatorCount); + OUString const *collatorArray = func(collatorCount); Sequence< Implementation > seq(collatorCount); auto seqRange = asNonConstRange(seq); for(sal_Int16 i = 0; i < collatorCount; i++) { - Implementation impl( - OUString(collatorArray[i * COLLATOR_ELEMENTS + COLLATOR_OFFSET_ALGO]), + seqRange[i] = Implementation( + collatorArray[i * COLLATOR_ELEMENTS + COLLATOR_OFFSET_ALGO], collatorArray[i * COLLATOR_ELEMENTS + COLLATOR_OFFSET_DEFAULT][0] != 0); - seqRange[i] = impl; } return seq; } @@ -935,15 +956,15 @@ LocaleDataImpl::getCollatorImplementations( const Locale& rLocale ) Sequence< OUString > SAL_CALL LocaleDataImpl::getCollationOptions( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getCollationOptions" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getCollationOptions" )); if ( func ) { sal_Int16 optionsCount = 0; - sal_Unicode **optionsArray = func(optionsCount); + OUString const *optionsArray = func(optionsCount); Sequence< OUString > seq(optionsCount); auto seqRange = asNonConstRange(seq); for(sal_Int16 i = 0; i < optionsCount; i++) { - seqRange[i] = OUString( optionsArray[i] ); + seqRange[i] = optionsArray[i]; } return seq; } @@ -955,27 +976,22 @@ LocaleDataImpl::getCollationOptions( const Locale& rLocale ) Sequence< OUString > SAL_CALL LocaleDataImpl::getSearchOptions( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getSearchOptions" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getSearchOptions" )); if ( func ) { sal_Int16 optionsCount = 0; - sal_Unicode **optionsArray = func(optionsCount); - Sequence< OUString > seq(optionsCount); - auto seqRange = asNonConstRange(seq); - for(sal_Int16 i = 0; i < optionsCount; i++) { - seqRange[i] = OUString( optionsArray[i] ); - } - return seq; + OUString const *optionsArray = func(optionsCount); + return Sequence< OUString >(optionsArray, optionsCount); } else { return {}; } } -sal_Unicode ** +OUString const * LocaleDataImpl::getIndexArray(const Locale& rLocale, sal_Int16& indexCount) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getIndexAlgorithm" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getIndexAlgorithm" )); if (func) return func(indexCount); @@ -986,7 +1002,7 @@ Sequence< OUString > LocaleDataImpl::getIndexAlgorithm( const Locale& rLocale ) { sal_Int16 indexCount = 0; - sal_Unicode **indexArray = getIndexArray(rLocale, indexCount); + OUString const *indexArray = getIndexArray(rLocale, indexCount); if ( indexArray ) { Sequence< OUString > seq(indexCount); @@ -1005,12 +1021,12 @@ OUString LocaleDataImpl::getDefaultIndexAlgorithm( const Locale& rLocale ) { sal_Int16 indexCount = 0; - sal_Unicode **indexArray = getIndexArray(rLocale, indexCount); + OUString const *indexArray = getIndexArray(rLocale, indexCount); if ( indexArray ) { for(sal_Int16 i = 0; i < indexCount; i++) { if (indexArray[i*5 + 3][0]) - return OUString(indexArray[i*5]); + return indexArray[i*5]; } } return OUString(); @@ -1020,7 +1036,7 @@ bool LocaleDataImpl::hasPhonetic( const Locale& rLocale ) { sal_Int16 indexCount = 0; - sal_Unicode **indexArray = getIndexArray(rLocale, indexCount); + OUString const *indexArray = getIndexArray(rLocale, indexCount); if ( indexArray ) { for(sal_Int16 i = 0; i < indexCount; i++) { @@ -1031,11 +1047,11 @@ LocaleDataImpl::hasPhonetic( const Locale& rLocale ) return false; } -sal_Unicode ** +OUString const * LocaleDataImpl::getIndexArrayForAlgorithm(const Locale& rLocale, std::u16string_view algorithm) { sal_Int16 indexCount = 0; - sal_Unicode **indexArray = getIndexArray(rLocale, indexCount); + OUString const *indexArray = getIndexArray(rLocale, indexCount); if ( indexArray ) { for(sal_Int16 i = 0; i < indexCount; i++) { if (algorithm == indexArray[i*5]) @@ -1048,36 +1064,36 @@ LocaleDataImpl::getIndexArrayForAlgorithm(const Locale& rLocale, std::u16string_ bool LocaleDataImpl::isPhonetic( const Locale& rLocale, std::u16string_view algorithm ) { - sal_Unicode **indexArray = getIndexArrayForAlgorithm(rLocale, algorithm); + OUString const *indexArray = getIndexArrayForAlgorithm(rLocale, algorithm); return indexArray && indexArray[4][0]; } OUString LocaleDataImpl::getIndexKeysByAlgorithm( const Locale& rLocale, std::u16string_view algorithm ) { - sal_Unicode **indexArray = getIndexArrayForAlgorithm(rLocale, algorithm); + OUString const *indexArray = getIndexArrayForAlgorithm(rLocale, algorithm); return indexArray ? (OUString::Concat(u"0-9") + indexArray[2]) : OUString(); } OUString LocaleDataImpl::getIndexModuleByAlgorithm( const Locale& rLocale, std::u16string_view algorithm ) { - sal_Unicode **indexArray = getIndexArrayForAlgorithm(rLocale, algorithm); - return indexArray ? OUString(indexArray[1]) : OUString(); + OUString const *indexArray = getIndexArrayForAlgorithm(rLocale, algorithm); + return indexArray ? indexArray[1] : OUString(); } Sequence< UnicodeScript > LocaleDataImpl::getUnicodeScripts( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getUnicodeScripts" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getUnicodeScripts" )); if ( func ) { sal_Int16 scriptCount = 0; - sal_Unicode **scriptArray = func(scriptCount); + OUString const *scriptArray = func(scriptCount); Sequence< UnicodeScript > seq(scriptCount); auto seqRange = asNonConstRange(seq); for(sal_Int16 i = 0; i < scriptCount; i++) { - seqRange[i] = UnicodeScript( OUString(scriptArray[i]).toInt32() ); + seqRange[i] = UnicodeScript( o3tl::toInt32(scriptArray[i].subView(0, 1)) ); } return seq; } @@ -1089,17 +1105,12 @@ LocaleDataImpl::getUnicodeScripts( const Locale& rLocale ) Sequence< OUString > LocaleDataImpl::getFollowPageWords( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getFollowPageWords" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getFollowPageWords" )); if ( func ) { sal_Int16 wordCount = 0; - sal_Unicode **wordArray = func(wordCount); - Sequence< OUString > seq(wordCount); - auto seqRange = asNonConstRange(seq); - for(sal_Int16 i = 0; i < wordCount; i++) { - seqRange[i] = OUString(wordArray[i]); - } - return seq; + OUString const *wordArray = func(wordCount); + return Sequence< OUString >(wordArray, wordCount); } else { return {}; @@ -1109,19 +1120,12 @@ LocaleDataImpl::getFollowPageWords( const Locale& rLocale ) Sequence< OUString > SAL_CALL LocaleDataImpl::getTransliterations( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getTransliterations" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getTransliterations" )); if ( func ) { sal_Int16 transliterationsCount = 0; - sal_Unicode **transliterationsArray = func(transliterationsCount); - - Sequence< OUString > seq(transliterationsCount); - auto seqRange = asNonConstRange(seq); - for(int i = 0; i < transliterationsCount; i++) { - OUString elem(transliterationsArray[i]); - seqRange[i] = elem; - } - return seq; + const OUString *transliterationsArray = func(transliterationsCount); + return Sequence< OUString >(transliterationsArray, transliterationsCount); } else { return {}; @@ -1134,16 +1138,16 @@ LocaleDataImpl::getTransliterations( const Locale& rLocale ) LanguageCountryInfo SAL_CALL LocaleDataImpl::getLanguageCountryInfo( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getLCInfo" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getLCInfo" )); if ( func ) { sal_Int16 LCInfoCount = 0; - sal_Unicode **LCInfoArray = func(LCInfoCount); - LanguageCountryInfo info{OUString(LCInfoArray[0]), - OUString(LCInfoArray[1]), - OUString(LCInfoArray[2]), - OUString(LCInfoArray[3]), - OUString(LCInfoArray[4])}; + OUString const *LCInfoArray = func(LCInfoCount); + LanguageCountryInfo info{LCInfoArray[0], + LCInfoArray[1], + LCInfoArray[2], + LCInfoArray[3], + LCInfoArray[4]}; return info; } else { @@ -1157,13 +1161,14 @@ LocaleDataImpl::getLanguageCountryInfo( const Locale& rLocale ) ForbiddenCharacters SAL_CALL LocaleDataImpl::getForbiddenCharacters( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getForbiddenCharacters" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getForbiddenCharacters" )); if ( func ) { sal_Int16 LCForbiddenCharactersCount = 0; - sal_Unicode **LCForbiddenCharactersArray = func(LCForbiddenCharactersCount); + OUString const *LCForbiddenCharactersArray = func(LCForbiddenCharactersCount); + assert(LCForbiddenCharactersCount == 3); ForbiddenCharacters chars{ - OUString(LCForbiddenCharactersArray[0]), OUString(LCForbiddenCharactersArray[1])}; + LCForbiddenCharactersArray[0], LCForbiddenCharactersArray[1]}; return chars; } else { @@ -1175,12 +1180,13 @@ LocaleDataImpl::getForbiddenCharacters( const Locale& rLocale ) OUString LocaleDataImpl::getHangingCharacters( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getForbiddenCharacters" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getForbiddenCharacters" )); if ( func ) { sal_Int16 LCForbiddenCharactersCount = 0; - sal_Unicode **LCForbiddenCharactersArray = func(LCForbiddenCharactersCount); - return OUString(LCForbiddenCharactersArray[2]); + const OUString *LCForbiddenCharactersArray = func(LCForbiddenCharactersCount); + assert(LCForbiddenCharactersCount == 3); + return LCForbiddenCharactersArray[2]; } return OUString(); @@ -1189,18 +1195,12 @@ LocaleDataImpl::getHangingCharacters( const Locale& rLocale ) Sequence< OUString > LocaleDataImpl::getBreakIteratorRules( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getBreakIteratorRules" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getBreakIteratorRules" )); if ( func ) { sal_Int16 LCBreakIteratorRuleCount = 0; - sal_Unicode **LCBreakIteratorRulesArray = func(LCBreakIteratorRuleCount); - Sequence< OUString > seq(LCBreakIteratorRuleCount); - auto seqRange = asNonConstRange(seq); - for(int i = 0; i < LCBreakIteratorRuleCount; i++) { - OUString elem(LCBreakIteratorRulesArray[i]); - seqRange[i] = elem; - } - return seq; + OUString const *LCBreakIteratorRulesArray = func(LCBreakIteratorRuleCount); + return Sequence< OUString >(LCBreakIteratorRulesArray, LCBreakIteratorRuleCount); } else { return {}; @@ -1211,18 +1211,12 @@ LocaleDataImpl::getBreakIteratorRules( const Locale& rLocale ) Sequence< OUString > SAL_CALL LocaleDataImpl::getReservedWord( const Locale& rLocale ) { - MyFunc_Type func = reinterpret_cast<MyFunc_Type>(getFunctionSymbol( rLocale, "getReservedWords" )); + MyFuncOUString_Type func = reinterpret_cast<MyFuncOUString_Type>(getFunctionSymbol( rLocale, "getReservedWords" )); if ( func ) { sal_Int16 LCReservedWordsCount = 0; - sal_Unicode **LCReservedWordsArray = func(LCReservedWordsCount); - Sequence< OUString > seq(LCReservedWordsCount); - auto seqRange = asNonConstRange(seq); - for(int i = 0; i < LCReservedWordsCount; i++) { - OUString elem(LCReservedWordsArray[i]); - seqRange[i] = elem; - } - return seq; + OUString const *LCReservedWordsArray = func(LCReservedWordsCount); + return Sequence< OUString >(LCReservedWordsArray, LCReservedWordsCount); } else { return {}; @@ -1241,7 +1235,7 @@ LocaleDataImpl::getContinuousNumberingLevels( const lang::Locale& rLocale ) // invoke function sal_Int16 nStyles; sal_Int16 nAttributes; - sal_Unicode const *** p0 = func( nStyles, nAttributes ); + OUString const ** p0 = func( nStyles, nAttributes ); // allocate memory for nAttributes attributes for each of the nStyles styles. Sequence< Sequence<beans::PropertyValue> > pv( nStyles ); @@ -1250,20 +1244,18 @@ LocaleDataImpl::getContinuousNumberingLevels( const lang::Locale& rLocale ) i = Sequence<beans::PropertyValue>( nAttributes ); } - sal_Unicode const *** pStyle = p0; + OUString const ** pStyle = p0; for( int i=0; i<nStyles; i++ ) { - sal_Unicode const ** pAttribute = pStyle[i]; + OUString const * pAttribute = pStyle[i]; auto pvElementRange = asNonConstRange(pvRange[i]); for( int j=0; j<nAttributes; j++ ) { // prefix, numberingtype, ... - sal_Unicode const * pString = pAttribute[j]; + OUString const & pString = pAttribute[j]; beans::PropertyValue& rVal = pvElementRange[j]; OUString sVal; - if( pString ) { - if( 0 != j && 2 != j ) - sVal = pString; - else if( *pString ) - sVal = OUString( pString, 1 ); - } + if( 0 != j && 2 != j ) + sVal = pString; + else if( !pString.isEmpty() ) + sVal = pString.copy( 0, 1 ); switch( j ) { @@ -1313,6 +1305,7 @@ struct OutlineNumberingLevel_Impl sal_Int32 nLeftMargin; sal_Int32 nSymbolTextDistance; sal_Int32 nFirstLineOffset; + sal_Int16 nAdjust; OUString sTransliteration; sal_Int32 nNatNum; }; @@ -1350,20 +1343,20 @@ LocaleDataImpl::getOutlineNumberingLevels( const lang::Locale& rLocale ) sal_Int16 nStyles; sal_Int16 nLevels; sal_Int16 nAttributes; - sal_Unicode const **** p0 = func( nStyles, nLevels, nAttributes ); + OUString const *** p0 = func( nStyles, nLevels, nAttributes ); Sequence< Reference<container::XIndexAccess> > aRet( nStyles ); auto aRetRange = asNonConstRange(aRet); - sal_Unicode const **** pStyle = p0; + OUString const *** pStyle = p0; for( i=0; i<nStyles; i++ ) { int j; std::unique_ptr<OutlineNumberingLevel_Impl[]> level(new OutlineNumberingLevel_Impl[ nLevels+1 ]); - sal_Unicode const *** pLevel = pStyle[i]; + OUString const ** pLevel = pStyle[i]; for( j = 0; j < nLevels; j++ ) { - sal_Unicode const ** pAttribute = pLevel[j]; + OUString const * pAttribute = pLevel[j]; for( int k=0; k<nAttributes; k++ ) { OUString tmp( pAttribute[k] ); @@ -1378,7 +1371,7 @@ LocaleDataImpl::getOutlineNumberingLevels( const lang::Locale& rLocale ) case 6: level[j].nLeftMargin = tmp.toInt32(); break; case 7: level[j].nSymbolTextDistance = tmp.toInt32(); break; case 8: level[j].nFirstLineOffset = tmp.toInt32(); break; - case 9: break; + case 9: level[j].nAdjust = sal::static_int_cast<sal_Int16>(tmp.toInt32()); break; case 10: level[j].sTransliteration = tmp; break; case 11: level[j].nNatNum = tmp.toInt32(); break; default: @@ -1389,6 +1382,7 @@ LocaleDataImpl::getOutlineNumberingLevels( const lang::Locale& rLocale ) level[j].sPrefix.clear(); level[j].nNumType = 0; level[j].sSuffix.clear(); + level[j].nAdjust = 0; level[j].cBulletChar = 0; level[j].sBulletFontName.clear(); level[j].nParentNumbering = 0; @@ -1481,7 +1475,6 @@ LocaleDataImpl::getAllInstalledLocaleNames() using namespace ::com::sun::star::container; using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::text; OutlineNumbering::OutlineNumbering(std::unique_ptr<const OutlineNumberingLevel_Impl[]> pOutlnLevels, int nLevels) : m_pOutlineLevels(std::move(pOutlnLevels)), @@ -1523,7 +1516,7 @@ Any OutlineNumbering::getByIndex( sal_Int32 nIndex ) pValues[8].Name = "FirstLineOffset"; pValues[8].Value <<= pTemp->nFirstLineOffset; pValues[9].Name = "Adjust"; - pValues[9].Value <<= sal_Int16(HoriOrientation::LEFT); + pValues[9].Value <<= pTemp->nAdjust; pValues[10].Name = "Transliteration"; pValues[10].Value <<= pTemp->sTransliteration; pValues[11].Name = "NatNum"; @@ -1545,7 +1538,7 @@ sal_Bool OutlineNumbering::hasElements( ) OUString SAL_CALL LocaleDataImpl::getImplementationName() { - return "com.sun.star.i18n.LocaleDataImpl"; + return u"com.sun.star.i18n.LocaleDataImpl"_ustr; } sal_Bool SAL_CALL LocaleDataImpl::supportsService(const OUString& rServiceName) @@ -1557,8 +1550,8 @@ Sequence< OUString > SAL_CALL LocaleDataImpl::getSupportedServiceNames() { Sequence< OUString > aRet { - "com.sun.star.i18n.LocaleData", - "com.sun.star.i18n.LocaleData2" + u"com.sun.star.i18n.LocaleData"_ustr, + u"com.sun.star.i18n.LocaleData2"_ustr }; return aRet; } |