00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef UTRANS_H
00012 #define UTRANS_H
00013
00014 #include "unicode/utypes.h"
00015 #include "unicode/urep.h"
00016 #include "unicode/parseerr.h"
00017
00018
00019
00020
00021
00039
00040
00041
00042
00050 typedef void* UTransliterator;
00051
00060 typedef enum _UTransDirection {
00061
00068 UTRANS_FORWARD,
00069
00076 UTRANS_REVERSE
00077
00078 } UTransDirection;
00079
00102 typedef struct _UTransPosition {
00103
00111 int32_t contextStart;
00112
00120 int32_t contextLimit;
00121
00128 int32_t start;
00129
00136 int32_t limit;
00137
00138 } UTransPosition;
00139
00140
00141
00142
00143
00167 U_CAPI UTransliterator* U_EXPORT2
00168 utrans_open(const char* id,
00169 UTransDirection dir,
00170 const UChar* rules,
00171 int32_t rulesLength,
00172 UParseError* parseError,
00173 UErrorCode* status);
00174
00190 U_CAPI UTransliterator* U_EXPORT2
00191 utrans_openInverse(const UTransliterator* trans,
00192 UErrorCode* status);
00193
00204 U_CAPI UTransliterator* U_EXPORT2
00205 utrans_clone(const UTransliterator* trans,
00206 UErrorCode* status);
00207
00213 U_CAPI void U_EXPORT2
00214 utrans_close(UTransliterator* trans);
00215
00230 U_CAPI int32_t U_EXPORT2
00231 utrans_getID(const UTransliterator* trans,
00232 char* buf,
00233 int32_t bufCapacity);
00234
00249 U_CAPI void U_EXPORT2
00250 utrans_register(UTransliterator* adoptedTrans,
00251 UErrorCode* status);
00252
00261 U_CAPI void U_EXPORT2
00262 utrans_unregister(const char* id);
00263
00282 U_CAPI void U_EXPORT2
00283 utrans_setFilter(UTransliterator* trans,
00284 const UChar* filterPattern,
00285 int32_t filterPatternLen,
00286 UErrorCode* status);
00287
00292 U_CAPI int32_t U_EXPORT2
00293 utrans_countAvailableIDs(void);
00294
00312 U_CAPI int32_t U_EXPORT2
00313 utrans_getAvailableID(int32_t index,
00314 char* buf,
00315 int32_t bufCapacity);
00316
00317
00318
00319
00320
00344 U_CAPI void U_EXPORT2
00345 utrans_trans(const UTransliterator* trans,
00346 UReplaceable* rep,
00347 UReplaceableCallbacks* repFunc,
00348 int32_t start,
00349 int32_t* limit,
00350 UErrorCode* status);
00351
00395 U_CAPI void U_EXPORT2
00396 utrans_transIncremental(const UTransliterator* trans,
00397 UReplaceable* rep,
00398 UReplaceableCallbacks* repFunc,
00399 UTransPosition* pos,
00400 UErrorCode* status);
00401
00433 U_CAPI void U_EXPORT2
00434 utrans_transUChars(const UTransliterator* trans,
00435 UChar* text,
00436 int32_t* textLength,
00437 int32_t textCapacity,
00438 int32_t start,
00439 int32_t* limit,
00440 UErrorCode* status);
00441
00468 U_CAPI void U_EXPORT2
00469 utrans_transIncrementalUChars(const UTransliterator* trans,
00470 UChar* text,
00471 int32_t* textLength,
00472 int32_t textCapacity,
00473 UTransPosition* pos,
00474 UErrorCode* status);
00475
00476
00477
00482 #ifdef U_USE_DEPRECATED_FORMAT_API
00483
00484 #if ((U_ICU_VERSION_MAJOR_NUM != 2) || (U_ICU_VERSION_MINOR_NUM !=1))
00485 # error "ICU version has changed. Please redefine the macros under U_USE_DEPRECATED_FORMAT_API pre-processor definition"
00486 #else
00487 U_CAPI UTransliterator* U_EXPORT2
00488 utrans_openRules(const char* id,
00489 const UChar* rules,
00490 int32_t rulesLength,
00491 UTransDirection dir,
00492 UParseError* parseErr,
00493 UErrorCode* status){
00494 return utrans_open(id,dir,rules,rulesLength,parseErr,status);
00495 }
00496
00497 # define utrans_open_2_1(id,dir,status) utrans_open(id,dir,NULL,0,NULL,status)
00498
00499 #endif
00500 #endif
00501
00502
00503 #endif