aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpg9182 <96569817+pg9182@users.noreply.github.com>2023-02-22 12:40:30 -0500
committerpg9182 <96569817+pg9182@users.noreply.github.com>2023-02-22 12:40:30 -0500
commit65515ba923039b2a4c84e34822fd7c9e4911786d (patch)
tree585072a1fe54d1d0e2b8ab18bef1e4c622dad028
parent6c29477f03a7432bf0eb5116050be405e0b2a996 (diff)
downloadAtlas-65515ba923039b2a4c84e34822fd7c9e4911786d.tar.gz
Atlas-65515ba923039b2a4c84e34822fd7c9e4911786d.zip
cmd/atlas: Disable console quick-edit on Windows
This prevents selecting text from freezing the server.
-rw-r--r--cmd/atlas/main_windows.go20
-rw-r--r--go.mod2
2 files changed, 21 insertions, 1 deletions
diff --git a/cmd/atlas/main_windows.go b/cmd/atlas/main_windows.go
new file mode 100644
index 0000000..a6a1912
--- /dev/null
+++ b/cmd/atlas/main_windows.go
@@ -0,0 +1,20 @@
+//go:build windows
+
+package main
+
+import (
+ "os"
+
+ "golang.org/x/sys/windows"
+)
+
+func init() {
+ con := windows.Handle(os.Stdin.Fd())
+
+ var mode uint32
+ if err := windows.GetConsoleMode(con, &mode); err == nil {
+ mode |= windows.ENABLE_EXTENDED_FLAGS
+ mode &^= windows.ENABLE_QUICK_EDIT_MODE
+ _ = windows.SetConsoleMode(con, mode)
+ }
+}
diff --git a/go.mod b/go.mod
index ac6b659..6fe4ff1 100644
--- a/go.mod
+++ b/go.mod
@@ -16,6 +16,7 @@ require (
github.com/spf13/pflag v1.0.5
golang.org/x/mod v0.7.0
golang.org/x/net v0.2.0
+ golang.org/x/sys v0.2.0
)
require (
@@ -25,5 +26,4 @@ require (
github.com/rs/xid v1.4.0 // indirect
github.com/valyala/fastrand v1.1.0 // indirect
github.com/valyala/histogram v1.2.0 // indirect
- golang.org/x/sys v0.2.0 // indirect
)