From 1603e2df268dbcf4bddd2a019ddc39bce3454883 Mon Sep 17 00:00:00 2001 From: tingerrr Date: Fri, 27 Oct 2023 00:17:47 +0200 Subject: [PATCH] Fix trailing mandatory breaks being swallowed (#2502) --- crates/typst-library/src/layout/par.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/typst-library/src/layout/par.rs b/crates/typst-library/src/layout/par.rs index bb280069c..9b5f641b6 100644 --- a/crates/typst-library/src/layout/par.rs +++ b/crates/typst-library/src/layout/par.rs @@ -1206,15 +1206,20 @@ impl Iterator for Breakpoints<'_> { // Fix for: https://github.com/unicode-org/icu4x/issues/4146 if let Some(c) = self.p.bidi.text[..self.end].chars().next_back() { + if self.end == self.p.bidi.text.len() { + self.mandatory = true; + break; + } + self.mandatory = match lb.get(c) { LineBreak::Glue | LineBreak::WordJoiner | LineBreak::ZWJ => continue, LineBreak::MandatoryBreak | LineBreak::CarriageReturn | LineBreak::LineFeed | LineBreak::NextLine => true, - _ => self.end == self.p.bidi.text.len(), + _ => false, }; - }; + } break; }