Use HAVE_UNISTD_H when including unistd.h.
[idzebra-moved-to-github.git] / index / trav.c
index 6b876b3..3dff5f5 100644 (file)
@@ -1,6 +1,6 @@
-/* $Id: trav.c,v 1.45 2004-09-09 09:07:12 adam Exp $
-   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
-   Index Data Aps
+/* $Id: trav.c,v 1.49 2005-06-14 20:28:54 adam Exp $
+   Copyright (C) 1995-2005
+   Index Data ApS
 
 This file is part of the Zebra server.
 
@@ -27,7 +27,8 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <io.h>
 #define S_ISREG(x) (x & _S_IFREG)
 #define S_ISDIR(x) (x & _S_IFDIR)
-#else
+#endif
+#if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <direntz.h>
@@ -53,7 +54,7 @@ static void repositoryExtractR (ZebraHandle zh, int deleteFlag, char *rep,
     e = dir_open (rep, zh->path_reg, zh->m_follow_links);
     if (!e)
         return;
-    yaz_log (LOG_LOG, "dir %s", rep);
+    yaz_log (YLOG_LOG, "dir %s", rep);
     if (rep[rep_len-1] != '/')
         rep[rep_len] = '/';
     else
@@ -122,7 +123,7 @@ static void fileUpdateR (ZebraHandle zh,
 
     sprintf (tmppath, "%s%s", base, src);
     e_src = dir_open (tmppath, zh->path_reg, zh->m_follow_links);
-    yaz_log (LOG_LOG, "dir %s", tmppath);
+    yaz_log (YLOG_LOG, "dir %s", tmppath);
 
 #if 0
     if (!dst || repComp (dst->path, src, src_len))
@@ -167,7 +168,7 @@ static void fileUpdateR (ZebraHandle zh,
         {
             if (e_src[i_src].name)
             {
-                yaz_log (LOG_DEBUG, "dst=%s src=%s", dst->path + src_len,
+                yaz_log (YLOG_DEBUG, "dst=%s src=%s", dst->path + src_len,
                      e_src[i_src].name);
                 sd = strcmp (dst->path + src_len, e_src[i_src].name);
             }
@@ -178,7 +179,7 @@ static void fileUpdateR (ZebraHandle zh,
             sd = 1;
         else
             break;
-        yaz_log (LOG_DEBUG, "trav sd=%d", sd);
+        yaz_log (YLOG_DEBUG, "trav sd=%d", sd);
 
         if (sd == 0)
         {
@@ -194,15 +195,15 @@ static void fileUpdateR (ZebraHandle zh,
                     {
                         dirs_add (di, src, dst->sysno, e_src[i_src].mtime);
                     }
-                   yaz_log (LOG_DEBUG, "old: %s", ctime (&dst->mtime));
-                    yaz_log (LOG_DEBUG, "new: %s", ctime (&e_src[i_src].mtime));
+                   yaz_log (YLOG_DEBUG, "old: %s", ctime (&dst->mtime));
+                    yaz_log (YLOG_DEBUG, "new: %s", ctime (&e_src[i_src].mtime));
                 }
                 dst = dirs_read (di);
                 break;
             case dirs_dir:
                 fileUpdateR (zh, di, dst, base, src, level+1);
                 dst = dirs_last (di);
-                yaz_log (LOG_DEBUG, "last is %s", dst ? dst->path : "null");
+                yaz_log (YLOG_DEBUG, "last is %s", dst ? dst->path : "null");
                 break;
             default:
                 dst = dirs_read (di); 
@@ -260,7 +261,7 @@ void repositoryShow (ZebraHandle zh, const char *path)
 
     if (!(dict = dict_open_res (zh->reg->bfs, FMATCH_DICT, 50, 0, 0, zh->res)))
     {
-        yaz_log (LOG_FATAL, "dict_open fail of %s", FMATCH_DICT);
+        yaz_log (YLOG_FATAL, "dict_open fail of %s", FMATCH_DICT);
        return;
     }
     
@@ -277,7 +278,7 @@ void repositoryShow (ZebraHandle zh, const char *path)
     di = dirs_open (dict, src, zh->m_flag_rw);
     
     while ( (dst = dirs_read (di)) )
-        yaz_log (LOG_LOG, "%s", dst->path);
+        yaz_log (YLOG_LOG, "%s", dst->path);
     dirs_free (&di);
     dict_close (dict);
 }
@@ -307,12 +308,12 @@ static void fileUpdate (ZebraHandle zh, Dict dict, const char *path)
 
     if (ret == -1)
     {
-        yaz_log (LOG_WARN|LOG_ERRNO, "Cannot access path %s", src);
+        yaz_log (YLOG_WARN|YLOG_ERRNO, "Cannot access path %s", src);
     } 
     else if (S_ISREG(sbuf.st_mode))
     {
         struct dirs_entry *e_dst;
-        di = dirs_fopen (dict, src);
+        di = dirs_fopen (dict, src, zh->m_flag_rw);
 
         e_dst = dirs_read (di);
         if (e_dst)
@@ -343,7 +344,7 @@ static void fileUpdate (ZebraHandle zh, Dict dict, const char *path)
     }
     else
     {
-        yaz_log (LOG_WARN, "Skipping path %s", src);
+        yaz_log (YLOG_WARN, "Skipping path %s", src);
     }
 }
 
@@ -369,13 +370,13 @@ static void repositoryExtract (ZebraHandle zh,
     strcpy (src, path);
 
     if (ret == -1)
-        yaz_log (LOG_WARN|LOG_ERRNO, "Cannot access path %s", src);
+        yaz_log (YLOG_WARN|YLOG_ERRNO, "Cannot access path %s", src);
     else if (S_ISREG(sbuf.st_mode))
         fileExtract (zh, NULL, src, deleteFlag);
     else if (S_ISDIR(sbuf.st_mode))
        repositoryExtractR (zh, deleteFlag, src, 0);
     else
-        yaz_log (LOG_WARN, "Skipping path %s", src);
+        yaz_log (YLOG_WARN, "Skipping path %s", src);
 }
 
 static void repositoryExtractG (ZebraHandle zh, const char *path, 
@@ -392,6 +393,24 @@ static void repositoryExtractG (ZebraHandle zh, const char *path,
         repositoryExtract (zh, deleteFlag, path);
 }
 
+#if 0
+static int dump_file_dict_func(char *name, const char *info, int pos,
+                               void *client)
+{
+    yaz_log(YLOG_LOG, "%s", name);
+    return 0;
+}
+static void dump_file_dict(Dict dict)
+{
+    int before = 10;
+    int after = 1000;
+    char term[1000];
+    
+    strcpy(term, "0");
+    dict_scan (dict, term, &before, &after, 0, dump_file_dict_func);
+}
+#endif
+
 void repositoryUpdate (ZebraHandle zh, const char *path)
 {
     assert (path);
@@ -401,7 +420,7 @@ void repositoryUpdate (ZebraHandle zh, const char *path)
         if (!(dict = dict_open_res (zh->reg->bfs, FMATCH_DICT, 50,
                                    zh->m_flag_rw, 0, zh->res)))
         {
-            yaz_log (LOG_FATAL, "dict_open fail of %s", FMATCH_DICT);
+            yaz_log (YLOG_FATAL, "dict_open fail of %s", FMATCH_DICT);
            return ;
         }
         if (!strcmp(path, "") || !strcmp(path, "-"))
@@ -412,7 +431,11 @@ void repositoryUpdate (ZebraHandle zh, const char *path)
         }
         else
             fileUpdate (zh, dict, path);
+#if 0
+       dump_file_dict(dict);
+#endif
         dict_close (dict);
+       
     }
     else 
         repositoryExtractG (zh, path, 0);