-/*
- * 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:
/** \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
-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 */
};
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 */
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
*/
+