diff --git a/Cargo.lock b/Cargo.lock index 50926794..f2861501 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1100,7 +1100,7 @@ dependencies = [ "deckcraft-model", "image", "log", - "quick-xml 0.38.4", + "quick-xml", "serde_json", "thiserror 2.0.21", "zip", @@ -3439,15 +3439,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" -[[package]] -name = "quick-xml" -version = "0.38.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" -dependencies = [ - "memchr", -] - [[package]] name = "quick-xml" version = "0.41.0" @@ -4882,7 +4873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" dependencies = [ "proc-macro2", - "quick-xml 0.41.0", + "quick-xml", "quote", ] diff --git a/Cargo.toml b/Cargo.toml index 5bb1f9af..c7d6c036 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,7 +59,7 @@ vello_common = { version = "0.2", default-features = false } image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp", "gif", "tiff", "bmp"] } krilla = { version = "0.8", features = ["pdf"] } i_overlay = "9" -quick-xml = "0.38" +quick-xml = "0.41" zip = { version = "3", default-features = false, features = ["deflate"] } # ui diff --git a/crates/pptx/src/xml.rs b/crates/pptx/src/xml.rs index 60a94817..4146d228 100644 --- a/crates/pptx/src/xml.rs +++ b/crates/pptx/src/xml.rs @@ -340,8 +340,10 @@ fn start_el(b: &quick_xml::events::BytesStart, reader: &quick_xml::Reader<&[u8]> let mut attrs = vec![]; for a in b.attributes().with_checks(false).flatten() { let k = String::from_utf8_lossy(a.key.as_ref()).into_owned(); - let v = - a.decode_and_unescape_value(reader.decoder()).map(|c| c.into_owned()).unwrap_or_else(|_| String::from_utf8_lossy(&a.value).into_owned()); + let v = a + .decoded_and_normalized_value(quick_xml::XmlVersion::Implicit1_0, reader.decoder()) + .map(|c| c.into_owned()) + .unwrap_or_else(|_| String::from_utf8_lossy(&a.value).into_owned()); attrs.push((k, v)); } El { name, attrs, children: vec![] }