diff -burN gentoo-0.11.46.orig/src/configure.c gentoo-0.11.46/src/configure.c --- gentoo-0.11.46.orig/src/configure.c 2004-02-29 23:09:48.737669968 +0100 +++ gentoo-0.11.46/src/configure.c 2004-02-29 23:24:29.152826520 +0100 @@ -169,6 +169,7 @@ void cfg_save_all(MainInfo *min) { gchar *root = "GentooConfig", *home, rcname[PATH_MAX]; + gchar *home_etc; FILE *out; guint i; const CfgModule *page; @@ -176,6 +177,11 @@ if((home = getenv("HOME")) != NULL) { strcpy(rcname, home); + if ( (home_etc = getenv("HOME_ETC")) != NULL) + { + strcat(rcname, "/"); + strcat(rcname, home_etc); + }; strcat(rcname, "/" RCNAME); } else @@ -437,11 +443,19 @@ guint32 cfg_load_config(MainInfo *min) { XmlNode *tree; - gchar name[PATH_MAX] = "", *hpath; + gchar name[PATH_MAX] = "", *hpath, *home_etc; guint32 i, flags = 0UL; - if((hpath = getenv("HOME")) != NULL) + if((hpath = getenv("HOME")) != NULL) + { + //strcpy(hpath, home); + if ( (home_etc = getenv("HOME_ETC")) != NULL) + { + strcat(hpath, "/"); + strcat(hpath, home_etc); + }; g_snprintf(name, sizeof name, "%s" G_DIR_SEPARATOR_S "%s", hpath, RCNAME); + }; /* Does the user seem to have a local config? */ if(!fut_can_read_named(name)) @@ -464,8 +478,16 @@ { gchar homename[PATH_MAX] = "", syscfg[PATH_MAX], whine[2 * PATH_MAX]; - if((hpath = getenv("HOME")) != NULL) + if((hpath = getenv("HOME")) != NULL) + { + // strcpy(hpath, home); + if ((home_etc = getenv("HOME_ETC")) != NULL) + { + strcat(hpath, "/"); + strcat(hpath, home_etc); + } g_snprintf(homename, sizeof homename, "%s/%s", hpath, RCNAME); + } g_snprintf(syscfg, sizeof syscfg, PATH_CFG G_DIR_SEPARATOR_S "%s", RCNAME + 1); g_snprintf(whine, sizeof whine, _("Couldn't find any configuration file; checked\n"