From: Miriam Ruiz Date: Wed, 3 Dec 2008 11:19:26 +0000 (+0100) Subject: Use a directory under $HOME for user data X-Git-Url: https://repo.or.cz/w/kraptor.git/commitdiff_plain/6dba62b00ce945196d170525daa7a24392cdf3b7 Use a directory under $HOME for user data --- diff --git a/src/config.c b/src/config.c index b1d136d..f87ee38 100644 --- a/src/config.c +++ b/src/config.c @@ -11,10 +11,25 @@ #include "jugador.h" #include "config.h" #include "global.h" + +#include +#include void cargar_configuracion() -{ - set_config_file("kraptor.cfg"); +{ + char *home; + home = getenv("HOME"); + if (home != NULL) + { + char str[4096]; + snprintf(str, sizeof(str), "%s/.kraptor.cfg", home); + set_config_file("/etc/kraptor/kraptor.cfg"); + override_config_file(str); + } + else + { + set_config_file("kraptor.cfg"); + } teclado_jug.arr = get_config_int("kraptor_keyboard", "arr", teclado_jug.arr); teclado_jug.abj = get_config_int("kraptor_keyboard", "abj", teclado_jug.abj); teclado_jug.izq = get_config_int("kraptor_keyboard", "izq", teclado_jug.izq); @@ -47,7 +62,18 @@ void cargar_configuracion() void salvar_configuracion() { - set_config_file("kraptor.cfg"); + char *home; + home = getenv("HOME"); + if (home != NULL) + { + char str[4096]; + snprintf(str, sizeof(str), "%s/.kraptor.cfg", home); + set_config_file(str); + } + else + { + set_config_file("kraptor.cfg"); + } set_config_int("kraptor_keyboard", "arr", teclado_jug.arr); set_config_int("kraptor_keyboard", "abj", teclado_jug.abj); diff --git a/src/main.c b/src/main.c index a250914..3629bf6 100644 --- a/src/main.c +++ b/src/main.c @@ -38,6 +38,7 @@ int main(int argc, char *argv[] ) int i1; // para el for de los parametros int rx = 640, ry = 480; // para permitir que el usuario elija la resolucion int vid_card = GFX_AUTODETECT; // placa de video por defecto + char *home; int snd = TRUE; // quiere sonido lenguaje[0]='e'; @@ -47,7 +48,22 @@ int main(int argc, char *argv[] ) /* Iniciar Allegro y el hardware */ allegro_init(); atexit(&dumb_exit); - + + home = getenv("HOME"); + if (home != NULL) + { + char str[4096]; + snprintf(str, sizeof(str), "%s/.kraptor.cfg", home); + set_config_file("/etc/kraptor/kraptor.cfg"); + override_config_file(str); + } + else + { + set_config_file("kraptor.cfg"); + } + + setenv("ALLEGRO", "/usr/share/games/kraptor/",0); /* Dirty hack so that allegro searches for language.dat in the proper directory */ + /* setear allegro al idioma configurado, default = en (ingles) */ strncpy(lenguaje, get_config_string("system", "language", "en"), 2); reload_config_texts(lenguaje);