From e294a096649aa3bcd72c75200c99ddb0493af35e Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 23 Oct 2026 17:13:31 -0400 Subject: [PATCH] Text: apply the Symbol encoding table only to the Symbol face MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A Wingdings or Webdings face without private-use coverage no longer gets Symbol's mapping (0xD8 drew as ¬). Co-Authored-By: Claude Opus 5.5 --- crates/text/src/lib.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/text/src/lib.rs b/crates/text/src/lib.rs index e0974eba..b4f85f02 100644 --- a/crates/text/src/lib.rs +++ b/crates/text/src/lib.rs @@ -1342,6 +1342,10 @@ fn symbol_font_draw(face: &FontFace, code: u32) -> Option { if face.covers(pua) { return Some(pua); } + // The table below is the Symbol font's encoding; Wingdings, Webdings and the like are not Symbol. + if !face.family.eq_ignore_ascii_case("symbol") { + return None; + } if let Some(real) = symbol_unicode(code) { return std::iter::once(real).chain(symbol_unicode_alts(code).iter().copied()).filter_map(char::from_u32).find(|c| face.covers(*c)); }