From aae23d8d941e2023b6158db1795bfbe4e3e54673 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sergio=20Villar=20Sen=C3=ADn?= Date: Tue, 12 May 2009 20:18:13 +0200 Subject: [PATCH] Fixes NB#115922, do not show duplicate entries in Country list --- src/modest-init.c | 10 ---------- src/modest-utils.c | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/modest-init.c b/src/modest-init.c index b848f20..5d3189a 100644 --- a/src/modest-init.c +++ b/src/modest-init.c @@ -580,22 +580,12 @@ init_debug_logging (void) static void init_i18n (void) { - /* little trick make en_GB the fallback language, instead - * of the logical IDs - * we need the ugly ifdefs, because modest_platform_init is - * too late. - */ const gchar *lc_messages = getenv ("LC_MESSAGES"); if (!lc_messages) { setenv ("LANGUAGE", "en_GB", 1); setenv ("LC_MESSAGES", "en_GB", 1); - } else { - gchar *language = g_strdup_printf ("%s:en_GB", lc_messages); - setenv ("LC_MESSAGES", language, 1); - g_free (language); } - /* end of little trick */ bindtextdomain (GETTEXT_PACKAGE, MODEST_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); diff --git a/src/modest-utils.c b/src/modest-utils.c index b65a0b5..afd91eb 100644 --- a/src/modest-utils.c +++ b/src/modest-utils.c @@ -978,7 +978,7 @@ modest_utils_fill_country_model (GtkTreeModel *model, gint *locale_mcc) char line[MCC_FILE_MAX_LINE_LEN]; guint previous_mcc = 0; gchar *territory; - + GHashTable *country_hash; FILE *file; /* First we need to know our current region */ @@ -1026,10 +1026,13 @@ modest_utils_fill_country_model (GtkTreeModel *model, gint *locale_mcc) g_warning ("Could not open mcc_mapping file"); return; } + + country_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); while (fgets (line, MCC_FILE_MAX_LINE_LEN, file) != NULL) { int mcc; char *country = NULL; + GtkTreeIter iter; const gchar *name_translated; mcc = parse_mcc_mapping_line (line, &country); @@ -1038,22 +1041,27 @@ modest_utils_fill_country_model (GtkTreeModel *model, gint *locale_mcc) continue; } - if (mcc == previous_mcc) { - /* g_warning ("already seen: %s", line); */ + if (mcc == previous_mcc || + g_hash_table_lookup (country_hash, country)) { + g_message ("already seen: '%s' %d", country, mcc); continue; } previous_mcc = mcc; + g_hash_table_insert (country_hash, g_strdup (country), GINT_TO_POINTER (mcc)); + name_translated = dgettext ("osso-countries", country); /* Add the row to the model: */ - GtkTreeIter iter; gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set(GTK_LIST_STORE (model), &iter, MODEST_UTILS_COUNTRY_MODEL_COLUMN_MCC, mcc, MODEST_UTILS_COUNTRY_MODEL_COLUMN_NAME, name_translated, -1); } + + + g_hash_table_unref (country_hash); fclose (file); /* Fallback to Finland */ -- 1.7.9.5