58#define UB_LANG_FLAGS 1
const unsigned int lb_prop_supplementary_len
Definition linebreakdata.c:711
const char lb_prop_bmp[]
Line breaking properties for BMP.
Definition linebreakdata.c:715
const struct LineBreakProperties lb_prop_supplementary[]
Line breaking properties for supplementary planes.
Definition linebreakdata.c:9
const struct LineBreakPropertiesLang lb_prop_lang_map[]
Association data of language-specific line breaking properties with language names.
Definition linebreakdef.c:121
void lb_init_break_context(struct LineBreakContext *lbpCtx, utf32_t ch, const char *lang)
Initializes line breaking context for a given language.
Definition linebreak.c:875
Lb25State
LB25 state for numeric expression context tracking.
Definition linebreakdef.h:126
@ LB25_PREFIX
Seen PR or PO (prefix).
Definition linebreakdef.h:128
@ LB25_PREFIXOP
Saw (PR|PO) then OP or HY.
Definition linebreakdef.h:129
@ LB25_NUM
Inside NU (NU|SY|IS)*.
Definition linebreakdef.h:130
@ LB25_NUMCLOSE
Saw NU (NU|SY|IS)* (CL|CP).
Definition linebreakdef.h:131
@ LB25_NONE
Not in numeric expression.
Definition linebreakdef.h:127
enum LineBreakClass lb_get_char_class(const struct LineBreakContext *lbpCtx, utf32_t ch)
Gets the line breaking class of a character for a line breaking context.
Definition linebreak.c:970
LineBreakClass
Line break classes.
Definition linebreakdef.h:66
@ LBP_WJ
Word joiner.
Definition linebreakdef.h:93
@ LBP_GL
Glue.
Definition linebreakdef.h:75
@ LBP_CL
Closing punctuation.
Definition linebreakdef.h:72
@ LBP_NS
Non-starters.
Definition linebreakdef.h:76
@ LBP_RI
Regional indicator.
Definition linebreakdef.h:99
@ LBP_ID
Ideographic.
Definition linebreakdef.h:85
@ LBP_JL
Hangul L Jamo.
Definition linebreakdef.h:96
@ LBP_SA
South-East Asian.
Definition linebreakdef.h:115
@ LBP_B2
Break on either side (but not pair).
Definition linebreakdef.h:90
@ LBP_SY
Symbols allowing break after.
Definition linebreakdef.h:78
@ LBP_CB
Contingent break.
Definition linebreakdef.h:106
@ LBP_XX
Unknown.
Definition linebreakdef.h:118
@ LBP_EM
Emoji modifier.
Definition linebreakdef.h:101
@ LBP_CJ
Conditional Japanese starter.
Definition linebreakdef.h:111
@ LBP_ZWJ
Zero width joiner.
Definition linebreakdef.h:102
@ LBP_EX
Exclamation/Interrogation.
Definition linebreakdef.h:77
@ LBP_SP
Space.
Definition linebreakdef.h:117
@ LBP_JV
Hangul V Jamo.
Definition linebreakdef.h:97
@ LBP_JT
Hangul T Jamo.
Definition linebreakdef.h:98
@ LBP_BK
Break (mandatory).
Definition linebreakdef.h:110
@ LBP_HY
Hyphen.
Definition linebreakdef.h:87
@ LBP_NU
Numeric.
Definition linebreakdef.h:82
@ LBP_BA
Break after.
Definition linebreakdef.h:88
@ LBP_H2
Hangul LV.
Definition linebreakdef.h:94
@ LBP_EB
Emoji base.
Definition linebreakdef.h:100
@ LBP_CR
Carriage return.
Definition linebreakdef.h:112
@ LBP_Undefined
Undefined.
Definition linebreakdef.h:68
@ LBP_LF
Line feed.
Definition linebreakdef.h:113
@ LBP_PR
Prefix.
Definition linebreakdef.h:80
@ LBP_BB
Break before.
Definition linebreakdef.h:89
@ LBP_IS
Infix separator.
Definition linebreakdef.h:79
@ LBP_AL
Alphabetic.
Definition linebreakdef.h:83
@ LBP_ZW
Zero-width space.
Definition linebreakdef.h:91
@ LBP_HL
Hebrew letter.
Definition linebreakdef.h:84
@ LBP_QU
Ambiguous quotation.
Definition linebreakdef.h:74
@ LBP_CP
Closing parenthesis.
Definition linebreakdef.h:73
@ LBP_PO
Postfix.
Definition linebreakdef.h:81
@ LBP_AI
Ambiguous (alphabetic or ideograph).
Definition linebreakdef.h:109
@ LBP_OP
Opening punctuation.
Definition linebreakdef.h:71
@ LBP_NL
Next line.
Definition linebreakdef.h:114
@ LBP_SG
Surrogates.
Definition linebreakdef.h:116
@ LBP_CM
Combining marks.
Definition linebreakdef.h:92
@ LBP_IN
Inseparable characters.
Definition linebreakdef.h:86
@ LBP_H3
Hangul LVT.
Definition linebreakdef.h:95
size_t set_linebreaks(const void *s, size_t len, const char *lang, enum BreakOutputType outputType, char *brks, get_next_char_t get_next_char)
Sets the line breaking information for a generic input string.
Definition linebreak.c:1010
int lb_process_next_char(struct LineBreakContext *lbpCtx, utf32_t ch)
Updates LineBreakingContext for the next codepoint and returns the detected break.
Definition linebreak.c:916
BreakOutputType
Definition linebreakdef.h:135
@ LBOT_PER_CODE_UNIT
Definition linebreakdef.h:136
@ LBOT_PER_CODE_POINT
Definition linebreakdef.h:137
Context representing internal state of the line breaking algorithm.
Definition linebreakdef.h:167
enum Lb25State eLb25
LB25 state for numeric expression.
Definition linebreakdef.h:182
bool fLb8aZwj
Flag for ZWJ (LB8a).
Definition linebreakdef.h:179
size_t posLast
Last position in input string.
Definition linebreakdef.h:174
enum LineBreakClass lbcCur
Breaking class of current codepoint.
Definition linebreakdef.h:171
bool fLb25Mark
Flag for pending fixup.
Definition linebreakdef.h:184
bool fLangStrict
-strict suffix
Definition linebreakdef.h:177
int cLb30aRI
Count of RI characters (LB30a).
Definition linebreakdef.h:181
bool fLangCjk
zh/ja/ko language
Definition linebreakdef.h:176
enum LineBreakClass lbcNew
Breaking class of next codepoint.
Definition linebreakdef.h:172
bool fLb21aHebrew
Flag for Hebrew letters (LB21a).
Definition linebreakdef.h:180
enum LineBreakClass lbcLast
Breaking class of last codepoint.
Definition linebreakdef.h:173
const struct LineBreakProperties * lbpLang
Pointer to LineBreakProperties.
Definition linebreakdef.h:169
size_t posLb25Fixup
Position to fix for LB25.
Definition linebreakdef.h:183
const char * lang
Language name.
Definition linebreakdef.h:168
Struct for association of language-specific line breaking properties with language names.
Definition linebreakdef.h:156
size_t namelen
Length of name to match.
Definition linebreakdef.h:158
const struct LineBreakProperties * lbp
Pointer to associated data.
Definition linebreakdef.h:159
const char * lang
Language name.
Definition linebreakdef.h:157
Struct for entries of line break properties.
Definition linebreakdef.h:145
utf32_t start
Start codepoint.
Definition linebreakdef.h:146
enum LineBreakClass prop
The line breaking property.
Definition linebreakdef.h:148
utf32_t end
End codepoint, inclusive.
Definition linebreakdef.h:147
unsigned int utf32_t
Type for UTF-32 data points.
Definition unibreakbase.h:49
Header file for private definitions in the libunibreak library.
utf32_t(* get_next_char_t)(const void *, size_t, size_t *)
Abstract function interface for ub_get_next_char_utf8, ub_get_next_char_utf16, and ub_get_next_char_u...
Definition unibreakdef.h:67