Mostly about making some ISAM stuff in the config file optional.
[idzebra-moved-to-github.git] / isam / memory.c
index 7962a0e..034f6d4 100644 (file)
@@ -4,7 +4,13 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: memory.c,v $
- * Revision 1.4  1994-09-27 20:03:52  quinn
+ * Revision 1.6  1995-09-04 12:33:47  adam
+ * Various cleanup. YAZ util used instead.
+ *
+ * Revision 1.5  1994/09/28  16:58:33  quinn
+ * Small mod.
+ *
+ * Revision 1.4  1994/09/27  20:03:52  quinn
  * Seems relatively bug-free.
  *
  * Revision 1.3  1994/09/26  17:11:30  quinn
@@ -23,8 +29,9 @@
  */
 
 #include <assert.h>
+#include <stdio.h>
 
-#include <util.h>
+#include <alexutil.h>
 #include <isam.h>
 
 int is_mbuf_size[3] = { 0, 1024, 4096 };
@@ -268,7 +275,7 @@ int is_m_write_record(is_mtable *tab, const void *rec)
        mbuf = tab->cur_mblock->cur_mbuf = mbuf->next;
        mbuf->cur_record = 0;
     }
-    log(LOG_DEBUG, "is_m_write_rec(rec == %d)", mbuf->cur_record);
+    logf (LOG_DEBUG, "is_m_write_rec(rec == %d)", mbuf->cur_record);
     memcpy(mbuf->data + mbuf->offset + mbuf->cur_record * is_keysize(tab->is),
        rec, is_keysize(tab->is));
     mbuf->num++;
@@ -378,3 +385,14 @@ int is_m_seek_record(is_mtable *tab, const void *rec)
            return 0;
     }
 }
+
+int is_m_num_records(is_mtable *tab)
+{
+    if (tab->data->state < IS_MBSTATE_PARTIAL)
+       if (read_current_full(tab, tab->data) < 0)
+       {
+           logf (LOG_FATAL, "read full failed");
+           exit(1);
+       }
+    return tab->num_records;
+}