Commit 45db0937 authored by Ben Boeckel's avatar Ben Boeckel
Browse files

SystemTools: use PathExists where appropriate

The `Touch` method should care about existence and directory creation
should also be guarded against unreadable paths as well. In addition,
fix a path existence check which should have been updated before.
parent 95a7e234
......@@ -763,7 +763,7 @@ bool SystemTools::MakeDirectory(const char* path)
bool SystemTools::MakeDirectory(const std::string& path)
if (SystemTools::FileExists(path)) {
if (SystemTools::PathExists(path)) {
return SystemTools::FileIsDirectory(path);
if (path.empty()) {
......@@ -1280,7 +1280,7 @@ bool SystemTools::PathCygwinToWin32(const char* path, char* win32_path)
bool SystemTools::Touch(const std::string& filename, bool create)
if (!SystemTools::FileExists(filename)) {
if (!SystemTools::PathExists(filename)) {
if (create) {
FILE* file = Fopen(filename, "a+b");
if (file) {
......@@ -4389,10 +4389,7 @@ bool SystemTools::SetPermissions(const char* file, mode_t mode,
bool SystemTools::SetPermissions(const std::string& file, mode_t mode,
bool honor_umask)
// TEMPORARY / TODO: After FileExists calls lstat() instead of
// access(), change this call to FileExists instead of
// TestFileAccess so that we don't follow symlinks.
if (!SystemTools::TestFileAccess(file, TEST_FILE_OK)) {
if (!SystemTools::PathExists(file)) {
return false;
if (honor_umask) {
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment