- while (p->more_l && p->more_r)
- {
- int cmp;
-
- cmp = (*info->cmp)(p->buf_l, p->buf_r);
- if (!cmp)
- {
- memcpy (buf, p->buf_l, info->key_size);
- *term_index = p->term_index_l;
- p->more_l = rset_read (info->rset_l, p->rfd_l, p->buf_l,
- &p->term_index_l);
- p->more_r = rset_read (info->rset_r, p->rfd_r, p->buf_r,
- &p->term_index_r);
- return 1;
- }
- else if (cmp == 1)
- {
- memcpy (buf, p->buf_r, info->key_size);
-
- *term_index = p->term_index_r + info->term_index_s;
- p->more_r = rset_read (info->rset_r, p->rfd_r, p->buf_r,
- &p->term_index_r);
- return 1;
- }
- else if (cmp == -1)
- {
- memcpy (buf, p->buf_l, info->key_size);
- *term_index = p->term_index_l;
- p->more_l = rset_read (info->rset_l, p->rfd_l, p->buf_l,
- &p->term_index_l);
- return 1;
- }
- else if (cmp > 1)
- p->more_r = rset_read (info->rset_r, p->rfd_r, p->buf_r,
- &p->term_index_r);
- else
- p->more_l = rset_read (info->rset_l, p->rfd_l, p->buf_l,
- &p->term_index_l);
- }