summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/typst-library/src/text/shaping.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/crates/typst-library/src/text/shaping.rs b/crates/typst-library/src/text/shaping.rs
index 2d9dae33..57501c52 100644
--- a/crates/typst-library/src/text/shaping.rs
+++ b/crates/typst-library/src/text/shaping.rs
@@ -446,7 +446,12 @@ impl<'a> ShapedText<'a> {
.glyphs
.last()
.map(|g| g.range.end..g.range.end)
- .unwrap_or_default();
+ // 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 <https://github.com/typst/typst/issues/2283>.
+ .unwrap_or_else(|| self.base..self.base);
self.width += x_advance.at(self.size);
self.glyphs.to_mut().push(ShapedGlyph {
font,