X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=rset%2Frsisam.c;h=c194bf763110f5cdab06bfc5f9ed4e3ce40d0227;hb=b7ed8922d365e24874e561b7347c2c2ad682d6d8;hp=56a432c329cd43b38b9ca7043b8b06f02d4726e1;hpb=affd7e4168d70b94e015b777748b7eca1cd00ec0;p=idzebra-moved-to-github.git diff --git a/rset/rsisam.c b/rset/rsisam.c index 56a432c..c194bf7 100644 --- a/rset/rsisam.c +++ b/rset/rsisam.c @@ -4,24 +4,38 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: rsisam.c,v $ - * Revision 1.1 1994-11-04 13:21:29 quinn - * Working. + * Revision 1.7 1995-09-06 10:35:44 adam + * Null set implemented. + * + * Revision 1.6 1995/09/05 11:43:24 adam + * Complete version of temporary sets. Not tested yet though. + * + * Revision 1.5 1995/09/04 12:33:56 adam + * Various cleanup. YAZ util used instead. + * + * Revision 1.4 1995/09/04 09:10:55 adam + * Minor changes. + * + * Revision 1.3 1994/11/22 13:15:37 quinn + * Simple + * + * Revision 1.2 1994/11/04 14:53:12 quinn + * Work * */ -/* TODO: Memory management */ - +#include #include -#include +#include -rset_control *r_create(const struct rset_control *sel, void *parms); -static int r_open(rset_control *ct, int wflag); -static void r_close(rset_control *ct); -static void r_delete(rset_control *ct); -static void r_rewind(rset_control *ct); -static int r_count(rset_control *ct); -static int r_read(); -static int r_write(); +static rset_control *r_create(const struct rset_control *sel, void *parms); +static int r_open (rset_control *ct, int wflag); +static void r_close (rset_control *ct); +static void r_delete (rset_control *ct); +static void r_rewind (rset_control *ct); +static int r_count (rset_control *ct); +static int r_read (rset_control *ct, void *buf); +static int r_write (rset_control *ct, const void *buf); static const rset_control control = { @@ -39,12 +53,14 @@ static const rset_control control = const rset_control *rset_kind_isam = &control; -rset_control *r_create(const struct rset_control *sel, void *parms) +static rset_control *r_create(const struct rset_control *sel, void *parms) { rset_control *newct; rset_isam_parms *pt = parms; + logf (LOG_DEBUG, "rsisam_create(%s)", sel->desc); newct = xmalloc(sizeof(*newct)); + memcpy(newct, sel, sizeof(*sel)); if (!(newct->buf = (char*) is_position(pt->is, pt->pos))) return 0; return newct; @@ -52,6 +68,12 @@ rset_control *r_create(const struct rset_control *sel, void *parms) static int r_open(rset_control *ct, int wflag) { + logf (LOG_DEBUG, "risam_open"); + if (wflag) + { + logf (LOG_FATAL, "ISAM set type is read-only"); + return -1; + } r_rewind(ct); return 0; } @@ -63,25 +85,29 @@ static void r_close(rset_control *ct) static void r_delete(rset_control *ct) { + logf (LOG_DEBUG, "rsisam_delete"); is_pt_free((ISPT) ct->buf); xfree(ct); } static void r_rewind(rset_control *ct) { + logf (LOG_DEBUG, "rsisam_rewind"); is_rewind((ISPT) ct->buf); } -static int r_count(rset_control *ct) -{return 0;} +static int r_count (rset_control *ct) +{ + return 0; +} -static int r_read(rset_control *ct, void *buf) +static int r_read (rset_control *ct, void *buf) { return is_readkey((ISPT) ct->buf, buf); } -static int r_write(rset_control *ct, const void *buf) +static int r_write (rset_control *ct, const void *buf) { - log(LOG_FATAL, "ISAM set type is read-only"); + logf (LOG_FATAL, "ISAM set type is read-only"); return -1; }