Happy new year
[idzebra-moved-to-github.git] / dict / open.c
index 27ff9da..86b59fc 100644 (file)
@@ -1,8 +1,5 @@
-/* $Id: open.c,v 1.24 2006-03-26 14:03:18 adam Exp $
-   Copyright (C) 1995-2005
-   Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+   Copyright (C) 1994-2009 Index Data
 
 Zebra is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -15,9 +12,9 @@ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
 You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra.  If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
 */
 
 
@@ -28,6 +25,25 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 #include "dict-p.h"
 
+void dict_clean(Dict dict)
+{
+    int page_size = dict->head.page_size;
+    void *head_buf;
+    int compact_flag = dict->head.compact_flag;
+
+    memset (dict->head.magic_str, 0, sizeof(dict->head.magic_str));
+    strcpy (dict->head.magic_str, DICT_MAGIC);
+    dict->head.last = 1;
+    dict->head.root = 0;
+    dict->head.freelist = 0;
+    dict->head.page_size = page_size;
+    dict->head.compact_flag = compact_flag;
+    
+    /* create header with information (page 0) */
+    if (dict->rw) 
+        dict_bf_newp (dict->dbf, 0, &head_buf, page_size);
+}
+
 Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
                int compact_flag, int page_size)
 {
@@ -49,6 +65,9 @@ Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
     }
     dict->dbf = dict_bf_open (bfs, name, page_size, cache, rw);
     dict->rw = rw;
+    dict->no_split = 0;
+    dict->no_insert = 0;
+    dict->no_lookup = 0;
 
     if(!dict->dbf)
     {
@@ -58,17 +77,9 @@ Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
     }
     if (dict_bf_readp (dict->dbf, 0, &head_buf) <= 0)
     {
-       memset (dict->head.magic_str, 0, sizeof(dict->head.magic_str));
-       strcpy (dict->head.magic_str, DICT_MAGIC);
-       dict->head.last = 1;
-       dict->head.root = 0;
-       dict->head.freelist = 0;
        dict->head.page_size = page_size;
-       dict->head.compact_flag = compact_flag;
-       
-       /* create header with information (page 0) */
-        if (rw) 
-            dict_bf_newp (dict->dbf, 0, &head_buf, page_size);
+        dict->head.compact_flag = compact_flag;
+        dict_clean(dict);
     }
     else /* header was there, check magic and page size */
     {
@@ -105,3 +116,27 @@ int dict_strlen (const Dict_char *s)
 {
     return strlen((const char *) s);
 }
+
+zint dict_get_no_lookup(Dict dict)
+{
+    return dict->no_lookup;
+}
+
+zint dict_get_no_insert(Dict dict)
+{
+    return dict->no_insert;
+}
+
+zint dict_get_no_split(Dict dict)
+{
+    return dict->no_split;
+}
+
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+