Extra argument added to function chr_read_maptab (tab path).
[idzebra-moved-to-github.git] / util / charmap.c
index 067a430..60bc254 100644 (file)
@@ -4,7 +4,16 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: charmap.c,v $
- * Revision 1.8  1996-10-18 12:39:23  adam
+ * Revision 1.11  1997-09-05 09:52:32  adam
+ * Extra argument added to function chr_read_maptab (tab path).
+ *
+ * Revision 1.10  1997/07/01 13:01:08  adam
+ * Bug fix in routine find_entry: didn't take into account the len arg.
+ *
+ * Revision 1.9  1996/10/29 13:48:14  adam
+ * Updated to use zebrautl.h instead of alexutil.h.
+ *
+ * Revision 1.8  1996/10/18 12:39:23  adam
  * Uses LOG_DEBUG instead of LOG_WARN for "Character map overlap".
  *
  * Revision 1.7  1996/06/06  12:08:56  quinn
@@ -40,7 +49,7 @@
 #include <string.h>
 #include <assert.h>
 
-#include <alexutil.h>
+#include <zebrautl.h>
 #include <yaz-util.h>
 #include <charmap.h>
 #include <tpath.h>
@@ -52,8 +61,6 @@ const char *CHR_UNKNOWN = "\001";
 const char *CHR_SPACE   = "\002";
 const char *CHR_BASE    = "\003";
 
-extern char *data1_tabpath;
-
 /*
  * Character map trie node.
  */
@@ -142,7 +149,7 @@ static chr_t_entry *find_entry(chr_t_entry *t, char **from, int len)
 {
     chr_t_entry *res;
 
-    if (t->children && t->children[(unsigned char) **from])
+    if (len && t->children && t->children[(unsigned char) **from])
     {
        char *pos = *from;
 
@@ -341,14 +348,14 @@ static int scan_string(char *s, void (*fun)(char *c, void *data, int num),
     return 0;
 }
 
-chrmaptab *chr_read_maptab(char *name)
+chrmaptab *chr_read_maptab(const char *tabpath, const char *name)
 {
     FILE *f;
     char line[512], *argv[50];
     chrmaptab *res = xmalloc(sizeof(*res));
     int argc, num = (int) *CHR_BASE, i;
 
-    if (!(f = yaz_path_fopen(data1_tabpath, name, "r")))
+    if (!(f = yaz_path_fopen(tabpath, name, "r")))
     {
        logf(LOG_WARN|LOG_ERRNO, "%s", name);
        return 0;