Fix wasi::fs::OpenOptions to imply write when append is on
This commit is contained in:
parent
7f8ff84b51
commit
165a6e597e
@ -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 @@ fn oflag(&mut self, bit: wasi::Oflags, set: bool) {
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ fn rights_base(&self) -> wasi::Rights {
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user