diff options
| author | Corey Farwell <coreyf@rwell.org> | 2017-08-15 09:42:11 -0400 |
|---|---|---|
| committer | Corey Farwell <coreyf@rwell.org> | 2017-08-15 09:42:11 -0400 |
| commit | 1949c6599d7d088eca6893f1c118b05e5c5d1679 (patch) | |
| tree | 63ddeb61a14824e2d163db3e9df457a36d1fdaa6 /src/libstd/sys | |
| parent | c774c9591959edc9aa098e5ff7fc4be2e4a12c09 (diff) | |
| download | rust-1949c6599d7d088eca6893f1c118b05e5c5d1679.tar.gz rust-1949c6599d7d088eca6893f1c118b05e5c5d1679.zip | |
Add comments clarifying behavior of unix `set_readonly` behavior.
Diffstat (limited to 'src/libstd/sys')
| -rw-r--r-- | src/libstd/sys/unix/fs.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libstd/sys/unix/fs.rs b/src/libstd/sys/unix/fs.rs index 4e6fde5c29d..cb0f687e072 100644 --- a/src/libstd/sys/unix/fs.rs +++ b/src/libstd/sys/unix/fs.rs @@ -170,11 +170,17 @@ impl AsInner<stat64> for FileAttr { } impl FilePermissions { - pub fn readonly(&self) -> bool { self.mode & 0o222 == 0 } + pub fn readonly(&self) -> bool { + // check if any class (owner, group, others) has write permission + self.mode & 0o222 == 0 + } + pub fn set_readonly(&mut self, readonly: bool) { if readonly { + // remove write permission for all classes; equivalent to `chmod a-w <file>` self.mode &= !0o222; } else { + // add write permission for all classes; equivalent to `chmod a+w <file>` self.mode |= 0o222; } } |
