00001
00002
00003
00004
00005
00006
00007
00008
00009
00052
00053 #ifndef UCNV_H
00054 # include "unicode/ucnv.h"
00055
00056 #endif
00057
00058 #ifndef UCNV_ERR_H
00059 #define UCNV_ERR_H
00060
00061 #include "unicode/utypes.h"
00062
00063
00068 #define UCNV_SUB_STOP_ON_ILLEGAL "i"
00069
00074 #define UCNV_SKIP_STOP_ON_ILLEGAL "i"
00075
00080 #define UCNV_ESCAPE_ICU NULL
00081
00085 #define UCNV_ESCAPE_JAVA "J"
00086
00091 #define UCNV_ESCAPE_C "C"
00092
00097 #define UCNV_ESCAPE_XML_DEC "D"
00098
00103 #define UCNV_ESCAPE_XML_HEX "X"
00104
00108 #define UCNV_ESCAPE_UNICODE "U"
00109
00116 typedef enum {
00117 UCNV_UNASSIGNED = 0,
00119 UCNV_ILLEGAL = 1,
00127 UCNV_IRREGULAR = 2,
00132 UCNV_RESET = 3,
00135 UCNV_CLOSE = 4,
00137 UCNV_CLONE = 5
00146 } UConverterCallbackReason;
00147
00148
00153 typedef struct {
00154 uint16_t size;
00155 UBool flush;
00156 UConverter *converter;
00157 const UChar *source;
00158 const UChar *sourceLimit;
00159 char *target;
00160 const char *targetLimit;
00161 int32_t *offsets;
00162 } UConverterFromUnicodeArgs;
00163
00164
00169 typedef struct {
00170 uint16_t size;
00171 UBool flush;
00172 UConverter *converter;
00173 const char *source;
00174 const char *sourceLimit;
00175 UChar *target;
00176 const UChar *targetLimit;
00177 int32_t *offsets;
00178 } UConverterToUnicodeArgs;
00179
00180
00187 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP (
00188 const void *context,
00189 UConverterFromUnicodeArgs *fromUArgs,
00190 const UChar* codeUnits,
00191 int32_t length,
00192 UChar32 codePoint,
00193 UConverterCallbackReason reason,
00194 UErrorCode * err);
00195
00196
00197
00205 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP (
00206 const void *context,
00207 UConverterToUnicodeArgs *fromUArgs,
00208 const char* codeUnits,
00209 int32_t length,
00210 UConverterCallbackReason reason,
00211 UErrorCode * err);
00212
00225 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SKIP (
00226 const void *context,
00227 UConverterFromUnicodeArgs *fromUArgs,
00228 const UChar* codeUnits,
00229 int32_t length,
00230 UChar32 codePoint,
00231 UConverterCallbackReason reason,
00232 UErrorCode * err);
00233
00248 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SUBSTITUTE (
00249 const void *context,
00250 UConverterFromUnicodeArgs *fromUArgs,
00251 const UChar* codeUnits,
00252 int32_t length,
00253 UChar32 codePoint,
00254 UConverterCallbackReason reason,
00255 UErrorCode * err);
00256
00297 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_ESCAPE (
00298 const void *context,
00299 UConverterFromUnicodeArgs *fromUArgs,
00300 const UChar* codeUnits,
00301 int32_t length,
00302 UChar32 codePoint,
00303 UConverterCallbackReason reason,
00304 UErrorCode * err);
00305
00306
00319 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SKIP (
00320 const void *context,
00321 UConverterToUnicodeArgs *fromUArgs,
00322 const char* codeUnits,
00323 int32_t length,
00324 UConverterCallbackReason reason,
00325 UErrorCode * err);
00326
00338 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SUBSTITUTE (
00339 const void *context,
00340 UConverterToUnicodeArgs *fromUArgs,
00341 const char* codeUnits,
00342 int32_t length,
00343 UConverterCallbackReason reason,
00344 UErrorCode * err);
00345
00354 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_ESCAPE (
00355 const void *context,
00356 UConverterToUnicodeArgs *fromUArgs,
00357 const char* codeUnits,
00358 int32_t length,
00359 UConverterCallbackReason reason,
00360 UErrorCode * err);
00361
00362 #endif
00363
00364