Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > d043847aa27480c55fe107cb41a6f83f > files > 11

gdm-2.32.1-1.1.mga1.src.rpm

From 43f4c730c8048aec4422cb2f56aeb4414423dbc3 Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@mandriva.com>
Date: Fri, 26 Mar 2010 16:30:38 +0100
Subject: [PATCH] handle dmrc not in cache when migrating

https://bugzilla.gnome.org/show_bug.cgi?id=614028
---
 daemon/gdm-session-settings.c |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/daemon/gdm-session-settings.c b/daemon/gdm-session-settings.c
index 421d87a..306d55c 100644
--- a/daemon/gdm-session-settings.c
+++ b/daemon/gdm-session-settings.c
@@ -290,8 +290,30 @@ gdm_session_settings_load (GdmSessionSettings  *settings,
         load_error = NULL;
         if (!g_key_file_load_from_file (key_file, filename,
                                         G_KEY_FILE_NONE, &load_error)) {
-                g_propagate_error (error, load_error);
-                goto out;
+	        struct passwd *passwd_entry;
+		char *userfile;
+
+		/* try ~/.dmrc if we are just migrating */
+	        passwd_entry = getpwnam (username);
+	        if (passwd_entry != NULL) {
+			g_error_free (load_error);
+			load_error = NULL;
+		        userfile = g_build_filename (passwd_entry->pw_dir, ".dmrc", NULL);
+        		if (!g_key_file_load_from_file (key_file, userfile,
+                                        G_KEY_FILE_NONE, &load_error)) {
+				g_free (userfile);
+
+		                g_propagate_error (error, load_error);
+		                goto out;
+			}
+			else {
+				g_free (filename);
+				filename = userfile;
+			}
+		} else {
+		                g_propagate_error (error, load_error);
+		                goto out;
+		}
         }
 
         session_name = g_key_file_get_string (key_file, "Desktop", "Session",
-- 
1.7.0.3