API change Path::isSpecialFile to Path::isRegularFile, improve semantics in regards to comments from 89765 post review.

llvm-svn: 89848
This commit is contained in:
Edward O'Callaghan 2009-11-25 06:32:19 +00:00
parent 2cb3662a53
commit 43864a3136
3 changed files with 14 additions and 10 deletions

View File

@ -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

View File

@ -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

View File

@ -358,8 +358,10 @@ Path::canExecute() const {
}
bool
Path::isSpecialFile() const {
return false;
Path::isRegularFile() const {
if (isDirectory())
return false;
return true;
}
std::string