X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Ficu_I18N.h;h=d61c00702aa2a7e458672b2dd32431f7277798f4;hp=303fb67f2fb8c6cda72340b68ac3feeb36e17463;hb=94b1547e5951e1e01bf5180159e74095cd0527f4;hpb=54bd147d353f7f340a48a9da5c6a568446223371 diff --git a/include/yaz/icu_I18N.h b/include/yaz/icu_I18N.h index 303fb67..d61c007 100644 --- a/include/yaz/icu_I18N.h +++ b/include/yaz/icu_I18N.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2009 Index Data. + * Copyright (C) 1995-2013 Index Data. * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -63,8 +63,13 @@ 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); +struct icu_buf_utf16 *icu_buf_utf16_copy(struct icu_buf_utf16 * dest16, + const struct icu_buf_utf16 * src16); + +struct icu_buf_utf16 *icu_buf_utf16_append(struct icu_buf_utf16 *dest16, + const struct icu_buf_utf16 * src16); + +void icu_buf_utf16_log(const char *lead, struct icu_buf_utf16 *src16); void icu_buf_utf16_destroy(struct icu_buf_utf16 * buf16); @@ -94,14 +99,16 @@ UErrorCode icu_utf16_from_utf8_cstr(struct icu_buf_utf16 * dest16, const char *icu_buf_utf8_to_cstr(struct icu_buf_utf8 *src8); -UErrorCode icu_utf16_to_utf8(struct icu_buf_utf8 * dest8, - struct icu_buf_utf16 * src16, +UErrorCode icu_utf16_to_utf8(struct icu_buf_utf8 *dest8, + const struct icu_buf_utf16 *src16, UErrorCode * status); struct icu_casemap; struct icu_casemap * icu_casemap_create(char action, UErrorCode *status); +struct icu_casemap *icu_casemap_clone(struct icu_casemap *old); + void icu_casemap_destroy(struct icu_casemap * casemap); int icu_casemap_casemap(struct icu_casemap * casemap, @@ -116,40 +123,24 @@ int icu_utf16_casemap(struct icu_buf_utf16 * dest16, UErrorCode *status); void icu_sortkey8_from_utf16(UCollator *coll, - struct icu_buf_utf8 * dest8, + struct icu_buf_utf8 * dest8, struct icu_buf_utf16 * src16, UErrorCode * status); -struct icu_tokenizer -{ - char action; - UBreakIterator* bi; - struct icu_buf_utf16 * buf16; - int32_t token_count; - int32_t token_id; - int32_t token_start; - int32_t token_end; -/* - keep always invariant - 0 <= token_start - <= token_end - <= buf16->utf16_len - and invariant - 0 <= token_id <= token_count -*/ -}; - +struct icu_tokenizer; struct icu_tokenizer * icu_tokenizer_create(const char *locale, char action, UErrorCode *status); +struct icu_tokenizer *icu_tokenizer_clone(struct icu_tokenizer *old); void icu_tokenizer_destroy(struct icu_tokenizer * tokenizer); -int icu_tokenizer_attach(struct icu_tokenizer * tokenizer, +int icu_tokenizer_attach(struct icu_tokenizer * tokenizer, struct icu_buf_utf16 * src16, UErrorCode *status); -int32_t icu_tokenizer_next_token(struct icu_tokenizer * tokenizer, - struct icu_buf_utf16 * tkn16, - UErrorCode *status); +int32_t icu_tokenizer_next_token(struct icu_tokenizer * tokenizer, + struct icu_buf_utf16 * tkn16, + UErrorCode *status, + size_t *start, size_t *len); int32_t icu_tokenizer_token_count(struct icu_tokenizer * tokenizer); @@ -158,12 +149,12 @@ struct icu_transform; struct icu_transform * icu_transform_create(const char *id, char action, const char *rules, UErrorCode *status); - +struct icu_transform *icu_transform_clone(struct icu_transform *old); void icu_transform_destroy(struct icu_transform * transform); int icu_transform_trans(struct icu_transform * transform, struct icu_buf_utf16 * dest16, - struct icu_buf_utf16 * src16, + const struct icu_buf_utf16 * src16, UErrorCode *status); struct icu_chain_step; @@ -174,7 +165,6 @@ yaz_icu_chain_t icu_chain_create(const char * locale, int sort, UErrorCode * status); - #endif /* ICU_I18NL_H */ /*