X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=dict%2Fdelete.c;h=3a9912f8deb3e0c9e425fe6f2580f9a881329774;hb=83533000f9456dcab2fc171abafd84d6104d4087;hp=cb9d64dd901825cbc63d35caccbda140ba6ba284;hpb=b31a8654c5b7a597dd4a351f452ac91e5ef60798;p=idzebra-moved-to-github.git diff --git a/dict/delete.c b/dict/delete.c index cb9d64d..3a9912f 100644 --- a/dict/delete.c +++ b/dict/delete.c @@ -1,10 +1,16 @@ /* - * Copyright (C) 1994, Index Data I/S + * Copyright (C) 1994-1999, Index Data * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * * $Log: delete.c,v $ - * Revision 1.4 1996-02-02 13:43:50 adam + * Revision 1.6 1999-05-15 14:36:37 adam + * Updated dictionary. Implemented "compression" of dictionary. + * + * Revision 1.5 1999/02/02 14:50:17 adam + * Updated WIN32 code specific sections. Changed header. + * + * Revision 1.4 1996/02/02 13:43:50 adam * The public functions simply use char instead of Dict_char to represent * search strings. Dict_char is used internally only. * @@ -27,9 +33,8 @@ #include -static int dict_del (Dict dict, const Dict_char *str) +static int dict_del (Dict dict, const Dict_char *str, Dict_ptr ptr) { - Dict_ptr ptr = 1; int mid, lo, hi; int cmp; void *p; @@ -39,7 +44,7 @@ static int dict_del (Dict dict, const Dict_char *str) dict_bf_readp (dict->dbf, ptr, &p); mid = lo = 0; hi = DICT_nodir(p)-1; - indxp = (short*) ((char*) p+DICT_pagesize(dict)-sizeof(short)); + indxp = (short*) ((char*) p+DICT_bsize(p)-sizeof(short)); while (lo <= hi) { mid = (lo+hi)/2; @@ -98,8 +103,7 @@ static int dict_del (Dict dict, const Dict_char *str) dict_bf_readp (dict->dbf, ptr, &p); mid = lo = 0; hi = DICT_nodir(p)-1; - indxp = (short*) ((char*) p+DICT_pagesize(dict) - -sizeof(short)); + indxp = (short*) ((char*) p+DICT_bsize(p)-sizeof(short)); continue; } } @@ -114,7 +118,7 @@ static int dict_del (Dict dict, const Dict_char *str) int dict_delete (Dict dict, const char *p) { - if (dict->head.last == 1) + if (!dict->head.root) return 0; - return dict_del (dict, (const Dict_char*) p); + return dict_del (dict, (const Dict_char*) p, dict->head.root); }