+
+RSET rsprox_create( NMEM nmem, int key_size,
+ int (*cmp)(const void *p1, const void *p2),
+ int (*getseq)(const void *p),
+ int rset_no, RSET *rset,
+ int ordered, int exclusion,
+ int relation, int distance)
+{
+ RSET rnew=rset_create_base(&control, nmem);
+ struct rset_prox_info *info;
+ info = (struct rset_prox_info *) nmem_malloc(rnew->nmem,sizeof(*info));
+ info->key_size = key_size;
+ info->cmp = cmp;
+ info->getseq=getseq; /* FIXME - what about multi-level stuff ?? */
+ info->rset = nmem_malloc(rnew->nmem,rset_no * sizeof(*info->rset));
+ memcpy(info->rset, rset,
+ rset_no * sizeof(*info->rset));
+ info->rset_no=rset_no;
+ info->ordered=ordered;
+ info->exclusion=exclusion;
+ info->relation=relation;
+ info->distance=distance;
+ info->rfd_list = NULL;
+ rnew->priv=info;
+ return rnew;
+}
+
+
+static void r_delete (RSET ct)
+{
+ struct rset_prox_info *info = (struct rset_prox_info *) ct->priv;
+ int i;
+
+ assert (info->rfd_list == NULL);
+ for (i = 0; i<info->rset_no; i++)
+ rset_delete (info->rset[i]);
+/* xfree (info->rset); */ /* nmems! */
+/* xfree (info); */
+}
+
+#if 0