---- gammu/common/gsmstate.c.orig 2008-12-16 14:11:54.000000000 +0100
-+++ gammu/common/gsmstate.c 2008-12-21 13:59:48.000000000 +0100
-@@ -971,6 +971,7 @@
+--- gammu-1.28.92/libgammu/gsmstate.c~ 2010-10-04 15:28:55.000000000 +0200
++++ gammu-1.28.92/libgammu/gsmstate.c 2010-10-05 11:15:22.047837669 +0200
+@@ -1085,6 +1085,7 @@
{
char configfile[PATH_MAX + 1];
char *envpath;
+ char *home_etc;
GSM_Error error;
-
- *result = NULL;
-@@ -988,14 +989,24 @@
- /* Reset as we're using strcat */
- configfile[0] = 0;
+ #if defined(HAVE_GETPWUID) && defined(HAVE_GETUID)
+ struct passwd *pwent;
+@@ -1126,6 +1127,16 @@
+ }
+ }
+ /* Try user etc dir */
+ home_etc = getenv("HOME_ETC");
+ error = GSM_TryReadGammuRC(configfile, result);
+ if (error == ERR_NONE) return ERR_NONE;
+ } else {
- /* Try user home */
-- envpath = getenv("HOME");
-- if (envpath) {
-+ envpath = getenv("HOME");
-+ if (envpath) {
- strcat(configfile, envpath);
- strcat(configfile, GAMMURC_NAME);
-
++
+ /* Try home from environment */
+ envpath = getenv("HOME");
+ if (envpath) {
+@@ -1135,6 +1146,7 @@
error = GSM_TryReadGammuRC(configfile, result);
if (error == ERR_NONE) return ERR_NONE;
-+ }
}
++ }
- #if defined(WIN32)
+ #if defined(HAVE_GETPWUID) && defined(HAVE_GETUID)
+ /* Tru home from passwd */