Updated WIN32 code specific sections. Changed header.
[idzebra-moved-to-github.git] / dict / drdwr.c
index 3869dcb..a786304 100644 (file)
@@ -1,6 +1,36 @@
+/*
+ * Copyright (C) 1994-1999, Index Data
+ * All rights reserved.
+ * Sebastian Hammer, Adam Dickmeiss
+ *
+ * $Log: drdwr.c,v $
+ * Revision 1.10  1999-02-02 14:50:21  adam
+ * Updated WIN32 code specific sections. Changed header.
+ *
+ * Revision 1.9  1997/09/09 13:38:01  adam
+ * Partial port to WIN95/NT.
+ *
+ * Revision 1.8  1995/01/24 11:25:11  adam
+ * Removed stupid assertion.
+ *
+ * Revision 1.7  1994/10/05  10:47:15  adam
+ * Function pr_lru is non-static now. No warning no more.
+ *
+ * Revision 1.6  1994/09/06  13:05:14  adam
+ * Further development of insertion. Some special cases are
+ * not properly handled yet! assert(0) are put here. The
+ * binary search in each page definitely reduce usr CPU.
+ *
+ * Revision 1.5  1994/09/01  17:49:38  adam
+ * Removed stupid line. Work on insertion in dictionary. Not finished yet.
+ *
+ */
+
 #include <sys/types.h>
 #include <fcntl.h>
+#ifndef WIN32
 #include <unistd.h>
+#endif
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -8,7 +38,7 @@
 
 #include <dict.h>
 
-static void pr_lru (Dict_BFile bf)
+void dict_pr_lru (Dict_BFile bf)
 {
     struct Dict_file_block *p;
     for (p=bf->lru_back; p; p = p->lru_next)
@@ -41,7 +71,7 @@ static void release_block (Dict_BFile bf, struct Dict_file_block *p)
     if (p->lru_next)
         p->lru_next->lru_prev = p->lru_prev;
     else
-        bf->lru_back = p->lru_prev;
+        bf->lru_front = p->lru_prev;
 
     /* remove from hash chain */
     *p->h_prev = p->h_next;
@@ -61,7 +91,9 @@ void dict_bf_flush_blocks (Dict_BFile bf, int no_to_flush)
     {
         p = bf->lru_back;
         if (p->dirty)
+        {
             bf_write (bf->bf, p->no, 0, 0, p->data);
+        }
         release_block (bf, p);
     }
 }
@@ -145,27 +177,27 @@ int dict_bf_readp (Dict_BFile bf, int no, void **bufp)
     return i;
 }
 
-int dict_bf_newp (Dict_BFile bf, int no, void **bufp)
+int dict_bf_newp (Dict_BFile dbf, int no, void **bufp)
 {
     struct Dict_file_block *p;
-    if (!(p = find_block (bf, no)))
-        p = alloc_block (bf, no);
+    if (!(p = find_block (dbf, no)))
+        p = alloc_block (dbf, no);
     else
-        move_to_front (bf, p);
+        move_to_front (dbf, p);
     *bufp = p->data;
-    memset (p->data, 0, bf->bf->block_size);
+    memset (p->data, 0, dbf->block_size);
     p->dirty = 1;
 #if 0
     printf ("bf_newp of %d:", no);
-    pr_lru (bf);
+    dict_pr_lru (dbf);
 #endif
     return 1;
 }
 
-int dict_bf_touch (Dict_BFile bf, int no)
+int dict_bf_touch (Dict_BFile dbf, int no)
 {
     struct Dict_file_block *p;
-    if ((p = find_block (bf, no)))
+    if ((p = find_block (dbf, no)))
     {
         p->dirty = 1;
         return 0;