chiark
/
gitweb
/
~ianmdlvl
/
otter.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b1b08fc
)
shapelib: subst: remove whitespace next to empty replacements
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Thu, 11 Mar 2021 14:52:23 +0000
(14:52 +0000)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Thu, 11 Mar 2021 14:52:52 +0000
(14:52 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/shapelib.rs
patch
|
blob
|
history
diff --git
a/src/shapelib.rs
b/src/shapelib.rs
index 3e733ea81afed4316b7174b8e5dff36a5dd08b4f..0f98600090dcc3321365925542f5aa4bf0bf7a48 100644
(file)
--- 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| {