aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/file.cpp14
-rw-r--r--common/fs.cpp6
-rw-r--r--common/fs.h5
-rw-r--r--common/md5.cpp9
4 files changed, 16 insertions, 18 deletions
diff --git a/common/file.cpp b/common/file.cpp
index c04c579535..0df575ac82 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -364,13 +364,19 @@ bool File::open(const String &filename, AccessMode mode) {
bool File::open(const FilesystemNode &node, AccessMode mode) {
assert(mode == kFileReadMode || mode == kFileWriteMode);
- if (!node.isValid()) {
- warning("File::open: Trying to open an invalid FilesystemNode object");
+ if (!node.exists()) {
+ warning("File::open: Trying to open a FilesystemNode which does not exist");
return false;
} else if (node.isDirectory()) {
warning("File::open: Trying to open a FilesystemNode which is a directory");
return false;
- }
+ } /*else if (!node.isReadable() && mode == kFileReadMode) {
+ warning("File::open: Trying to open an unreadable FilesystemNode object for reading");
+ return false;
+ } else if (!node.isWritable() && mode == kFileWriteMode) {
+ warning("File::open: Trying to open an unwritable FilesystemNode object for writing");
+ return false;
+ }*/
String filename(node.getName());
@@ -409,7 +415,7 @@ bool File::exists(const String &filename) {
// FIXME: can't use isValid() here since at the time of writing
// FilesystemNode is to be unable to find for example files
// added in extrapath
- if (file.isDirectory())
+ if (file.isDirectory() && !file.exists())
return false;
// Next, try to locate the file by *opening* it in read mode. This has
diff --git a/common/fs.cpp b/common/fs.cpp
index fdc485a06f..fc091262d7 100644
--- a/common/fs.cpp
+++ b/common/fs.cpp
@@ -161,12 +161,6 @@ bool FilesystemNode::isReadable() const {
return _realNode->isReadable();
}
-bool FilesystemNode::isValid() const {
- if (_realNode == 0)
- return false;
- return _realNode->isValid();
-}
-
bool FilesystemNode::isWritable() const {
if (_realNode == 0)
return false;
diff --git a/common/fs.h b/common/fs.h
index 6b0a587e1b..328bebb15b 100644
--- a/common/fs.h
+++ b/common/fs.h
@@ -194,11 +194,6 @@ public:
virtual bool isReadable() const;
/**
- * Indicates whether this path is valid or not for usage.
- */
- bool isValid() const;
-
- /**
* Indicates whether this path can be written to or not.
*/
virtual bool isWritable() const;
diff --git a/common/md5.cpp b/common/md5.cpp
index 35fbe0b9ab..32acdc5b8c 100644
--- a/common/md5.cpp
+++ b/common/md5.cpp
@@ -246,11 +246,14 @@ void md5_finish(md5_context *ctx, uint8 digest[16]) {
}
bool md5_file(const FilesystemNode &file, uint8 digest[16], uint32 length) {
- if (!file.isValid()) {
- warning("md5_file: using an invalid FilesystemNode");
+ if(!file.exists()) {
+ warning("md5_file: using an inexistent FilesystemNode");
+ return false;
+ } else if (!file.isReadable()) {
+ warning("md5_file: using an unreadable FilesystemNode");
return false;
} else if (file.isDirectory()) {
- warning("md5_file: using a diretory FilesystemNode");
+ warning("md5_file: using a directory FilesystemNode");
return false;
}