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 #define UCNV_SKIP_STOP_ON_ILLEGAL "i"
00070
00075 #define UCNV_ESCAPE_ICU NULL
00076 #define UCNV_ESCAPE_JAVA "J"
00077 #define UCNV_ESCAPE_C "C"
00078 #define UCNV_ESCAPE_XML_DEC "D"
00079 #define UCNV_ESCAPE_XML_HEX "X"
00080
00085 typedef enum {
00086 UCNV_UNASSIGNED = 0,
00088 UCNV_ILLEGAL = 1,
00096 UCNV_IRREGULAR = 2,
00101 UCNV_RESET = 3,
00104 UCNV_CLOSE = 4
00106 } UConverterCallbackReason;
00107
00108
00113 typedef struct {
00114 uint16_t size;
00115 UBool flush;
00116 UConverter *converter;
00117 const UChar *source;
00118 const UChar *sourceLimit;
00119 char *target;
00120 const char *targetLimit;
00121 int32_t *offsets;
00122 } UConverterFromUnicodeArgs;
00123
00124
00129 typedef struct {
00130 uint16_t size;
00131 UBool flush;
00132 UConverter *converter;
00133 const char *source;
00134 const char *sourceLimit;
00135 UChar *target;
00136 const UChar *targetLimit;
00137 int32_t *offsets;
00138 } UConverterToUnicodeArgs;
00139
00140
00147 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP (
00148 const void *context,
00149 UConverterFromUnicodeArgs *fromUArgs,
00150 const UChar* codeUnits,
00151 int32_t length,
00152 UChar32 codePoint,
00153 UConverterCallbackReason reason,
00154 UErrorCode * err);
00155
00156
00157
00165 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP (
00166 const void *context,
00167 UConverterToUnicodeArgs *fromUArgs,
00168 const char* codeUnits,
00169 int32_t length,
00170 UConverterCallbackReason reason,
00171 UErrorCode * err);
00172
00185 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SKIP (
00186 const void *context,
00187 UConverterFromUnicodeArgs *fromUArgs,
00188 const UChar* codeUnits,
00189 int32_t length,
00190 UChar32 codePoint,
00191 UConverterCallbackReason reason,
00192 UErrorCode * err);
00193
00208 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SUBSTITUTE (
00209 const void *context,
00210 UConverterFromUnicodeArgs *fromUArgs,
00211 const UChar* codeUnits,
00212 int32_t length,
00213 UChar32 codePoint,
00214 UConverterCallbackReason reason,
00215 UErrorCode * err);
00216
00257 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_ESCAPE (
00258 const void *context,
00259 UConverterFromUnicodeArgs *fromUArgs,
00260 const UChar* codeUnits,
00261 int32_t length,
00262 UChar32 codePoint,
00263 UConverterCallbackReason reason,
00264 UErrorCode * err);
00265
00266
00279 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SKIP (
00280 const void *context,
00281 UConverterToUnicodeArgs *fromUArgs,
00282 const char* codeUnits,
00283 int32_t length,
00284 UConverterCallbackReason reason,
00285 UErrorCode * err);
00286
00298 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SUBSTITUTE (
00299 const void *context,
00300 UConverterToUnicodeArgs *fromUArgs,
00301 const char* codeUnits,
00302 int32_t length,
00303 UConverterCallbackReason reason,
00304 UErrorCode * err);
00305
00314 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_ESCAPE (
00315 const void *context,
00316 UConverterToUnicodeArgs *fromUArgs,
00317 const char* codeUnits,
00318 int32_t length,
00319 UConverterCallbackReason reason,
00320 UErrorCode * err);
00321
00322 #endif
00323
00324