From 394ffd886032f79982f56b6c692d2f782b6bdfe2 Mon Sep 17 00:00:00 2001 From: Icemap Date: Sat, 11 Nov 2023 00:16:29 +0800 Subject: [PATCH 1/2] feat: cwriter for wasm --- cwriter/util_wasm.go | 6 ++++++ cwriter/writer_posix.go | 2 +- cwriter/writer_wasm.go | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 cwriter/util_wasm.go create mode 100644 cwriter/writer_wasm.go diff --git a/cwriter/util_wasm.go b/cwriter/util_wasm.go new file mode 100644 index 00000000..8653efca --- /dev/null +++ b/cwriter/util_wasm.go @@ -0,0 +1,6 @@ +//go:build wasm || js + +package cwriter + +// There is no ioctl on wasm, so we just use a dummy value. +const ioctlReadTermios = unix.TIOCGETA diff --git a/cwriter/writer_posix.go b/cwriter/writer_posix.go index e80d757a..3b900156 100644 --- a/cwriter/writer_posix.go +++ b/cwriter/writer_posix.go @@ -1,4 +1,4 @@ -//go:build !windows +//go:build !windows && !js && !wasm package cwriter diff --git a/cwriter/writer_wasm.go b/cwriter/writer_wasm.go new file mode 100644 index 00000000..76bb8366 --- /dev/null +++ b/cwriter/writer_wasm.go @@ -0,0 +1,21 @@ +//go:build js || wasm + +package cwriter + +// We can not use writer in wasm, so we just use a dummy value. +type Writer struct { +} + +func (w *Writer) Flush(lines int) error { + return nil +} + +// GetSize returns the dimensions of the given terminal. +func GetSize(fd int) (width, height int, err error) { + return 0, 0, nil +} + +// IsTerminal returns whether the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + return true +} From 6d52d294e3038e94e8f64800808f53d39fa7e74d Mon Sep 17 00:00:00 2001 From: Icemap Date: Sat, 11 Nov 2023 00:28:54 +0800 Subject: [PATCH 2/2] fix: ioctl number --- cwriter/util_wasm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cwriter/util_wasm.go b/cwriter/util_wasm.go index 8653efca..11dfb552 100644 --- a/cwriter/util_wasm.go +++ b/cwriter/util_wasm.go @@ -3,4 +3,4 @@ package cwriter // There is no ioctl on wasm, so we just use a dummy value. -const ioctlReadTermios = unix.TIOCGETA +const ioctlReadTermios = 0