X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Funtrans.c;h=0551e3c3ec2d8513f5ce9ca5fdac8720f6104d11;hb=8d18c2ba52018f0a4149abb5e2bd2bb2c75fe14e;hp=f17f6e2f64938ab1285558790457756c32e6af29;hpb=18e6d4befe9117cc44003fc9c1e62aac14d4e3bb;p=idzebra-moved-to-github.git diff --git a/index/untrans.c b/index/untrans.c index f17f6e2..0551e3c 100644 --- a/index/untrans.c +++ b/index/untrans.c @@ -1,5 +1,5 @@ -/* $Id: untrans.c,v 1.1 2006-09-21 08:39:14 adam Exp $ - Copyright (C) 1995-2006 +/* $Id: untrans.c,v 1.5 2007-10-31 16:56:14 adam Exp $ + Copyright (C) 1995-2007 Index Data ApS This file is part of the Zebra server. @@ -28,14 +28,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "index.h" #include -void zebra_term_untrans(ZebraHandle zh, int reg_type, +void zebra_term_untrans(ZebraHandle zh, const char *index_type, char *dst, const char *src) { + zebra_map_t zm = zebra_map_get(zh->reg->zebra_maps, index_type); int len = 0; while (*src) { - const char *cp = zebra_maps_output(zh->reg->zebra_maps, - reg_type, &src); + const char *cp = zebra_maps_output(zm, &src); if (!cp) { if (len < IT_MAX_WORD-1) @@ -49,13 +49,14 @@ void zebra_term_untrans(ZebraHandle zh, int reg_type, dst[len] = '\0'; } -void zebra_term_untrans_iconv(ZebraHandle zh, NMEM stream, int reg_type, +void zebra_term_untrans_iconv(ZebraHandle zh, NMEM stream, + const char *index_type, char **dst, const char *src) { char term_src[IT_MAX_WORD]; char term_dst[IT_MAX_WORD]; - zebra_term_untrans (zh, reg_type, term_src, src); + zebra_term_untrans (zh, index_type, term_src, src); if (zh->iconv_from_utf8 != 0) { @@ -71,7 +72,10 @@ void zebra_term_untrans_iconv(ZebraHandle zh, NMEM stream, int reg_type, if (ret == (size_t)(-1)) len = 0; else + { + yaz_iconv (zh->iconv_from_utf8, 0, 0, &outbuf, &outleft); len = outbuf - term_dst; + } *dst = nmem_malloc(stream, len + 1); if (len > 0) memcpy (*dst, term_dst, len);