summaryrefslogtreecommitdiffstats
path: root/i18npool/source/localedata/localedata.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'i18npool/source/localedata/localedata.cxx')
-rw-r--r--i18npool/source/localedata/localedata.cxx931
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;
}