00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00083
00084 #ifndef UCNV_H
00085 # include "unicode/ucnv.h"
00086
00087 #endif
00088
00089 #ifndef UCNV_ERR_H
00090 #define UCNV_ERR_H
00091
00092 #include "unicode/utypes.h"
00093
00094
00099 #define UCNV_SUB_STOP_ON_ILLEGAL "i"
00100
00105 #define UCNV_SKIP_STOP_ON_ILLEGAL "i"
00106
00111 #define UCNV_ESCAPE_ICU NULL
00112
00116 #define UCNV_ESCAPE_JAVA "J"
00117
00122 #define UCNV_ESCAPE_C "C"
00123
00128 #define UCNV_ESCAPE_XML_DEC "D"
00129
00134 #define UCNV_ESCAPE_XML_HEX "X"
00135
00139 #define UCNV_ESCAPE_UNICODE "U"
00140
00147 typedef enum {
00148 UCNV_UNASSIGNED = 0,
00150 UCNV_ILLEGAL = 1,
00158 UCNV_IRREGULAR = 2,
00163 UCNV_RESET = 3,
00166 UCNV_CLOSE = 4,
00168 UCNV_CLONE = 5
00177 } UConverterCallbackReason;
00178
00179
00184 typedef struct {
00185 uint16_t size;
00186 UBool flush;
00187 UConverter *converter;
00188 const UChar *source;
00189 const UChar *sourceLimit;
00190 char *target;
00191 const char *targetLimit;
00192 int32_t *offsets;
00193 } UConverterFromUnicodeArgs;
00194
00195
00200 typedef struct {
00201 uint16_t size;
00202 UBool flush;
00203 UConverter *converter;
00204 const char *source;
00205 const char *sourceLimit;
00206 UChar *target;
00207 const UChar *targetLimit;
00208 int32_t *offsets;
00209 } UConverterToUnicodeArgs;
00210
00211
00226 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP (
00227 const void *context,
00228 UConverterFromUnicodeArgs *fromUArgs,
00229 const UChar* codeUnits,
00230 int32_t length,
00231 UChar32 codePoint,
00232 UConverterCallbackReason reason,
00233 UErrorCode * err);
00234
00235
00236
00250 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP (
00251 const void *context,
00252 UConverterToUnicodeArgs *toUArgs,
00253 const char* codeUnits,
00254 int32_t length,
00255 UConverterCallbackReason reason,
00256 UErrorCode * err);
00257
00277 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SKIP (
00278 const void *context,
00279 UConverterFromUnicodeArgs *fromUArgs,
00280 const UChar* codeUnits,
00281 int32_t length,
00282 UChar32 codePoint,
00283 UConverterCallbackReason reason,
00284 UErrorCode * err);
00285
00307 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SUBSTITUTE (
00308 const void *context,
00309 UConverterFromUnicodeArgs *fromUArgs,
00310 const UChar* codeUnits,
00311 int32_t length,
00312 UChar32 codePoint,
00313 UConverterCallbackReason reason,
00314 UErrorCode * err);
00315
00363 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_ESCAPE (
00364 const void *context,
00365 UConverterFromUnicodeArgs *fromUArgs,
00366 const UChar* codeUnits,
00367 int32_t length,
00368 UChar32 codePoint,
00369 UConverterCallbackReason reason,
00370 UErrorCode * err);
00371
00372
00391 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SKIP (
00392 const void *context,
00393 UConverterToUnicodeArgs *toUArgs,
00394 const char* codeUnits,
00395 int32_t length,
00396 UConverterCallbackReason reason,
00397 UErrorCode * err);
00398
00417 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SUBSTITUTE (
00418 const void *context,
00419 UConverterToUnicodeArgs *toUArgs,
00420 const char* codeUnits,
00421 int32_t length,
00422 UConverterCallbackReason reason,
00423 UErrorCode * err);
00424
00443 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_ESCAPE (
00444 const void *context,
00445 UConverterToUnicodeArgs *toUArgs,
00446 const char* codeUnits,
00447 int32_t length,
00448 UConverterCallbackReason reason,
00449 UErrorCode * err);
00450
00451 #endif
00452
00453