X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fzebramap.c;h=0a95eda791a34a0e605d649046e4400b87af6ba5;hb=0cac58c528d39e9838a4ee6e3f76bc5ca6bd30bf;hp=df1a50cd84ec28dd67351be46995a18d1cbfee85;hpb=5437b50633032595afe6f87dc0f989bc92a5aea8;p=idzebra-moved-to-github.git diff --git a/util/zebramap.c b/util/zebramap.c index df1a50c..0a95eda 100644 --- a/util/zebramap.c +++ b/util/zebramap.c @@ -1,6 +1,6 @@ -/* $Id: zebramap.c,v 1.35 2004-11-19 10:27:18 heikki Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 - Index Data Aps +/* $Id: zebramap.c,v 1.40 2005-03-11 17:56:36 adam Exp $ + Copyright (C) 1995-2005 + Index Data ApS This file is part of the Zebra server. @@ -20,13 +20,13 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - - #include +#include #include -#include #include +#include + #include #define ZEBRA_MAP_TYPE_SORT 1 @@ -305,6 +305,32 @@ const char **zebra_maps_input (ZebraMaps zms, unsigned reg_id, return zms->temp_map_ptr; } +const char **zebra_maps_search(ZebraMaps zms, unsigned reg_id, + const char **from, int len, int *q_map_match) +{ + chrmaptab maptab; + + *q_map_match = 0; + maptab = zebra_charmap_get (zms, reg_id); + if (maptab) + { + const char **map; + map = chr_map_q_input(maptab, from, len, 0); + if (map && map[0]) + { + *q_map_match = 1; + return map; + } + map = chr_map_input(maptab, from, len, 0); + if (map) + return map; + } + zms->temp_map_str[0] = **from; + + (*from)++; + return zms->temp_map_ptr; +} + const char *zebra_maps_output(ZebraMaps zms, unsigned reg_id, const char **from) {