From 6b1233e127d815b38fea9ab909dd4081cdf76ca2 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Tue, 3 Oct 2023 16:20:24 +0200 Subject: [PATCH] Fix test failure Before we tested with an unavailable font, but the hyphens were still visible. But now the hyphens respect fallback too, so it's really hard to test it. I am removing the test for now. --- crates/typst-library/src/text/shaping.rs | 9 ++++----- tests/ref/text/shaping.png | Bin 3992 -> 3975 bytes tests/typ/text/shaping.typ | 6 ------ 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/crates/typst-library/src/text/shaping.rs b/crates/typst-library/src/text/shaping.rs index 73ae07790..4fe6b49b8 100644 --- a/crates/typst-library/src/text/shaping.rs +++ b/crates/typst-library/src/text/shaping.rs @@ -451,11 +451,10 @@ impl<'a> ShapedText<'a> { .glyphs .last() .map(|g| g.range.end..g.range.end) - // In the unlikely chance that we hyphenate after an - // empty line, ensure that the glyph range still falls - // after self.base so that subtracting either of the - // endpoints by self.base doesn’t underflow. - // See . + // In the unlikely chance that we hyphenate after an empty line, + // ensure that the glyph range still falls after self.base so + // that subtracting either of the endpoints by self.base doesn't + // underflow. See . .unwrap_or_else(|| self.base..self.base); self.width += x_advance.at(self.size); self.glyphs.to_mut().push(ShapedGlyph { diff --git a/tests/ref/text/shaping.png b/tests/ref/text/shaping.png index a3ee750e3e2747c88e7c80ae9cbe379bbecf4a47..69cba132d4e8f09928115558dcfd87fdf0a619f3 100644 GIT binary patch literal 3975 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 diff --git a/tests/typ/text/shaping.typ b/tests/typ/text/shaping.typ index c794a105e..3a8d54110 100644 --- a/tests/typ/text/shaping.typ +++ b/tests/typ/text/shaping.typ @@ -26,9 +26,3 @@ ABCअपार्टमेंट // doesn't exist in shaping output. #set text(dir: rtl, font: "Noto Serif Hebrew") \ ט - ---- -// Test that #2283 is fixed. -#set text(font: "test", lang: "de", hyphenate: true, fallback: false) -#set par(linebreaks: "simple") -- ensure