diff --git a/src/client/mudlet.rs b/src/client/mudlet.rs index e6d65ad..4ff492b 100644 --- a/src/client/mudlet.rs +++ b/src/client/mudlet.rs @@ -52,7 +52,7 @@ pub fn parse_log(raw: &Vec) -> Result { return Err("chunk size too small".into()); } - let (delta, size) = { + let (mut delta, size) = { if let Ok((delta, size)) = chunk32(&chunk) { (delta, size) } else { @@ -79,10 +79,13 @@ pub fn parse_log(raw: &Vec) -> Result { let text: String = String::from_utf8_lossy(&text_chunk).into(); let text: String = convert_escaped(&text)?; - let mut bm: Map = Map::new(); - bm.insert("delta".into(), delta.into()); - bm.insert("text".into(), text.into()); - chunks.push(bm); + for line in text.lines() { + let mut map: Map = Map::new(); + map.insert("delta".into(), delta.into()); + map.insert("text".into(), line.trim().into()); + chunks.push(map); + delta = 0; + } } Ok(chunks.into())