diff -ruN ekg-20020528.org/src/ekg.c ekg-20020528/src/ekg.c --- ekg-20020528.org/src/ekg.c Tue May 28 19:57:44 2002 +++ ekg-20020528/src/ekg.c Wed May 29 15:26:51 2002 @@ -385,15 +385,15 @@ fprintf(stderr, "\n\ *** Naruszenie ochrony pamięci ***\n\ \n\ -Próbuję zapisać ustawienia do pliku ~/.gg/config.%d i listę kontaktów\n\ -do pliku ~/.gg/userlist.%d, ale nie obiecuję, że cokolwiek z tego\n\ +Próbuję zapisać ustawienia do pliku %s/config.%d i listę kontaktów\n\ +do pliku %s/userlist.%d, ale nie obiecuję, że cokolwiek z tego\n\ wyjdzie.\n\ \n\ -Jeśli zostanie utworzony plik ~/.gg/core, spróbuj uruchomić program ,,gdb''\n\ +Jeśli zostanie utworzony plik %s/core, spróbuj uruchomić program ,,gdb''\n\ zgodnie z instrukcjami zawartymi w pliku README. Dzięki temu autorzy\n\ dowiedzą się, w którym miejscu wystąpił błąd i najprawdopodobniej pozwoli\n\ to uniknąć tego typu błędów w przyszłości.\n\ -\n", getpid(), getpid()); +\n", config_dir, getpid(), config_dir, getpid(), config_dir); config_write_crash(); userlist_write_crash(); @@ -480,6 +480,11 @@ return 1; } + if (getenv("CONFIG_DIR")) + config_dir = saprintf("%s/%s/gg", home_dir, getenv("CONFIG_DIR")); + else + config_dir = saprintf("%s/.gg", home_dir); + signal(SIGSEGV, sigsegv_handler); signal(SIGCONT, sigcont_handler); signal(SIGHUP, sighup_handler); @@ -705,9 +710,9 @@ if (!config_log_path) { if (config_user != "") - config_log_path = saprintf("%s/.gg/%s/history", home_dir, config_user); + config_log_path = saprintf("%s/%s/history", config_dir, config_user); else - config_log_path = saprintf("%s/.gg/history", home_dir); + config_log_path = saprintf("%s/history", config_dir); } changed_dcc("dcc"); diff -ruN ekg-20020528.org/src/stuff.c ekg-20020528/src/stuff.c --- ekg-20020528.org/src/stuff.c Thu May 23 12:53:11 2002 +++ ekg-20020528/src/stuff.c Wed May 29 14:15:15 2002 @@ -315,14 +315,14 @@ if (!filename || !*filename) { if (config_user && *config_user) - snprintf(path, sizeof(path), "%s/.gg/%s", home_dir, config_user); + snprintf(path, sizeof(path), "%s/%s", config_dir, config_user); else - snprintf(path, sizeof(path), "%s/.gg", home_dir); + snprintf(path, sizeof(path), "%s", config_dir); } else { if (config_user && *config_user) - snprintf(path, sizeof(path), "%s/.gg/%s/%s", home_dir, config_user, filename); + snprintf(path, sizeof(path), "%s/%s/%s", config_dir, config_user, filename); else - snprintf(path, sizeof(path), "%s/.gg/%s", home_dir, filename); + snprintf(path, sizeof(path), "%s/%s", config_dir, filename); } return path; @@ -562,8 +562,7 @@ char name[32]; FILE *f; - chdir(home_dir); - chdir(".gg"); + chdir(config_dir); snprintf(name, sizeof(name), "config.%d", getpid()); if (!(f = fopen(name, "w"))) diff -ruN ekg-20020528.org/src/stuff.h ekg-20020528/src/stuff.h --- ekg-20020528.org/src/stuff.h Thu May 23 12:53:12 2002 +++ ekg-20020528/src/stuff.h Wed May 29 15:24:02 2002 @@ -131,6 +131,7 @@ int config_emoticons; char *home_dir; +char *config_dir; int in_readline; int away; int in_autoexec; diff -ruN ekg-20020528.org/src/userlist.c ekg-20020528/src/userlist.c --- ekg-20020528.org/src/userlist.c Fri May 17 22:44:52 2002 +++ ekg-20020528/src/userlist.c Wed May 29 14:18:43 2002 @@ -307,8 +307,7 @@ char name[32]; FILE *f; - chdir(home_dir); - chdir(".gg"); + chdir(config_dir); snprintf(name, sizeof(name), "userlist.%d", getpid()); if (!(f = fopen(name, "w")))