diff --git a/src/chat/pretty_tui.rs b/src/chat/pretty_tui.rs index 3e34b02..b08bb8e 100644 --- a/src/chat/pretty_tui.rs +++ b/src/chat/pretty_tui.rs @@ -334,7 +334,7 @@ pub fn recv_tick(ctx: Arc) -> Result<(), Box> { ctx.messages.update(ctx.max_messages, messages.clone(), size); print_console(ctx.clone(), messages, &ctx.input.read().unwrap())?; } - } + }, Err(e) => { let msg = format!("Read messages error: {}", e.to_string()).bright_red().to_string(); ctx.messages.append(ctx.max_messages, vec![msg]); @@ -355,6 +355,12 @@ pub fn run_main_loop(ctx: Arc) { enable_raw_mode().unwrap(); execute!(stdout(), event::EnableMouseCapture).unwrap(); + if let Err(e) = print_console(ctx.clone(), Vec::new(), &ctx.input.read().unwrap()) { + let msg = format!("Print messages error: {}", e.to_string()).bright_red().to_string(); + ctx.messages.append(ctx.max_messages, vec![msg]); + let _ = print_console(ctx.clone(), ctx.messages.messages(), &ctx.input.read().unwrap()); + } + thread::spawn({ let ctx = ctx.clone(); diff --git a/src/proto.rs b/src/proto.rs index 2abe9a8..23c1036 100644 --- a/src/proto.rs +++ b/src/proto.rs @@ -145,23 +145,9 @@ pub fn read_messages( stream.write_all(&[0x00])?; let packet_size = { - let data = if start_null { - let mut data = skip_null(stream)?; - - let mut buf = vec![0; 10]; - let len = stream.read(&mut buf)?; - buf.truncate(len); - - remove_trailing_null(&mut buf); - data.append(&mut buf); - - data - } else { - let mut data = vec![0; 10]; - let len = stream.read(&mut data)?; - data.truncate(len); - data - }; + let mut data = vec![0; 10]; + let len = stream.read(&mut data)?; + data.truncate(len); String::from_utf8(data)? .trim_matches(char::from(0)) @@ -181,20 +167,8 @@ pub fn read_messages( }; let packet_data = { - let data = if start_null { - let mut data = skip_null(stream)?; - while data.len() < to_read { - let mut buf = vec![0; to_read - data.len()]; - let len = stream.read(&mut buf)?; - buf.truncate(len); - data.append(&mut buf); - } - data - } else { - let mut data = vec![0; to_read]; - stream.read_exact(&mut data)?; - data - }; + let mut data = vec![0; to_read]; + stream.read_exact(&mut data)?; String::from_utf8_lossy(&data).to_string() };