aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gray2004-12-15 12:30:58 +0000
committerJonathan Gray2004-12-15 12:30:58 +0000
commit2909c8fff6febf736ebddaf11fc5f40276cc3e5d (patch)
treebab3f20f5495c933f55a6ab62349dfb6abc6b5f4
parent2bf74ffd35ff43c3e2f88d1f443791d2df770265 (diff)
downloadscummvm-rg350-2909c8fff6febf736ebddaf11fc5f40276cc3e5d.tar.gz
scummvm-rg350-2909c8fff6febf736ebddaf11fc5f40276cc3e5d.tar.bz2
scummvm-rg350-2909c8fff6febf736ebddaf11fc5f40276cc3e5d.zip
- Move MAXPATHLEN includes/defines into common location
- Save files are now stored in $HOME/.scummvm/ by default if no other save path is specified on non MacOS X unices. svn-id: r16060
-rw-r--r--base/gameDetector.cpp32
-rw-r--r--common/config-manager.cpp5
-rw-r--r--common/stdafx.h5
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