aboutsummaryrefslogtreecommitdiff
path: root/common/file.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/file.cpp')
-rw-r--r--common/file.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/common/file.cpp b/common/file.cpp
index 81fd148e98..3f1412033d 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -22,6 +22,10 @@
#include "common/file.h"
#include "common/util.h"
+
+char *File::_defaultDirectory = 0;
+
+
FILE *File::fopenNoCase(const char *filename, const char *directory, const char *mode) {
FILE *file;
char buf[512];
@@ -111,6 +115,11 @@ FILE *File::fopenNoCase(const char *filename, const char *directory, const char
return NULL;
}
+void File::setDefaultDirectory(const char *directory) {
+ free(_defaultDirectory);
+ _defaultDirectory = strdup(directory);
+}
+
File::File() {
_handle = NULL;
_ioFailed = false;
@@ -131,6 +140,10 @@ bool File::open(const char *filename, const char *directory, int mode, byte encb
if (filename == NULL || *filename == 0)
return false;
+
+ // If no directory was specified, use the default directory (if any).
+ if (directory == NULL)
+ directory = _defaultDirectory ? _defaultDirectory : "";
clearIOFailed();