From 24d9d502b111e59fd8c49ff0114a6514e243e3e0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 29 Oct 2023 08:24:08 +0530 Subject: [PATCH] Set window title when showing errors --- tools/cmd/show_error/main.go | 1 + tools/tui/loop/api.go | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/cmd/show_error/main.go b/tools/cmd/show_error/main.go index d6c0fefbf..b9822b207 100644 --- a/tools/cmd/show_error/main.go +++ b/tools/cmd/show_error/main.go @@ -42,6 +42,7 @@ func main(args []string, opts *Options) (rc int, err error) { f := markup.New(true) if opts.Title != "" { fmt.Println(f.Err(opts.Title)) + fmt.Println(loop.EscapeCodeToSetWindowTitle(opts.Title)) fmt.Println() } fmt.Println(m.Msg) diff --git a/tools/tui/loop/api.go b/tools/tui/loop/api.go index 3a06f97a4..31e896d11 100644 --- a/tools/tui/loop/api.go +++ b/tools/tui/loop/api.go @@ -404,10 +404,13 @@ func (self *Loop) AllowLineWrapping(allow bool) { } } +func EscapeCodeToSetWindowTitle(title string) string { + title = wcswidth.StripEscapeCodes(title) + return "\033]2;" + title + "\033\\" +} + func (self *Loop) SetWindowTitle(title string) { - title = strings.ReplaceAll(title, "\033", "") - title = strings.ReplaceAll(title, "\x9c", "") - self.QueueWriteString("\033]2;" + title + "\033\\") + self.QueueWriteString(EscapeCodeToSetWindowTitle(title)) } func (self *Loop) ClearScreen() {