00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00083 #ifndef UCNV_ERR_H
00084 #define UCNV_ERR_H
00085
00086 #include "unicode/utypes.h"
00087
00088 #if !UCONFIG_NO_CONVERSION
00089
00091 struct UConverter;
00092
00094 typedef struct UConverter UConverter;
00095
00100 #define UCNV_SUB_STOP_ON_ILLEGAL "i"
00101
00106 #define UCNV_SKIP_STOP_ON_ILLEGAL "i"
00107
00112 #define UCNV_ESCAPE_ICU NULL
00113
00117 #define UCNV_ESCAPE_JAVA "J"
00118
00123 #define UCNV_ESCAPE_C "C"
00124
00129 #define UCNV_ESCAPE_XML_DEC "D"
00130
00135 #define UCNV_ESCAPE_XML_HEX "X"
00136
00140 #define UCNV_ESCAPE_UNICODE "U"
00141
00147 #define UCNV_ESCAPE_CSS2 "S"
00148
00155 typedef enum {
00156 UCNV_UNASSIGNED = 0,
00158 UCNV_ILLEGAL = 1,
00166 UCNV_IRREGULAR = 2,
00171 UCNV_RESET = 3,
00174 UCNV_CLOSE = 4,
00176 UCNV_CLONE = 5
00185 } UConverterCallbackReason;
00186
00187
00192 typedef struct {
00193 uint16_t size;
00194 UBool flush;
00195 UConverter *converter;
00196 const UChar *source;
00197 const UChar *sourceLimit;
00198 char *target;
00199 const char *targetLimit;
00200 int32_t *offsets;
00201 } UConverterFromUnicodeArgs;
00202
00203
00208 typedef struct {
00209 uint16_t size;
00210 UBool flush;
00211 UConverter *converter;
00212 const char *source;
00213 const char *sourceLimit;
00214 UChar *target;
00215 const UChar *targetLimit;
00216 int32_t *offsets;
00217 } UConverterToUnicodeArgs;
00218
00219
00234 U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP (
00235 const void *context,
00236 UConverterFromUnicodeArgs *fromUArgs,
00237 const UChar* codeUnits,
00238 int32_t length,
00239 UChar32 codePoint,
00240 UConverterCallbackReason reason,
00241 UErrorCode * err);
00242
00243
00244
00258 U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP (
00259 const void *context,
00260 UConverterToUnicodeArgs *toUArgs,
00261 const char* codeUnits,
00262 int32_t length,
00263 UConverterCallbackReason reason,
00264 UErrorCode * err);
00265
00285 U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_SKIP (
00286 const void *context,
00287 UConverterFromUnicodeArgs *fromUArgs,
00288 const UChar* codeUnits,
00289 int32_t length,
00290 UChar32 codePoint,
00291 UConverterCallbackReason reason,
00292 UErrorCode * err);
00293
00315 U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_SUBSTITUTE (
00316 const void *context,
00317 UConverterFromUnicodeArgs *fromUArgs,
00318 const UChar* codeUnits,
00319 int32_t length,
00320 UChar32 codePoint,
00321 UConverterCallbackReason reason,
00322 UErrorCode * err);
00323
00371 U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_ESCAPE (
00372 const void *context,
00373 UConverterFromUnicodeArgs *fromUArgs,
00374 const UChar* codeUnits,
00375 int32_t length,
00376 UChar32 codePoint,
00377 UConverterCallbackReason reason,
00378 UErrorCode * err);
00379
00380
00399 U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_SKIP (
00400 const void *context,
00401 UConverterToUnicodeArgs *toUArgs,
00402 const char* codeUnits,
00403 int32_t length,
00404 UConverterCallbackReason reason,
00405 UErrorCode * err);
00406
00425 U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_SUBSTITUTE (
00426 const void *context,
00427 UConverterToUnicodeArgs *toUArgs,
00428 const char* codeUnits,
00429 int32_t length,
00430 UConverterCallbackReason reason,
00431 UErrorCode * err);
00432
00451 U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_ESCAPE (
00452 const void *context,
00453 UConverterToUnicodeArgs *toUArgs,
00454 const char* codeUnits,
00455 int32_t length,
00456 UConverterCallbackReason reason,
00457 UErrorCode * err);
00458
00459 #endif
00460
00461 #endif
00462
00463