X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dfa%2Fdfa.c;h=f55b69abb036372b5a2431cf7992a3ce41e79f80;hp=945adad5cfdc3761522c20dde2072256549e7702;hb=fd12cf9b8e16c109f3c0f7aedb0e0efd65209e16;hpb=b9093505b17a074e79137ed64595c8269f77d330 diff --git a/dfa/dfa.c b/dfa/dfa.c index 945adad..f55b69a 100644 --- a/dfa/dfa.c +++ b/dfa/dfa.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: dfa.c,v $ - * Revision 1.16 1997-09-05 15:29:57 adam + * Revision 1.17 1997-09-18 08:59:17 adam + * Extra generic handle for the character mapping routines. + * + * Revision 1.16 1997/09/05 15:29:57 adam * Changed prototype for chr_map_input - added const. * Added support for C++, headers uses extern "C" for public definitions. * @@ -426,7 +429,7 @@ static int read_charset (void) char mapfrom[2]; const char *mcp = mapfrom; mapfrom[0] = ch0; - mapto = (*parse_info->cmap)(&mcp, 1); + mapto = (*parse_info->cmap)(parse_info->cmap_data, &mcp, 1); assert (mapto); ch0 = mapto[0][0]; } @@ -456,7 +459,7 @@ static int read_charset (void) char mapfrom[2]; const char *mcp = mapfrom; mapfrom[0] = ch1; - mapto = (*parse_info->cmap) (&mcp, 1); + mapto = (*parse_info->cmap) (parse_info->cmap_data, &mcp, 1); assert (mapto); ch1 = mapto[0][0]; } @@ -493,7 +496,7 @@ static int map_l_char (void) if (!parse_info->cmap) return L_CHAR; - mapto = (*parse_info->cmap) (&cp0, len); + mapto = (*parse_info->cmap) (parse_info->cmap_data, &cp0, len); assert (mapto); expr_ptr = (const unsigned char *) cp0; @@ -1107,10 +1110,11 @@ struct DFA *dfa_init (void) return dfa; } -void dfa_set_cmap (struct DFA *dfa, - const char **(*cmap)(const char **from, int len)) +void dfa_set_cmap (struct DFA *dfa, void *vp, + const char **(*cmap)(void *vp, const char **from, int len)) { dfa->parse_info->cmap = cmap; + dfa->parse_info->cmap_data = vp; } int dfa_parse (struct DFA *dfa, const char **pattern)