X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=b8316631dcb4f3c0ce26e32b3c80713597249106;hb=45708f1b509a55d335b7711d967071446bde4ecb;hp=76e0918e3762ad080ab730633ec61cad8a849af8;hpb=5c693d36af8be6f6642257160b3c6441d2e2d762;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 76e0918..b831663 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -4,7 +4,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: recgrs.c,v $ - * Revision 1.17 1998-02-10 12:03:06 adam + * Revision 1.19 1998-03-11 11:19:05 adam + * Changed the way sequence numbers are generated. + * + * Revision 1.18 1998/03/05 08:41:31 adam + * Minor changes. + * + * Revision 1.17 1998/02/10 12:03:06 adam * Implemented Sort. * * Revision 1.16 1998/01/29 13:38:17 adam @@ -159,8 +165,6 @@ #define GRS_MAX_WORD 512 -static int seqno = 0; - static data1_node *read_grs_type (struct grs_read_info *p, const char *type) { static struct { @@ -251,8 +255,9 @@ static int dumpkeys(data1_node *n, struct recExtractCtrl *p, int level) { printf("%*s", level * 4, ""); printf("Data: "); - if (n->u.data.len > 20) - printf("'%.20s...'\n", n->u.data.data); + if (n->u.data.len > 32) + printf("'%.24s ... %.6s'\n", n->u.data.data, + n->u.data.data + n->u.data.len-6); else if (n->u.data.len > 0) printf("'%.*s'\n", n->u.data.len, n->u.data.data); else @@ -287,13 +292,11 @@ static int dumpkeys(data1_node *n, struct recExtractCtrl *p, int level) else { wrd.reg_type = *tlist->structure; - wrd.seqno = seqno; wrd.string = n->u.data.data; wrd.length = n->u.data.len; wrd.attrSet = tlist->att->parent->ordinal; wrd.attrUse = tlist->att->locals->local; (*p->add)(&wrd); - seqno = wrd.seqno; } } } @@ -310,7 +313,6 @@ static int grs_extract(struct recExtractCtrl *p) data1_node *n; NMEM mem; struct grs_read_info gri; - seqno = 0; mem = nmem_create (); gri.readf = p->readf; @@ -412,7 +414,7 @@ static int process_comp(data1_handle dh, data1_node *n, Z_RecordComposition *c) static int grs_retrieve(struct recRetrieveCtrl *p) { data1_node *node = 0, *onode = 0; - data1_node *new; + data1_node *dnew; data1_maptab *map; int res, selected = 0; NMEM mem; @@ -436,26 +438,38 @@ static int grs_retrieve(struct recRetrieveCtrl *p) nmem_destroy (mem); return 0; } + logf (LOG_DEBUG, "grs_retrieve: size"); + if ((dnew = data1_insert_taggeddata(p->dh, node, node, + "size", mem))) + { + dnew->u.data.what = DATA1I_text; + dnew->u.data.data = dnew->lbuf; + sprintf(dnew->u.data.data, "%d", p->recordSize); + dnew->u.data.len = strlen(dnew->u.data.data); + } + logf (LOG_DEBUG, "grs_retrieve: score"); - if (p->score >= 0 && (new = + if (p->score >= 0 && (dnew = data1_insert_taggeddata(p->dh, node, node, "rank", mem))) { - new->u.data.what = DATA1I_num; - new->u.data.data = new->lbuf; - sprintf(new->u.data.data, "%d", p->score); - new->u.data.len = strlen(new->u.data.data); + dnew->u.data.what = DATA1I_num; + dnew->u.data.data = dnew->lbuf; + sprintf(dnew->u.data.data, "%d", p->score); + dnew->u.data.len = strlen(dnew->u.data.data); } + logf (LOG_DEBUG, "grs_retrieve: localControlNumber"); - if ((new = data1_insert_taggeddata(p->dh, node, node, + if ((dnew = data1_insert_taggeddata(p->dh, node, node, "localControlNumber", mem))) { - new->u.data.what = DATA1I_text; - new->u.data.data = new->lbuf; - sprintf(new->u.data.data, "%d", p->localno); - new->u.data.len = strlen(new->u.data.data); + dnew->u.data.what = DATA1I_text; + dnew->u.data.data = dnew->lbuf; + sprintf(dnew->u.data.data, "%d", p->localno); + dnew->u.data.len = strlen(dnew->u.data.data); } + logf (LOG_DEBUG, "grs_retrieve: schemaIdentifier"); if (p->input_format == VAL_GRS1 && node->u.root.absyn && node->u.root.absyn->reference != VAL_NONE) @@ -484,13 +498,13 @@ static int grs_retrieve(struct recRetrieveCtrl *p) } *(p++) = '\0'; - if ((new = data1_insert_taggeddata(dh, node, node, + if ((dnew = data1_insert_taggeddata(dh, node, node, "schemaIdentifier", mem))) { - new->u.data.what = DATA1I_oid; - new->u.data.data = nmem_malloc(mem, p - tmp); - memcpy(new->u.data.data, tmp, p - tmp); - new->u.data.len = p - tmp; + dnew->u.data.what = DATA1I_oid; + dnew->u.data.data = nmem_malloc(mem, p - tmp); + memcpy(dnew->u.data.data, tmp, p - tmp); + dnew->u.data.len = p - tmp; } } }