Try to really first the NULL locale issue.

SVN revision: 26161
This commit is contained in:
Stafford Mitchell Horne 2006-09-26 16:00:13 +00:00
parent 9aac21ab94
commit db63f3d8fd
1 changed files with 31 additions and 15 deletions

View File

@ -760,7 +760,7 @@ _region_hash_free_cb(Evas_Hash *hash, const char *key, void *data, void *fdata)
static int static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{ {
if (cfdata->cur_language != NULL) if (cfdata->cur_language)
{ {
e_config->language = evas_stringshare_add(cfdata->cur_language); e_config->language = evas_stringshare_add(cfdata->cur_language);
e_intl_language_set(e_config->language); e_intl_language_set(e_config->language);
@ -774,7 +774,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
static int static int
_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{ {
if (cfdata->cur_language != NULL) if (cfdata->cur_language)
{ {
e_config->language = evas_stringshare_add(cfdata->cur_language); e_config->language = evas_stringshare_add(cfdata->cur_language);
e_intl_language_set(e_config->language); e_intl_language_set(e_config->language);
@ -803,8 +803,15 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_on_change_hook_set(ob, _ilist_basic_language_cb_change, cfdata); e_widget_on_change_hook_set(ob, _ilist_basic_language_cb_change, cfdata);
cfdata->gui.blang_list = ob; cfdata->gui.blang_list = ob;
cur_sig_loc = e_intl_locale_canonic_get(cfdata->cur_language, if (cfdata->cur_language)
E_INTL_LOC_LANG | E_INTL_LOC_REGION); {
cur_sig_loc = e_intl_locale_canonic_get(cfdata->cur_language,
E_INTL_LOC_LANG | E_INTL_LOC_REGION);
}
else
{
cur_sig_loc = NULL;
}
i = 0; i = 0;
while (basic_language_predefined_pairs[i].locale_key) while (basic_language_predefined_pairs[i].locale_key)
@ -1176,22 +1183,31 @@ _intl_current_locale_setup(E_Config_Dialog_Data *cfdata)
char *modifier; char *modifier;
E_FREE(cfdata->cur_lang); E_FREE(cfdata->cur_lang);
cfdata->cur_lang = NULL;
E_FREE(cfdata->cur_reg); E_FREE(cfdata->cur_reg);
cfdata->cur_reg = NULL;
E_FREE(cfdata->cur_cs); E_FREE(cfdata->cur_cs);
cfdata->cur_cs = NULL;
E_FREE(cfdata->cur_mod); E_FREE(cfdata->cur_mod);
cfdata->cur_lang = NULL;
cfdata->cur_reg = NULL;
cfdata->cur_cs = NULL;
cfdata->cur_mod = NULL; cfdata->cur_mod = NULL;
language = e_intl_locale_canonic_get(cfdata->cur_language, language = NULL;
E_INTL_LOC_LANG); region = NULL;
region = e_intl_locale_canonic_get(cfdata->cur_language, codeset = NULL;
E_INTL_LOC_REGION); modifier = NULL;
codeset = e_intl_locale_canonic_get(cfdata->cur_language,
E_INTL_LOC_CODESET); if (cfdata->cur_language)
modifier = e_intl_locale_canonic_get(cfdata->cur_language, {
E_INTL_LOC_MODIFIER); language = e_intl_locale_canonic_get(cfdata->cur_language,
E_INTL_LOC_LANG);
region = e_intl_locale_canonic_get(cfdata->cur_language,
E_INTL_LOC_REGION);
codeset = e_intl_locale_canonic_get(cfdata->cur_language,
E_INTL_LOC_CODESET);
modifier = e_intl_locale_canonic_get(cfdata->cur_language,
E_INTL_LOC_MODIFIER);
}
if (language) if (language)
cfdata->cur_lang = strdup(language); cfdata->cur_lang = strdup(language);