X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=644cf3f41341521c7b7c58afde44bd95cf62dbeb;hb=d3886454d7ba0cb1ce0d58055ccf3cd7ffd321ad;hp=5514b2b2b69691695876300155bd57b32baf7d33;hpb=583fe2d2582ab4078527c152b232ddf359336e91;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 5514b2b..644cf3f 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -1,4 +1,4 @@ -/* $Id: recgrs.c,v 1.63 2002-08-28 19:52:29 adam Exp $ +/* $Id: recgrs.c,v 1.66 2002-09-02 11:19:33 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -236,12 +236,14 @@ static void index_xpath (data1_node *n, struct recExtractCtrl *p, wrd->length = strlen(attr_tag_path_full); (*p->tokenAdd)(wrd); - wrd->attrUse = 1015; - wrd->reg_type = 'w'; - wrd->string = xp->value; - wrd->length = strlen(xp->value); - - (*p->tokenAdd)(wrd); + if (xp->value) + { + wrd->attrUse = 1015; + wrd->reg_type = 'w'; + wrd->string = xp->value; + wrd->length = strlen(xp->value); + (*p->tokenAdd)(wrd); + } wrd->reg_type = '0'; wrd->attrUse = 2; @@ -590,6 +592,17 @@ static int process_comp(data1_handle dh, data1_node *n, Z_RecordComposition *c) } } +static void add_nice_whitespace (struct recRetrieveCtrl *p, data1_node *top, + NMEM mem) +{ + data1_node *n = top->child; + while (n && n->which == DATA1N_data && n->u.data.what == DATA1I_text) + { + data1_mk_text_n(p->dh, mem, n->u.data.data, n->u.data.len, top); + n = n->next; + } +} + static void add_idzebra_info (struct recRetrieveCtrl *p, data1_node *top, NMEM mem) { @@ -601,17 +614,24 @@ static void add_idzebra_info (struct recRetrieveCtrl *p, data1_node *top, data1_tag_add_attr (p->dh, mem, top, idzebra_ns); + add_nice_whitespace (p, top, mem); data1_mk_tag_data_int (p->dh, top, "idzebra:size", p->recordSize, mem); if (p->score != -1) + { + add_nice_whitespace (p, top, mem); data1_mk_tag_data_int (p->dh, top, "idzebra:score", p->score, mem); - + } + add_nice_whitespace (p, top, mem); data1_mk_tag_data_int (p->dh, top, "idzebra:localnumber", p->localno, mem); if (p->fname) + { + add_nice_whitespace (p, top, mem); data1_mk_tag_data_text(p->dh, top, "idzebra:filename", p->fname, mem); + } } static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p) @@ -654,7 +674,7 @@ static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p) /* ensure our data1 tree is UTF-8 */ data1_iconv (p->dh, mem, node, "UTF-8", data1_get_encoding(p->dh, node)); -#if 1 +#if 0 data1_pr_tree (p->dh, node, stdout); #endif top = data1_get_root_tag (p->dh, node);