X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fnfa.c;h=fe6362ea7f4841235151b441c2fe239b009a099b;hp=6046b3d4aa34a7f75ea4fafe8b40dd25e2166e67;hb=e4368af2ede9079d33e7a8fd280d29b2bde1d1ad;hpb=02ac5c5808e74192c93eab3fb97f833419c7ed2b diff --git a/src/nfa.c b/src/nfa.c index 6046b3d..fe6362e 100644 --- a/src/nfa.c +++ b/src/nfa.c @@ -1,7 +1,7 @@ /* Copyright (C) 2006, Index Data ApS * See the file LICENSE for details. * - * $Id: nfa.c,v 1.11 2006-07-07 08:36:36 adam Exp $ + * $Id: nfa.c,v 1.12 2006-07-14 13:06:38 heikki Exp $ */ /** @@ -748,6 +748,45 @@ void yaz_nfa_dump(FILE *F, yaz_nfa *n, } } +static char buf[5000]=""; +char *yaz_nfa_dump_converter(void *conv) +{ + char onebuf[500]=""; + yaz_nfa_converter *c=conv; + yaz_nfa_char *cp; + size_t len; + *buf=0; + while (c) { + switch(c->type) { + case conv_none: + sprintf(onebuf,"(none)" ); + break; + case conv_string: + sprintf(onebuf,"(string '" ); + strcat(buf,onebuf); + cp=c->string; + len=c->strlen; + while (len--) { + onebuf[0]=*cp++; + onebuf[1]=0; + strcat(buf,onebuf); + } + strcat(buf,"')"); + onebuf[0]=0; + break; + case conv_backref: + sprintf(onebuf,"(backref %d) ",c->backref_no); + break; + case conv_range: + sprintf(onebuf,"(range %d) ",c->char_diff); + break; + } + strcat(buf,onebuf); + c=c->next; + } /* while */ + return buf; +} + /* * Local variables: