- rset_between_parms *between_parms = (rset_between_parms *) parms;
- struct rset_between_info *info;
-
- info = (struct rset_between_info *) xmalloc (sizeof(*info));
- info->key_size = between_parms->key_size;
- info->rset_l = between_parms->rset_l;
- info->rset_m = between_parms->rset_m;
- info->rset_r = between_parms->rset_r;
- if (rset_is_volatile(info->rset_l) ||
- rset_is_volatile(info->rset_m) ||
- rset_is_volatile(info->rset_r))
- ct->flags |= RSET_FLAG_VOLATILE;
- info->cmp = between_parms->cmp;
- info->rfd_list = NULL;
-
- info->term_index_s = info->rset_l->no_rset_terms;
- ct->no_rset_terms =
- info->rset_l->no_rset_terms +
- info->rset_m->no_rset_terms +
- info->rset_r->no_rset_terms;
- ct->rset_terms = (RSET_TERM *)
- xmalloc (sizeof (*ct->rset_terms) * ct->no_rset_terms);
-
- memcpy (ct->rset_terms, info->rset_l->rset_terms,
- info->rset_l->no_rset_terms * sizeof(*ct->rset_terms));
- memcpy (ct->rset_terms + info->rset_l->no_rset_terms,
- info->rset_m->rset_terms,
- info->rset_m->no_rset_terms * sizeof(*ct->rset_terms));
- memcpy (ct->rset_terms + info->rset_l->no_rset_terms +
- info->rset_m->no_rset_terms,
- info->rset_r->rset_terms,
- info->rset_r->no_rset_terms * sizeof(*ct->rset_terms));
- return info;