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 #define UCNV_ESCAPE_UNICODE "U"
00081
00088 typedef enum {
00089 UCNV_UNASSIGNED = 0,
00091 UCNV_ILLEGAL = 1,
00099 UCNV_IRREGULAR = 2,
00104 UCNV_RESET = 3,
00107 UCNV_CLOSE = 4,
00109 UCNV_CLONE = 5
00118 } UConverterCallbackReason;
00119
00120
00125 typedef struct {
00126 uint16_t size;
00127 UBool flush;
00128 UConverter *converter;
00129 const UChar *source;
00130 const UChar *sourceLimit;
00131 char *target;
00132 const char *targetLimit;
00133 int32_t *offsets;
00134 } UConverterFromUnicodeArgs;
00135
00136
00141 typedef struct {
00142 uint16_t size;
00143 UBool flush;
00144 UConverter *converter;
00145 const char *source;
00146 const char *sourceLimit;
00147 UChar *target;
00148 const UChar *targetLimit;
00149 int32_t *offsets;
00150 } UConverterToUnicodeArgs;
00151
00152
00159 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP (
00160 const void *context,
00161 UConverterFromUnicodeArgs *fromUArgs,
00162 const UChar* codeUnits,
00163 int32_t length,
00164 UChar32 codePoint,
00165 UConverterCallbackReason reason,
00166 UErrorCode * err);
00167
00168
00169
00177 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP (
00178 const void *context,
00179 UConverterToUnicodeArgs *fromUArgs,
00180 const char* codeUnits,
00181 int32_t length,
00182 UConverterCallbackReason reason,
00183 UErrorCode * err);
00184
00197 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SKIP (
00198 const void *context,
00199 UConverterFromUnicodeArgs *fromUArgs,
00200 const UChar* codeUnits,
00201 int32_t length,
00202 UChar32 codePoint,
00203 UConverterCallbackReason reason,
00204 UErrorCode * err);
00205
00220 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SUBSTITUTE (
00221 const void *context,
00222 UConverterFromUnicodeArgs *fromUArgs,
00223 const UChar* codeUnits,
00224 int32_t length,
00225 UChar32 codePoint,
00226 UConverterCallbackReason reason,
00227 UErrorCode * err);
00228
00269 U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_ESCAPE (
00270 const void *context,
00271 UConverterFromUnicodeArgs *fromUArgs,
00272 const UChar* codeUnits,
00273 int32_t length,
00274 UChar32 codePoint,
00275 UConverterCallbackReason reason,
00276 UErrorCode * err);
00277
00278
00291 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SKIP (
00292 const void *context,
00293 UConverterToUnicodeArgs *fromUArgs,
00294 const char* codeUnits,
00295 int32_t length,
00296 UConverterCallbackReason reason,
00297 UErrorCode * err);
00298
00310 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SUBSTITUTE (
00311 const void *context,
00312 UConverterToUnicodeArgs *fromUArgs,
00313 const char* codeUnits,
00314 int32_t length,
00315 UConverterCallbackReason reason,
00316 UErrorCode * err);
00317
00326 U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_ESCAPE (
00327 const void *context,
00328 UConverterToUnicodeArgs *fromUArgs,
00329 const char* codeUnits,
00330 int32_t length,
00331 UConverterCallbackReason reason,
00332 UErrorCode * err);
00333
00334 #endif
00335
00336