Avoid using non-portable debian.h
[yaz-moved-to-github.git] / include / yaz / icu.h
index 007e29b..176e299 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data.
+ * Copyright (C) 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:
@@ -55,7 +55,7 @@ YAZ_EXPORT void icu_chain_destroy(yaz_icu_chain_t chain);
 */
 YAZ_EXPORT yaz_icu_chain_t icu_chain_xml_config(const xmlNode *xml_node,
                                                 int sort,
-                                                UErrorCode * status);
+                                                UErrorCode *status);
 /** \brief pass string to ICU for parsing/tokenization/etc
     \param chain ICU chain to be used for parsing
     \param src8cstr input C string (null-terminated)
@@ -64,7 +64,7 @@ YAZ_EXPORT yaz_icu_chain_t icu_chain_xml_config(const xmlNode *xml_node,
     \retval 1 success
 */
 YAZ_EXPORT int icu_chain_assign_cstr(yaz_icu_chain_t chain,
-                                     const char * src8cstr,
+                                     const char *src8cstr,
                                      UErrorCode *status);
 
 /** \brief returns one token (if any)
@@ -109,14 +109,24 @@ YAZ_EXPORT const char * icu_chain_token_norm(yaz_icu_chain_t chain);
 */
 YAZ_EXPORT const char * icu_chain_token_sortkey(yaz_icu_chain_t chain);
 
-/** \brief returns token as it relates to originl text
+/** \brief returns token as it relates to original text (legacy)
     \param chain ICU chain
     \param start offset in original text
-    \param size number of uchars in original text
+    \param len number of uchars in original text
 */
 YAZ_EXPORT void icu_chain_get_org_info(yaz_icu_chain_t chain,
                                        size_t *start, size_t *len);
 
+/** \brief returns token as it relates to original text (2nd version)
+    \param chain ICU chain
+    \param start offset in original text
+    \param len number of uchars in original text
+    \param cstr if not-null, holds original string in there
+*/
+YAZ_EXPORT void icu_chain_get_org_info2(yaz_icu_chain_t chain,
+                                        size_t *start, size_t *len,
+                                        const char **cstr);
+
 /** \brief ICU tokenizer iterator type (opaque) */
 typedef struct icu_iter *yaz_icu_iter_t;
 
@@ -178,7 +188,7 @@ const char *icu_iter_get_display(yaz_icu_iter_t iter);
 YAZ_EXPORT
 int icu_iter_get_token_number(yaz_icu_iter_t iter);
 
-/** \brief returns ICU original token start (offset) and length
+/** \brief returns ICU original token start (offset) and length (legacy)
     \param iter ICU tokenizer iterator
     \param start offset of last token in original text
     \param len length of last token in original text
@@ -186,6 +196,16 @@ int icu_iter_get_token_number(yaz_icu_iter_t iter);
 YAZ_EXPORT
 void icu_iter_get_org_info(yaz_icu_iter_t iter, size_t *start, size_t *len);
 
+/** \brief returns ICU original token start (offset) and length
+    \param iter ICU tokenizer iterator
+    \param start offset of last token in original text
+    \param len length of last token in original text
+    \param cstr if non-null: original string
+*/
+YAZ_EXPORT
+void icu_iter_get_org_info2(yaz_icu_iter_t iter, size_t *start, size_t *len,
+                            const char **cstr);
+
 YAZ_END_CDECL
 
 #endif /* YAZ_ICU_H */