Exit gracefully when close operation fails (#4081)
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.
This commit is contained in:
parent
6cca7375ec
commit
27b70696df
1 changed files with 8 additions and 1 deletions
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue