Added dict_grep_cmap function to define user-mapping in grep lookups.
[idzebra-moved-to-github.git] / dict / open.c
index e13b38c..39c3a82 100644 (file)
@@ -4,7 +4,21 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: open.c,v $
- * Revision 1.6  1994-10-05 12:16:52  adam
+ * Revision 1.10  1996-05-24 14:46:04  adam
+ * Added dict_grep_cmap function to define user-mapping in grep lookups.
+ *
+ * Revision 1.9  1996/02/02  13:43:51  adam
+ * The public functions simply use char instead of Dict_char to represent
+ * search strings. Dict_char is used internally only.
+ *
+ * Revision 1.8  1995/12/07  11:48:56  adam
+ * Insert operation obeys DICT_type = 1 (slack in page).
+ * Function dict_open exists if page size or magic aren't right.
+ *
+ * Revision 1.7  1995/09/04  12:33:32  adam
+ * Various cleanup. YAZ util used instead.
+ *
+ * Revision 1.6  1994/10/05  12:16:52  adam
  * Pagesize is a resource now.
  *
  * Revision 1.5  1994/09/01  17:49:39  adam
@@ -42,19 +56,21 @@ Dict dict_open (const char *name, int cache, int rw)
 
     sprintf (resource_str, "dict.%s.pagesize", name);
 
+    dict->grep_cmap = NULL;
     page_size = atoi (res_get_def (common_resource, resource_str, 
                                    DICT_DEFAULT_PAGESIZE));
-    if (page_size < 1024)
+    if (page_size < 2048)
     {
-        log (LOG_WARN, "Resource %s was too small. Set to 1024", resource_str);
-        page_size = 1024;
+        logf (LOG_WARN, "Resource %s was too small. Set to 2048",
+              resource_str);
+        page_size = 2048;
     }
     dict->dbf = dict_bf_open (name, page_size, cache, rw);
     dict->rw = rw;
 
     if(!dict->dbf)
     {
-        log (LOG_WARN, "Cannot open `%s'", name);
+        logf (LOG_WARN, "Cannot open `%s'", name);
         xfree (dict);
         return NULL;
     }
@@ -80,18 +96,14 @@ Dict dict_open (const char *name, int cache, int rw)
         dh = (struct Dict_head *) head_buf;
         if (strcmp (dh->magic_str, DICT_MAGIC))
         {
-            log (LOG_WARN, "Bad magic of `%s'", name);
-            dict_bf_close (dict->dbf);
-            xfree (dict);
-            return NULL;
+            logf (LOG_WARN, "Bad magic of `%s'", name);
+            exit (1);
         }
         if (dh->page_size != page_size)
         {
-            log (LOG_WARN, "Resource %s is %d and pagesize of `%s' is %d",
-                 resource_str, page_size, name, dh->page_size);
-            dict_bf_close (dict->dbf);
-            xfree (dict);
-            return NULL;
+            logf (LOG_WARN, "Resource %s is %d and pagesize of `%s' is %d",
+                  resource_str, page_size, name, dh->page_size);
+            exit (1);
         }
         memcpy (&dict->head, dh, sizeof(*dh));
     }
@@ -100,10 +112,10 @@ Dict dict_open (const char *name, int cache, int rw)
 
 int dict_strcmp (const Dict_char *s1, const Dict_char *s2)
 {
-    return strcmp (s1, s2);
+    return strcmp ((const char *) s1, (const char *) s2);
 }
 
 int dict_strlen (const Dict_char *s)
 {
-    return strlen(s);
+    return strlen((const char *) s);
 }