ICU 55.1 55.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
unorm2.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************
3 *
4 * Copyright (C) 2009-2013, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 *******************************************************************************
8 * file name: unorm2.h
9 * encoding: US-ASCII
10 * tab size: 8 (not used)
11 * indentation:4
12 *
13 * created on: 2009dec15
14 * created by: Markus W. Scherer
15 */
16
17 #ifndef __UNORM2_H__
18 #define __UNORM2_H__
19
31 #include "unicode/utypes.h"
32 #include "unicode/localpointer.h"
33 #include "unicode/uset.h"
34
42 typedef enum {
51 UNORM2_COMPOSE,
60 UNORM2_DECOMPOSE,
73 UNORM2_FCD,
83 UNORM2_COMPOSE_CONTIGUOUS
84 } UNormalization2Mode;
85
91 typedef enum UNormalizationCheckResult {
96 UNORM_NO,
101 UNORM_YES,
109 UNORM_MAYBE
110 } UNormalizationCheckResult;
111
116 struct UNormalizer2;
117 typedef struct UNormalizer2 UNormalizer2;
119 #if !UCONFIG_NO_NORMALIZATION
120
132 U_STABLE const UNormalizer2 * U_EXPORT2
133 unorm2_getNFCInstance(UErrorCode *pErrorCode);
134
146 U_STABLE const UNormalizer2 * U_EXPORT2
147 unorm2_getNFDInstance(UErrorCode *pErrorCode);
148
160 U_STABLE const UNormalizer2 * U_EXPORT2
161 unorm2_getNFKCInstance(UErrorCode *pErrorCode);
162
174 U_STABLE const UNormalizer2 * U_EXPORT2
175 unorm2_getNFKDInstance(UErrorCode *pErrorCode);
176
188 U_STABLE const UNormalizer2 * U_EXPORT2
189 unorm2_getNFKCCasefoldInstance(UErrorCode *pErrorCode);
190
212 U_STABLE const UNormalizer2 * U_EXPORT2
213 unorm2_getInstance(const char *packageName,
214 const char *name,
215 UNormalization2Mode mode,
216 UErrorCode *pErrorCode);
217
233 U_STABLE UNormalizer2 * U_EXPORT2
234 unorm2_openFiltered(const UNormalizer2 *norm2, const USet *filterSet, UErrorCode *pErrorCode);
235
242 U_STABLE void U_EXPORT2
243 unorm2_close(UNormalizer2 *norm2);
244
245 #if U_SHOW_CPLUSPLUS_API
246
247 U_NAMESPACE_BEGIN
248
258 U_DEFINE_LOCAL_OPEN_POINTER(LocalUNormalizer2Pointer, UNormalizer2, unorm2_close);
259
260 U_NAMESPACE_END
261
262 #endif
263
280 U_STABLE int32_t U_EXPORT2
281 unorm2_normalize(const UNormalizer2 *norm2,
282 const UChar *src, int32_t length,
283 UChar *dest, int32_t capacity,
284 UErrorCode *pErrorCode);
303 U_STABLE int32_t U_EXPORT2
304 unorm2_normalizeSecondAndAppend(const UNormalizer2 *norm2,
305 UChar *first, int32_t firstLength, int32_t firstCapacity,
306 const UChar *second, int32_t secondLength,
307 UErrorCode *pErrorCode);
326 U_STABLE int32_t U_EXPORT2
327 unorm2_append(const UNormalizer2 *norm2,
328 UChar *first, int32_t firstLength, int32_t firstCapacity,
329 const UChar *second, int32_t secondLength,
330 UErrorCode *pErrorCode);
331
351 U_STABLE int32_t U_EXPORT2
352 unorm2_getDecomposition(const UNormalizer2 *norm2,
353 UChar32 c, UChar *decomposition, int32_t capacity,
354 UErrorCode *pErrorCode);
355
385 U_STABLE int32_t U_EXPORT2
386 unorm2_getRawDecomposition(const UNormalizer2 *norm2,
387 UChar32 c, UChar *decomposition, int32_t capacity,
388 UErrorCode *pErrorCode);
389
405 U_STABLE UChar32 U_EXPORT2
406 unorm2_composePair(const UNormalizer2 *norm2, UChar32 a, UChar32 b);
407
417 U_STABLE uint8_t U_EXPORT2
418 unorm2_getCombiningClass(const UNormalizer2 *norm2, UChar32 c);
419
436 U_STABLE UBool U_EXPORT2
437 unorm2_isNormalized(const UNormalizer2 *norm2,
438 const UChar *s, int32_t length,
439 UErrorCode *pErrorCode);
440
458 U_STABLE UNormalizationCheckResult U_EXPORT2
459 unorm2_quickCheck(const UNormalizer2 *norm2,
460 const UChar *s, int32_t length,
461 UErrorCode *pErrorCode);
462
487 U_STABLE int32_t U_EXPORT2
488 unorm2_spanQuickCheckYes(const UNormalizer2 *norm2,
489 const UChar *s, int32_t length,
490 UErrorCode *pErrorCode);
491
501 U_STABLE UBool U_EXPORT2
502 unorm2_hasBoundaryBefore(const UNormalizer2 *norm2, UChar32 c);
503
513 U_STABLE UBool U_EXPORT2
514 unorm2_hasBoundaryAfter(const UNormalizer2 *norm2, UChar32 c);
515
524 U_STABLE UBool U_EXPORT2
525 unorm2_isInert(const UNormalizer2 *norm2, UChar32 c);
526
527 #endif /* !UCONFIG_NO_NORMALIZATION */
528 #endif /* __UNORM2_H__ */