* Sebastian Hammer, Adam Dickmeiss
*
* $Log: rstemp.c,v $
- * Revision 1.11 1995-09-18 14:17:56 adam
+ * Revision 1.14 1995-10-10 14:00:04 adam
+ * Function rset_open changed its wflag parameter to general flags.
+ *
+ * Revision 1.13 1995/10/06 14:38:06 adam
+ * New result set method: r_score.
+ * Local no (sysno) and score is transferred to retrieveCtrl.
+ *
+ * Revision 1.12 1995/09/28 09:52:11 adam
+ * xfree/xmalloc used everywhere.
+ *
+ * Revision 1.11 1995/09/18 14:17:56 adam
* Bug fixes.
*
* Revision 1.10 1995/09/15 14:45:39 adam
#include <rstemp.h>
static rset_control *r_create(const struct rset_control *sel, void *parms);
-static RSFD r_open (rset_control *ct, int wflag);
+static RSFD r_open (rset_control *ct, int flag);
static void r_close (RSFD rfd);
static void r_delete (rset_control *ct);
static void r_rewind (RSFD rfd);
static int r_count (rset_control *ct);
static int r_read (RSFD rfd, void *buf);
static int r_write (RSFD rfd, const void *buf);
+static int r_score (RSFD rfd, int *score);
static const rset_control control =
{
r_rewind,
r_count,
r_read,
- r_write
+ r_write,
+ r_score
};
const rset_control *rset_kind_temp = &control;
return newct;
}
-static RSFD r_open (struct rset_control *ct, int wflag)
+static RSFD r_open (struct rset_control *ct, int flag)
{
struct rset_temp_info *info = ct->buf;
struct rset_temp_rfd *rfd;
assert (info->fd == -1);
if (info->fname)
{
- if (wflag)
+ if (flag & RSETF_WRITE)
info->fd = open (info->fname, O_RDWR|O_CREAT, 0666);
else
info->fd = open (info->fname, O_RDONLY);
if (info->fname)
unlink (info->fname);
free (info->buf_mem);
- free (info->fname);
+ logf (LOG_DEBUG, "r_delete: set size %ld", (long) info->pos_end);
+ if (info->fname)
+ {
+ logf (LOG_DEBUG, "r_delete: unlink %s", info->fname);
+ unlink (info->fname);
+ free (info->fname);
+ }
free (info);
}
return 1;
}
+static int r_score (RSFD rfd, int *score)
+{
+ *score = -1;
+ return -1;
+}