From ab51daff1a41db89a68fad6514ae4b64cdc24c58 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Fri, 13 Nov 2026 21:29:53 +0000 Subject: [PATCH] Respect PostScript delimiters after literal names --- crates/eps/src/embedded.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/eps/src/embedded.rs b/crates/eps/src/embedded.rs index f1a1614f8..8e2225993 100644 --- a/crates/eps/src/embedded.rs +++ b/crates/eps/src/embedded.rs @@ -133,11 +133,7 @@ fn find_eexec(ps: &[u8], from: usize) -> Option { pos += 1; } while pos < ps.len() && !is_white(ps[pos]) && !is_delimiter(ps[pos]) { - if ps[pos] == b'\\' { - pos = pos.saturating_add(2).min(ps.len()); - } else { - pos += 1; - } + pos += 1; } continue; } @@ -262,4 +258,12 @@ mod tests { assert_eq!(super::name_after(&source, b"/FontName").as_deref(), Some("Test")); } } + + #[test] + fn literal_name_backslash_does_not_escape_a_comment_delimiter() { + let ps = b"%!PS-AdobeFont-1.0: Test\n/FontName /Test def\n/unused\\%(\npop\ncurrentfile eexec\n0000\ncleartomark\n"; + let fonts = embedded_font_programs(ps); + assert_eq!(fonts.len(), 1); + assert_eq!(fonts[0].name.as_deref(), Some("Test")); + } }