summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-03-20 00:35:31 +0100
committerrabite <rabite@posteo.de>2019-03-20 00:35:31 +0100
commitc2297ab4945d010d4106d35a34ec83314891c34f (patch)
tree23fbbc280aaf62a7e7fa0994430405deb4b3ecc8
parente36ddf34b4ede92e88c31207c114bea9c0a67f6d (diff)
exit correctly (status code/terminal)
-rw-r--r--src/main.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index 3973908..7cd144b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -56,7 +56,7 @@ mod dirty;
use widget::{Widget, WidgetCore};
use term::ScreenExt;
-use fail::HResult;
+use fail::{HResult, HError};
use file_browser::FileBrowser;
use tabview::TabView;
@@ -69,6 +69,10 @@ fn main() -> HResult<()> {
match run(core.clone()) {
Ok(_) => Ok(()),
+ Err(HError::Quit) => {
+ core.screen.drop_screen();
+ return Ok(())
+ },
Err(err) => {
core.screen.drop_screen();
eprintln!("{:?}\n{:?}", err, err.cause());
@@ -78,6 +82,8 @@ fn main() -> HResult<()> {
}
fn run(mut core: WidgetCore) -> HResult<()> {
+ core.screen.clear()?;
+
let filebrowser = FileBrowser::new_cored(&core)?;
let mut tabview = TabView::new(&core);
tabview.push_widget(filebrowser)?;