diff options
| author | Yuto Kawamura <kawamuray.dadada@gmail.com> | 2020-08-05 20:30:06 +0900 |
|---|---|---|
| committer | Yuto Kawamura <kawamuray.dadada@gmail.com> | 2020-08-05 20:30:06 +0900 |
| commit | 165a6e597e6991f18f9684b5aa7667ef4b6e3955 (patch) | |
| tree | 3966d7fbe292db50270c4f764363ed06183eb96d | |
| parent | 7f8ff84b510e3ff04865cfdd5ef95e677227e0c8 (diff) | |
| download | rust-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.rs | 8 |
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; |
