--- freecnc-20050409/src/vfs/vfs.cpp~ 2005-03-26 00:49:21.000000000 +0100 +++ freecnc-20050409/src/vfs/vfs.cpp 2005-04-09 23:26:39.000000000 +0200 @@ -48,7 +48,11 @@ externals->loadArchive(tempstr.c_str()); #if defined _WIN32 #else - externals->loadArchive("/etc/freecnc/"); + char f[1024]; + sprintf(f, "%s/.freecnc/", getenv("HOME_ETC") ? getenv("HOME_ETC") : getenv("HOME")); + externals->loadArchive(f); + externals->loadArchive("/etc/"); + externals->loadArchive("/usr/share/freecnc/"); #endif try { --- freecnc-20050409/src/freecnc.cpp~ 2005-03-26 00:49:18.000000000 +0100 +++ freecnc-20050409/src/freecnc.cpp 2005-04-09 23:35:21.000000000 +0200 @@ -67,7 +67,7 @@ } const string& binpath = determineBinaryLocation(argv[0]); - string lf(binpath); + string lf("/tmp"); lf += "/freecnc.log"; VFS_PreInit(binpath.c_str()); --- freecnc-20050409/src/misc/args.cpp.orig 2005-04-10 00:40:22.000000000 +0200 +++ freecnc-20050409/src/misc/args.cpp 2005-04-10 01:33:21.000000000 +0200 @@ -55,6 +55,15 @@ return config; } +std::string ConfigPath(std::string filename) +{ + std::string f; + f=getenv("HOME_ETC") ? getenv("HOME_ETC") : getenv("HOME"); + f+="/.freecnc/"; + f+=filename; + return f; +} + /** function to parse command line arguments * @param number of arguments * @param pointer to array of arguments @@ -69,8 +78,8 @@ shared_ptr internal_ini; try { - freecnc_ini = GetConfig("freecnc.ini"); - internal_ini = GetConfig("internal-global.ini"); + freecnc_ini = GetConfig(ConfigPath("freecnc.ini")); + internal_ini = GetConfig(ConfigPath("internal-global.ini")); } catch(runtime_error& e) { logger->error("%s\n",e.what()); return false;