summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2010-04-05 09:59:50 -0400
committerRay Strode <rstrode@redhat.com>2010-04-05 10:01:45 -0400
commit9f1e1b9d3bfb6cba38af10f84ab8e7bdb27f5b35 (patch)
tree1b5bf28b240b1a61283d2c780494142ff70feef6
parentdb4fc8e1373a6892ddbf4bf254a91c78f5ee6a42 (diff)
downloadyelp-9f1e1b9d3bfb6cba38af10f84ab8e7bdb27f5b35.tar.gz
Support relocatable .gnome2 directory
libgnome supports relocating ~/.gnome2 via the GNOME22_USER_DIR environment variable. This commit makes yelp support that convention as well. https://bugzilla.gnome.org/show_bug.cgi?id=614029 (cherry picked from commit 54d030971568621a3dd91e57f6c2ade2a5d06e8e)
-rw-r--r--src/yelp-bookmarks.c37
1 files changed, 30 insertions, 7 deletions
diff --git a/src/yelp-bookmarks.c b/src/yelp-bookmarks.c
index 19b7efe5..de66c1b9 100644
--- a/src/yelp-bookmarks.c
+++ b/src/yelp-bookmarks.c
@@ -44,7 +44,6 @@
#define COL_HEADER 3
#define TOC_PATH "ui/menubar/BookmarksMenu/BookmarksTOC"
#define DOC_PATH "ui/menubar/BookmarksMenu/BookmarksDOC"
-#define BK_CONFIG_PATH "/.gnome2/yelp"
#define BK_CONFIG_BK_GROUP "Bookmarks"
#define BK_CONFIG_WIDTH "width"
#define BK_CONFIG_HEIGHT "height"
@@ -163,6 +162,7 @@ void
yelp_bookmarks_init (void)
{
gchar *filename = NULL;
+ const gchar *override;
windows = NULL;
actions_store = gtk_tree_store_new (4,
@@ -171,8 +171,13 @@ yelp_bookmarks_init (void)
G_TYPE_BOOLEAN,
G_TYPE_BOOLEAN);
- filename = g_build_filename (g_get_home_dir (), ".gnome2",
- "yelp-bookmarks.xbel", NULL);
+ override = g_getenv ("GNOME22_USER_DIR");
+
+ if (override)
+ filename = g_build_filename (override, "yelp-bookmarks.xbel", NULL);
+ else
+ filename = g_build_filename (g_get_home_dir (), ".gnome2",
+ "yelp-bookmarks.xbel", NULL);
if (g_file_test (filename, G_FILE_TEST_EXISTS))
bookmarks_read (filename);
@@ -612,6 +617,7 @@ yelp_bookmarks_edit (void)
GKeyFile *keyfile;
GError *config_error = NULL;
gchar *config_path;
+ const gchar *override;
if (!bookmarks_dialog) {
builder = gtk_builder_new ();
@@ -626,7 +632,12 @@ yelp_bookmarks_edit (void)
bookmarks_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "bookmarks_dialog"));
view = GTK_TREE_VIEW (gtk_builder_get_object (builder, "bookmarks_view"));
keyfile = g_key_file_new();
- config_path = g_strconcat (g_get_home_dir(), BK_CONFIG_PATH, NULL);
+ override = g_getenv ("GNOME22_USER_DIR");
+ if (override)
+ config_path = g_build_filename (override, "yelp", NULL);
+ else
+ config_path = g_build_filename (g_get_home_dir(),
+ ".gnome2", "yelp", NULL);
if( !g_key_file_load_from_file (keyfile, config_path,
G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS,
@@ -717,11 +728,17 @@ bookmarks_configure_cb (GtkWidget *widget, GdkEventConfigure *event,
gchar *config_path, *sdata;
GError *config_error = NULL;
gsize config_size;
+ const gchar *override;
gtk_window_get_size (GTK_WINDOW (widget), &width, &height);
keyfile = g_key_file_new ();
- config_path = g_strconcat (g_get_home_dir (), BK_CONFIG_PATH, NULL);
+ override = g_getenv ("GNOME22_USER_DIR");
+ if (override)
+ config_path = g_build_filename (override, "yelp", NULL);
+ else
+ config_path = g_build_filename (g_get_home_dir (),
+ ".gnome2", "yelp", NULL);
g_key_file_set_integer (keyfile, BK_CONFIG_BK_GROUP,
BK_CONFIG_WIDTH, width);
@@ -942,9 +959,15 @@ yelp_bookmarks_write (void)
GtkTreeIter top_iter, sub_iter;
gboolean top_valid, sub_valid;
gchar *filename;
+ const gchar *override;
+
+ override = g_getenv ("GNOME22_USER_DIR");
- filename = g_build_filename (g_get_home_dir (), ".gnome2",
- "yelp-bookmarks.xbel", NULL);
+ if (override)
+ filename = g_build_filename (override, "yelp-bookmarks.xbel", NULL);
+ else
+ filename = g_build_filename (g_get_home_dir (), ".gnome2",
+ "yelp-bookmarks.xbel", NULL);
file = xmlNewTextWriterFilename (filename,
0);