00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef UTYPES_H
00033 #define UTYPES_H
00034
00035
00036 #include "unicode/umachine.h"
00037 #include "unicode/utf.h"
00038 #include "unicode/uversion.h"
00039
00050
00051
00052
00053
00094 #define U_ASCII_FAMILY 0
00095 #define U_EBCDIC_FAMILY 1
00096
00097 #ifndef U_CHARSET_FAMILY
00098 # define U_CHARSET_FAMILY 0
00099 #endif
00100
00101
00102
00103
00104
00114 #if U_CHARSET_FAMILY
00115 # if U_IS_BIG_ENDIAN
00116
00117 # define U_ICUDATA_TYPE_LETTER "e"
00118 # define U_ICUDATA_TYPE_LITLETTER e
00119 # else
00120 # error "Don't know what to do with little endian EBCDIC!"
00121 # define U_ICUDATA_TYPE_LETTER "x"
00122 # define U_ICUDATA_TYPE_LITLETTER x
00123 # endif
00124 #else
00125 # if U_IS_BIG_ENDIAN
00126
00127 # define U_ICUDATA_TYPE_LETTER "b"
00128 # define U_ICUDATA_TYPE_LITLETTER b
00129 # else
00130
00131 # define U_ICUDATA_TYPE_LETTER "l"
00132 # define U_ICUDATA_TYPE_LITLETTER l
00133 # endif
00134 #endif
00135
00138 #define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151 #if U_HAVE_LIB_SUFFIX
00152 #define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_LIB_SUFFIX_C_NAME)
00153 #define U_DEF2_ICUDATA_ENTRY_POINT(major, minor, suffix) U_DEF_ICUDATA_ENTRY_POINT(major, minor, suffix)
00154 #define U_DEF_ICUDATA_ENTRY_POINT(major, minor, suffix) icudt##major##minor##suffix##_dat
00155 #else
00156 #define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)
00157 #define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor)
00158 #define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat
00159 #endif
00160
00171 #if defined(OS390) && defined(XP_CPLUSPLUS)
00172 # define U_CALLCONV __cdecl
00173 #else
00174 # define U_CALLCONV
00175 #endif
00176
00181 #ifndef NULL
00182 #ifdef XP_CPLUSPLUS
00183 #define NULL 0
00184 #else
00185 #define NULL ((void *)0)
00186 #endif
00187 #endif
00188
00189
00190
00191
00192
00199 typedef double UDate;
00200
00201
00202 #define U_MILLIS_PER_SECOND (1000)
00203 #define U_MILLIS_PER_MINUTE (60000)
00204 #define U_MILLIS_PER_HOUR (3600000)
00205 #define U_MILLIS_PER_DAY (86400000)
00206
00207
00208
00209
00210
00211
00254 typedef void* UClassID;
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00292 #if defined(U_COMBINED_IMPLEMENTATION)
00293 #define U_COMMON_API U_EXPORT
00294 #define U_I18N_API U_EXPORT
00295 #define U_LAYOUT_API U_EXPORT
00296 #define U_USTDIO_API U_EXPORT
00297 #elif defined(U_STATIC_IMPLEMENTATION)
00298 #define U_COMMON_API
00299 #define U_I18N_API
00300 #define U_LAYOUT_API
00301 #define U_USTDIO_API
00302 #elif defined(U_COMMON_IMPLEMENTATION)
00303 #define U_COMMON_API U_EXPORT
00304 #define U_I18N_API U_IMPORT
00305 #define U_LAYOUT_API U_IMPORT
00306 #define U_USTDIO_API U_IMPORT
00307 #elif defined(U_I18N_IMPLEMENTATION)
00308 #define U_COMMON_API U_IMPORT
00309 #define U_I18N_API U_EXPORT
00310 #define U_LAYOUT_API U_IMPORT
00311 #define U_USTDIO_API U_IMPORT
00312 #elif defined(U_LAYOUT_IMPLEMENTATION)
00313 #define U_COMMON_API U_IMPORT
00314 #define U_I18N_API U_IMPORT
00315 #define U_LAYOUT_API U_EXPORT
00316 #define U_USTDIO_API U_IMPORT
00317 #elif defined(U_USTDIO_IMPLEMENTATION)
00318 #define U_COMMON_API U_IMPORT
00319 #define U_I18N_API U_IMPORT
00320 #define U_LAYOUT_API U_IMPORT
00321 #define U_USTDIO_API U_EXPORT
00322 #else
00323 #define U_COMMON_API U_IMPORT
00324 #define U_I18N_API U_IMPORT
00325 #define U_LAYOUT_API U_IMPORT
00326 #define U_USTDIO_API U_IMPORT
00327 #endif
00328
00333 #ifdef __cplusplus
00334 #define U_STANDARD_CPP_NAMESPACE ::
00335 #else
00336 #define U_STANDARD_CPP_NAMESPACE
00337 #endif
00338
00339
00340
00341
00342
00356 enum UErrorCode {
00357
00358
00359
00360
00361
00362 U_USING_FALLBACK_WARNING = -128,
00364 U_USING_FALLBACK_ERROR = -128,
00366 U_ERROR_WARNING_START = -128,
00369 U_ERROR_INFO_START = U_ERROR_WARNING_START,
00371 U_USING_DEFAULT_WARNING = -127,
00373 U_USING_DEFAULT_ERROR = -127,
00375 U_SAFECLONE_ALLOCATED_WARNING = -126,
00377 U_SAFECLONE_ALLOCATED_ERROR = -126,
00379 U_STATE_OLD_WARNING = -125,
00381 U_STRING_NOT_TERMINATED_WARNING = -124,
00382 U_SORT_KEY_TOO_SHORT_WARNING = -123,
00383
00384 U_ERROR_WARNING_LIMIT,
00387 U_ERROR_INFO_LIMIT = U_ERROR_WARNING_LIMIT,
00389 U_ZERO_ERROR = 0,
00391 U_ILLEGAL_ARGUMENT_ERROR = 1,
00392 U_MISSING_RESOURCE_ERROR = 2,
00393 U_INVALID_FORMAT_ERROR = 3,
00394 U_FILE_ACCESS_ERROR = 4,
00395 U_INTERNAL_PROGRAM_ERROR = 5,
00396 U_MESSAGE_PARSE_ERROR = 6,
00397 U_MEMORY_ALLOCATION_ERROR = 7,
00398 U_INDEX_OUTOFBOUNDS_ERROR = 8,
00399 U_PARSE_ERROR = 9,
00400 U_INVALID_CHAR_FOUND = 10,
00401 U_TRUNCATED_CHAR_FOUND = 11,
00402 U_ILLEGAL_CHAR_FOUND = 12,
00403 U_INVALID_TABLE_FORMAT = 13,
00404 U_INVALID_TABLE_FILE = 14,
00405 U_BUFFER_OVERFLOW_ERROR = 15,
00406 U_UNSUPPORTED_ERROR = 16,
00407 U_RESOURCE_TYPE_MISMATCH = 17,
00408 U_ILLEGAL_ESCAPE_SEQUENCE = 18,
00409 U_UNSUPPORTED_ESCAPE_SEQUENCE = 19,
00410 U_NO_SPACE_AVAILABLE = 20,
00411 U_CE_NOT_FOUND_ERROR = 21,
00412 U_PRIMARY_TOO_LONG_ERROR = 22,
00413 U_STATE_TOO_OLD_ERROR = 23,
00414 U_STANDARD_ERROR_LIMIT,
00415
00416
00417
00418 U_BAD_VARIABLE_DEFINITION=0x10000,
00419 U_PARSE_ERROR_START = 0x10000,
00420 U_MALFORMED_RULE,
00421 U_MALFORMED_SET,
00422 U_MALFORMED_SYMBOL_REFERENCE,
00423 U_MALFORMED_UNICODE_ESCAPE,
00424 U_MALFORMED_VARIABLE_DEFINITION,
00425 U_MALFORMED_VARIABLE_REFERENCE,
00426 U_MISMATCHED_SEGMENT_DELIMITERS,
00427 U_MISPLACED_ANCHOR_START,
00428 U_MISPLACED_CURSOR_OFFSET,
00429 U_MISPLACED_QUANTIFIER,
00430 U_MISSING_OPERATOR,
00431 U_MISSING_SEGMENT_CLOSE,
00432 U_MULTIPLE_ANTE_CONTEXTS,
00433 U_MULTIPLE_CURSORS,
00434 U_MULTIPLE_POST_CONTEXTS,
00435 U_TRAILING_BACKSLASH,
00436 U_UNDEFINED_SEGMENT_REFERENCE,
00437 U_UNDEFINED_VARIABLE,
00438 U_UNQUOTED_SPECIAL,
00439 U_UNTERMINATED_QUOTE,
00440 U_RULE_MASK_ERROR,
00441 U_MISPLACED_COMPOUND_FILTER,
00442 U_MULTIPLE_COMPOUND_FILTERS,
00443 U_INVALID_RBT_SYNTAX,
00444 U_INVALID_PROPERTY_PATTERN,
00445 U_MALFORMED_PRAGMA,
00446 U_UNCLOSED_SEGMENT,
00447 U_ILLEGAL_CHAR_IN_SEGMENT,
00448 U_VARIABLE_RANGE_EXHAUSTED,
00449 U_VARIABLE_RANGE_OVERLAP,
00450 U_ILLEGAL_CHARACTER,
00451 U_INTERNAL_TRANSLITERATOR_ERROR,
00452 U_INVALID_ID,
00453 U_INVALID_FUNCTION,
00454 U_PARSE_ERROR_LIMIT,
00456
00457
00458
00459 U_UNEXPECTED_TOKEN=0x10100,
00460 U_FMT_PARSE_ERROR_START=0x10100,
00461 U_MULTIPLE_DECIMAL_SEPERATORS,
00462 U_MULTIPLE_EXPONENTIAL_SYMBOLS,
00463 U_MALFORMED_EXPONENTIAL_PATTERN,
00464 U_MULTIPLE_PERCENT_SYMBOLS,
00465 U_MULTIPLE_PERMILL_SYMBOLS,
00466 U_MULTIPLE_PAD_SPECIFIERS,
00467 U_PATTERN_SYNTAX_ERROR,
00468 U_ILLEGAL_PAD_POSITION,
00469 U_UNMATCHED_BRACES,
00470 U_UNSUPPORTED_PROPERTY,
00471 U_UNSUPPORTED_ATTRIBUTE,
00472 U_FMT_PARSE_ERROR_LIMIT,
00473
00474 U_ERROR_LIMIT=U_FMT_PARSE_ERROR_LIMIT
00475 };
00476
00477 #ifndef XP_CPLUSPLUS
00478 typedef enum UErrorCode UErrorCode;
00479 #endif
00480
00481
00482
00483
00484 #ifdef XP_CPLUSPLUS
00485
00489 static
00490 inline UBool U_SUCCESS(UErrorCode code) { return (UBool)(code<=U_ZERO_ERROR); }
00495 static
00496 inline UBool U_FAILURE(UErrorCode code) { return (UBool)(code>U_ZERO_ERROR); }
00497 #else
00498
00502 # define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
00503
00507 # define U_FAILURE(x) ((x)>U_ZERO_ERROR)
00508 #endif
00509
00515 U_CAPI const char * U_EXPORT2
00516 u_errorName(UErrorCode code);
00517
00518
00519
00520
00521
00522
00523
00524 #include "unicode/putil.h"
00525
00526 #endif