[Scummvm-git-logs] scummvm master -> db445bfc87600d0f87bdeeb8b3bf40a3a935f097
bluegr
bluegr at gmail.com
Tue Aug 6 06:17:34 CEST 2019
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
66ef50cfeb BACKENDS: Rename and simplify AbstractFSNode::create()
db445bfc87 BACKENDS: Improve AbstractFSNode::createDirectory() stubs
Commit: 66ef50cfebbcd650a6b57d896a9ba057a23cea35
https://github.com/scummvm/scummvm/commit/66ef50cfebbcd650a6b57d896a9ba057a23cea35
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2019-08-06T07:17:29+03:00
Commit Message:
BACKENDS: Rename and simplify AbstractFSNode::create()
Changed paths:
backends/fs/abstract-fs.h
backends/fs/amigaos4/amigaos4-fs.cpp
backends/fs/amigaos4/amigaos4-fs.h
backends/fs/chroot/chroot-fs.cpp
backends/fs/chroot/chroot-fs.h
backends/fs/ds/ds-fs.cpp
backends/fs/ds/ds-fs.h
backends/fs/n64/n64-fs.cpp
backends/fs/n64/n64-fs.h
backends/fs/posix/posix-fs.cpp
backends/fs/posix/posix-fs.h
backends/fs/ps2/ps2-fs.cpp
backends/fs/ps2/ps2-fs.h
backends/fs/psp/psp-fs.cpp
backends/fs/psp/psp-fs.h
backends/fs/riscos/riscos-fs.cpp
backends/fs/riscos/riscos-fs.h
backends/fs/symbian/symbian-fs.cpp
backends/fs/symbian/symbian-fs.h
backends/fs/wii/wii-fs.cpp
backends/fs/wii/wii-fs.h
backends/fs/windows/windows-fs.cpp
backends/fs/windows/windows-fs.h
backends/networking/sdl_net/handlers/createdirectoryhandler.cpp
backends/platform/dc/dc-fs.cpp
common/file.cpp
diff --git a/backends/fs/abstract-fs.h b/backends/fs/abstract-fs.h
index 28ea3bb..8b2c1c1 100644
--- a/backends/fs/abstract-fs.h
+++ b/backends/fs/abstract-fs.h
@@ -193,13 +193,11 @@ public:
virtual Common::WriteStream *createWriteStream() = 0;
/**
- * Creates a file referred by this node.
+ * Creates a directory referred by this node.
*
- * @param isDirectoryFlag true if created file must be a directory
- *
- * @return true if file is created successfully
+ * @return true if the directory is created successfully
*/
- virtual bool create(bool isDirectoryFlag) = 0;
+ virtual bool createDirectory() = 0;
};
diff --git a/backends/fs/amigaos4/amigaos4-fs.cpp b/backends/fs/amigaos4/amigaos4-fs.cpp
index 134193a..fa0ea14 100644
--- a/backends/fs/amigaos4/amigaos4-fs.cpp
+++ b/backends/fs/amigaos4/amigaos4-fs.cpp
@@ -443,7 +443,7 @@ Common::WriteStream *AmigaOSFilesystemNode::createWriteStream() {
return StdioStream::makeFromPath(getPath(), true);
}
-bool AmigaOSFilesystemNode::create(bool isDirectoryFlag) {
+bool AmigaOSFilesystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/amigaos4/amigaos4-fs.h b/backends/fs/amigaos4/amigaos4-fs.h
index c86bb4c..75d8d01 100644
--- a/backends/fs/amigaos4/amigaos4-fs.h
+++ b/backends/fs/amigaos4/amigaos4-fs.h
@@ -116,7 +116,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
};
diff --git a/backends/fs/chroot/chroot-fs.cpp b/backends/fs/chroot/chroot-fs.cpp
index 3bbee27..0fdd14c 100644
--- a/backends/fs/chroot/chroot-fs.cpp
+++ b/backends/fs/chroot/chroot-fs.cpp
@@ -100,7 +100,7 @@ Common::WriteStream *ChRootFilesystemNode::createWriteStream() {
return _realNode->createWriteStream();
}
-bool ChRootFilesystemNode::create(bool isDirectoryFlag) {
+bool ChRootFilesystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/chroot/chroot-fs.h b/backends/fs/chroot/chroot-fs.h
index 76902bc..66cbcbe 100644
--- a/backends/fs/chroot/chroot-fs.h
+++ b/backends/fs/chroot/chroot-fs.h
@@ -49,7 +49,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
private:
static Common::String addPathComponent(const Common::String &path, const Common::String &component);
diff --git a/backends/fs/ds/ds-fs.cpp b/backends/fs/ds/ds-fs.cpp
index 8c51f10..8498a77 100644
--- a/backends/fs/ds/ds-fs.cpp
+++ b/backends/fs/ds/ds-fs.cpp
@@ -211,7 +211,7 @@ Common::WriteStream *DSFileSystemNode::createWriteStream() {
return Common::wrapBufferedWriteStream(stream, WRITE_BUFFER_SIZE);
}
-bool DSFileSystemNode::create(bool isDirectoryFlag) {
+bool DSFileSystemNode::createDirectory() {
error("Not supported");
return false;
}
@@ -398,7 +398,7 @@ Common::WriteStream *GBAMPFileSystemNode::createWriteStream() {
return Common::wrapBufferedWriteStream(stream, WRITE_BUFFER_SIZE);
}
-bool GBAMPFileSystemNode::create(bool isDirectoryFlag) {
+bool GBAMPFileSystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/ds/ds-fs.h b/backends/fs/ds/ds-fs.h
index 12dd6d6..3770847 100644
--- a/backends/fs/ds/ds-fs.h
+++ b/backends/fs/ds/ds-fs.h
@@ -91,7 +91,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
/**
* Returns the zip file this node points to.
@@ -157,7 +157,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
};
struct fileHandle {
diff --git a/backends/fs/n64/n64-fs.cpp b/backends/fs/n64/n64-fs.cpp
index 5a131c0..4a21fb2 100644
--- a/backends/fs/n64/n64-fs.cpp
+++ b/backends/fs/n64/n64-fs.cpp
@@ -160,7 +160,7 @@ Common::WriteStream *N64FilesystemNode::createWriteStream() {
return RomfsStream::makeFromPath(getPath(), true);
}
-bool N64FilesystemNode::create(bool isDirectoryFlag) {
+bool N64FilesystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/n64/n64-fs.h b/backends/fs/n64/n64-fs.h
index b2de8a4..495fd67 100644
--- a/backends/fs/n64/n64-fs.h
+++ b/backends/fs/n64/n64-fs.h
@@ -73,7 +73,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
};
#endif
diff --git a/backends/fs/posix/posix-fs.cpp b/backends/fs/posix/posix-fs.cpp
index 5b724c2..507f075 100644
--- a/backends/fs/posix/posix-fs.cpp
+++ b/backends/fs/posix/posix-fs.cpp
@@ -299,33 +299,11 @@ Common::WriteStream *POSIXFilesystemNode::createWriteStream() {
return StdioStream::makeFromPath(getPath(), true);
}
-bool POSIXFilesystemNode::create(bool isDirectoryFlag) {
- bool success;
-
- if (isDirectoryFlag) {
- success = mkdir(_path.c_str(), 0755) == 0;
- } else {
- int fd = open(_path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0755);
- success = fd >= 0;
-
- if (fd >= 0) {
- close(fd);
- }
- }
-
- if (success) {
+bool POSIXFilesystemNode::createDirectory() {
+ if (mkdir(_path.c_str(), 0755) == 0)
setFlags();
- if (_isValid) {
- if (_isDirectory != isDirectoryFlag) warning("failed to create %s: got %s", isDirectoryFlag ? "directory" : "file", _isDirectory ? "directory" : "file");
- return _isDirectory == isDirectoryFlag;
- }
-
- warning("POSIXFilesystemNode: %s() was a success, but stat indicates there is no such %s",
- isDirectoryFlag ? "mkdir" : "creat", isDirectoryFlag ? "directory" : "file");
- return false;
- }
- return false;
+ return _isValid && _isDirectory;
}
namespace Posix {
diff --git a/backends/fs/posix/posix-fs.h b/backends/fs/posix/posix-fs.h
index 5ad26ff..9751ab7 100644
--- a/backends/fs/posix/posix-fs.h
+++ b/backends/fs/posix/posix-fs.h
@@ -68,7 +68,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
private:
/**
diff --git a/backends/fs/ps2/ps2-fs.cpp b/backends/fs/ps2/ps2-fs.cpp
index b6f184f..ec75f1e 100644
--- a/backends/fs/ps2/ps2-fs.cpp
+++ b/backends/fs/ps2/ps2-fs.cpp
@@ -443,7 +443,7 @@ Common::WriteStream *Ps2FilesystemNode::createWriteStream() {
return PS2FileStream::makeFromPath(getPath(), true);
}
-bool Ps2FilesystemNode::create(bool isDirectoryFlag) {
+bool Ps2FilesystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/ps2/ps2-fs.h b/backends/fs/ps2/ps2-fs.h
index ca476ec..16463fd 100644
--- a/backends/fs/ps2/ps2-fs.h
+++ b/backends/fs/ps2/ps2-fs.h
@@ -96,7 +96,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
int getDev() { return 0; }
};
diff --git a/backends/fs/psp/psp-fs.cpp b/backends/fs/psp/psp-fs.cpp
index c69592e..01884de 100644
--- a/backends/fs/psp/psp-fs.cpp
+++ b/backends/fs/psp/psp-fs.cpp
@@ -239,7 +239,7 @@ Common::WriteStream *PSPFilesystemNode::createWriteStream() {
return Common::wrapBufferedWriteStream(stream, WRITE_BUFFER_SIZE);
}
-bool PSPFilesystemNode::create(bool isDirectoryFlag) {
+bool PSPFilesystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/psp/psp-fs.h b/backends/fs/psp/psp-fs.h
index 47c6d04..3d70fac 100644
--- a/backends/fs/psp/psp-fs.h
+++ b/backends/fs/psp/psp-fs.h
@@ -65,7 +65,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
};
#endif
diff --git a/backends/fs/riscos/riscos-fs.cpp b/backends/fs/riscos/riscos-fs.cpp
index 6f19569..810be2b 100644
--- a/backends/fs/riscos/riscos-fs.cpp
+++ b/backends/fs/riscos/riscos-fs.cpp
@@ -52,23 +52,27 @@ bool RISCOSFilesystemNode::isWritable() const {
return access(_path.c_str(), W_OK) == 0;
}
+void RISCOSFilesystemNode::setFlags() {
+ int type = _swi(OS_File, _INR(0,1)|_RETURN(0), 20, RISCOS_Utils::toRISCOS(_path).c_str());
+ if (type == 0) {
+ _isDirectory = false;
+ _isValid = false;
+ } else if (type == 2) {
+ _isDirectory = true;
+ _isValid = true;
+ } else {
+ _isDirectory = false;
+ _isValid = true;
+ }
+}
+
RISCOSFilesystemNode::RISCOSFilesystemNode(const Common::String &p) {
_path = p;
if (p == "/") {
_isDirectory = true;
_isValid = true;
} else {
- int type = _swi(OS_File, _INR(0,1)|_RETURN(0), 20, RISCOS_Utils::toRISCOS(_path).c_str());
- if (type == 0) {
- _isDirectory = false;
- _isValid = false;
- } else if (type == 2) {
- _isDirectory = true;
- _isValid = true;
- } else {
- _isDirectory = false;
- _isValid = true;
- }
+ setFlags();
}
}
@@ -198,33 +202,11 @@ Common::WriteStream *RISCOSFilesystemNode::createWriteStream() {
return StdioStream::makeFromPath(getPath(), true);
}
-bool RISCOSFilesystemNode::create(bool isDirectoryFlag) {
- bool success;
-
- if (isDirectoryFlag) {
- success = _swix(OS_File, _INR(0,1), 8, RISCOS_Utils::toRISCOS(_path).c_str()) == NULL;
- } else {
- int fd = open(_path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0755);
- success = fd >= 0;
-
- if (fd >= 0) {
- close(fd);
- }
- }
-
- if (success) {
- if (exists()) {
- _isDirectory = _swi(OS_File, _INR(0,1)|_RETURN(0), 20, RISCOS_Utils::toRISCOS(_path).c_str()) == 2;
- if (_isDirectory != isDirectoryFlag) warning("failed to create %s: got %s", isDirectoryFlag ? "directory" : "file", _isDirectory ? "directory" : "file");
- return _isDirectory == isDirectoryFlag;
- }
-
- warning("RISCOSFilesystemNode: Attempting to create a %s was a success, but access indicates there is no such %s",
- isDirectoryFlag ? "directory" : "file", isDirectoryFlag ? "directory" : "file");
- return false;
- }
+bool RISCOSFilesystemNode::createDirectory() {
+ if (_swix(OS_File, _INR(0,1), 8, RISCOS_Utils::toRISCOS(_path).c_str()) == NULL)
+ setFlags();
- return false;
+ return _isValid && _isDirectory;
}
namespace Riscos {
@@ -270,7 +252,7 @@ bool assureDirectoryExists(const Common::String &dir, const char *prefix) {
}
node = new RISCOSFilesystemNode(path);
- if (!node->create(true)) {
+ if (!node->createDirectory()) {
if (node->exists()) {
if (!node->isDirectory()) {
return false;
diff --git a/backends/fs/riscos/riscos-fs.h b/backends/fs/riscos/riscos-fs.h
index 99fa1d5..f068022 100644
--- a/backends/fs/riscos/riscos-fs.h
+++ b/backends/fs/riscos/riscos-fs.h
@@ -67,7 +67,12 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
+private:
+ /**
+ * Tests and sets the _isValid and _isDirectory flags, using OS_File 20.
+ */
+ virtual void setFlags();
};
namespace Riscos {
diff --git a/backends/fs/symbian/symbian-fs.cpp b/backends/fs/symbian/symbian-fs.cpp
index c6d5cc4..7759f32 100644
--- a/backends/fs/symbian/symbian-fs.cpp
+++ b/backends/fs/symbian/symbian-fs.cpp
@@ -232,7 +232,7 @@ Common::WriteStream *SymbianFilesystemNode::createWriteStream() {
return SymbianStdioStream::makeFromPath(getPath(), true);
}
-bool SymbianFilesystemNode::create(bool isDirectoryFlag) {
+bool SymbianFilesystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/symbian/symbian-fs.h b/backends/fs/symbian/symbian-fs.h
index 0f82120..cd255f7 100644
--- a/backends/fs/symbian/symbian-fs.h
+++ b/backends/fs/symbian/symbian-fs.h
@@ -66,7 +66,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
};
#endif
diff --git a/backends/fs/wii/wii-fs.cpp b/backends/fs/wii/wii-fs.cpp
index c3fdbc0..3b276e9 100644
--- a/backends/fs/wii/wii-fs.cpp
+++ b/backends/fs/wii/wii-fs.cpp
@@ -213,7 +213,7 @@ Common::WriteStream *WiiFilesystemNode::createWriteStream() {
return StdioStream::makeFromPath(getPath(), true);
}
-bool WiiFilesystemNode::create(bool isDirectoryFlag) {
+bool WiiFilesystemNode::createDirectory() {
error("Not supported");
return false;
}
diff --git a/backends/fs/wii/wii-fs.h b/backends/fs/wii/wii-fs.h
index 491c8d1..7c04ee5 100644
--- a/backends/fs/wii/wii-fs.h
+++ b/backends/fs/wii/wii-fs.h
@@ -69,7 +69,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
};
#endif
diff --git a/backends/fs/windows/windows-fs.cpp b/backends/fs/windows/windows-fs.cpp
index caf0e31..e69e72a 100644
--- a/backends/fs/windows/windows-fs.cpp
+++ b/backends/fs/windows/windows-fs.cpp
@@ -134,6 +134,12 @@ WindowsFilesystemNode::WindowsFilesystemNode(const Common::String &p, const bool
_displayName = lastPathComponent(_path, '\\');
+ setFlags();
+
+ _isPseudoRoot = false;
+}
+
+void WindowsFilesystemNode::setFlags() {
// Check whether it is a directory, and whether the file actually exists
DWORD fileAttribs = GetFileAttributes(toUnicode(_path.c_str()));
@@ -148,7 +154,6 @@ WindowsFilesystemNode::WindowsFilesystemNode(const Common::String &p, const bool
_path += '\\';
}
}
- _isPseudoRoot = false;
}
AbstractFSNode *WindowsFilesystemNode::getChild(const Common::String &n) const {
@@ -244,36 +249,11 @@ Common::WriteStream *WindowsFilesystemNode::createWriteStream() {
return StdioStream::makeFromPath(getPath(), true);
}
-bool WindowsFilesystemNode::create(bool isDirectoryFlag) {
- bool success;
-
- if (isDirectoryFlag) {
- success = CreateDirectory(toUnicode(_path.c_str()), NULL) != 0;
- } else {
- success = CreateFile(toUnicode(_path.c_str()), GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) != INVALID_HANDLE_VALUE;
- }
-
- if (success) {
- //this piece is copied from constructor, it checks that file exists and detects whether it's a directory
- DWORD fileAttribs = GetFileAttributes(toUnicode(_path.c_str()));
- if (fileAttribs != INVALID_FILE_ATTRIBUTES) {
- _isDirectory = ((fileAttribs & FILE_ATTRIBUTE_DIRECTORY) != 0);
- _isValid = true;
- // Add a trailing slash, if necessary.
- if (_isDirectory && _path.lastChar() != '\\') {
- _path += '\\';
- }
-
- if (_isDirectory != isDirectoryFlag) warning("failed to create %s: got %s", isDirectoryFlag ? "directory" : "file", _isDirectory ? "directory" : "file");
- return _isDirectory == isDirectoryFlag;
- }
-
- warning("WindowsFilesystemNode: Create%s() was a success, but GetFileAttributes() indicates there is no such %s",
- isDirectoryFlag ? "Directory" : "File", isDirectoryFlag ? "directory" : "file");
- return false;
- }
+bool WindowsFilesystemNode::createDirectory() {
+ if (CreateDirectory(toUnicode(_path.c_str()), NULL) != 0)
+ setFlags();
- return false;
+ return _isValid && _isDirectory;
}
#endif //#ifdef WIN32
diff --git a/backends/fs/windows/windows-fs.h b/backends/fs/windows/windows-fs.h
index f907a4d..e2404da 100644
--- a/backends/fs/windows/windows-fs.h
+++ b/backends/fs/windows/windows-fs.h
@@ -84,7 +84,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream();
- virtual bool create(bool isDirectoryFlag);
+ virtual bool createDirectory();
private:
/**
@@ -114,6 +114,11 @@ private:
* @return str in Unicode format.
*/
static const TCHAR* toUnicode(const char *str);
+
+ /**
+ * Tests and sets the _isValid and _isDirectory flags, using the GetFileAttributes() function.
+ */
+ virtual void setFlags();
};
#endif
diff --git a/backends/networking/sdl_net/handlers/createdirectoryhandler.cpp b/backends/networking/sdl_net/handlers/createdirectoryhandler.cpp
index d315ad2..ad90c44 100644
--- a/backends/networking/sdl_net/handlers/createdirectoryhandler.cpp
+++ b/backends/networking/sdl_net/handlers/createdirectoryhandler.cpp
@@ -100,7 +100,7 @@ void CreateDirectoryHandler::handle(Client &client) {
}
} else {
// create the <directory_name> in <path>
- if (!node->create(true)) {
+ if (!node->createDirectory()) {
handleError(client, _("Failed to create the directory!"));
return;
}
diff --git a/backends/platform/dc/dc-fs.cpp b/backends/platform/dc/dc-fs.cpp
index a4d2675..bfed8a7 100644
--- a/backends/platform/dc/dc-fs.cpp
+++ b/backends/platform/dc/dc-fs.cpp
@@ -57,7 +57,7 @@ public:
virtual Common::SeekableReadStream *createReadStream();
virtual Common::WriteStream *createWriteStream() { return 0; }
- virtual bool create(bool isDirectoryFlag) { return false; }
+ virtual bool createDirectory() { return false; }
static AbstractFSNode *makeFileNodePath(const Common::String &path);
};
diff --git a/common/file.cpp b/common/file.cpp
index 0d760cb..6228c66 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -166,7 +166,7 @@ bool DumpFile::open(const String &filename, bool createPath) {
delete node;
continue;
}
- if (!node->create(true)) warning("DumpFile: unable to create directories from path prefix");
+ if (!node->createDirectory()) warning("DumpFile: unable to create directories from path prefix");
delete node;
}
}
Commit: db445bfc87600d0f87bdeeb8b3bf40a3a935f097
https://github.com/scummvm/scummvm/commit/db445bfc87600d0f87bdeeb8b3bf40a3a935f097
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2019-08-06T07:17:29+03:00
Commit Message:
BACKENDS: Improve AbstractFSNode::createDirectory() stubs
Changed paths:
backends/fs/amigaos4/amigaos4-fs.cpp
backends/fs/chroot/chroot-fs.cpp
backends/fs/ds/ds-fs.cpp
backends/fs/n64/n64-fs.cpp
backends/fs/ps2/ps2-fs.cpp
backends/fs/psp/psp-fs.cpp
backends/fs/symbian/symbian-fs.cpp
backends/fs/wii/wii-fs.cpp
backends/platform/dc/dc-fs.cpp
backends/platform/tizen/fs.cpp
backends/platform/tizen/fs.h
diff --git a/backends/fs/amigaos4/amigaos4-fs.cpp b/backends/fs/amigaos4/amigaos4-fs.cpp
index fa0ea14..3561303 100644
--- a/backends/fs/amigaos4/amigaos4-fs.cpp
+++ b/backends/fs/amigaos4/amigaos4-fs.cpp
@@ -444,8 +444,8 @@ Common::WriteStream *AmigaOSFilesystemNode::createWriteStream() {
}
bool AmigaOSFilesystemNode::createDirectory() {
- error("Not supported");
- return false;
+ warning("AmigaOSFilesystemNode::createDirectory(): Not supported");
+ return _bIsValid && _bIsDirectory;
}
#endif //defined(__amigaos4__)
diff --git a/backends/fs/chroot/chroot-fs.cpp b/backends/fs/chroot/chroot-fs.cpp
index 0fdd14c..bd1f93a 100644
--- a/backends/fs/chroot/chroot-fs.cpp
+++ b/backends/fs/chroot/chroot-fs.cpp
@@ -101,8 +101,7 @@ Common::WriteStream *ChRootFilesystemNode::createWriteStream() {
}
bool ChRootFilesystemNode::createDirectory() {
- error("Not supported");
- return false;
+ return _realNode->createDirectory();
}
Common::String ChRootFilesystemNode::addPathComponent(const Common::String &path, const Common::String &component) {
diff --git a/backends/fs/ds/ds-fs.cpp b/backends/fs/ds/ds-fs.cpp
index 8498a77..64430f3 100644
--- a/backends/fs/ds/ds-fs.cpp
+++ b/backends/fs/ds/ds-fs.cpp
@@ -212,8 +212,7 @@ Common::WriteStream *DSFileSystemNode::createWriteStream() {
}
bool DSFileSystemNode::createDirectory() {
- error("Not supported");
- return false;
+ return _isValid && _isDirectory;
}
//////////////////////////////////////////////////////////////////////////
@@ -399,8 +398,8 @@ Common::WriteStream *GBAMPFileSystemNode::createWriteStream() {
}
bool GBAMPFileSystemNode::createDirectory() {
- error("Not supported");
- return false;
+ warning("GBAMPFileSystemNode::createDirectory(): Not supported");
+ return _isValid && _isDirectory;
}
diff --git a/backends/fs/n64/n64-fs.cpp b/backends/fs/n64/n64-fs.cpp
index 4a21fb2..5049334 100644
--- a/backends/fs/n64/n64-fs.cpp
+++ b/backends/fs/n64/n64-fs.cpp
@@ -161,8 +161,7 @@ Common::WriteStream *N64FilesystemNode::createWriteStream() {
}
bool N64FilesystemNode::createDirectory() {
- error("Not supported");
- return false;
+ return _isValid && _isDirectory;
}
#endif //#ifdef __N64__
diff --git a/backends/fs/ps2/ps2-fs.cpp b/backends/fs/ps2/ps2-fs.cpp
index ec75f1e..80382d2 100644
--- a/backends/fs/ps2/ps2-fs.cpp
+++ b/backends/fs/ps2/ps2-fs.cpp
@@ -444,8 +444,8 @@ Common::WriteStream *Ps2FilesystemNode::createWriteStream() {
}
bool Ps2FilesystemNode::createDirectory() {
- error("Not supported");
- return false;
+ warning("Ps2FilesystemNode::createDirectory(): Not supported");
+ return _isHere && _isDirectory;
}
#endif
diff --git a/backends/fs/psp/psp-fs.cpp b/backends/fs/psp/psp-fs.cpp
index 01884de..e79d07d 100644
--- a/backends/fs/psp/psp-fs.cpp
+++ b/backends/fs/psp/psp-fs.cpp
@@ -240,8 +240,8 @@ Common::WriteStream *PSPFilesystemNode::createWriteStream() {
}
bool PSPFilesystemNode::createDirectory() {
- error("Not supported");
- return false;
+ warning("PSPFilesystemNode::createDirectory(): Not supported");
+ return _isValid && _isDirectory;
}
#endif //#ifdef __PSP__
diff --git a/backends/fs/symbian/symbian-fs.cpp b/backends/fs/symbian/symbian-fs.cpp
index 7759f32..96fa84a 100644
--- a/backends/fs/symbian/symbian-fs.cpp
+++ b/backends/fs/symbian/symbian-fs.cpp
@@ -233,8 +233,8 @@ Common::WriteStream *SymbianFilesystemNode::createWriteStream() {
}
bool SymbianFilesystemNode::createDirectory() {
- error("Not supported");
- return false;
+ warning("SymbianFilesystemNode::createDirectory(): Not supported");
+ return _isValid && _isDirectory;
}
#endif //#if defined(__SYMBIAN32__)
diff --git a/backends/fs/wii/wii-fs.cpp b/backends/fs/wii/wii-fs.cpp
index 3b276e9..c54cdef 100644
--- a/backends/fs/wii/wii-fs.cpp
+++ b/backends/fs/wii/wii-fs.cpp
@@ -214,8 +214,8 @@ Common::WriteStream *WiiFilesystemNode::createWriteStream() {
}
bool WiiFilesystemNode::createDirectory() {
- error("Not supported");
- return false;
+ warning("WiiFilesystemNode::createDirectory(): Not supported");
+ return _exists && _isDirectory;
}
#endif //#if defined(__WII__)
diff --git a/backends/platform/dc/dc-fs.cpp b/backends/platform/dc/dc-fs.cpp
index bfed8a7..43d9a9e 100644
--- a/backends/platform/dc/dc-fs.cpp
+++ b/backends/platform/dc/dc-fs.cpp
@@ -71,6 +71,7 @@ public:
virtual AbstractFSNode *getChild(const Common::String &n) const;
virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
virtual Common::SeekableReadStream *createReadStream() { return 0; }
+ virtual bool createDirectory() { return true; }
};
/* A file/directory which does not exist */
diff --git a/backends/platform/tizen/fs.cpp b/backends/platform/tizen/fs.cpp
index c6cd8f0..1827b7d 100644
--- a/backends/platform/tizen/fs.cpp
+++ b/backends/platform/tizen/fs.cpp
@@ -439,3 +439,8 @@ Common::WriteStream *TizenFilesystemNode::createWriteStream() {
}
return result;
}
+
+bool TizenFilesystemNode::createDirectory() {
+ warning("TizenFilesystemNode::createDirectory(): Not supported");
+ return _isValid && isDirectory();
+}
diff --git a/backends/platform/tizen/fs.h b/backends/platform/tizen/fs.h
index 8c1677f..1da226b 100644
--- a/backends/platform/tizen/fs.h
+++ b/backends/platform/tizen/fs.h
@@ -83,6 +83,7 @@ public:
Common::SeekableReadStream *createReadStream();
Common::WriteStream *createWriteStream();
+ bool createDirectory();
protected:
TizenFilesystemNode(const Common::String &root, const Common::String &p);
More information about the Scummvm-git-logs
mailing list