diff -urN bogofilter-0.92.8.oryg/src/configfile.c bogofilter-0.92.8/src/configfile.c --- bogofilter-0.92.8.oryg/src/configfile.c 2004-08-22 17:52:28.000000000 +0200 +++ bogofilter-0.92.8/src/configfile.c 2004-10-24 18:20:00.925433952 +0200 @@ -125,7 +125,14 @@ bool ok = true; int lineno = 0; FILE *fp; + char *home_etc = getenv("HOME_ETC"); + if (home_etc && fname[0] == '~') { + char buffer[1024]; + snprintf(buffer, 1024, "%s%s", home_etc, fname+1); + config_file_name=xstrdup(buffer); + } else + if (config_file_name != NULL) xfree(config_file_name); config_file_name = tildeexpand(fname, tilde_expand); diff -urN bogofilter-0.92.8.oryg/src/paths.c bogofilter-0.92.8/src/paths.c --- bogofilter-0.92.8.oryg/src/paths.c 2004-05-18 02:22:52.000000000 +0200 +++ bogofilter-0.92.8/src/paths.c 2004-10-24 18:22:51.345526160 +0200 @@ -29,7 +29,7 @@ #ifndef __riscos__ { PR_ENV_BOGO, "BOGOFILTER_DIR", NULL }, { PR_ENV_BOGO, "BOGODIR", NULL }, - { PR_ENV_HOME, "HOME", BOGODIR } + { PR_ENV_HOME, "HOME_ETC", BOGODIR } #else { PR_ENV_HOME, "Choices$Write", BOGODIR }, { PR_ENV_HOME, "Bogofilter$Dir", NULL }, @@ -104,6 +104,7 @@ size_t path_size, env_size; env = getenv(var); + if (env == NULL && strcmp(var, "HOME_ETC") == 0) env = getenv("HOME"); if (env == NULL || *env == '\0') return NULL; env_size = strlen(env);