X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Ficu_I18N.h;h=457f767b176c56dee9d55d3376566501c5ac7a51;hp=9f0c2eb128c34e6dcea3b222dcc5296ade5b4165;hb=64d15b4ed1a24c3064f4fa3c50668ea99b58111b;hpb=c262e2c4e953e90016aaa2c4d3bbb190a8d29b99 diff --git a/include/yaz/icu_I18N.h b/include/yaz/icu_I18N.h index 9f0c2eb..457f767 100644 --- a/include/yaz/icu_I18N.h +++ b/include/yaz/icu_I18N.h @@ -1,5 +1,5 @@ -/* - * Copyright (c) 1995-2007, Index Data +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2009 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: @@ -27,6 +27,9 @@ /** \file \brief Internal header for ICU utilities + + These functions, while non-static, are considered unstable and internal + and may be renamed for each YAZ release. */ #ifndef ICU_I18NL_H @@ -34,8 +37,6 @@ #include -#include - #include /* Basic ICU data types */ #include /* char names */ @@ -120,10 +121,10 @@ int icu_utf16_casemap(struct icu_buf_utf16 * dest16, const char *locale, char action, UErrorCode *status); -UErrorCode icu_sortkey8_from_utf16(UCollator *coll, - struct icu_buf_utf8 * dest8, - struct icu_buf_utf16 * src16, - UErrorCode * status); +void icu_sortkey8_from_utf16(UCollator *coll, + struct icu_buf_utf8 * dest8, + struct icu_buf_utf16 * src16, + UErrorCode * status); struct icu_tokenizer { @@ -164,31 +165,31 @@ int32_t icu_tokenizer_token_count(struct icu_tokenizer * tokenizer); -struct icu_normalizer +struct icu_transform { char action; - struct icu_buf_utf16 * rules16; - UParseError parse_error[256]; + UParseError parse_error; UTransliterator * trans; }; -struct icu_normalizer * icu_normalizer_create(const char *rules, char action, - UErrorCode *status); - +struct icu_transform * icu_transform_create(const char *id, char action, + const char *rules, + UErrorCode *status); -void icu_normalizer_destroy(struct icu_normalizer * normalizer); +void icu_transform_destroy(struct icu_transform * transform); -int icu_normalizer_normalize(struct icu_normalizer * normalizer, - struct icu_buf_utf16 * dest16, - struct icu_buf_utf16 * src16, - UErrorCode *status); +int icu_transform_trans(struct icu_transform * transform, + struct icu_buf_utf16 * dest16, + struct icu_buf_utf16 * src16, + UErrorCode *status); enum icu_chain_step_type { ICU_chain_step_type_none, ICU_chain_step_type_display, /* convert to utf8 display 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 */ + ICU_chain_step_type_transform, /* apply utf16 transform */ + ICU_chain_step_type_tokenize, /* apply utf16 tokenization */ + ICU_chain_step_type_transliterate /* apply utf16 tokenization */ }; @@ -199,7 +200,7 @@ struct icu_chain_step enum icu_chain_step_type type; union { struct icu_casemap * casemap; - struct icu_normalizer * normalizer; + struct icu_transform * transform; struct icu_tokenizer * tokenizer; } u; /* temprary post-action utf16 buffer */ @@ -224,7 +225,7 @@ void icu_chain_step_destroy(struct icu_chain_step * step); struct icu_chain { - char locale[16]; + char *locale; int sort; const char * src8cstr; @@ -259,12 +260,19 @@ int icu_chain_token_number(yaz_icu_chain_t chain); const UCollator * icu_chain_get_coll(yaz_icu_chain_t chain); +yaz_icu_chain_t icu_chain_create(const char * locale, + int sort, + UErrorCode * status); + + #endif /* ICU_I18NL_H */ /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab */ +