summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/System/Path.h8
-rw-r--r--lib/System/Unix/Path.inc10
-rw-r--r--lib/System/Win32/Path.inc6
3 files changed, 14 insertions, 10 deletions
diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h
index 04dba1db3e..7edd5c0820 100644
--- a/include/llvm/System/Path.h
+++ b/include/llvm/System/Path.h
@@ -380,10 +380,12 @@ namespace sys {
/// in the file system.
bool canWrite() const;
- /// This function checks that what we're trying to work only on a regular file or directory.
- /// Check for things like /dev/null, any block special file,
+ /// This function checks that what we're trying to work only on a regular file
+ /// or directory. Check for things like /dev/null, any block special file,
/// or other things that aren't "regular" regular files or directories.
- bool isSpecialFile() const;
+ /// @returns true if the file is S_ISREG.
+ /// @brief Determines if the file is a regular file
+ bool isRegularFile() const;
/// This function determines if the path name references an executable
/// file in the file system. This function checks for the existence and
diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc
index 8dd76a7412..4300d6719b 100644
--- a/lib/System/Unix/Path.inc
+++ b/lib/System/Unix/Path.inc
@@ -454,17 +454,17 @@ Path::canWrite() const {
}
bool
-Path::isSpecialFile() const {
+Path::isRegularFile() const {
// Get the status so we can determine if its a file or directory
struct stat buf;
if (0 != stat(path.c_str(), &buf))
- return true;
-
- if (S_ISDIR(buf.st_mode) || S_ISREG(buf.st_mode))
return false;
- return true;
+ if (S_ISREG(buf.st_mode))
+ return true;
+
+ return false;
}
bool
diff --git a/lib/System/Win32/Path.inc b/lib/System/Win32/Path.inc
index 9adeca2410..634fbc7650 100644
--- a/lib/System/Win32/Path.inc
+++ b/lib/System/Win32/Path.inc
@@ -358,8 +358,10 @@ Path::canExecute() const {
}
bool
-Path::isSpecialFile() const {
- return false;
+Path::isRegularFile() const {
+ if (isDirectory())
+ return false;
+ return true;
}
std::string