diff -Nru bogofilter-0.15.8.orig/src/configfile.c bogofilter-0.15.8/src/configfile.c --- bogofilter-0.15.8.orig/src/configfile.c 2003-10-06 00:01:40.000000000 +0200 +++ bogofilter-0.15.8/src/configfile.c 2003-11-12 18:12:59.000000000 +0100 @@ -195,8 +195,14 @@ FILE *fp; char *filename; char *arg = NULL, *val = NULL; + char *home_etc = getenv("HOME_ETC"); - filename = tildeexpand(fname, tilde_expand); + if (home_etc && fname[0] == '~') { + char buffer[1024]; + + snprintf(buffer, 1024, "%s%s", home_etc, fname + 1); + filename = xstrdup(buffer); + } else filename = tildeexpand(fname, tilde_expand); fp = fopen(filename, "r"); --- bogofilter-0.15.8.orig/src/paths.c 2003-09-30 00:31:20.000000000 +0200 +++ bogofilter-0.15.8/src/paths.c 2003-11-12 18:27:10.000000000 +0100 @@ -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 }, @@ -91,6 +91,7 @@ size_t path_size, env_size; env = getenv(var); + if (env == NULL && strcmp(var, "HOME_ETC") == 0) env = getenv("HOME"); if (env == NULL || strlen(env) == 0) return NULL; env_size = strlen(env);