--- vice-2.0/src/arch/unix/archdep.c.old 2008-11-26 15:14:36.000000000 +0100 +++ vice-2.0/src/arch/unix/archdep.c 2008-11-26 15:16:33.000000000 +0100 @@ -131,6 +131,14 @@ #endif } +extern const char *archdep_home_etc_path(void) +{ + char *home_etc = getenv("HOME_ETC"); + + if (home_etc) return home_etc; + return archdep_home_path(); +} + char *archdep_default_sysfile_pathlist(const char *emu_id) { static char *default_path; @@ -144,7 +152,7 @@ const char *home_path; boot_path = archdep_boot_path(); - home_path = archdep_home_path(); + home_path = archdep_home_etc_path(); /* First search in the `LIBDIR' then the $HOME/.vice/ dir (home_path) and then in the `boot_path'. */ @@ -237,7 +245,7 @@ if(archdep_pref_path==NULL) { const char *home; - home = archdep_home_path(); + home = archdep_home_etc_path(); return util_concat(home, "/.vice/vicerc", NULL); } else { return util_concat(archdep_pref_path, "/vicerc", NULL); @@ -249,7 +257,7 @@ if(archdep_pref_path==NULL) { const char *home; - home = archdep_home_path(); + home = archdep_home_etc_path(); return util_concat(home, "/.vice/fliplist-", machine_name, ".vfl", NULL); } else { return util_concat(archdep_pref_path, "/fliplist-", machine_name, ".vfl", NULL); @@ -263,7 +271,7 @@ const char *viceuserdir; if(archdep_pref_path==NULL) { - home = archdep_home_path(); + home = archdep_home_etc_path(); viceuserdir = util_concat(home, "/.vice", NULL); } else { viceuserdir = archdep_pref_path; --- vice-2.0/src/arch/unix/archdep.h~ 2008-07-07 20:23:10.000000000 +0200 +++ vice-2.0/src/arch/unix/archdep.h 2008-11-26 15:18:28.000000000 +0100 @@ -103,7 +103,7 @@ /* No key symcode. */ #define ARCHDEP_KEYBOARD_SYM_NONE 0 -extern const char *archdep_home_path(void); +extern const char *archdep_home_etc_path(void); /* set this path to customize the preference storage */ extern const char *archdep_pref_path; --- vice-2.0/src/arch/unix/gui/uicommands.c~ 2008-07-07 20:22:35.000000000 +0200 +++ vice-2.0/src/arch/unix/gui/uicommands.c 2008-11-26 15:20:21.000000000 +0100 @@ -295,7 +295,7 @@ static UI_CALLBACK(load_quicksnap) { - char *fname = util_concat(archdep_home_path(), "/", VICEUSERDIR, "/", + char *fname = util_concat(archdep_home_etc_path(), "/", VICEUSERDIR, "/", machine_name, ".vsf", NULL); if (!ui_emulation_is_paused()) @@ -327,7 +327,7 @@ static UI_CALLBACK(save_quicksnap) { - char *fname = util_concat(archdep_home_path(), "/", VICEUSERDIR, "/", + char *fname = util_concat(archdep_home_etc_path(), "/", VICEUSERDIR, "/", machine_name, ".vsf", NULL); interrupt_maincpu_trigger_trap(save_snapshot_trap, (void *)fname);