X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=dict%2Flookgrep.c;h=e9623a7f35af80950245e2e0cb6a4217efec0503;hb=fe8a4ac0e92103284e9888f0c13c141f4711d9a3;hp=b4fe4a23d9b029a381340dec39d941abb53ce421;hpb=d21266d054a74c1d601b9b593ae7e5ad8f738c2a;p=idzebra-moved-to-github.git diff --git a/dict/lookgrep.c b/dict/lookgrep.c index b4fe4a2..e9623a7 100644 --- a/dict/lookgrep.c +++ b/dict/lookgrep.c @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: lookgrep.c,v $ - * Revision 1.9 1995-10-27 13:58:09 adam + * Revision 1.12 1995-12-11 09:04:48 adam + * Bug fix: the lookup/scan/lookgrep didn't handle empty dictionary. + * + * Revision 1.11 1995/12/06 14:43:02 adam + * New function: dict_delete. + * + * Revision 1.10 1995/11/16 17:00:44 adam + * Changed stupid log. + * + * Revision 1.9 1995/10/27 13:58:09 adam * Makes 'Database unavailable' diagnostic. * * Revision 1.8 1995/10/19 14:57:21 adam @@ -367,6 +376,7 @@ int dict_lookup_grep (Dict dict, Dict_char *pattern, int range, void *client, struct DFA *dfa = dfa_init(); int i, d; + logf (LOG_DEBUG, "dict_lookup_grep '%s' range=%d", pattern, range); i = dfa_parse (dfa, &this_pattern); if (i || *this_pattern) { @@ -396,9 +406,12 @@ int dict_lookup_grep (Dict dict, Dict_char *pattern, int range, void *client, } } *max_pos = 0; - i = dict_grep (dict, 1, mc, Rj, 0, client, userfunc, prefix, dfa, - max_pos); - logf (LOG_DEBUG, "max_pos = %d", max_pos); + if (dict->head.last > 1) + i = dict_grep (dict, 1, mc, Rj, 0, client, userfunc, prefix, + dfa, max_pos); + else + i = 0; + logf (LOG_DEBUG, "max_pos = %d", *max_pos); dfa_delete (&dfa); xfree (Rj); rm_MatchContext (&mc);