X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=1bae99de456153dd29fedd4b83d0ac2c933d3518;hb=b72718347ce9e412d57b1203441fe7e51746772c;hp=6c90b3505a6cc71c46656a0033bd89328b1419d6;hpb=5c620c1a13f1558b1a926b401aee6c1872456bdb;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 6c90b35..1bae99d 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -1,4 +1,4 @@ -/* $Id: recgrs.c,v 1.80 2003-06-12 18:20:08 adam Exp $ +/* $Id: recgrs.c,v 1.82 2003-08-21 10:29:00 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 Index Data Aps @@ -62,7 +62,8 @@ static int read_grs_type (struct grs_handlers *h, strcpy (p->type, cp+1); for (gh = h->handlers; gh; gh = gh->next) { - if (!memcmp (type, gh->type->type, cp-type)) + if (!memcmp (type, gh->type->type, cp-type) && + gh->type->type[cp-type] == '\0') { if (!gh->initFlag) { @@ -99,6 +100,7 @@ static void *grs_init(RecType recType) grs_add_handler (h, recTypeGrs_tcl); #endif grs_add_handler (h, recTypeGrs_marc); + grs_add_handler (h, recTypeGrs_marcxml); #if HAVE_EXPAT_H grs_add_handler (h, recTypeGrs_xml); #endif @@ -361,10 +363,10 @@ static void index_xpath (data1_node *n, struct recExtractCtrl *p, wrd->length = n->u.data.len; if (p->flagShowRecords) { - printf("%*s data=", (level + 1) * 4, ""); + printf("%*s XData:\"", (level + 1) * 4, ""); for (i = 0; ilength && i < 8; i++) fputc (wrd->string[i], stdout); - printf("\n"); + printf("\"\n"); } else { data1_termlist *tl; @@ -646,7 +648,7 @@ static void index_termlist (data1_node *par, data1_node *n, tlist->att->parent->name, tlist->att->name, tlist->att->value, tlist->source); - printf (" data=\""); + printf (" XData:\""); for (i = 0; ilength && i < 40; i++) fputc (wrd->string[i], stdout); fputc ('"', stdout); @@ -729,8 +731,8 @@ static int dumpkeys(data1_node *n, struct recExtractCtrl *p, int level, printf("%*s", level * 4, ""); printf("Data: "); if (n->u.data.len > 256) - printf("'%.240s ... %.6s'\n", n->u.data.data, - n->u.data.data + n->u.data.len-6); + printf("'%.170s ... %.70s'\n", n->u.data.data, + n->u.data.data + n->u.data.len-70); else if (n->u.data.len > 0) printf("'%.*s'\n", n->u.data.len, n->u.data.data); else