diff options
| author | eunhhu <[email protected]> | 2026-09-28 16:27:03 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-28 16:27:03 +0100 |
| commit | fb8e49a31a7ba7f333965c93b08bd0c58120494e (patch) | |
| tree | 4a8440cdc5b3862beea1abe5ca9b802c4e99b7f5 /text/text.h | |
| parent | e30e3c2f17fb26cddc91e9f950f6f26948fa8e0e (diff) | |
| download | vega-fb8e49a31a7ba7f333965c93b08bd0c58120494e.tar.gz vega-fb8e49a31a7ba7f333965c93b08bd0c58120494e.zip | |
Unicode 16.0: its tables, and line breaking as UAX #14 revision 53 has it
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.
Diffstat (limited to 'text/text.h')
| -rw-r--r-- | text/text.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/text/text.h b/text/text.h index 298a7b4..8ee2ccb 100644 --- a/text/text.h +++ b/text/text.h @@ -8,6 +8,9 @@ * it needs (tables generated from the UCD by text/unicode.py) and the * algorithms over them, checked against Unicode's conformance tests. */ +/* The version of the Unicode Character Database the tables came from. */ +const char *vega_unicode_version(void); + /* Bidi_Class (UAX #9), in the order of text/unicode.py. */ typedef enum { VEGA_BIDI_L, VEGA_BIDI_R, VEGA_BIDI_AL, VEGA_BIDI_EN, VEGA_BIDI_ES, VEGA_BIDI_ET, VEGA_BIDI_AN, VEGA_BIDI_CS, @@ -59,9 +62,8 @@ typedef enum { VEGA_LB_VF, VEGA_LB_VI, VEGA_LB_XX, VEGA_LB_CLASSES } VegaLineBreak; VegaLineBreak vega_line_break(uint32_t code); -/* Opening or closing punctuation that is East Asian (Fullwidth, Wide or - * Halfwidth): what rule LB30 leaves out. */ -bool vega_east_asian_bracket(uint32_t code); +/* $EastAsian of UAX #14: East_Asian_Width Fullwidth, Wide or Halfwidth. */ +bool vega_east_asian(uint32_t code); /* Where a line may break (UAX #14, with the number tailoring of its * Example 7, as Unicode's tests do): breaks[i] is the boundary before * codes[i], i from 0 to count (breaks has count + 1 room). */ |
