about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuto Kawamura <kawamuray.dadada@gmail.com>2020-08-05 20:30:06 +0900
committerYuto Kawamura <kawamuray.dadada@gmail.com>2020-08-05 20:30:06 +0900
commit165a6e597e6991f18f9684b5aa7667ef4b6e3955 (patch)
tree3966d7fbe292db50270c4f764363ed06183eb96d
parent7f8ff84b510e3ff04865cfdd5ef95e677227e0c8 (diff)
downloadrust-165a6e597e6991f18f9684b5aa7667ef4b6e3955.tar.gz
rust-165a6e597e6991f18f9684b5aa7667ef4b6e3955.zip
Fix wasi::fs::OpenOptions to imply write when append is on
-rw-r--r--library/std/src/sys/wasi/fs.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/library/std/src/sys/wasi/fs.rs b/library/std/src/sys/wasi/fs.rs
index 6782d845bb0..8408756f1b3 100644
--- a/library/std/src/sys/wasi/fs.rs
+++ b/library/std/src/sys/wasi/fs.rs
@@ -46,6 +46,7 @@ pub struct DirEntry {
 pub struct OpenOptions {
     read: bool,
     write: bool,
+    append: bool,
     dirflags: wasi::Lookupflags,
     fdflags: wasi::Fdflags,
     oflags: wasi::Oflags,
@@ -270,8 +271,9 @@ impl OpenOptions {
         }
     }
 
-    pub fn append(&mut self, set: bool) {
-        self.fdflag(wasi::FDFLAGS_APPEND, set);
+    pub fn append(&mut self, append: bool) {
+        self.append = append;
+        self.fdflag(wasi::FDFLAGS_APPEND, append);
     }
 
     pub fn dsync(&mut self, set: bool) {
@@ -321,7 +323,7 @@ impl OpenOptions {
             base |= wasi::RIGHTS_FD_READ;
             base |= wasi::RIGHTS_FD_READDIR;
         }
-        if self.write {
+        if self.write || self.append {
             base |= wasi::RIGHTS_FD_WRITE;
             base |= wasi::RIGHTS_FD_DATASYNC;
             base |= wasi::RIGHTS_FD_ALLOCATE;