File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -94,6 +94,8 @@ func (m *master) SetRaw() error {
9494}
9595
9696func (m * master ) Reset () error {
97+ var errs []error
98+
9799 for _ , s := range []struct {
98100 fd windows.Handle
99101 mode uint32
@@ -103,10 +105,16 @@ func (m *master) Reset() error {
103105 {m .err , m .errMode },
104106 } {
105107 if err := windows .SetConsoleMode (s .fd , s .mode ); err != nil {
106- return fmt .Errorf ("unable to restore console mode: %w" , err )
108+ // we can't just abort on the first error, otherwise we might leave
109+ // the console in an unexpected state.
110+ errs = append (errs , fmt .Errorf ("unable to restore console mode: %w" , err ))
107111 }
108112 }
109113
114+ if len (errs ) > 0 {
115+ return errs [0 ]
116+ }
117+
110118 return nil
111119}
112120
You can’t perform that action at this time.
0 commit comments