diff --git a/rslib/src/media/check.rs b/rslib/src/media/check.rs index c901583da..d7adfa361 100644 --- a/rslib/src/media/check.rs +++ b/rslib/src/media/check.rs @@ -723,9 +723,19 @@ Unused: unused.jpg #[test] fn html_encoding() { - let field = "[sound:a & b.mp3]"; + let mut field = "[sound:a & b.mp3]"; let mut seen = Default::default(); normalize_and_maybe_rename_files(field, &HashMap::new(), &mut seen, Path::new("/tmp")); assert!(seen.contains("a & b.mp3")); + + field = r#""#; + seen = Default::default(); + normalize_and_maybe_rename_files(field, &HashMap::new(), &mut seen, Path::new("/tmp")); + assert!(seen.contains("a&b.jpg")); + + field = r#""#; + seen = Default::default(); + normalize_and_maybe_rename_files(field, &HashMap::new(), &mut seen, Path::new("/tmp")); + assert!(seen.contains("a&b.jpg")); } } diff --git a/rslib/src/text.rs b/rslib/src/text.rs index bb4176861..26773b436 100644 --- a/rslib/src/text.rs +++ b/rslib/src/text.rs @@ -219,7 +219,7 @@ pub(crate) fn extract_media_refs(text: &str) -> Vec { .or_else(|| caps.get(3)) .unwrap() .as_str(); - let fname_decoded = fname.into(); + let fname_decoded = decode_entities(fname); out.push(MediaRef { full_ref: caps.get(0).unwrap().as_str(), fname,