aboutsummaryrefslogtreecommitdiffstats
path: root/text/linebreak.c
Commit message (Collapse)AuthorAgeFilesLines
* Unicode 16.0: its tables, and line breaking as UAX #14 revision 53 has iteunhhu2026-09-281-12/+36
| | | | | | | | | | | | | | | | | | | HarfBuzz 10.2's tables are Unicode 16.0, Vega's were the installed UCD's 15.1: characters new in 16.0 could be read two ways. The tables now come from the 16.0 UCD, and the line breaking rules are revision 53's: LB13's 'x IS' split into LB15c (SP / IS NU, as in 'subtract .5') and LB15d; the numbers of section 8.2's Example 7 made LB25 (new: IS x NU, PR x OP IS NU); LB19 split, with LB19a letting quotation marks between East Asian characters break; LB20a keeping a word-initial hyphen to its word; LB21a narrowed to Hebrew, hyphen, then not Hebrew. vega_east_asian now covers all of East_Asian_Width F, W and H. Unicode 16.0's conformance tests all pass (bidi 770241 and 91707, line breaks 16672, graphemes 1093, words 1826, sentences 512, normalization 19965). test-text reads NormalizationTest.txt plain or compressed, and passes over a UCD of another version than the tables' (the installed one here is 15.1). HarfBuzz's suite (5018 the same), the installed fonts' and Noto's random runs, and the surfaces' checks agree as before.
* Break text into lines, graphemes, words and sentences as Unicode's tests requireeunhhu2026-09-281-0/+173
UAX #14 line breaking (LB1-LB31, numbers tailored as Unicode's tests are) and UAX #29's grapheme cluster, word and sentence boundaries, each from generated property tables, the rules taken in order, in linear time. They pass all of Unicode 15.1's LineBreakTest (10,274 cases), GraphemeBreakTest (1,187), WordBreakTest (1,826) and SentenceBreakTest (512).