+#if RSBETWEEN_DEBUG
+static void log2 (struct rset_between_rfd *p, char *msg, int cmp_l, int cmp_r)
+{
+ char buf_l[32];
+ char buf_m[32];
+ char buf_r[32];
+ logf(LOG_DEBUG,"btw: %s l=%s(%d/%d) m=%s(%d) r=%s(%d/%d), lev=%d",
+ msg,
+ (*p->info->printer)(p->buf_l, buf_l), p->more_l, cmp_l,
+ (*p->info->printer)(p->buf_m, buf_m), p->more_m,
+ (*p->info->printer)(p->buf_r, buf_r), p->more_r, cmp_r,
+ p->level);
+}
+#endif
+
+RSET rsbetween_create( NMEM nmem, int key_size,
+ int (*cmp)(const void *p1, const void *p2),
+ RSET rset_l, RSET rset_m, RSET rset_r, RSET rset_attr,
+ char *(*printer)(const void *p1, char *buf) )
+{
+ RSET rnew=rset_create_base(&control, nmem);
+ struct rset_between_info *info;
+ info = (struct rset_between_info *) nmem_malloc(rnew->nmem,sizeof(*info));
+ info->key_size = key_size;
+ info->rset_l = rset_l;
+ info->rset_m = rset_m;
+ info->rset_r = rset_r;
+ info->rset_attr = rset_attr;
+ info->cmp = cmp;
+ info->printer = printer;
+ info->rfd_list = NULL;
+
+ rnew->priv=info;
+ return rnew;
+}
+
+/*
+static void *r_create_between (RSET ct, const struct rset_control *sel,
+ void *parms)