-diff -Nru sodipodi-0.32.orig/src/libnrtype/nr-type-directory.c sodipodi-0.32/src/libnrtype/nr-type-directory.c
---- sodipodi-0.32.orig/src/libnrtype/nr-type-directory.c 2003-05-27 20:04:27.000000000 +0200
-+++ sodipodi-0.32/src/libnrtype/nr-type-directory.c 2003-11-19 10:40:25.000000000 +0100
-@@ -451,7 +451,8 @@
+diff -urN aa/sodipodi-0.34/src/libnrtype/nr-type-directory.c sodipodi-0.34/src/libnrtype/nr-type-directory.c
+--- aa/sodipodi-0.34/src/libnrtype/nr-type-directory.c 2004-01-02 19:19:19.000000000 +0100
++++ sodipodi-0.34/src/libnrtype/nr-type-directory.c 2004-02-12 14:23:09.601744192 +0100
+@@ -448,7 +448,7 @@
int len;
struct stat st;
- homedir = getenv ("HOME");
-+ homedir = getenv("HOME_ETC");
-+ if (!homedir) homedir = getenv ("HOME");
++ homedir = g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_getenv ("HOME");
if (!homedir) return;
len = strlen (homedir);
filename = nr_new (unsigned char, len + sizeof (privatename) + 1);
-diff -Nru sodipodi-0.32.orig/src/sodipodi.c sodipodi-0.32/src/sodipodi.c
---- sodipodi-0.32.orig/src/sodipodi.c 2003-06-16 01:03:03.000000000 +0200
-+++ sodipodi-0.32/src/sodipodi.c 2003-11-19 10:37:48.000000000 +0100
-@@ -324,6 +324,7 @@
- static gint recursion = FALSE;
- GSList *savednames, *failednames, *l;
- const gchar *home;
-+ const gchar *home_etc;
- gchar *istr, *sstr, *fstr, *b;
- gint count, nllen, len, pos;
- time_t sptime;
-@@ -338,6 +339,7 @@
+diff -urN aa/sodipodi-0.34/src/main.c sodipodi-0.34/src/main.c
+--- aa/sodipodi-0.34/src/main.c 2004-02-08 14:42:01.000000000 +0100
++++ sodipodi-0.34/src/main.c 2004-02-12 14:21:34.772160480 +0100
+@@ -718,7 +718,7 @@
+
g_warning ("Emergency save activated");
- home = g_get_home_dir ();
-+ home_etc = getenv("HOME_ETC");
+- home = g_get_home_dir ();
++ home = g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir ();
sptime = time (NULL);
sptm = localtime (&sptime);
strftime (sptstr, 256, "%Y_%m_%d_%H_%M_%S", sptm);
-@@ -379,10 +381,10 @@
- }
+diff -urN aa/sodipodi-0.34/src/sodipodi.c sodipodi-0.34/src/sodipodi.c
+--- aa/sodipodi-0.34/src/sodipodi.c 2004-02-05 19:23:22.000000000 +0100
++++ sodipodi-0.34/src/sodipodi.c 2004-02-12 14:20:37.873810344 +0100
+@@ -401,7 +401,7 @@
+ fnutf8 = g_build_filename (SODIPODI_APPDATADIR, filename, NULL);
+ fnos = g_filename_from_utf8 (fnutf8, strlen (fnutf8), &bytesin, &bytesout, NULL);
+ #else
+- fnutf8 = g_build_filename (g_get_home_dir (), ".sodipodi", filename, NULL);
++ fnutf8 = g_build_filename (g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir (), ".sodipodi", filename, NULL);
+ fnos = g_filename_from_utf8 (fnutf8, strlen (fnutf8), &bytesin, &bytesout, NULL);
#endif
- if (!docname || !*docname) docname = "emergency";
-- g_snprintf (c, 1024, "%s/.sodipodi/%.256s.%s.%d", home, docname, sptstr, count);
-+ g_snprintf (c, 1024, "%s/.sodipodi/%.256s.%s.%d", home_etc ? home_etc : home, docname, sptstr, count);
- file = fopen (c, "w");
- if (!file) {
-- g_snprintf (c, 1024, "%s/sodipodi-%.256s.%s.%d", home, docname, sptstr, count);
-+ g_snprintf (c, 1024, "%s/sodipodi-%.256s.%s.%d", home_etc ? home_etc : home, docname, sptstr, count);
- file = fopen (c, "w");
- }
- if (!file) {
-@@ -499,6 +501,7 @@
- const unsigned char *e_notreg, const unsigned char *e_notxml, const unsigned char *e_notsp)
- {
- gchar *fn;
-+ gchar *home_etc = getenv("HOME_ETC");
- struct stat s;
- GtkWidget * w;
- SPReprDoc * doc;
-@@ -507,7 +510,7 @@
+ if (stat (fnos, &s)) {
+@@ -505,7 +505,7 @@
#ifdef WIN32
- fn = g_strdup_printf ("sodipodi/%s", filename);
+ fn = g_build_filename (SODIPODI_APPDATADIR, "preferences", NULL);
#else
-- fn = g_build_filename (g_get_home_dir (), ".sodipodi", filename, NULL);
-+ fn = g_build_filename (home_etc ? home_etc : g_get_home_dir (), ".sodipodi", filename, NULL);
+- fn = g_build_filename (g_get_home_dir (), ".sodipodi/preferences", NULL);
++ fn = g_build_filename (g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir (), ".sodipodi/preferences", NULL);
#endif
- if (stat (fn, &s)) {
- /* No such file */
-@@ -597,11 +600,12 @@
- sodipodi_save_preferences (Sodipodi * sodipodi)
- {
- gchar * fn;
-+ gchar *home_etc = getenv("HOME_ETC");
+ sp_repr_doc_write_file (sodipodi->preferences, fn);
+@@ -521,7 +521,7 @@
#ifdef WIN32
- fn = g_strdup ("sodipodi/preferences");
+ fn = g_build_filename (SODIPODI_APPDATADIR, "extensions", NULL);
#else
-- fn = g_build_filename (g_get_home_dir (), ".sodipodi/preferences", NULL);
-+ fn = g_build_filename (home_etc ? home_etc : g_get_home_dir (), ".sodipodi/preferences", NULL);
+- fn = g_build_filename (g_get_home_dir (), ".sodipodi/extensions", NULL);
++ fn = g_build_filename (g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir (), ".sodipodi/extensions", NULL);
#endif
- sp_repr_save_file (sodipodi->preferences, fn);
-@@ -863,6 +867,7 @@
- const unsigned char *e_mkdir, const unsigned char *e_notdir, const unsigned char *e_ccf, const unsigned char *e_cwf)
- {
- gchar * dn, *fn;
-+ gchar *home_etc = getenv("HOME_ETC");
- struct stat s;
- int fh;
- GtkWidget * w;
-@@ -870,7 +875,7 @@
+ sp_repr_doc_write_file (sodipodi->extensions, fn);
+@@ -764,7 +764,7 @@
+ #ifdef WIN32
+ dnutf8 = g_strdup (SODIPODI_APPDATADIR);
+ #else
+- dnutf8 = g_build_filename (g_get_home_dir (), ".sodipodi", NULL);
++ dnutf8 = g_build_filename (g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir (), ".sodipodi", NULL);
+ #endif
+ dnos = g_filename_from_utf8 (dnutf8, strlen (dnutf8), &bytesin, &bytesout, NULL);
+ if (stat (dnos, &s)) {
+@@ -795,7 +795,7 @@
+ fnos = g_filename_from_utf8 (fnutf8, strlen (fnutf8), &bytesin, &bytesout, NULL);
+ fh = creat (fnos, S_IREAD | S_IWRITE);
+ #else
+- fnutf8 = g_build_filename (g_get_home_dir (), ".sodipodi", config_name, NULL);
++ fnutf8 = g_build_filename (g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir (), ".sodipodi", config_name, NULL);
+ fnos = g_filename_from_utf8 (fnutf8, strlen (fnutf8), &bytesin, &bytesout, NULL);
+ fh = creat (fnos, S_IRUSR | S_IWUSR | S_IRGRP);
+ #endif
+diff -urN aa/sodipodi-0.34/src/system.h sodipodi-0.34/src/system.h
+--- aa/sodipodi-0.34/src/system.h 2003-12-07 12:31:40.000000000 +0100
++++ sodipodi-0.34/src/system.h 2004-02-12 14:18:02.538424912 +0100
+@@ -36,7 +36,7 @@
#ifdef WIN32
- dn = g_strdup ("sodipodi");
+ #define SODIPODI_APPDATADIR sp_win32_get_appdata_dir ()
#else
-- dn = g_build_filename (g_get_home_dir (), ".sodipodi", NULL);
-+ dn = g_build_filename (home_etc ? home_etc : g_get_home_dir (), ".sodipodi", NULL);
+-#define SODIPODI_APPDATADIR g_get_home_dir ()
++#define SODIPODI_APPDATADIR g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir ()
#endif
- if (stat (dn, &s)) {
- if (mkdir (dn, S_IRWXU | S_IRGRP | S_IXGRP))
-@@ -896,7 +901,7 @@
- fn = g_strdup_printf ("sodipodi/%s", config_name);
- fh = creat (fn, S_IREAD | S_IWRITE);
+ #endif
+
+@@ -46,7 +46,7 @@
+ #ifdef WIN32
+ #define SODIPODI_DOCDIR sp_win32_get_doc_dir ()
#else
-- fn = g_build_filename (g_get_home_dir (), ".sodipodi", config_name, NULL);
-+ fn = g_build_filename (home_etc ? home_etc : g_get_home_dir (), ".sodipodi", config_name, NULL);
- fh = creat (fn, S_IRUSR | S_IWUSR | S_IRGRP);
+-#define SODIPODI_DOCDIR g_get_home_dir ()
++#define SODIPODI_DOCDIR g_getenv("HOME_ETC") ? g_getenv("HOME_ETC") : g_get_home_dir ()
+ #endif
#endif
- if (fh < 0) {
+