X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=dict%2Flookgrep.c;h=3e094e1e49f6681113d3fc028109f3e7537b19f3;hb=b7942589b21cca1b6d44c7bf9446dcb6a5942953;hp=13eb8cb1804356f038bc49c1256d6478e8b68021;hpb=c0c85097014e5b007075ab71d9b5bee412e28dd5;p=idzebra-moved-to-github.git diff --git a/dict/lookgrep.c b/dict/lookgrep.c index 13eb8cb..3e094e1 100644 --- a/dict/lookgrep.c +++ b/dict/lookgrep.c @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: lookgrep.c,v $ - * Revision 1.18 1997-09-05 15:29:58 adam + * Revision 1.20 1997-10-27 14:33:03 adam + * Moved towards generic character mapping depending on "structure" + * field in abstract syntax file. Fixed a few memory leaks. Fixed + * bug with negative integers when doing searches with relational + * operators. + * + * Revision 1.19 1997/09/18 08:59:18 adam + * Extra generic handle for the character mapping routines. + * + * Revision 1.18 1997/09/05 15:29:58 adam * Changed prototype for chr_map_input - added const. * Added support for C++, headers uses extern "C" for public definitions. * @@ -410,9 +419,14 @@ int dict_lookup_grep (Dict dict, const 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); + logf (LOG_DEBUG, "dict_lookup_grep range=%d", range); + for (i = 0; pattern[i]; i++) + { + logf (LOG_DEBUG, " %3d %c", pattern[i], + (pattern[i] > ' ' && pattern[i] < 127) ? pattern[i] : '?'); + } - dfa_set_cmap (dfa, dict->grep_cmap); + dfa_set_cmap (dfa, dict->grep_cmap_data, dict->grep_cmap); i = dfa_parse (dfa, &this_pattern); if (i || *this_pattern) @@ -455,8 +469,9 @@ int dict_lookup_grep (Dict dict, const char *pattern, int range, void *client, return i; } -void dict_grep_cmap (Dict dict, - const char **(*cmap)(const char **from, int len)) +void dict_grep_cmap (Dict dict, void *vp, + const char **(*cmap)(void *vp, const char **from, int len)) { dict->grep_cmap = cmap; + dict->grep_cmap_data = vp; }