gdm r5831 - in trunk: . daemon



Author: halfline
Date: Thu Feb 21 04:20:26 2008
New Revision: 5831
URL: http://svn.gnome.org/viewvc/gdm?rev=5831&view=rev

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

	* daemon/gdm-session-settings.c
	(gdm_session_settings_load):
	Don't fail if optional fields are missing in ~/.dmrc


Modified:
   trunk/ChangeLog
   trunk/daemon/gdm-session-settings.c

Modified: trunk/daemon/gdm-session-settings.c
==============================================================================
--- trunk/daemon/gdm-session-settings.c	(original)
+++ trunk/daemon/gdm-session-settings.c	Thu Feb 21 04:20:26 2008
@@ -244,7 +244,6 @@
         g_return_val_if_fail (settings != NULL, FALSE);
         g_return_val_if_fail (home_directory != NULL, FALSE);
         g_return_val_if_fail (!gdm_session_settings_is_loaded (settings), FALSE);
-
         filename = g_build_filename (home_directory, ".dmrc", NULL);
 
         is_loaded = FALSE;
@@ -260,7 +259,13 @@
         session_name = g_key_file_get_string (key_file, "Desktop", "Session",
                                               &load_error);
 
-        if (session_name == NULL) {
+        if (session_name != NULL) {
+                gdm_session_settings_set_session_name (settings, session_name);
+                g_free (session_name);
+        } else if (g_error_matches (load_error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) {
+                g_error_free (load_error);
+                load_error = NULL;
+        } else {
                 g_propagate_error (error, load_error);
                 goto out;
         }
@@ -268,14 +273,17 @@
         language_name = g_key_file_get_string (key_file, "Desktop", "Language",
                                                &load_error);
 
-        if (language_name == NULL) {
+        if (language_name != NULL) {
+                gdm_session_settings_set_language_name (settings, language_name);
+                g_free (language_name);
+        } else if (g_error_matches (load_error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) {
+                g_error_free (load_error);
+                load_error = NULL;
+        } else {
                 g_propagate_error (error, load_error);
                 goto out;
         }
 
-        gdm_session_settings_set_language_name (settings, language_name);
-        gdm_session_settings_set_session_name (settings, session_name);
-
         is_loaded = TRUE;
 out:
         g_key_file_free (key_file);



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