remove zero skipping

This commit is contained in:
MeexReay 2025-04-14 19:16:30 +03:00
parent 8c442de4fa
commit e548d85841
2 changed files with 12 additions and 32 deletions

View File

@ -334,7 +334,7 @@ pub fn recv_tick(ctx: Arc<Context>) -> Result<(), Box<dyn Error>> {
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<Context>) {
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();

View File

@ -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()
};