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



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

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

	* gui/simple-greeter/gdm-languages.c:
	(collect_locales_from_archive),
	(collect_locales):
	Don't scandir locale directory if we've successfully
	read the locales from the archive


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 18:54:19 2008
@@ -367,7 +367,7 @@
         return is_utf8;
 }
 
-static void
+static gboolean
 collect_locales_from_archive (void)
 {
         GMappedFile        *mapped;
@@ -379,15 +379,18 @@
         uint32_t            used;
         uint32_t            cnt;
         gsize               len;
+        gboolean            locales_collected;
 
         error = NULL;
         mapped = g_mapped_file_new (ARCHIVE_FILE, FALSE, &error);
         if (mapped == NULL) {
                 g_warning ("Mapping failed for %s: %s", ARCHIVE_FILE, error->message);
                 g_error_free (error);
-                return;
+                return FALSE;
         }
 
+        locales_collected = FALSE;
+
         addr = g_mapped_file_get_contents (mapped);
         len = g_mapped_file_get_length (mapped);
 
@@ -457,9 +460,11 @@
 
         g_free (names);
 
+        locales_collected = TRUE;
  out:
 
         g_mapped_file_free (mapped);
+        return locales_collected;
 }
 
 static int
@@ -575,7 +580,10 @@
                 gdm_available_locales_map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) chooser_locale_free);
         }
 
-        collect_locales_from_archive ();
+        if (collect_locales_from_archive ()) {
+                return;
+        }
+
         collect_locales_from_directory ();
         collect_locales_from_aliases ();
 }



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