X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=index%2Funtrans.c;h=904e5e5a4f98ab8078df1b0db9539a1d7b591bce;hp=0551e3c3ec2d8513f5ce9ca5fdac8720f6104d11;hb=7336356a8d037e2782e201bcdc48ff4ae2850ae4;hpb=34b6f9669f88fef08ad911000f2b66fb2c3429b9 diff --git a/index/untrans.c b/index/untrans.c index 0551e3c..904e5e5 100644 --- a/index/untrans.c +++ b/index/untrans.c @@ -1,4 +1,4 @@ -/* $Id: untrans.c,v 1.5 2007-10-31 16:56:14 adam Exp $ +/* $Id: untrans.c,v 1.6 2007-12-13 11:09:20 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -28,35 +28,44 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "index.h" #include -void zebra_term_untrans(ZebraHandle zh, const char *index_type, - char *dst, const char *src) +int 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) + if (zebra_maps_is_icu(zm)) + return -1; + else { - const char *cp = zebra_maps_output(zm, &src); - if (!cp) - { - if (len < IT_MAX_WORD-1) - dst[len++] = *src; - src++; - } - else - while (*cp && len < IT_MAX_WORD-1) - dst[len++] = *cp++; + int len = 0; + while (*src) + { + const char *cp = zebra_maps_output(zm, &src); + if (!cp) + { + if (len < IT_MAX_WORD-1) + dst[len++] = *src; + src++; + } + else + while (*cp && len < IT_MAX_WORD-1) + dst[len++] = *cp++; + } + dst[len] = '\0'; } - dst[len] = '\0'; + return 0; } -void zebra_term_untrans_iconv(ZebraHandle zh, NMEM stream, - const char *index_type, - char **dst, const char *src) +int 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]; + int r; - zebra_term_untrans (zh, index_type, term_src, src); + r = zebra_term_untrans (zh, index_type, term_src, src); + if (r) + return r; if (zh->iconv_from_utf8 != 0) { @@ -83,6 +92,7 @@ void zebra_term_untrans_iconv(ZebraHandle zh, NMEM stream, } else *dst = nmem_strdup(stream, term_src); + return 0; }