X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=rset%2Frsprox.c;h=896854e8f48fa3dbd5253ebf362d8db87f3306cc;hp=5d096debb807b5354aba42ab3ea349d279179754;hb=3fdd3e7aa5372e1a2a981a5826273f381f74be8e;hpb=aec7e0b196785323777262d3c6ca3e6c770a696d;ds=sidebyside diff --git a/rset/rsprox.c b/rset/rsprox.c index 5d096de..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];