Put local variables footer in all c, h files.
[idzebra-moved-to-github.git] / dict / open.c
index 4feca53..07cf10d 100644 (file)
@@ -1,6 +1,6 @@
-/* $Id: open.c,v 1.19 2002-08-02 19:26:55 adam Exp $
-   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
-   Index Data Aps
+/* $Id: open.c,v 1.25 2006-05-10 08:13:18 adam Exp $
+   Copyright (C) 1995-2005
+   Index Data ApS
 
 This file is part of the Zebra server.
 
@@ -26,28 +26,25 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <string.h>
 #include <stdio.h>
 
-#include <dict.h>
+#include "dict-p.h"
 
 Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
-               int compact_flag)
+               int compact_flag, int page_size)
 {
     Dict dict;
     void *head_buf;
-    char resource_str[80];
-    int page_size;
 
     dict = (Dict) xmalloc (sizeof(*dict));
 
     if (cache < 5)
        cache = 5;
-    sprintf (resource_str, "dict.%s.pagesize", name);
 
     dict->grep_cmap = NULL;
     page_size = DICT_DEFAULT_PAGESIZE;
     if (page_size < 2048)
     {
-        logf (LOG_WARN, "Resource %s was too small. Set to 2048",
-              resource_str);
+        yaz_log (YLOG_WARN, "Page size for dict %s %d<2048. Set to 2048",
+             name, page_size);
         page_size = 2048;
     }
     dict->dbf = dict_bf_open (bfs, name, page_size, cache, rw);
@@ -55,7 +52,7 @@ Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
 
     if(!dict->dbf)
     {
-        logf (LOG_WARN, "Cannot open `%s'", name);
+        yaz_log (YLOG_WARN, "Cannot open `%s'", name);
         xfree (dict);
         return NULL;
     }
@@ -78,14 +75,15 @@ Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
        memcpy (&dict->head, head_buf, sizeof(dict->head));
         if (strcmp (dict->head.magic_str, DICT_MAGIC))
         {
-            logf (LOG_WARN, "Bad magic of `%s'", name);
-            exit (1);
+            yaz_log (YLOG_WARN, "Bad magic of `%s'", name);
+           dict_bf_close(dict->dbf);
+           xfree(dict);
+           return 0;
         }
         if (dict->head.page_size != page_size)
         {
-            logf (LOG_WARN, "Resource %s is %d and pagesize of `%s' is %d",
-                  resource_str, page_size, name, dict->head.page_size);
-           return 0;
+            yaz_log (YLOG_WARN, "Page size for existing dict %s is %d. Current is %d",
+                 name, dict->head.page_size, page_size);
         }
     }
     if (dict->head.compact_flag)
@@ -107,3 +105,11 @@ int dict_strlen (const Dict_char *s)
 {
     return strlen((const char *) s);
 }
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+