The attached patch allows you to override the '.gnucash' directory. Currently, this always defaults to ${HOME}/.gnucash which is a problem if you are developing GNC, and don't want to impact the existing stable GNC2.0.x installation that I'm using for my real accounts.

Essentially, setting the "GNC_DOT_DIR" environment variable will cause the dotdir and it's associated files to sit in ${GNC_DOT_DIR}. If the variable is not set, the old behaviour is used.

James




Index: src/engine/gnc-filepath-utils.c
===================================================================
--- src/engine/gnc-filepath-utils.c     (revision 15738)
+++ src/engine/gnc-filepath-utils.c     (working copy)
@@ -382,14 +382,17 @@
   if (dotgnucash)
     return dotgnucash;
 
-  home = g_get_home_dir();
-  if (!home) {
-    g_warning("Cannot find home directory. Using tmp directory instead.");
-    home = g_get_tmp_dir();
+  dotgnucash = getenv("GNC_DOT_DIR");
+  if(!dotgnucash) {
+        home = g_get_home_dir();
+       if (!home) {
+                g_warning("Cannot find home directory. Using tmp directory 
instead.");
+               home = g_get_tmp_dir();
+       }
+       g_assert(home);
+
+       dotgnucash = g_build_filename(home, ".gnucash", (gchar *)NULL);
   }
-  g_assert(home);
-
-  dotgnucash = g_build_filename(home, ".gnucash", (gchar *)NULL);
   gnc_validate_directory(dotgnucash);
 
   /* Since we're in code that is only executed once.... */
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to