Remove Path::getDirectoryContents.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184311 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2013-06-19 15:32:37 +00:00
parent 8fe960ed50
commit 7c8397081c
3 changed files with 0 additions and 88 deletions

View File

@ -17,7 +17,6 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/TimeValue.h"
#include <set>
#include <string>
#include <vector>
@ -263,15 +262,6 @@ namespace sys {
/// @brief Determines if the file is a regular file
bool isRegularFile() const;
/// This function builds a list of paths that are the names of the
/// files and directories in a directory.
/// @returns true if an error occurs, true otherwise
/// @brief Build a list of directory's contents.
bool getDirectoryContents(
std::set<Path> &paths, ///< The resulting list of file & directory names
std::string* ErrMsg ///< Optional place to return an error message.
) const;
/// @}
/// @name Path Mutators
/// @{

View File

@ -389,36 +389,6 @@ bool Path::makeWriteableOnDisk(std::string* ErrMsg) {
return false;
}
bool
Path::getDirectoryContents(std::set<Path>& result, std::string* ErrMsg) const {
DIR* direntries = ::opendir(path.c_str());
if (direntries == 0)
return MakeErrMsg(ErrMsg, path + ": can't open directory");
std::string dirPath = path;
if (!lastIsSlash(dirPath))
dirPath += '/';
result.clear();
struct dirent* de = ::readdir(direntries);
for ( ; de != 0; de = ::readdir(direntries)) {
if (de->d_name[0] != '.') {
Path aPath(dirPath + (const char*)de->d_name);
struct stat st;
if (0 != lstat(aPath.path.c_str(), &st)) {
if (S_ISLNK(st.st_mode))
continue; // dangling symlink -- ignore
return MakeErrMsg(ErrMsg,
aPath.path + ": can't determine file object type");
}
result.insert(aPath);
}
}
closedir(direntries);
return false;
}
bool
Path::set(StringRef a_path) {
if (a_path.empty())

View File

@ -301,54 +301,6 @@ bool Path::makeWriteableOnDisk(std::string* ErrMsg) {
return false;
}
bool
Path::getDirectoryContents(std::set<Path>& result, std::string* ErrMsg) const {
WIN32_FILE_ATTRIBUTE_DATA fi;
if (!GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi)) {
MakeErrMsg(ErrMsg, path + ": can't get status of file");
return true;
}
if (!(fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
if (ErrMsg)
*ErrMsg = path + ": not a directory";
return true;
}
result.clear();
WIN32_FIND_DATA fd;
std::string searchpath = path;
if (path.size() == 0 || searchpath[path.size()-1] == '/')
searchpath += "*";
else
searchpath += "/*";
HANDLE h = FindFirstFile(searchpath.c_str(), &fd);
if (h == INVALID_HANDLE_VALUE) {
if (GetLastError() == ERROR_FILE_NOT_FOUND)
return true; // not really an error, now is it?
MakeErrMsg(ErrMsg, path + ": Can't read directory: ");
return true;
}
do {
if (fd.cFileName[0] == '.')
continue;
Path aPath(path);
aPath.appendComponent(&fd.cFileName[0]);
result.insert(aPath);
} while (FindNextFile(h, &fd));
DWORD err = GetLastError();
FindClose(h);
if (err != ERROR_NO_MORE_FILES) {
SetLastError(err);
MakeErrMsg(ErrMsg, path + ": Can't read directory: ");
return true;
}
return false;
}
bool
Path::set(StringRef a_path) {
if (a_path.empty())