X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dict%2Flookup.c;h=91d8b8189b30374db472429b39371dcbff1e81ee;hp=a9623762f79db39053bda1de51557267e88334da;hb=80786c0d2f702ba5d45ee249af1c194e341eeb45;hpb=05b9b8ed020c5bfa48a913d6a2e2b50ddf1bab8e diff --git a/dict/lookup.c b/dict/lookup.c index a962376..91d8b81 100644 --- a/dict/lookup.c +++ b/dict/lookup.c @@ -1,8 +1,5 @@ -/* $Id: lookup.c,v 1.12 2004-12-08 12:23:08 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 - Index Data Aps - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -15,13 +12,16 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include @@ -29,7 +29,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "dict-p.h" -static char *dict_look (Dict dict, const Dict_char *str, Dict_ptr ptr) +static char *dict_look(Dict dict, const Dict_char *str, Dict_ptr ptr) { int mid, lo, hi; int cmp; @@ -37,10 +37,10 @@ static char *dict_look (Dict dict, const Dict_char *str, Dict_ptr ptr) short *indxp; char *info; - dict_bf_readp (dict->dbf, ptr, &p); + dict_bf_readp(dict->dbf, ptr, &p); mid = lo = 0; hi = DICT_nodir(p)-1; - indxp = (short*) ((char*) p+DICT_bsize(p)-sizeof(short)); + indxp = (short*) ((char*) p+DICT_bsize(p)-sizeof(short)); while (lo <= hi) { mid = (lo+hi)/2; @@ -65,11 +65,11 @@ static char *dict_look (Dict dict, const Dict_char *str, Dict_ptr ptr) /* unsigned char length of information */ /* char * information */ info = (char*)p - indxp[-mid]; - memcpy (&dc, info+sizeof(Dict_ptr), sizeof(Dict_char)); + memcpy(&dc, info+sizeof(Dict_ptr), sizeof(Dict_char)); cmp = dc- *str; if (!cmp) { - memcpy (&subptr, info, sizeof(Dict_ptr)); + memcpy(&subptr, info, sizeof(Dict_ptr)); if (*++str == DICT_EOS) { if (info[sizeof(Dict_ptr)+sizeof(Dict_char)]) @@ -81,7 +81,7 @@ static char *dict_look (Dict dict, const Dict_char *str, Dict_ptr ptr) if (subptr == 0) return NULL; ptr = subptr; - dict_bf_readp (dict->dbf, ptr, &p); + dict_bf_readp(dict->dbf, ptr, &p); mid = lo = 0; hi = DICT_nodir(p)-1; indxp = (short*) ((char*) p+DICT_bsize(p)-sizeof(short)); @@ -97,9 +97,19 @@ static char *dict_look (Dict dict, const Dict_char *str, Dict_ptr ptr) return NULL; } -char *dict_lookup (Dict dict, const char *p) +char *dict_lookup(Dict dict, const char *p) { + dict->no_lookup++; if (!dict->head.root) return NULL; - return dict_look (dict, (const Dict_char *) p, dict->head.root); + return dict_look(dict, (const Dict_char *) p, dict->head.root); } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +