+++ /dev/null
-diff -Nru abook-0.4.17/abook.c abook-0.4.17.new/abook.c
---- abook-0.4.17/abook.c Tue Apr 2 20:45:47 2002
-+++ abook-0.4.17.new/abook.c Sat Mar 22 14:14:51 2003
-@@ -63,7 +63,13 @@
- /*if( options_get_int("datafile", "autosave") )*/
-
- if( load_database(datafile) == 2 ) {
-- char *tmp = strconcat(getenv("HOME"),
-+ char *etc_dir = getenv("ETC_DIR");
-+ char *tmp;
-+
-+ if (etc_dir)
-+ tmp = strconcat(etc_dir, "/" ETC_DIR_DATAFILE, NULL);
-+ else
-+ tmp = strconcat(getenv("HOME"),
- "/" DATAFILE, NULL);
-
- if( safe_strcmp(tmp, datafile) ) {
-@@ -119,17 +125,22 @@
- set_filenames()
- {
- struct stat s;
-+ char *etc_dir = getenv("ETC_DIR");
-+ if (etc_dir) {
-+ if (!datafile)
-+ datafile = strconcat(etc_dir, "/" ETC_DIR_DATAFILE, NULL);
-+ rcfile = strconcat(etc_dir, "/" ETC_DIR_RCFILE, NULL);
-+ } else {
-+ if( (stat(getenv("HOME"), &s)) == -1 || ! S_ISDIR(s.st_mode) ) {
-+ fprintf(stderr,"%s is not a valid HOME directory\n", getenv("HOME") );
-+ exit(1);
-+ }
-
-- if( (stat(getenv("HOME"), &s)) == -1 || ! S_ISDIR(s.st_mode) ) {
-- fprintf(stderr,"%s is not a valid HOME directory\n", getenv("HOME") );
-- exit(1);
-- }
--
-- if (!datafile)
-- datafile = strconcat(getenv("HOME"), "/" DATAFILE, NULL);
--
-- rcfile = strconcat(getenv("HOME"), "/" RCFILE, NULL);
-+ if (!datafile)
-+ datafile = strconcat(getenv("HOME"), "/" DATAFILE, NULL);
-
-+ rcfile = strconcat(getenv("HOME"), "/" RCFILE, NULL);
-+ }
- atexit(free_filenames);
- }
-
-diff -Nru abook-0.4.17/abook.h abook-0.4.17.new/abook.h
---- abook-0.4.17/abook.h Sat Sep 29 16:44:10 2001
-+++ abook-0.4.17.new/abook.h Sat Mar 22 14:08:42 2003
-@@ -24,7 +24,7 @@
-
- #define DEFAULT_UMASK 066
- #define DATAFILE ".abook.addressbook"
--
-+#define ETC_DIR_DATAFILE "abook.addressbook"
- /*
- * some "abookwide" useful macros
- */
-diff -Nru abook-0.4.17/options.h abook-0.4.17.new/options.h
---- abook-0.4.17/options.h Mon Apr 23 14:58:43 2001
-+++ abook-0.4.17.new/options.h Sat Mar 22 14:09:11 2003
-@@ -2,6 +2,7 @@
- #define _OPTIONS_H
-
- #define RCFILE ".abookrc"
-+#define ETC_DIR_RCFILE "abookrc"
- #define SYSWIDE_RCFILE "/etc/abookrc"
-
- #include "conff.h"
+++ /dev/null
-diff -Nru abook-0.4.17/abook.c abook-0.4.17.new/abook.c
---- abook-0.4.17/abook.c Tue Apr 2 20:45:47 2002
-+++ abook-0.4.17.new/abook.c Sat Mar 22 14:14:51 2003
-@@ -63,7 +63,13 @@
- /*if( options_get_int("datafile", "autosave") )*/
-
- if( load_database(datafile) == 2 ) {
-- char *tmp = strconcat(getenv("HOME"),
-+ char *config_dir = getenv("CONFIG_DIR");
-+ char *tmp;
-+
-+ if (config_dir)
-+ tmp = strconcat(config_dir, "/" CONFIG_DIR_DATAFILE, NULL);
-+ else
-+ tmp = strconcat(getenv("HOME"),
- "/" DATAFILE, NULL);
-
- if( safe_strcmp(tmp, datafile) ) {
-@@ -119,17 +125,22 @@
- set_filenames()
- {
- struct stat s;
-+ char *config_dir = getenv("CONFIG_DIR");
-+ if (config_dir) {
-+ if (!datafile)
-+ datafile = strconcat(config_dir, "/" CONFIG_DIR_DATAFILE, NULL);
-+ rcfile = strconcat(config_dir, "/" CONFIG_DIR_RCFILE, NULL);
-+ } else {
-+ if( (stat(getenv("HOME"), &s)) == -1 || ! S_ISDIR(s.st_mode) ) {
-+ fprintf(stderr,"%s is not a valid HOME directory\n", getenv("HOME") );
-+ exit(1);
-+ }
-
-- if( (stat(getenv("HOME"), &s)) == -1 || ! S_ISDIR(s.st_mode) ) {
-- fprintf(stderr,"%s is not a valid HOME directory\n", getenv("HOME") );
-- exit(1);
-- }
--
-- if (!datafile)
-- datafile = strconcat(getenv("HOME"), "/" DATAFILE, NULL);
--
-- rcfile = strconcat(getenv("HOME"), "/" RCFILE, NULL);
-+ if (!datafile)
-+ datafile = strconcat(getenv("HOME"), "/" DATAFILE, NULL);
-
-+ rcfile = strconcat(getenv("HOME"), "/" RCFILE, NULL);
-+ }
- atexit(free_filenames);
- }
-
-diff -Nru abook-0.4.17/abook.h abook-0.4.17.new/abook.h
---- abook-0.4.17/abook.h Sat Sep 29 16:44:10 2001
-+++ abook-0.4.17.new/abook.h Sat Mar 22 14:08:42 2003
-@@ -24,7 +24,7 @@
-
- #define DEFAULT_UMASK 066
- #define DATAFILE ".abook.addressbook"
--
-+#define CONFIG_DIR_DATAFILE "abook.addressbook"
- /*
- * some "abookwide" useful macros
- */
-diff -Nru abook-0.4.17/options.h abook-0.4.17.new/options.h
---- abook-0.4.17/options.h Mon Apr 23 14:58:43 2001
-+++ abook-0.4.17.new/options.h Sat Mar 22 14:09:11 2003
-@@ -2,6 +2,7 @@
- #define _OPTIONS_H
-
- #define RCFILE ".abookrc"
-+#define CONFIG_DIR_RCFILE "abookrc"
- #define SYSWIDE_RCFILE "/etc/abookrc"
-
- #include "conff.h"