Save register type for TERMIDs and snippets.
[idzebra-moved-to-github.git] / rset / rsisamc.c
index 6dc3983..b0c9201 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: rsisamc.c,v 1.37 2005-04-13 13:03:49 adam Exp $
+/* $Id: rsisamc.c,v 1.40 2005-05-24 11:35:43 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -20,9 +20,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.
 */
 
-
-
-
 #include <stdio.h>
 #include <assert.h>
 #include <string.h>
@@ -43,14 +40,12 @@ static const struct rset_control control =
     rset_get_one_term,
     r_open,
     r_close,
-    rset_default_forward,
+    0, /* no forward */
     r_pos,
     r_read,
     r_write,
 };
 
-const struct rset_control *rset_kind_isamc = &control;
-
 struct rset_pp_info {
     ISAMC_PP pt;
     void *buf;
@@ -64,17 +59,18 @@ struct rset_isamc_info {
 static int log_level = 0;
 static int log_level_initialized = 0;
 
-RSET rsisamc_create(NMEM nmem, const struct key_control *kcontrol, int scope,
+RSET rsisamc_create(NMEM nmem, struct rset_key_control *kcontrol,
+                   int scope,
                    ISAMC is, ISAM_P pos, TERMID term)
 {
-    RSET rnew = rset_create_base(&control, nmem, kcontrol, scope,term);
+    RSET rnew = rset_create_base(&control, nmem, kcontrol, scope, term, 0, 0);
     struct rset_isamc_info *info;
     if (!log_level_initialized)
     {
         log_level = yaz_log_module_level("rsisamc");
         log_level_initialized = 1;
     }
-    info = (struct rset_isamc_info *) nmem_malloc(rnew->nmem,sizeof(*info));
+    info = (struct rset_isamc_info *) nmem_malloc(rnew->nmem, sizeof(*info));
     info->is = is;
     info->pos = pos;
     rnew->priv = info;
@@ -117,7 +113,6 @@ static void r_close (RSFD rfd)
     struct rset_pp_info *p = (struct rset_pp_info *)(rfd->priv);
 
     isamc_pp_close(p->pt);
-    rfd_delete_base(rfd);
 }