From 97702c2e6a3a1d89794f8aede80715197799fbbb Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 27 Sep 2020 13:31:20 +0100 Subject: [PATCH] fix library list parsing Signed-off-by: Ian Jackson --- src/shapelib.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/shapelib.rs b/src/shapelib.rs index b4438257..50b9eb11 100644 --- a/src/shapelib.rs +++ b/src/shapelib.rs @@ -540,15 +540,17 @@ impl TryFrom for FileList { for (lno,l) in s.lines().enumerate() { let l = l.trim(); if l=="" || l.starts_with("#") { continue } - let mut words = l.splitn(3, |c:char| c.is_ascii_whitespace()); + let mut remain = &*l; let mut n = ||{ - words.next().ok_or(LLE::FilesListLineMissingWhitespace(lno)) - .map(|s| s.to_owned()) + let ws = remain.find(char::is_whitespace) + .ok_or(LLE::FilesListLineMissingWhitespace(lno))?; + let (l, r) = remain.split_at(ws); + remain = r.trim_start(); + Ok::<_,LLE>(l.to_owned()) }; let item_spec = n()?; let _r_file_spec = n()?; - let desc = Html(n()?); - assert!(n().is_err()); + let desc = Html(remain.to_owned()); o.push(FileData{ item_spec, r_file_spec: (), desc }); } Ok(FileList(o)) -- 2.30.2