mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-12-29 10:36:31 +00:00
1e7b32490d
This allows for building GoToSocial with [SQLite transpiled to WASM](https://github.com/ncruces/go-sqlite3) and accessed through [Wazero](https://wazero.io/).
25 lines
589 B
Go
25 lines
589 B
Go
package sysfs
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/tetratelabs/wazero/experimental/sys"
|
|
)
|
|
|
|
func adjustReaddirErr(f sys.File, isClosed bool, err error) sys.Errno {
|
|
if err == io.EOF {
|
|
return 0 // e.g. Readdir on darwin returns io.EOF, but linux doesn't.
|
|
} else if errno := sys.UnwrapOSError(err); errno != 0 {
|
|
errno = dirError(f, isClosed, errno)
|
|
// Comply with errors allowed on sys.File Readdir
|
|
switch errno {
|
|
case sys.EINVAL: // os.File Readdir can return this
|
|
return sys.EBADF
|
|
case sys.ENOTDIR: // dirError can return this
|
|
return sys.EBADF
|
|
}
|
|
return errno
|
|
}
|
|
return 0
|
|
}
|