1
1
mirror of https://github.com/walles/moar.git synced 2024-10-05 16:07:54 +03:00

Make Windows screen shutdown more robust

Relates to <https://github.com/walles/moar/issues/217>
This commit is contained in:
Johan Walles 2024-06-29 13:31:21 +02:00
parent 831c894e69
commit b2b69852e2
2 changed files with 13 additions and 3 deletions

View File

@ -64,17 +64,23 @@ func (screen *UnixScreen) setupTtyInTtyOut() error {
}
func (screen *UnixScreen) restoreTtyInTtyOut() error {
errors := []error{}
stdin := windows.Handle(screen.ttyIn.Fd())
err := windows.SetConsoleMode(stdin, screen.oldTtyInMode)
if err != nil {
return err
errors = append(errors, fmt.Errorf("failed to restore stdin console mode: %w", err))
}
stdout := windows.Handle(screen.ttyOut.Fd())
err = windows.SetConsoleMode(stdout, screen.oldTtyOutMode)
if err != nil {
return err
errors = append(errors, fmt.Errorf("failed to restore stdout console mode: %w", err))
}
return nil
if len(errors) == 0 {
return nil
}
return fmt.Errorf("failed to restore terminal state: %v", errors)
}

View File

@ -353,6 +353,10 @@ func (screen *UnixScreen) ShowCursorAt(column int, row int) {
}
func (screen *UnixScreen) mainLoop() {
defer func() {
log.Debug("Twin screen main loop done")
}()
// "1400" comes from me trying fling scroll operations on my MacBook
// trackpad and looking at the high watermark (logged below).
//