Skip to content

Commit

Permalink
Merge pull request #67 from muesli/windows-reset
Browse files Browse the repository at this point in the history
fix: don't abort on first encountered error when resetting Windows console
  • Loading branch information
kzys authored Mar 7, 2023
2 parents 65eb8c0 + 57c16e2 commit 56fb9de
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion console_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ func (m *master) SetRaw() error {
}

func (m *master) Reset() error {
var errs []error

for _, s := range []struct {
fd windows.Handle
mode uint32
Expand All @@ -103,10 +105,16 @@ func (m *master) Reset() error {
{m.err, m.errMode},
} {
if err := windows.SetConsoleMode(s.fd, s.mode); err != nil {
return fmt.Errorf("unable to restore console mode: %w", err)
// we can't just abort on the first error, otherwise we might leave
// the console in an unexpected state.
errs = append(errs, fmt.Errorf("unable to restore console mode: %w", err))
}
}

if len(errs) > 0 {
return errs[0]
}

return nil
}

Expand Down

0 comments on commit 56fb9de

Please sign in to comment.