diff options
Diffstat (limited to 'lib/System/Unix')
-rw-r--r-- | lib/System/Unix/Path.inc | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc index b1e51b0..db7f4c6 100644 --- a/lib/System/Unix/Path.inc +++ b/lib/System/Unix/Path.inc @@ -390,19 +390,28 @@ static bool AddPermissionBits(const Path &File, int bits) { return true; } -void Path::makeReadableOnDisk() { - if (!AddPermissionBits(*this, 0444)) - ThrowErrno(path + ": can't make file readable"); +bool Path::makeReadableOnDisk(std::string* ErrMsg) { + if (!AddPermissionBits(*this, 0444)) { + MakeErrMsg(ErrMsg, path + ": can't make file readable"); + return true; + } + return false; } -void Path::makeWriteableOnDisk() { - if (!AddPermissionBits(*this, 0222)) - ThrowErrno(path + ": can't make file writable"); +bool Path::makeWriteableOnDisk(std::string* ErrMsg) { + if (!AddPermissionBits(*this, 0222)) { + MakeErrMsg(ErrMsg, path + ": can't make file writable"); + return true; + } + return false; } -void Path::makeExecutableOnDisk() { - if (!AddPermissionBits(*this, 0111)) - ThrowErrno(path + ": can't make file executable"); +bool Path::makeExecutableOnDisk(std::string* ErrMsg) { + if (!AddPermissionBits(*this, 0111)) { + MakeErrMsg(ErrMsg, path + ": can't make file executable"); + return true; + } + return false; } bool |