ICU 4.8.1.1  4.8.1.1
 All Data Structures 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-2010, 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 {
85 
111 
116 struct UNormalizer2;
117 typedef struct UNormalizer2 UNormalizer2;
119 #if !UCONFIG_NO_NORMALIZATION
120 
143 unorm2_getInstance(const char *packageName,
144  const char *name,
145  UNormalization2Mode mode,
146  UErrorCode *pErrorCode);
147 
164 unorm2_openFiltered(const UNormalizer2 *norm2, const USet *filterSet, UErrorCode *pErrorCode);
165 
172 U_STABLE void U_EXPORT2
173 unorm2_close(UNormalizer2 *norm2);
174 
175 #if U_SHOW_CPLUSPLUS_API
176 
178 
188 U_DEFINE_LOCAL_OPEN_POINTER(LocalUNormalizer2Pointer, UNormalizer2, unorm2_close);
189 
191 
192 #endif
193 
210 U_STABLE int32_t U_EXPORT2
211 unorm2_normalize(const UNormalizer2 *norm2,
212  const UChar *src, int32_t length,
213  UChar *dest, int32_t capacity,
214  UErrorCode *pErrorCode);
233 U_STABLE int32_t U_EXPORT2
235  UChar *first, int32_t firstLength, int32_t firstCapacity,
236  const UChar *second, int32_t secondLength,
237  UErrorCode *pErrorCode);
256 U_STABLE int32_t U_EXPORT2
257 unorm2_append(const UNormalizer2 *norm2,
258  UChar *first, int32_t firstLength, int32_t firstCapacity,
259  const UChar *second, int32_t secondLength,
260  UErrorCode *pErrorCode);
261 
278 U_DRAFT int32_t U_EXPORT2
280  UChar32 c, UChar *decomposition, int32_t capacity,
281  UErrorCode *pErrorCode);
282 
300 unorm2_isNormalized(const UNormalizer2 *norm2,
301  const UChar *s, int32_t length,
302  UErrorCode *pErrorCode);
303 
322 unorm2_quickCheck(const UNormalizer2 *norm2,
323  const UChar *s, int32_t length,
324  UErrorCode *pErrorCode);
325 
350 U_STABLE int32_t U_EXPORT2
352  const UChar *s, int32_t length,
353  UErrorCode *pErrorCode);
354 
366 
378 
388 unorm2_isInert(const UNormalizer2 *norm2, UChar32 c);
389 
390 #endif /* !UCONFIG_NO_NORMALIZATION */
391 #endif /* __UNORM2_H__ */
"Fast C or D" form.
Definition: unorm2.h:73
The input string is not in the normalization form.
Definition: unorm2.h:96
const UNormalizer2 * unorm2_getInstance(const char *packageName, const char *name, UNormalization2Mode mode, UErrorCode *pErrorCode)
Returns a UNormalizer2 instance which uses the specified data file (packageName/name similar to ucnv_...
Map, and reorder canonically.
Definition: unorm2.h:60
UBool unorm2_isInert(const UNormalizer2 *norm2, UChar32 c)
Tests if the character is normalization-inert.
The input string is in the normalization form.
Definition: unorm2.h:101
void unorm2_close(UNormalizer2 *norm2)
Closes a UNormalizer2 instance from unorm2_openFiltered().
UBool unorm2_isNormalized(const UNormalizer2 *norm2, const UChar *s, int32_t length, UErrorCode *pErrorCode)
Tests if the string is normalized.
The input string may or may not be in the normalization form.
Definition: unorm2.h:109
Compose only contiguously.
Definition: unorm2.h:83
int32_t unorm2_getDecomposition(const UNormalizer2 *norm2, UChar32 c, UChar *decomposition, int32_t capacity, UErrorCode *pErrorCode)
Gets the decomposition mapping of c.
UNormalizer2 * unorm2_openFiltered(const UNormalizer2 *norm2, const USet *filterSet, UErrorCode *pErrorCode)
Constructs a filtered normalizer wrapping any UNormalizer2 instance and a filter set.
C API: Unicode Set.
UNormalizationCheckResult unorm2_quickCheck(const UNormalizer2 *norm2, const UChar *s, int32_t length, UErrorCode *pErrorCode)
Tests if the string is normalized.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:131
int32_t unorm2_normalize(const UNormalizer2 *norm2, const UChar *src, int32_t length, UChar *dest, int32_t capacity, UErrorCode *pErrorCode)
Writes the normalized form of the source string to the destination string (replacing its contents) an...
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
struct UNormalizer2 UNormalizer2
C typedef for struct UNormalizer2.
Definition: unorm2.h:117
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:345
#define U_EXPORT2
Definition: platform.h:314
uint16_t UChar
Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned.
Definition: umachine.h:325
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:132
struct USet USet
Definition: ucnv.h:67
UNormalization2Mode
Constants for normalization modes.
Definition: unorm2.h:42
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:639
int32_t unorm2_normalizeSecondAndAppend(const UNormalizer2 *norm2, UChar *first, int32_t firstLength, int32_t firstCapacity, const UChar *second, int32_t secondLength, UErrorCode *pErrorCode)
Appends the normalized form of the second string to the first string (merging them at the boundary) a...
UBool unorm2_hasBoundaryAfter(const UNormalizer2 *norm2, UChar32 c)
Tests if the character always has a normalization boundary after it, regardless of context...
int32_t unorm2_spanQuickCheckYes(const UNormalizer2 *norm2, const UChar *s, int32_t length, UErrorCode *pErrorCode)
Returns the end of the normalized substring of the input string.
Basic definitions for ICU, for both C and C++ APIs.
UBool unorm2_hasBoundaryBefore(const UNormalizer2 *norm2, UChar32 c)
Tests if the character always has a normalization boundary before it, regardless of context...
int32_t unorm2_append(const UNormalizer2 *norm2, UChar *first, int32_t firstLength, int32_t firstCapacity, const UChar *second, int32_t secondLength, UErrorCode *pErrorCode)
Appends the second string to the first string (merging them at the boundary) and returns the length o...
#define U_DRAFT
This is used to declare a function as a draft public ICU C API.
Definition: umachine.h:139
Decomposition followed by composition.
Definition: unorm2.h:51
UNormalizationCheckResult
Result values for normalization quick check functions.
Definition: unorm2.h:91
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:137
int8_t UBool
The ICU boolean type.
Definition: umachine.h:228