summaryrefslogtreecommitdiff
path: root/daemon/gdm-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/gdm-session.c')
-rw-r--r--daemon/gdm-session.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 0b832231..063c5a2d 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -573,8 +573,8 @@ get_fallback_session_name (GdmSession *self)
}
if (get_session_command_for_file (self, base_name, NULL)) {
-
- g_sequence_insert_sorted (sessions, g_strdup (base_name), (GCompareDataFunc) g_strcmp0, NULL);
+ name = g_strndup (base_name, strlen (base_name) - strlen (".desktop"));
+ g_sequence_insert_sorted (sessions, name, (GCompareDataFunc) g_strcmp0, NULL);
}
} while (base_name != NULL);
@@ -589,22 +589,15 @@ get_fallback_session_name (GdmSession *self)
g_error ("GdmSession: no session desktop files installed, aborting...");
do {
- if (g_sequence_get (session)) {
- char *base_name;
-
- g_free (name);
- base_name = g_sequence_get (session);
- name = g_strndup (base_name,
- strlen (base_name) -
- strlen (".desktop"));
-
+ name = g_sequence_get (session);
+ if (name) {
break;
}
session = g_sequence_iter_next (session);
} while (!g_sequence_iter_is_end (session));
g_free (self->priv->fallback_session_name);
- self->priv->fallback_session_name = name;
+ self->priv->fallback_session_name = g_strdup (name);
g_sequence_free (sessions);