From 0f01c2aa5cca178ca2c46e512931302b069886af Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Thu, 11 Jan 2024 19:08:29 -0800 Subject: Don't call read immediately in cursor_pos. I forgot that read can block. We actually don't want cursor_pos to block for user input before querying, since it will fail nearly every time. It did give me a good opportunity to test the error handling though. --- src/term.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src') diff --git a/src/term.rs b/src/term.rs index d77a8f6..54b241c 100644 --- a/src/term.rs +++ b/src/term.rs @@ -109,8 +109,7 @@ pub fn read_key(stdin: &mut BufReader) -> Result> { // cursor_pos *WILL* fail if the user is typing on the keyboard. Be sure to handle // errors appropriately. pub fn cursor_pos(stdin: &mut BufReader) -> Result<(u16, u16), Box> { - let buf = stdin.fill_buf()?; - if buf.len() > 0 { + if stdin.buffer().len() > 0 { // If there is any buffered input, the below call to fill_buf will just return the buffered // data and not actually read the terminal response. return Err(Box::from("interrupted")); -- cgit v1.3.1