X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz%2Ficu_I18N.h;h=2a1364dc46cfd5dca0d8edcb93454c86fe63dbc7;hb=e089d89f38b4fc61fce16eb03150776844b053f8;hp=8e73a0b489007b9d81d1209488e11e357110446f;hpb=c168c38b0beb83bca23c72d9203cc796a374bfac;p=yaz-moved-to-github.git diff --git a/include/yaz/icu_I18N.h b/include/yaz/icu_I18N.h index 8e73a0b..2a1364d 100644 --- a/include/yaz/icu_I18N.h +++ b/include/yaz/icu_I18N.h @@ -25,12 +25,15 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/** \file + \brief Internal header for ICU utilities +*/ + #ifndef ICU_I18NL_H #define ICU_I18NL_H -#include +#include -#include #include #include /* Basic ICU data types */ @@ -40,7 +43,7 @@ #include #include - +#include /* declared structs and functions */ @@ -48,16 +51,21 @@ int icu_check_status (UErrorCode status); struct icu_buf_utf16 { - UChar * utf16; - int32_t utf16_len; - int32_t utf16_cap; + UChar * utf16; + int32_t utf16_len; + int32_t utf16_cap; }; struct icu_buf_utf16 * icu_buf_utf16_create(size_t capacity); + +struct icu_buf_utf16 * icu_buf_utf16_clear(struct icu_buf_utf16 * buf16); + struct icu_buf_utf16 * icu_buf_utf16_resize(struct icu_buf_utf16 * buf16, size_t capacity); + struct icu_buf_utf16 * icu_buf_utf16_copy(struct icu_buf_utf16 * dest16, struct icu_buf_utf16 * src16); + void icu_buf_utf16_destroy(struct icu_buf_utf16 * buf16); @@ -70,8 +78,12 @@ struct icu_buf_utf8 }; struct icu_buf_utf8 * icu_buf_utf8_create(size_t capacity); + +struct icu_buf_utf8 * icu_buf_utf8_clear(struct icu_buf_utf8 * buf8); + struct icu_buf_utf8 * icu_buf_utf8_resize(struct icu_buf_utf8 * buf8, size_t capacity); + void icu_buf_utf8_destroy(struct icu_buf_utf8 * buf8); @@ -90,19 +102,19 @@ UErrorCode icu_utf16_to_utf8(struct icu_buf_utf8 * dest8, struct icu_casemap { - char locale[16]; char action; }; struct icu_casemap * icu_casemap_create(const char *locale, char action, - UErrorCode *status); + UErrorCode *status); void icu_casemap_destroy(struct icu_casemap * casemap); int icu_casemap_casemap(struct icu_casemap * casemap, struct icu_buf_utf16 * dest16, struct icu_buf_utf16 * src16, - UErrorCode *status); + UErrorCode *status, + const char *locale); int icu_utf16_casemap(struct icu_buf_utf16 * dest16, struct icu_buf_utf16 * src16, @@ -176,8 +188,6 @@ int icu_normalizer_normalize(struct icu_normalizer * normalizer, enum icu_chain_step_type { ICU_chain_step_type_none, ICU_chain_step_type_display, /* convert to utf8 display format */ - ICU_chain_step_type_index, /* convert to utf8 index format */ - ICU_chain_step_type_sortkey, /* convert to utf8 sortkey format */ ICU_chain_step_type_casemap, /* apply utf16 charmap */ ICU_chain_step_type_normalize, /* apply utf16 normalization */ ICU_chain_step_type_tokenize /* apply utf16 tokenization */ @@ -204,7 +214,7 @@ struct icu_chain_step struct icu_chain; -struct icu_chain_step * icu_chain_step_create(struct icu_chain * chain, +struct icu_chain_step * icu_chain_step_create(yaz_icu_chain_t chain, enum icu_chain_step_type type, const uint8_t * rule, struct icu_buf_utf16 * buf16, @@ -216,8 +226,12 @@ void icu_chain_step_destroy(struct icu_chain_step * step); struct icu_chain { - uint8_t identifier[128]; - uint8_t locale[16]; + char locale[16]; + int sort; + + const char * src8cstr; + + UCollator * coll; /* number of tokens returned so far */ int32_t token_count; @@ -234,39 +248,18 @@ struct icu_chain struct icu_chain_step * steps; }; -struct icu_chain * icu_chain_create(const uint8_t * identifier, - const uint8_t * locale); - -void icu_chain_destroy(struct icu_chain * chain); - -struct icu_chain * icu_chain_xml_config(xmlNode *xml_node, - UErrorCode * status); - - -struct icu_chain_step * icu_chain_insert_step(struct icu_chain * chain, +struct icu_chain_step * icu_chain_insert_step(yaz_icu_chain_t chain, enum icu_chain_step_type type, const uint8_t * rule, UErrorCode *status); - -int icu_chain_step_next_token(struct icu_chain * chain, +int icu_chain_step_next_token(yaz_icu_chain_t chain, struct icu_chain_step * step, UErrorCode *status); -int icu_chain_assign_cstr(struct icu_chain * chain, - const char * src8cstr, - UErrorCode *status); - -int icu_chain_next_token(struct icu_chain * chain, - UErrorCode *status); - -int icu_chain_get_token_count(struct icu_chain * chain); - -const char * icu_chain_get_display(struct icu_chain * chain); - -const char * icu_chain_get_norm(struct icu_chain * chain); +int icu_chain_token_number(yaz_icu_chain_t chain); -const char * icu_chain_get_sort(struct icu_chain * chain); +const UCollator * icu_chain_get_coll(yaz_icu_chain_t chain); #endif /* ICU_I18NL_H */