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



Author: halfline
Date: Tue Mar 25 19:02:21 2008
New Revision: 6061
URL: http://svn.gnome.org/viewvc/gdm?rev=6061&view=rev

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

	* gui/simple-greeter/gdm-languages.c:
	(collect_locales_from_directory):
	if a directory name in /usr/share/locale isn't a
	valid utf-8 locale, then try appending .utf8 to
	the name to find the utf8 locale.


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	Tue Mar 25 19:02:21 2008
@@ -500,19 +500,32 @@
                 char      *path;
                 GdmLocale *locale;
                 GdmLocale *old_locale;
+                char      *name;
                 gboolean   res;
 
-                if (!language_name_is_valid (dirents[cnt]->d_name) ||
-                    !language_name_is_utf8 (dirents[cnt]->d_name)) {
+                if (language_name_is_utf8 (dirents[cnt]->d_name)) {
+                        name = g_strdup (dirents[cnt]->d_name);
+                } else {
+                        name = g_strdup_printf ("%s.utf8", dirents[cnt]->d_name);
+
+                        if (!language_name_is_utf8 (name)) {
+                                g_free (name);
+                                continue;
+                        }
+                }
+
+                if (!language_name_is_valid (name)) {
                         continue;
                 }
 
                 locale = g_new0 (GdmLocale, 1);
-                gdm_parse_language_name (dirents[cnt]->d_name,
+                gdm_parse_language_name (name,
                                          &locale->language_code,
                                          &locale->territory_code,
                                          &locale->codeset,
                                          &locale->modifier);
+                g_free (name);
+                name = NULL;
 
                 locale->id = construct_language_name (locale->language_code, locale->territory_code,
                                                       NULL, locale->modifier);



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