X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=ee875f96ac0696ade26099c8c1c7acf24b950df7;hb=8f611f1ada2fb8cfda909be015032c924cfed42a;hp=6c90b3505a6cc71c46656a0033bd89328b1419d6;hpb=5c620c1a13f1558b1a926b401aee6c1872456bdb;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 6c90b35..ee875f9 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.83 2003-09-16 12:18:24 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; @@ -388,7 +390,7 @@ static void index_xpath (data1_node *n, struct recExtractCtrl *p, tag_path_full[flen] = 0; /* If we have a matching termlist... */ - if ((tl = xpath_termlist_by_tagpath(tag_path_full, n))) { + if (n->root->u.root.absyn && (tl = xpath_termlist_by_tagpath(tag_path_full, n))) { for (; tl; tl = tl->next) { wrd->reg_type = *tl->structure; /* this is the ! case, so structure is for the xpath index */ @@ -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