utf8proc
C library for processing UTF-8 Unicode data
Loading...
Searching...
No Matches
utf8proc.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2014-2021 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors.
3 * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
22 */
23
24
50
52
53#ifndef UTF8PROC_H
54#define UTF8PROC_H
55
72#define UTF8PROC_VERSION_MAJOR 2
74#define UTF8PROC_VERSION_MINOR 11
76#define UTF8PROC_VERSION_PATCH 2
78
79#include <stdlib.h>
80
81#if defined(_MSC_VER) && _MSC_VER < 1800
82// MSVC prior to 2013 lacked stdbool.h and stdint.h
83typedef signed char utf8proc_int8_t;
84typedef unsigned char utf8proc_uint8_t;
85typedef short utf8proc_int16_t;
86typedef unsigned short utf8proc_uint16_t;
87typedef int utf8proc_int32_t;
88typedef unsigned int utf8proc_uint32_t;
89# ifdef _WIN64
90typedef __int64 utf8proc_ssize_t;
91typedef unsigned __int64 utf8proc_size_t;
92# else
93typedef int utf8proc_ssize_t;
94typedef unsigned int utf8proc_size_t;
95# endif
96# ifndef __cplusplus
97// emulate C99 bool
98typedef unsigned char utf8proc_bool;
99# ifndef __bool_true_false_are_defined
100# define false 0
101# define true 1
102# define __bool_true_false_are_defined 1
103# endif
104# else
105typedef bool utf8proc_bool;
106# endif
107#else
108# include <stddef.h>
109# include <stdbool.h>
110# include <stdint.h>
111typedef int8_t utf8proc_int8_t;
112typedef uint8_t utf8proc_uint8_t;
113typedef int16_t utf8proc_int16_t;
114typedef uint16_t utf8proc_uint16_t;
115typedef int32_t utf8proc_int32_t;
116typedef uint32_t utf8proc_uint32_t;
117typedef size_t utf8proc_size_t;
118typedef ptrdiff_t utf8proc_ssize_t;
119typedef bool utf8proc_bool;
120#endif
121#include <limits.h>
122
123#ifdef UTF8PROC_STATIC
124# ifndef UTF8PROC_DLLEXPORT
125# define UTF8PROC_DLLEXPORT
126# endif
127#else
128# ifdef _WIN32
129# ifdef UTF8PROC_EXPORTS
130# define UTF8PROC_DLLEXPORT __declspec(dllexport)
131# else
132# define UTF8PROC_DLLEXPORT __declspec(dllimport)
133# endif
134# elif __GNUC__ >= 4
135# define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default")))
136# else
137# define UTF8PROC_DLLEXPORT
138# endif
139#endif
140
141#ifdef __cplusplus
142extern "C" {
143#endif
144
215
221#define UTF8PROC_ERROR_NOMEM -1
223#define UTF8PROC_ERROR_OVERFLOW -2
225#define UTF8PROC_ERROR_INVALIDUTF8 -3
227#define UTF8PROC_ERROR_NOTASSIGNED -4
229#define UTF8PROC_ERROR_INVALIDOPTS -5
231
232/* @name Types */
233
235typedef utf8proc_int16_t utf8proc_propval_t;
236
244 utf8proc_propval_t combining_class;
255 utf8proc_uint16_t decomp_seqindex;
256 utf8proc_uint16_t casefold_seqindex;
257 utf8proc_uint16_t uppercase_seqindex;
258 utf8proc_uint16_t lowercase_seqindex;
259 utf8proc_uint16_t titlecase_seqindex;
294 utf8proc_uint16_t comb_index:10;
295 utf8proc_uint16_t comb_length:5;
296 utf8proc_uint16_t comb_issecond:1;
297 unsigned bidi_mirrored:1;
298 unsigned comp_exclusion:1;
305 unsigned ignorable:1;
306 unsigned control_boundary:1;
308 unsigned charwidth:2;
310 unsigned ambiguous_width:1;
311 unsigned pad:1;
316 unsigned boundclass:6;
317 unsigned indic_conjunct_break:2;
319
353
380
400
402typedef enum {
418
419 /* the following are no longer used in Unicode 11, but we keep
420 the constants here for backward compatibility */
425
426 /* the Extended_Pictographic property is used in the Unicode 11
427 grapheme-boundary rules, so we store it in the boundclass field */
428 UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC = 19,
429 UTF8PROC_BOUNDCLASS_E_ZWG = 20, /* UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC + ZWJ */
431
433typedef enum {
434 UTF8PROC_INDIC_CONJUNCT_BREAK_NONE = 0,
435 UTF8PROC_INDIC_CONJUNCT_BREAK_LINKER = 1,
436 UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT = 2,
437 UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND = 3,
439
445typedef utf8proc_int32_t (*utf8proc_custom_func)(utf8proc_int32_t codepoint, void *data);
446
451UTF8PROC_DLLEXPORT extern const utf8proc_int8_t utf8proc_utf8class[256];
452
458UTF8PROC_DLLEXPORT const char *utf8proc_version(void);
459
463UTF8PROC_DLLEXPORT const char *utf8proc_unicode_version(void);
464
469UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode);
470
481UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *codepoint_ref);
482
489UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t codepoint);
490
500UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t codepoint, utf8proc_uint8_t *dst);
501
514UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t codepoint);
515
550UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char(
551 utf8proc_int32_t codepoint, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize,
552 utf8proc_option_t options, int *last_boundclass
553);
554
572UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose(
573 const utf8proc_uint8_t *str, utf8proc_ssize_t strlen,
574 utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options
575);
576
583UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom(
584 const utf8proc_uint8_t *str, utf8proc_ssize_t strlen,
585 utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options,
586 utf8proc_custom_func custom_func, void *custom_data
587);
588
612UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options);
613
642UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options);
643
661UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful(
662 utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2, utf8proc_int32_t *state);
663
668UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break(
669 utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2);
670
671
677UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c);
678
684UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c);
685
691UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c);
692
697UTF8PROC_DLLEXPORT int utf8proc_islower(utf8proc_int32_t c);
698
703UTF8PROC_DLLEXPORT int utf8proc_isupper(utf8proc_int32_t c);
704
713UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t codepoint);
714
721UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_charwidth_ambiguous(utf8proc_int32_t codepoint);
722
727UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t codepoint);
728
733UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t codepoint);
734
758UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map(
759 const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options
760);
761
768UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom(
769 const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options,
770 utf8proc_custom_func custom_func, void *custom_data
771);
772
782UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str);
784UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str);
786UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str);
788UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str);
793UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC_Casefold(const utf8proc_uint8_t *str);
795
796#ifdef __cplusplus
797}
798#endif
799
800#endif
Definition utf8proc.h:238
unsigned boundclass
Definition utf8proc.h:316
unsigned charwidth
Definition utf8proc.h:308
unsigned ignorable
Definition utf8proc.h:305
utf8proc_propval_t category
Definition utf8proc.h:243
unsigned ambiguous_width
Definition utf8proc.h:310
utf8proc_propval_t bidi_class
Definition utf8proc.h:249
utf8proc_propval_t decomp_type
Definition utf8proc.h:254
utf8proc_uint16_t comb_index
Definition utf8proc.h:294
utf8proc_ssize_t utf8proc_map(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options)
Definition utf8proc.c:765
utf8proc_int32_t(* utf8proc_custom_func)(utf8proc_int32_t codepoint, void *data)
Definition utf8proc.h:445
utf8proc_uint8_t * utf8proc_NFC(const utf8proc_uint8_t *str)
Definition utf8proc.c:808
utf8proc_option_t
Definition utf8proc.h:148
@ UTF8PROC_NULLTERM
Definition utf8proc.h:150
@ UTF8PROC_LUMP
Definition utf8proc.h:202
@ UTF8PROC_REJECTNA
Definition utf8proc.h:162
@ UTF8PROC_NLF2LF
Definition utf8proc.h:176
@ UTF8PROC_STRIPCC
Definition utf8proc.h:184
@ UTF8PROC_NLF2LS
Definition utf8proc.h:168
@ UTF8PROC_COMPOSE
Definition utf8proc.h:156
@ UTF8PROC_STRIPNA
Definition utf8proc.h:213
@ UTF8PROC_CASEFOLD
Definition utf8proc.h:189
@ UTF8PROC_STABLE
Definition utf8proc.h:152
@ UTF8PROC_DECOMPOSE
Definition utf8proc.h:158
@ UTF8PROC_IGNORE
Definition utf8proc.h:160
@ UTF8PROC_NLF2PS
Definition utf8proc.h:174
@ UTF8PROC_CHARBOUND
Definition utf8proc.h:194
@ UTF8PROC_COMPAT
Definition utf8proc.h:154
@ UTF8PROC_STRIPMARK
Definition utf8proc.h:209
utf8proc_uint8_t * utf8proc_NFKD(const utf8proc_uint8_t *str)
Definition utf8proc.c:815
const char * utf8proc_version(void)
Definition utf8proc.c:99
utf8proc_ssize_t utf8proc_decompose_char(utf8proc_int32_t codepoint, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass)
Definition utf8proc.c:452
int utf8proc_charwidth(utf8proc_int32_t codepoint)
Definition utf8proc.c:431
utf8proc_indic_conjunct_break_t
Definition utf8proc.h:433
int utf8proc_islower(utf8proc_int32_t c)
Definition utf8proc.c:417
utf8proc_ssize_t utf8proc_iterate(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *codepoint_ref)
Definition utf8proc.c:125
const char * utf8proc_unicode_version(void)
Definition utf8proc.c:103
const char * utf8proc_errmsg(utf8proc_ssize_t errcode)
Definition utf8proc.c:107
const utf8proc_property_t * utf8proc_get_property(utf8proc_int32_t codepoint)
Definition utf8proc.c:242
utf8proc_uint8_t * utf8proc_NFKC(const utf8proc_uint8_t *str)
Definition utf8proc.c:822
utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options)
Definition utf8proc.c:741
utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c)
Definition utf8proc.c:399
utf8proc_int16_t utf8proc_propval_t
Definition utf8proc.h:235
struct utf8proc_property_struct utf8proc_property_t
utf8proc_ssize_t utf8proc_decompose_custom(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, utf8proc_custom_func custom_func, void *custom_data)
Definition utf8proc.c:547
utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t codepoint, utf8proc_uint8_t *dst)
Definition utf8proc.c:177
utf8proc_ssize_t utf8proc_map_custom(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, utf8proc_custom_func custom_func, void *custom_data)
Definition utf8proc.c:771
utf8proc_decomp_type_t
Definition utf8proc.h:382
@ UTF8PROC_DECOMP_TYPE_NOBREAK
Definition utf8proc.h:384
@ UTF8PROC_DECOMP_TYPE_SUB
Definition utf8proc.h:391
@ UTF8PROC_DECOMP_TYPE_INITIAL
Definition utf8proc.h:385
@ UTF8PROC_DECOMP_TYPE_WIDE
Definition utf8proc.h:393
@ UTF8PROC_DECOMP_TYPE_SMALL
Definition utf8proc.h:395
@ UTF8PROC_DECOMP_TYPE_FONT
Definition utf8proc.h:383
@ UTF8PROC_DECOMP_TYPE_CIRCLE
Definition utf8proc.h:389
@ UTF8PROC_DECOMP_TYPE_ISOLATED
Definition utf8proc.h:388
@ UTF8PROC_DECOMP_TYPE_NARROW
Definition utf8proc.h:394
@ UTF8PROC_DECOMP_TYPE_SUPER
Definition utf8proc.h:390
@ UTF8PROC_DECOMP_TYPE_FRACTION
Definition utf8proc.h:397
@ UTF8PROC_DECOMP_TYPE_FINAL
Definition utf8proc.h:387
@ UTF8PROC_DECOMP_TYPE_VERTICAL
Definition utf8proc.h:392
@ UTF8PROC_DECOMP_TYPE_COMPAT
Definition utf8proc.h:398
@ UTF8PROC_DECOMP_TYPE_SQUARE
Definition utf8proc.h:396
@ UTF8PROC_DECOMP_TYPE_MEDIAL
Definition utf8proc.h:386
utf8proc_boundclass_t
Definition utf8proc.h:402
@ UTF8PROC_BOUNDCLASS_V
Definition utf8proc.h:410
@ UTF8PROC_BOUNDCLASS_OTHER
Definition utf8proc.h:404
@ UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ
Definition utf8proc.h:423
@ UTF8PROC_BOUNDCLASS_START
Definition utf8proc.h:403
@ UTF8PROC_BOUNDCLASS_E_BASE_GAZ
Definition utf8proc.h:424
@ UTF8PROC_BOUNDCLASS_EXTEND
Definition utf8proc.h:408
@ UTF8PROC_BOUNDCLASS_CONTROL
Definition utf8proc.h:407
@ UTF8PROC_BOUNDCLASS_SPACINGMARK
Definition utf8proc.h:415
@ UTF8PROC_BOUNDCLASS_L
Definition utf8proc.h:409
@ UTF8PROC_BOUNDCLASS_ZWJ
Definition utf8proc.h:417
@ UTF8PROC_BOUNDCLASS_T
Definition utf8proc.h:411
@ UTF8PROC_BOUNDCLASS_LV
Definition utf8proc.h:412
@ UTF8PROC_BOUNDCLASS_LF
Definition utf8proc.h:406
@ UTF8PROC_BOUNDCLASS_CR
Definition utf8proc.h:405
@ UTF8PROC_BOUNDCLASS_E_BASE
Definition utf8proc.h:421
@ UTF8PROC_BOUNDCLASS_E_MODIFIER
Definition utf8proc.h:422
@ UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR
Definition utf8proc.h:414
@ UTF8PROC_BOUNDCLASS_LVT
Definition utf8proc.h:413
@ UTF8PROC_BOUNDCLASS_PREPEND
Definition utf8proc.h:416
utf8proc_ssize_t utf8proc_decompose(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options)
Definition utf8proc.c:540
utf8proc_uint8_t * utf8proc_NFD(const utf8proc_uint8_t *str)
Definition utf8proc.c:801
utf8proc_bool utf8proc_grapheme_break_stateful(utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2, utf8proc_int32_t *state)
Definition utf8proc.c:345
utf8proc_uint8_t * utf8proc_NFKC_Casefold(const utf8proc_uint8_t *str)
Definition utf8proc.c:829
utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t codepoint)
Definition utf8proc.c:173
const char * utf8proc_category_string(utf8proc_int32_t codepoint)
Definition utf8proc.c:443
utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c)
Definition utf8proc.c:411
utf8proc_category_t utf8proc_category(utf8proc_int32_t codepoint)
Definition utf8proc.c:439
utf8proc_bool utf8proc_charwidth_ambiguous(utf8proc_int32_t codepoint)
Definition utf8proc.c:435
utf8proc_bool utf8proc_grapheme_break(utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2)
Definition utf8proc.c:358
utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c)
Definition utf8proc.c:405
utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options)
Definition utf8proc.c:624
int utf8proc_isupper(utf8proc_int32_t c)
Definition utf8proc.c:423
utf8proc_category_t
Definition utf8proc.h:321
@ UTF8PROC_CATEGORY_SO
Definition utf8proc.h:344
@ UTF8PROC_CATEGORY_ME
Definition utf8proc.h:330
@ UTF8PROC_CATEGORY_SK
Definition utf8proc.h:343
@ UTF8PROC_CATEGORY_PF
Definition utf8proc.h:339
@ UTF8PROC_CATEGORY_MN
Definition utf8proc.h:328
@ UTF8PROC_CATEGORY_CN
Definition utf8proc.h:322
@ UTF8PROC_CATEGORY_SC
Definition utf8proc.h:342
@ UTF8PROC_CATEGORY_ND
Definition utf8proc.h:331
@ UTF8PROC_CATEGORY_LT
Definition utf8proc.h:325
@ UTF8PROC_CATEGORY_PC
Definition utf8proc.h:334
@ UTF8PROC_CATEGORY_NO
Definition utf8proc.h:333
@ UTF8PROC_CATEGORY_MC
Definition utf8proc.h:329
@ UTF8PROC_CATEGORY_ZS
Definition utf8proc.h:345
@ UTF8PROC_CATEGORY_CF
Definition utf8proc.h:349
@ UTF8PROC_CATEGORY_LU
Definition utf8proc.h:323
@ UTF8PROC_CATEGORY_ZL
Definition utf8proc.h:346
@ UTF8PROC_CATEGORY_NL
Definition utf8proc.h:332
@ UTF8PROC_CATEGORY_SM
Definition utf8proc.h:341
@ UTF8PROC_CATEGORY_ZP
Definition utf8proc.h:347
@ UTF8PROC_CATEGORY_PI
Definition utf8proc.h:338
@ UTF8PROC_CATEGORY_PO
Definition utf8proc.h:340
@ UTF8PROC_CATEGORY_PS
Definition utf8proc.h:336
@ UTF8PROC_CATEGORY_CS
Definition utf8proc.h:350
@ UTF8PROC_CATEGORY_PD
Definition utf8proc.h:335
@ UTF8PROC_CATEGORY_LM
Definition utf8proc.h:326
@ UTF8PROC_CATEGORY_PE
Definition utf8proc.h:337
@ UTF8PROC_CATEGORY_LL
Definition utf8proc.h:324
@ UTF8PROC_CATEGORY_LO
Definition utf8proc.h:327
@ UTF8PROC_CATEGORY_CO
Definition utf8proc.h:351
@ UTF8PROC_CATEGORY_CC
Definition utf8proc.h:348
utf8proc_bidi_class_t
Definition utf8proc.h:355
@ UTF8PROC_BIDI_CLASS_ES
Definition utf8proc.h:365
@ UTF8PROC_BIDI_CLASS_RLE
Definition utf8proc.h:361
@ UTF8PROC_BIDI_CLASS_L
Definition utf8proc.h:356
@ UTF8PROC_BIDI_CLASS_AN
Definition utf8proc.h:367
@ UTF8PROC_BIDI_CLASS_CS
Definition utf8proc.h:368
@ UTF8PROC_BIDI_CLASS_B
Definition utf8proc.h:371
@ UTF8PROC_BIDI_CLASS_WS
Definition utf8proc.h:373
@ UTF8PROC_BIDI_CLASS_EN
Definition utf8proc.h:364
@ UTF8PROC_BIDI_CLASS_LRI
Definition utf8proc.h:375
@ UTF8PROC_BIDI_CLASS_ON
Definition utf8proc.h:374
@ UTF8PROC_BIDI_CLASS_FSI
Definition utf8proc.h:377
@ UTF8PROC_BIDI_CLASS_PDI
Definition utf8proc.h:378
@ UTF8PROC_BIDI_CLASS_RLO
Definition utf8proc.h:362
@ UTF8PROC_BIDI_CLASS_LRO
Definition utf8proc.h:358
@ UTF8PROC_BIDI_CLASS_ET
Definition utf8proc.h:366
@ UTF8PROC_BIDI_CLASS_NSM
Definition utf8proc.h:369
@ UTF8PROC_BIDI_CLASS_LRE
Definition utf8proc.h:357
@ UTF8PROC_BIDI_CLASS_RLI
Definition utf8proc.h:376
@ UTF8PROC_BIDI_CLASS_S
Definition utf8proc.h:372
@ UTF8PROC_BIDI_CLASS_R
Definition utf8proc.h:359
@ UTF8PROC_BIDI_CLASS_BN
Definition utf8proc.h:370
@ UTF8PROC_BIDI_CLASS_AL
Definition utf8proc.h:360
@ UTF8PROC_BIDI_CLASS_PDF
Definition utf8proc.h:363