Skip to content

Commit

Permalink
Exit gracefully when close operation fails (#4081)
Browse files Browse the repository at this point in the history
If the close method fails, the editor will quit before restoring the
terminal. This causes the shell to break if, e.g. the LS times out
shutting down.

This fixes this by always restoring the terminal after closing, and
printing out a message to stderr if there is an error.
  • Loading branch information
dead10ck committed Oct 3, 2022
1 parent 6cca737 commit 27b7069
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion helix-term/src/application.rs
Original file line number Diff line number Diff line change
Expand Up @@ -870,9 +870,16 @@ impl Application {
}));

self.event_loop(input_stream).await;
self.close().await?;

let err = self.close().await.err();

restore_term()?;

if let Some(err) = err {
self.editor.exit_code = 1;
eprintln!("Error: {}", err);
}

Ok(self.editor.exit_code)
}

Expand Down

0 comments on commit 27b7069

Please sign in to comment.