Extend get_org_info (snippets) to return original string YAZ-836
[yaz-moved-to-github.git] / include / yaz / icu.h
index 637996a..176e299 100644 (file)
@@ -109,7 +109,7 @@ 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 len number of uchars in original text
@@ -117,6 +117,16 @@ YAZ_EXPORT const char * icu_chain_token_sortkey(yaz_icu_chain_t chain);
 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 */