26#define SOMBOK_VERSION "2.4.0"
28#define SOMBOK_UNICHAR_T_IS_WCHAR_T
29#define SOMBOK_UNICHAR_T_IS_UNSIGNED_INT
30#undef SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG
218#define PROP_UNKNOWN ((propval_t)~0)
222#define LINEBREAK_FLAG_PROHIBIT_BEFORE (1)
223#define LINEBREAK_FLAG_ALLOW_BEFORE (2)
224#define LINEBREAK_FLAG_BREAK_BEFORE LINEBREAK_FLAG_ALLOW_BEFORE
228#define LINEBREAK_DEFAULT_CHARMAX (998)
232#define LINEBREAK_OPTION_EASTASIAN_CONTEXT (1)
233#define LINEBREAK_OPTION_HANGUL_AS_AL (2)
234#define LINEBREAK_OPTION_LEGACY_CM (4)
235#define LINEBREAK_OPTION_BREAK_INDENT (8)
236#define LINEBREAK_OPTION_COMPLEX_BREAKING (16)
237#define LINEBREAK_OPTION_NONSTARTER_LOOSE (32)
238#define LINEBREAK_OPTION_VIRAMA_AS_JOINER (64)
239#define LINEBREAK_OPTION_WIDE_NONSPACING_W (128)
243#define LINEBREAK_STATE_SOT_FORMAT (-LINEBREAK_STATE_SOT)
244#define LINEBREAK_STATE_SOP_FORMAT (-LINEBREAK_STATE_SOP)
245#define LINEBREAK_STATE_SOL_FORMAT (-LINEBREAK_STATE_SOL)
249#define LINEBREAK_REF_STASH (0)
250#define LINEBREAK_REF_FORMAT (1)
251#define LINEBREAK_REF_SIZING (2)
252#define LINEBREAK_REF_URGENT (3)
253#define LINEBREAK_REF_USER (4)
254#define LINEBREAK_REF_PREP (5)
258#define LINEBREAK_ACTION_MANDATORY (4)
259#define LINEBREAK_ACTION_DIRECT (3)
260#define LINEBREAK_ACTION_INDIRECT (2)
261#define LINEBREAK_ACTION_PROHIBITED (1)
265#define LINEBREAK_ELONG (-2)
266#define LINEBREAK_EEXTN (-3)
270#define SOMBOK_UTF8_CHECK_NONE (0)
271#define SOMBOK_UTF8_CHECK_MALFORMED (1)
272#define SOMBOK_UTF8_CHECK_SURROGATE (2)
273#define SOMBOK_UTF8_CHECK_NONUNICODE (3)
299#define gcstring_eos(gcstr) \
300 ((gcstr)->gclen <= (gcstr)->pos)
301#define gcstring_getpos(gcstr) \
378#include "src/mymalloc.h"
gcchar_t * gcstring_next(gcstring_t *)
Definition gcstring.c:560
gcstring_t * gcstring_substr(gcstring_t *, int, int)
Definition gcstring.c:632
int gcstring_cmp(gcstring_t *, gcstring_t *)
Definition gcstring.c:500
gcstring_t * gcstring_new(unistr_t *, linebreak_t *)
Definition gcstring.c:228
gcstring_t * gcstring_copy(gcstring_t *)
Definition gcstring.c:353
void gcstring_shrink(gcstring_t *, int)
Definition gcstring.c:597
gcstring_t * gcstring_new_from_utf8(char *, size_t, int, linebreak_t *)
Definition gcstring.c:314
void gcstring_setpos(gcstring_t *, int)
Definition gcstring.c:577
void gcstring_destroy(gcstring_t *)
Definition gcstring.c:336
propval_t gcstring_lbclass(gcstring_t *, int)
Definition gcstring.c:767
gcstring_t * gcstring_concat(gcstring_t *, gcstring_t *)
Definition gcstring.c:538
gcstring_t * gcstring_append(gcstring_t *, gcstring_t *)
Definition gcstring.c:404
gcstring_t * gcstring_replace(gcstring_t *, int, int, gcstring_t *)
Definition gcstring.c:710
size_t gcstring_columns(gcstring_t *)
Definition gcstring.c:518
propval_t gcstring_lbclass_ext(gcstring_t *, int)
Definition gcstring.c:786
gcstring_t * gcstring_newcopy(unistr_t *, linebreak_t *)
Definition gcstring.c:290
void linebreak_free_result(gcstring_t **, int)
Definition break.c:1349
gcstring_t ** linebreak_break_partial(linebreak_t *, unistr_t *)
Definition break.c:1201
gcstring_t ** linebreak_break_fast(linebreak_t *, unistr_t *)
Definition break.c:1217
gcstring_t ** linebreak_break(linebreak_t *, unistr_t *)
Definition break.c:1243
gcstring_t ** linebreak_break_from_utf8(linebreak_t *, char *, size_t, int)
Definition break.c:1331
propval_t linebreak_lbrule(propval_t, propval_t)
Definition break.c:280
void linebreak_southeastasian_flagbreak(gcstring_t *)
Definition southeastasian.c:36
const char * linebreak_southeastasian_supported
Definition southeastasian.c:28
gcstring_t * linebreak_format_NEWLINE(linebreak_t *, linebreak_state_t, gcstring_t *)
Definition utils.c:449
gcstring_t * linebreak_format_TRIM(linebreak_t *, linebreak_state_t, gcstring_t *)
Definition utils.c:475
gcstring_t * linebreak_format_SIMPLE(linebreak_t *, linebreak_state_t, gcstring_t *)
Definition utils.c:416
gcstring_t * linebreak_prep_URIBREAK(linebreak_t *, void *, unistr_t *, unistr_t *)
Definition utils.c:121
gcstring_t * linebreak_urgent_ABORT(linebreak_t *, gcstring_t *)
Definition utils.c:530
double linebreak_sizing_UAX11(linebreak_t *, double, gcstring_t *, gcstring_t *, gcstring_t *)
Definition utils.c:363
gcstring_t * linebreak_urgent_FORCE(linebreak_t *, gcstring_t *)
Definition utils.c:540
linebreak_t * linebreak_new(linebreak_ref_func_t)
Definition linebreak.c:30
void linebreak_reset(linebreak_t *)
Definition linebreak.c:466
void linebreak_add_prep(linebreak_t *, linebreak_prep_func_t, void *)
Definition linebreak.c:335
void linebreak_set_stash(linebreak_t *, void *)
Definition linebreak.c:290
propval_t linebreak_get_lbrule(linebreak_t *, propval_t, propval_t)
Definition linebreak.c:503
void linebreak_set_sizing(linebreak_t *, linebreak_sizing_func_t, void *)
Definition linebreak.c:394
void linebreak_merge_eawidth(linebreak_t *, linebreak_t *)
Definition charprop.c:486
unsigned char propval_t
Definition sombok.h:43
propval_t linebreak_search_lbclass(linebreak_t *, unichar_t)
Definition charprop.c:198
void linebreak_destroy(linebreak_t *)
Definition linebreak.c:218
propval_t linebreak_eawidth(linebreak_t *, unichar_t)
Definition linebreak.c:581
void linebreak_set_urgent(linebreak_t *, linebreak_urgent_func_t, void *)
Definition linebreak.c:418
linebreak_state_t
Definition sombok.h:115
void linebreak_update_eawidth(linebreak_t *, unichar_t, propval_t)
Definition charprop.c:450
propval_t linebreak_lbclass(linebreak_t *, unichar_t)
Definition linebreak.c:551
void linebreak_clear_eawidth(linebreak_t *)
Definition charprop.c:551
void linebreak_set_newline(linebreak_t *, unistr_t *)
Definition linebreak.c:261
void linebreak_update_lbclass(linebreak_t *, unichar_t, propval_t)
Definition charprop.c:437
void linebreak_set_user(linebreak_t *, linebreak_obs_prep_func_t, void *)
Definition linebreak.c:443
void linebreak_set_format(linebreak_t *, linebreak_format_func_t, void *)
Definition linebreak.c:310
void linebreak_clear_lbclass(linebreak_t *)
Definition charprop.c:540
void linebreak_merge_lbclass(linebreak_t *, linebreak_t *)
Definition charprop.c:462
propval_t linebreak_search_eawidth(linebreak_t *, unichar_t)
Definition charprop.c:211
linebreak_t * linebreak_copy(linebreak_t *)
Definition linebreak.c:69
linebreak_t * linebreak_incref(linebreak_t *)
Definition linebreak.c:52
@ LINEBREAK_STATE_EOT
Definition sombok.h:119
@ LINEBREAK_STATE_MAX
Definition sombok.h:120
@ LINEBREAK_STATE_SOP
Definition sombok.h:117
@ LINEBREAK_STATE_SOT
Definition sombok.h:117
@ LINEBREAK_STATE_EOL
Definition sombok.h:119
@ LINEBREAK_STATE_NONE
Definition sombok.h:116
@ LINEBREAK_STATE_LINE
Definition sombok.h:118
@ LINEBREAK_STATE_EOP
Definition sombok.h:119
@ LINEBREAK_STATE_SOL
Definition sombok.h:117
unistr_t * sombok_decode_utf8(unistr_t *, size_t, const char *, size_t, int)
Definition utf8.c:39
char * sombok_encode_utf8(char *, size_t *, size_t, unistr_t *)
Definition utf8.c:206
const char * linebreak_propvals_LB[]
void linebreak_charprop(linebreak_t *, unichar_t, propval_t *, propval_t *, propval_t *, propval_t *)
Definition charprop.c:134
const char * linebreak_unicode_version
void(* linebreak_ref_func_t)(void *, int, int)
Definition sombok.h:124
double(* linebreak_sizing_func_t)(struct linebreak_t *, double, gcstring_t *, gcstring_t *, gcstring_t *)
Definition sombok.h:129
gcstring_t *(* linebreak_format_func_t)(struct linebreak_t *, linebreak_state_t, gcstring_t *)
Definition sombok.h:126
gcstring_t *(* linebreak_prep_func_t)(struct linebreak_t *, void *, unistr_t *, unistr_t *)
Definition sombok.h:134
const char * linebreak_propvals_EA[]
gcstring_t *(* linebreak_urgent_func_t)(struct linebreak_t *, gcstring_t *)
Definition sombok.h:132
gcstring_t *(* linebreak_obs_prep_func_t)(struct linebreak_t *, unistr_t *)
Definition sombok.h:137
unsigned int unichar_t
Definition sombok.h:39
propval_t elbc
Definition sombok.h:69
propval_t lbc
Definition sombok.h:67
size_t len
Definition sombok.h:63
size_t idx
Definition sombok.h:61
size_t col
Definition sombok.h:65
unsigned char flag
Definition sombok.h:71
gcchar_t * gcstr
Definition sombok.h:104
struct linebreak_t * lbobj
Definition sombok.h:110
size_t len
Definition sombok.h:101
size_t gclen
Definition sombok.h:106
size_t pos
Definition sombok.h:108
unichar_t * str
Definition sombok.h:99
void * urgent_data
Definition sombok.h:176
mapent_t * map
Definition sombok.h:167
unistr_t newline
Definition sombok.h:170
linebreak_format_func_t format_func
Definition sombok.h:182
unsigned int options
Definition sombok.h:172
linebreak_urgent_func_t urgent_func
Definition sombok.h:186
void ** prep_data
Definition sombok.h:209
unsigned long int refcount
Definition sombok.h:145
size_t charmax
Definition sombok.h:161
int state
Definition sombok.h:147
linebreak_ref_func_t ref_func
Definition sombok.h:197
linebreak_sizing_func_t sizing_func
Definition sombok.h:184
double colmax
Definition sombok.h:163
unistr_t bufspc
Definition sombok.h:151
double bufcols
Definition sombok.h:153
void * stash
Definition sombok.h:180
linebreak_obs_prep_func_t user_func
Definition sombok.h:189
linebreak_prep_func_t * prep_func
Definition sombok.h:207
unistr_t unread
Definition sombok.h:155
void * format_data
Definition sombok.h:174
int errnum
Definition sombok.h:201
void * user_data
Definition sombok.h:178
double colmin
Definition sombok.h:165
size_t mapsiz
Definition sombok.h:168
void * sizing_data
Definition sombok.h:175
unistr_t bufstr
Definition sombok.h:149
unichar_t end
Definition sombok.h:80
unichar_t beg
Definition sombok.h:78
propval_t eaw
Definition sombok.h:84
propval_t scr
Definition sombok.h:88
propval_t gcb
Definition sombok.h:86
propval_t lbc
Definition sombok.h:82
size_t len
Definition sombok.h:53
unichar_t * str
Definition sombok.h:51