summaryrefslogtreecommitdiff
path: root/vendor/github.com/Azure/go-ansiterm/winterm/ansi.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Azure/go-ansiterm/winterm/ansi.go')
-rw-r--r--vendor/github.com/Azure/go-ansiterm/winterm/ansi.go24
1 files changed, 19 insertions, 5 deletions
diff --git a/vendor/github.com/Azure/go-ansiterm/winterm/ansi.go b/vendor/github.com/Azure/go-ansiterm/winterm/ansi.go
index a67327972..5599082ae 100644
--- a/vendor/github.com/Azure/go-ansiterm/winterm/ansi.go
+++ b/vendor/github.com/Azure/go-ansiterm/winterm/ansi.go
@@ -10,6 +10,7 @@ import (
"syscall"
"github.com/Azure/go-ansiterm"
+ windows "golang.org/x/sys/windows"
)
// Windows keyboard constants
@@ -162,15 +163,28 @@ func ensureInRange(n int16, min int16, max int16) int16 {
func GetStdFile(nFile int) (*os.File, uintptr) {
var file *os.File
- switch nFile {
- case syscall.STD_INPUT_HANDLE:
+
+ // syscall uses negative numbers
+ // windows package uses very big uint32
+ // Keep these switches split so we don't have to convert ints too much.
+ switch uint32(nFile) {
+ case windows.STD_INPUT_HANDLE:
file = os.Stdin
- case syscall.STD_OUTPUT_HANDLE:
+ case windows.STD_OUTPUT_HANDLE:
file = os.Stdout
- case syscall.STD_ERROR_HANDLE:
+ case windows.STD_ERROR_HANDLE:
file = os.Stderr
default:
- panic(fmt.Errorf("Invalid standard handle identifier: %v", nFile))
+ switch nFile {
+ case syscall.STD_INPUT_HANDLE:
+ file = os.Stdin
+ case syscall.STD_OUTPUT_HANDLE:
+ file = os.Stdout
+ case syscall.STD_ERROR_HANDLE:
+ file = os.Stderr
+ default:
+ panic(fmt.Errorf("Invalid standard handle identifier: %v", nFile))
+ }
}
fd, err := syscall.GetStdHandle(nFile)