summaryrefslogtreecommitdiff
path: root/gnome-settings-daemon
diff options
context:
space:
mode:
authorJens Granseuer <jensgr@gmx.net>2008-05-05 19:10:40 +0000
committerJens Granseuer <jensg@src.gnome.org>2008-05-05 19:10:40 +0000
commitc8a4bad617a1635078752d7871af088cd97af5be (patch)
tree6e33ee2c018cecf5e8bcc620f3acca00c6359c65 /gnome-settings-daemon
parentc2617780e93fdecd8608b5dcbdf5f5fc470d6429 (diff)
downloadgnome-settings-daemon-c8a4bad617a1635078752d7871af088cd97af5be.tar.gz
Patch by: Brian Cameron <brian.cameron@sun.com>
2008-05-02 Jens Granseuer <jensgr@gmx.net> Patch by: Brian Cameron <brian.cameron@sun.com> * gnome-settings-daemon/main.c: (main): don't die when the user's home directory is read-only (bug #530975) svn path=/trunk/; revision=334
Diffstat (limited to 'gnome-settings-daemon')
-rw-r--r--gnome-settings-daemon/main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gnome-settings-daemon/main.c b/gnome-settings-daemon/main.c
index e5633048..e4a823c5 100644
--- a/gnome-settings-daemon/main.c
+++ b/gnome-settings-daemon/main.c
@@ -26,6 +26,7 @@
#include <locale.h>
#include <glib/gi18n.h>
+#include <glib/gstdio.h>
#include <gtk/gtk.h>
#include <libgnome/libgnome.h>
@@ -194,6 +195,7 @@ main (int argc, char *argv[])
GnomeProgram *program;
gboolean res;
GError *error;
+ gboolean create_dirs;
manager = NULL;
program = NULL;
@@ -231,13 +233,20 @@ main (int argc, char *argv[])
goto out;
}
+ /* If the user does not have a writable HOME directory, then
+ init libgnome with appropriate arguments to run without
+ needing one. */
+ create_dirs = (g_access (g_get_home_dir(), W_OK) != 0);
+
gnome_settings_profile_start ("gnome_program_init");
program = gnome_program_init (PACKAGE,
VERSION,
LIBGNOME_MODULE,
argc,
argv,
- GNOME_PARAM_NONE);
+ GNOME_PARAM_CREATE_DIRECTORIES,
+ create_dirs,
+ NULL);
gnome_settings_profile_end ("gnome_program_init");
gnome_settings_profile_start ("gnome_settings_manager_new");