From 0697404b406b15efe5a2a4d507cb133669c3c759 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Fri, 28 Feb 2020 13:42:28 +0900 Subject: [PATCH] Fix breaking (#46) * fix: brealing * 0.0.40 --- docx-core/examples/reader.rs | 2 +- docx-core/src/reader/run.rs | 39 +++++++++++++++++++++++++++++++----- docx-wasm/package.json | 2 +- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/docx-core/examples/reader.rs b/docx-core/examples/reader.rs index ff1549f..083934b 100644 --- a/docx-core/examples/reader.rs +++ b/docx-core/examples/reader.rs @@ -3,7 +3,7 @@ use std::fs::*; use std::io::Read; pub fn main() { - let mut file = File::open("./10.docx").unwrap(); + let mut file = File::open("./2.docx").unwrap(); let mut buf = vec![]; file.read_to_end(&mut buf).unwrap(); dbg!(read_docx(&buf).unwrap().json()); diff --git a/docx-core/src/reader/run.rs b/docx-core/src/reader/run.rs index a0b45be..f1368e2 100644 --- a/docx-core/src/reader/run.rs +++ b/docx-core/src/reader/run.rs @@ -42,7 +42,11 @@ impl ElementReader for Run { XMLElement::Text => text_state = TextState::Text, XMLElement::DeleteText => text_state = TextState::Delete, XMLElement::Break => { - run = run.add_break(BreakType::from_str(&attributes[0].value)?) + if let Some(a) = &attributes.get(0) { + run = run.add_break(BreakType::from_str(&a.value)?) + } else { + run = run.add_break(BreakType::TextWrapping) + } } _ => {} } @@ -118,8 +122,7 @@ mod tests { #[test] fn test_read_tab() { - let c = - r#" + let c = r#" "#; let mut parser = EventReader::new(c.as_bytes()); @@ -146,8 +149,7 @@ mod tests { #[test] fn test_read_br() { - let c = - r#" + let c = r#" "#; let mut parser = EventReader::new(c.as_bytes()); @@ -171,4 +173,31 @@ mod tests { } ); } + + #[test] + fn test_read_empty_br() { + let c = r#" + +"#; + let mut parser = EventReader::new(c.as_bytes()); + let run = Run::read(&mut parser, &[]).unwrap(); + assert_eq!( + run, + Run { + children: vec![RunChild::Break(Break::new(BreakType::TextWrapping))], + run_property: RunProperty { + sz: None, + sz_cs: None, + color: None, + highlight: None, + underline: None, + bold: None, + bold_cs: None, + italic: None, + italic_cs: None, + vanish: None, + }, + } + ); + } } diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 81747cd..e097985 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.0.38", + "version": "0.0.40", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ",