diff options
-rw-r--r-- | base/gameDetector.cpp | 32 | ||||
-rw-r--r-- | common/config-manager.cpp | 5 | ||||
-rw-r--r-- | common/stdafx.h | 5 |
3 files changed, 37 insertions, 5 deletions
diff --git a/base/gameDetector.cpp b/base/gameDetector.cpp index 58a82630a8..d873f0da5f 100644 --- a/base/gameDetector.cpp +++ b/base/gameDetector.cpp @@ -36,6 +36,14 @@ #include "config.h" #endif +#ifdef UNIX +#include <sys/errno.h> +#include <sys/stat.h> +#ifndef MACOSX +#define DEFAULT_SAVE_PATH ".scummvm" +#endif +#endif + // DONT FIXME: DO NOT ORDER ALPHABETICALLY, THIS IS ORDERED BY IMPORTANCE/CATEGORY! :) #ifdef __PALM_OS__ static const char USAGE_STRING[] = "NoUsageString"; // save more data segment space @@ -99,6 +107,7 @@ static const char USAGE_STRING[] = ; #endif + GameDetector::GameDetector() { // Graphics @@ -152,6 +161,29 @@ GameDetector::GameDetector() { ConfMan.registerDefault("alsa_port", "65:0"); #endif +#ifdef DEFAULT_SAVE_PATH + char savePath[MAXPATHLEN]; +#ifdef UNIX + struct stat sb; + if (getenv("HOME") != NULL) { + snprintf(savePath, MAXPATHLEN, "%s/%s", getenv("HOME"), DEFAULT_SAVE_PATH); + if (stat(savePath, &sb) == -1) { + /* create the dir if it does not exist */ + if (errno == ENOENT) { + if (mkdir(savePath, 0755) != 0) { + perror("mkdir"); + exit(1); + } + } + } + /* check that we can the dir is there */ + if (stat(savePath, &sb) == 0) { + ConfMan.registerDefault("savepath", savePath); + } + } +#endif +#endif + _dumpScripts = false; memset(&_game, 0, sizeof(_game)); diff --git a/common/config-manager.cpp b/common/config-manager.cpp index 81e8ed15e2..bdd0fe210d 100644 --- a/common/config-manager.cpp +++ b/common/config-manager.cpp @@ -25,7 +25,6 @@ #include "common/config-manager.h" #if defined(UNIX) -#include <sys/param.h> #ifdef MACOSX #define DEFAULT_CONFIG_FILE "Library/Preferences/ScummVM Preferences" #else @@ -35,10 +34,6 @@ #define DEFAULT_CONFIG_FILE "scummvm.ini" #endif -#ifndef MAXPATHLEN -#define MAXPATHLEN 256 -#endif - #define MAXLINELEN 256 static char *ltrim(char *t) { diff --git a/common/stdafx.h b/common/stdafx.h index 2d59efe688..f59fb168d2 100644 --- a/common/stdafx.h +++ b/common/stdafx.h @@ -99,6 +99,7 @@ #if !defined(macintosh) #include <sys/types.h> #include <sys/uio.h> +#include <sys/param.h> #endif #if !defined (__BEOS__) #include <unistd.h> @@ -119,4 +120,8 @@ #endif +#ifndef MAXPATHLEN +#define MAXPATHLEN 256 +#endif + #endif |