- if (!p->more_r || (*info->cmp)(p->buf_r, buf) > 1)
- p->tail = 0;
-#if RSET_DEBUG
- logf (LOG_DEBUG, "r_read_and returning C m=%d/%d c=%d",
- p->more_l, p->more_r, cmp);
- (*info->log_item)(LOG_DEBUG, buf, "");
-#endif
- p->hits++;
- return 1;
- }
-#else
-
- if (p->tail)
- {
- memcpy (buf, p->buf_r, info->key_size);
- p->more_r = rset_read (p->rfd_r, p->buf_r);
- if (!p->more_r || (*info->cmp)(p->buf_r, buf) > 1)
+ memcpy (buf, p->buf_r, kctrl->key_size);
+ if (term)
+ *term=p->term_r;
+ p->more_r = rset_read (p->rfd_r, p->buf_r, &p->term_r);
+ if (!p->more_r || (*kctrl->cmp)(p->buf_r, buf) > 1)