From d735cbb7e79dd1087bb8445fb4e171d0b02d1a89 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 11 Mar 2021 14:52:23 +0000 Subject: [PATCH] shapelib: subst: remove whitespace next to empty replacements Signed-off-by: Ian Jackson --- src/shapelib.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/shapelib.rs b/src/shapelib.rs index 3e733ea8..0f986000 100644 --- a/src/shapelib.rs +++ b/src/shapelib.rs @@ -357,9 +357,20 @@ fn load_catalogue(libname: &str, dirname: &str, toml_path: &str) -> Contents { if matches.next().is_some() { Err(LLE::RepeatedSubstituionToken(needle))?; } - before[0.. m1.0].to_owned() + let mut lhs = &before[0.. m1.0]; + let mut rhs = &before[m1.0 + m1.1.len() ..]; + if replacement.is_empty() { + let lhs_trimmed = lhs.trim_end(); + if lhs_trimmed.len() != lhs.len() { + lhs = lhs_trimmed; + } else { + rhs = rhs.trim_start(); + } + } + lhs + .to_owned() + replacement - + &before[m1.0 + m1.1.len() ..] + + rhs } let mut add1 = |item_name: &str, desc| { -- 2.30.2