X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=rset%2Frsprox.c;h=896854e8f48fa3dbd5253ebf362d8db87f3306cc;hb=ce0c8ffd1c3471504b638f6b47a0e85bf1b6f24f;hp=8c7a545219900bfc9a027533ed1b7103638e4a56;hpb=89d16cf15eda0e4802d18b8ad09bd3653508ebfc;p=idzebra-moved-to-github.git diff --git a/rset/rsprox.c b/rset/rsprox.c index 8c7a545..896854e 100644 --- a/rset/rsprox.c +++ b/rset/rsprox.c @@ -221,11 +221,14 @@ static int r_forward(RSFD rfd, void *buf, TERMID *term, const void *untilbuf) seqno[n++] = (*kctrl->getseq)(p->buf[0]); while ((p->more[0] = rset_read (p->rfd[0], - p->buf[0], &p->terms[0])) >= -1 && - p->more[0] <= -1) + p->buf[0], &p->terms[0]))) + { + cmp = (*kctrl->cmp)(p->buf[0], p->buf[1]); + if (cmp <= - rfd->rset->scope || cmp >= rfd->rset->scope) + break; if (n < 500) seqno[n++] = (*kctrl->getseq)(p->buf[0]); - + } for (i = 0; igetseq)(p->buf[1]) - seqno[i]; @@ -333,6 +336,7 @@ static void r_get_terms(RSET ct, TERMID *terms, int maxterms, int *curterm) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab