i18npool/inc/localedata.hxx | 12 i18npool/source/localedata/localedata.cxx | 607 +++++++++++++++--------------- 2 files changed, 322 insertions(+), 297 deletions(-)
New commits: commit 91d67c32f67f1fccf30cbb7980aeab83a9af1008 Author: Arnaud VERSINI <arnaud.vers...@pm.me> AuthorDate: Sun Apr 14 14:21:19 2024 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sun Apr 21 17:42:11 2024 +0200 i18npool : limit string comparison using an enum class Change-Id: Iec5327b6f0125b22a2a4ee8ccb789b5403a7fdb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166070 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/i18npool/inc/localedata.hxx b/i18npool/inc/localedata.hxx index f4cd15a30254..06cf68fa7fdf 100644 --- a/i18npool/inc/localedata.hxx +++ b/i18npool/inc/localedata.hxx @@ -48,14 +48,22 @@ struct LocaleDataLookupTableItem; namespace i18npool { +enum class DataLocaleLibrary { + EN, + ES, + EURO, + OTHERS +}; + + struct LocaleDataLookupTableItem { - const char* dllName; + DataLocaleLibrary dllName; osl::Module *module; const char* localeName; css::lang::Locale aLocale; - LocaleDataLookupTableItem(const char *name, osl::Module* m, const char* lname) : dllName(name), module(m), localeName(lname) + LocaleDataLookupTableItem(DataLocaleLibrary name, osl::Module* m, const char* lname) : dllName(std::move(name)), module(m), localeName(lname) { } bool equals(const css::lang::Locale& rLocale) const diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx index 64350b9532d3..7f59dabda5fb 100644 --- a/i18npool/source/localedata/localedata.cxx +++ b/i18npool/source/localedata/localedata.cxx @@ -41,6 +41,7 @@ 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 OUString const * (* MyFuncOUString_Type)( sal_Int16&); typedef OUString const ** (* MyFunc_Type2)( sal_Int16&, sal_Int16& ); @@ -49,296 +50,319 @@ typedef OUString const * (* MyFunc_FormatCode)( sal_Int16&, 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 }, - { "en_MU", 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 }, - { "oc_ES_aranes", 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_PT", lcl_DATA_EURO }, - { "pt_BR", lcl_DATA_EURO }, // needs to be in EURO because inherits from pt_PT - { "pt_MZ", lcl_DATA_EURO }, // needs to be in EURO because inherits from pt_PT - { "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_lengadoc", 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 - { "pdc_US", lcl_DATA_OTHERS }, - { "dv_MV", lcl_DATA_OTHERS }, - { "mfe_MU", lcl_DATA_OTHERS }, - { "sat_IN", lcl_DATA_OTHERS } + { "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 @@ -549,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();