diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/main.rs b/src/main.rs index dffbfff..789ed46 100644 --- a/src/main.rs +++ b/src/main.rs @@ -80,9 +80,8 @@ trait View { struct Mark; impl View for Mark { fn run(&self, bk: &mut Bk, kc: KeyCode) { - match kc { - KeyCode::Char(c) => bk.mark(c), - _ => (), + if let KeyCode::Char(c) = kc { + bk.mark(c) } bk.view = Some(&Page) } @@ -94,9 +93,8 @@ impl View for Mark { struct Jump; impl View for Jump { fn run(&self, bk: &mut Bk, kc: KeyCode) { - match kc { - KeyCode::Char(c) => bk.jump(c), - _ => (), + if let KeyCode::Char(c) = kc { + bk.jump(c) } bk.view = Some(&Page); } @@ -377,7 +375,13 @@ impl Bk<'_> { } Bk { - line: min(args.line, chapters[args.chapter].lines.len().saturating_sub(rows as usize)), + line: min( + args.line, + chapters[args.chapter] + .lines + .len() + .saturating_sub(rows as usize), + ), chapters, chapter: args.chapter, mark: HashMap::new(), @@ -530,7 +534,11 @@ struct Props { fn restore(save_path: &str) -> Option<(String, Props)> { let args: Args = argh::from_env(); let width = args.width; - let path = args.path.map(|s| fs::canonicalize(s).unwrap().to_str().unwrap().to_string()); + // XXX we shouldn't panic, but it gives a useful error, and we + // don't want to load the saved path if an invalid path is given + let path = args + .path + .map(|s| fs::canonicalize(s).unwrap().to_str().unwrap().to_string()); let save = fs::read_to_string(save_path).and_then(|s| { let mut lines = s.lines(); Ok(( |