diff options
author | Jens Granseuer <jensgr@gmx.net> | 2008-05-05 19:10:40 +0000 |
---|---|---|
committer | Jens Granseuer <jensg@src.gnome.org> | 2008-05-05 19:10:40 +0000 |
commit | c8a4bad617a1635078752d7871af088cd97af5be (patch) | |
tree | 6e33ee2c018cecf5e8bcc620f3acca00c6359c65 /gnome-settings-daemon | |
parent | c2617780e93fdecd8608b5dcbdf5f5fc470d6429 (diff) | |
download | gnome-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.c | 11 |
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"); |