From cd4865dd1855067e767949c9a2804adcd519acdd Mon Sep 17 00:00:00 2001 From: RumovZ Date: Thu, 7 Apr 2022 12:51:26 +0200 Subject: [PATCH] Handle encoding in `replace_media_refs()` --- rslib/src/text.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rslib/src/text.rs b/rslib/src/text.rs index 6c43f6008..b8c2e6fb3 100644 --- a/rslib/src/text.rs +++ b/rslib/src/text.rs @@ -255,7 +255,12 @@ pub(crate) fn replace_media_refs( let mut rep = |caps: &Captures| { let whole_match = caps.get(0).unwrap().as_str(); let old_name = caps.iter().skip(1).find_map(|g| g).unwrap().as_str(); - if let Some(new_name) = replacer(old_name) { + let old_name_decoded = decode_entities(old_name); + + if let Some(mut new_name) = replacer(&old_name_decoded) { + if matches!(old_name_decoded, Cow::Owned(_)) { + new_name = htmlescape::encode_minimal(&new_name); + } whole_match.replace(old_name, &new_name) } else { whole_match.to_owned()