-/* $Id: zebramap.c,v 1.73 2007-12-07 14:09:10 adam Exp $
+/* $Id: zebramap.c,v 1.75 2007-12-13 18:08:26 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
}
else if (!yaz_matchstr(argv[0], "icuchain"))
{
+ char full_path[1024];
+ if (!yaz_filepath_resolve(argv[1], zms->tabpath, zms->tabroot,
+ full_path))
+ {
+ yaz_log(YLOG_WARN, "%s:%d: Could not locate icuchain config '%s'",
+ fname, lineno, argv[1]);
+ return -1;
+ }
#if YAZ_HAVE_XML2
- zm->doc = xmlParseFile(argv[1]);
+ zm->doc = xmlParseFile(full_path);
if (!zm->doc)
{
yaz_log(YLOG_WARN, "%s:%d: Could not load icuchain config '%s'",
int zebra_map_tokenize_next(zebra_map_t zm,
- const char **result_buf, size_t *result_len)
+ const char **result_buf, size_t *result_len,
+ const char **display_buf, size_t *display_len)
{
assert(zm->use_chain);
*result_len = strlen(*result_buf);
+ if (display_buf)
+ {
+ *display_buf = icu_chain_token_display(zm->icu_chain);
+ if (display_len)
+ *display_len = strlen(*display_buf);
+ }
if (zm->debug)
{
wrbuf_rewind(zm->print_str);