about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2017-08-15 09:42:11 -0400
committerCorey Farwell <coreyf@rwell.org>2017-08-15 09:42:11 -0400
commit1949c6599d7d088eca6893f1c118b05e5c5d1679 (patch)
tree63ddeb61a14824e2d163db3e9df457a36d1fdaa6 /src/libstd/sys
parentc774c9591959edc9aa098e5ff7fc4be2e4a12c09 (diff)
downloadrust-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.rs8
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;
         }
     }