From 965c0aa3446da87b84c5db656b1cc3ce6e4a691b Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Thu, 11 Jan 2024 18:53:20 -0800 Subject: Do a little more to handle errors. --- src/main.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index c5ea852..7b9b477 100644 --- a/src/main.rs +++ b/src/main.rs @@ -155,7 +155,12 @@ impl State { let line = self.line(); write!(stdout(), "\x1b[{}H\x1b[K", self.cursor_row + 1)?; line.slice(0, self.line_offset).print(&mut stdout())?; - let (_, col) = term::cursor_pos(stdin)?; + let Ok((_, col)) = term::cursor_pos(stdin) else { + let _ = line + .slice(self.line_offset, line.len()) + .print(&mut stdout()); + return Err(Box::from("cursor_pos")); + }; if col == size.ws_col - 1 { self.cursor_col = col - 1; write!(stdout(), "\x1b[D\x1b[K")?; @@ -535,6 +540,7 @@ fn edit(file: &OsStr) -> Result<(), String> { }; let Ok(ok) = state.keypress(&mut stdin, key) else { state.need_repaint_screen = true; + let _ = stdout().flush(); continue; }; // I miss "do while" so much... -- cgit v1.3.1