Fix debugprintln to forwarded stdio implementation

This commit is contained in:
Kovid Goyal
2023-07-24 15:49:18 +05:30
parent d46590c2e6
commit c8f35019f0

View File

@@ -340,16 +340,22 @@ func (self *Term) GetSize() (*unix.Winsize, error) {
// go doesn't have a wrapper for ctermid() // go doesn't have a wrapper for ctermid()
func Ctermid() string { return "/dev/tty" } func Ctermid() string { return "/dev/tty" }
func DebugPrintln(a ...any) { var KittyStdout = utils.Once(func() *os.File {
if fds := os.Getenv(`KITTY_STDIO_FORWARDED`); fds != "" { if fds := os.Getenv(`KITTY_STDIO_FORWARDED`); fds != "" {
if fd, err := strconv.Atoi(fds); err == nil && fd > -1 { if fd, err := strconv.Atoi(fds); err == nil && fd > -1 {
if f := os.NewFile(uintptr(fd), "<kitty_stdout>"); f != nil { if f := os.NewFile(uintptr(fd), "<kitty_stdout>"); f != nil {
return f
}
}
}
return nil
})
func DebugPrintln(a ...any) {
if f := KittyStdout(); f != nil {
fmt.Fprintln(f, a...) fmt.Fprintln(f, a...)
f.Close()
return return
} }
}
}
term, err := OpenControllingTerm() term, err := OpenControllingTerm()
if err == nil { if err == nil {
defer term.Close() defer term.Close()