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