gdm r5856 - in trunk: . gui/simple-greeter



Author: halfline
Date: Mon Feb 25 21:20:35 2008
New Revision: 5856
URL: http://svn.gnome.org/viewvc/gdm?rev=5856&view=rev

Log:
2008-02-25  Ray Strode  <rstrode redhat com>

	* gui/simple-greeter/gdm-languages.c:
	(get_first_item_in_semicolon_list),
	(get_translated_language),
	(get_translated_territory):
	Move some duplicated code for pulling
	language/territory names out into a common
	function


Modified:
   trunk/ChangeLog
   trunk/gui/simple-greeter/gdm-languages.c

Modified: trunk/gui/simple-greeter/gdm-languages.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-languages.c	(original)
+++ trunk/gui/simple-greeter/gdm-languages.c	Mon Feb 25 21:20:35 2008
@@ -455,6 +455,24 @@
 }
 
 static char *
+get_first_item_in_semicolon_list (const char *list)
+{
+    char **items;
+    char  *item;
+
+    /* Some entries in iso codes have multiple values, separated
+     * by semicolons.  Not really sure which one to pick, so
+     * we just arbitrarily pick the first one.
+     */
+    items = g_strsplit (list, "; ", 2);
+
+    item = g_strdup (items[0]);
+    g_strfreev (items);
+
+    return item;
+}
+
+static char *
 get_translated_language (const char *code,
                          const char *locale)
 {
@@ -472,14 +490,13 @@
                 old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
                 setlocale (LC_MESSAGES, locale);
                 translated_name = dgettext ("iso_639", language);
+
+                name = get_first_item_in_semicolon_list (translated_name);
+
                 setlocale (LC_MESSAGES, old_locale);
                 g_free (old_locale);
 
-                names = g_strsplit (translated_name, "; ", 2);
-
-                name = g_strdup (names[0]);
-                g_strfreev (names);
-        }
+            }
 
         return name;
 }
@@ -523,10 +540,7 @@
                 setlocale (LC_MESSAGES, old_locale);
                 g_free (old_locale);
 
-                territories = g_strsplit (translated_territory, "; ", 2);
-
-                name = g_strdup (territories[0]);
-                g_strfreev (territories);
+                name = get_first_item_in_semicolon_list (translated_territory);
         }
 
         return name;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]