X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fnfa.c;fp=src%2Fnfa.c;h=fe6362ea7f4841235151b441c2fe239b009a099b;hb=fd3a0b7302ceed6425c05b6537cb654201cb1494;hp=6046b3d4aa34a7f75ea4fafe8b40dd25e2166e67;hpb=5ed3b6561d90d13f64be7f9ae8beaf4a0b3f8e32;p=yaz-moved-to-github.git 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: