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() {