/*
- * Copyright (C) 1994-1997, Index Data I/S
+ * Copyright (C) 1994-1998, Index Data I/S
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: rset.h,v $
- * Revision 1.13 1997-12-18 10:54:24 adam
+ * Revision 1.14 1998-02-10 11:56:46 adam
+ * Implemented rset_dup.
+ *
+ * Revision 1.13 1997/12/18 10:54:24 adam
* New method result set method rs_hits that returns the number of
* hits in result-set (if known). The ranked result set returns real
* number of hits but only when not combined with other operands.
{
const rset_control *control;
int flags;
+ int count;
void *buf;
} rset;
void rset_delete(RSET rs);
+RSET rset_dup (RSET rs);
+
/* void rset_rewind(RSET rs); */
#define rset_rewind(rs, rfd) (*(rs)->control->f_rewind)((rfd))
/*
- * Copyright (C) 1994-1995, Index Data I/S
+ * Copyright (C) 1994-1998, Index Data I/S
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: rset.c,v $
- * Revision 1.9 1996-10-29 13:55:21 adam
+ * Revision 1.10 1998-02-10 11:56:46 adam
+ * Implemented rset_dup.
+ *
+ * Revision 1.9 1996/10/29 13:55:21 adam
* Include of zebrautl.h instead of alexutil.h.
*
* Revision 1.8 1995/12/11 09:15:23 adam
rnew = xmalloc(sizeof(*rnew));
rnew->control = sel;
rnew->flags = 0;
+ rnew->count = 1;
rnew->buf = (*sel->f_create)(sel, parms, &rnew->flags);
return rnew;
}
void rset_delete (RSET rs)
{
- (*rs->control->f_delete)(rs);
+ (rs->count)--;
+ if (!rs->count)
+ (*rs->control->f_delete)(rs);
xfree(rs);
}
+
+RSET rset_dup (RSET rs)
+{
+ (rs->count)++;
+ return rs;
+}