File update uses modify-time instead of change-time.
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 21 Mar 1996 14:50:08 +0000 (14:50 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 21 Mar 1996 14:50:08 +0000 (14:50 +0000)
index/dir.c
index/dirs.c
index/index.h
index/kinput.c
index/trav.c

index 4ed2885..0c82aae 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: dir.c,v $
- * Revision 1.12  1996-02-05 12:29:55  adam
+ * Revision 1.13  1996-03-21 14:50:08  adam
+ * File update uses modify-time instead of change-time.
+ *
+ * Revision 1.12  1996/02/05  12:29:55  adam
  * Logging reduced a bit.
  * The remaining running time is estimated during register merge.
  *
@@ -101,14 +104,14 @@ struct dir_entry *dir_open (const char *rep)
         {
         case S_IFREG:
             entry[idx].kind = dirs_file;
-            entry[idx].ctime = finfo.st_ctime;
+            entry[idx].mtime = finfo.st_mtime;
             entry[idx].name = xmalloc (strlen(dent->d_name)+1);
             strcpy (entry[idx].name, dent->d_name);
             idx++;
             break;
         case S_IFDIR:
             entry[idx].kind = dirs_dir;
-            entry[idx].ctime = finfo.st_ctime;
+            entry[idx].mtime = finfo.st_mtime;
             entry[idx].name = xmalloc (strlen(dent->d_name)+2);
             strcpy (entry[idx].name, dent->d_name);
            strcat (entry[idx].name, "/");
index 83279a5..b26ff3d 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: dirs.c,v $
- * Revision 1.6  1996-02-02 13:44:43  adam
+ * Revision 1.7  1996-03-21 14:50:09  adam
+ * File update uses modify-time instead of change-time.
+ *
+ * Revision 1.6  1996/02/02  13:44:43  adam
  * The public dictionary functions simply use char instead of Dict_char
  * to represent search strings. Dict_char is used internally only.
  *
@@ -63,20 +66,20 @@ static int dirs_client_proc (char *name, const char *info, int pos,
         assert (0);
     }
     entry = ci->entries + ci->no_cur;
-    if (info[0] == sizeof(entry->sysno)+sizeof(entry->ctime))
+    if (info[0] == sizeof(entry->sysno)+sizeof(entry->mtime))
     {
         strcpy (entry->path, name + ci->prelen); 
         entry->kind = dirs_file;
         memcpy (&entry->sysno, info+1, sizeof(entry->sysno));
-        memcpy (&entry->ctime, info+1+sizeof(entry->sysno), 
-                sizeof(entry->ctime));
+        memcpy (&entry->mtime, info+1+sizeof(entry->sysno), 
+                sizeof(entry->mtime));
         ci->no_cur++;
     } 
-    else if (info[0] == sizeof(entry->ctime))
+    else if (info[0] == sizeof(entry->mtime))
     {
         strcpy (entry->path, name + ci->prelen);
         entry->kind = dirs_dir;
-        memcpy (&entry->ctime, info+1, sizeof(entry->ctime));
+        memcpy (&entry->mtime, info+1, sizeof(entry->mtime));
         ci->no_cur++;
     }
     return 0;
@@ -127,13 +130,13 @@ struct dirs_entry *dirs_last (struct dirs_info *p)
     return p->last_entry;
 }
 
-void dirs_mkdir (struct dirs_info *p, const char *src, int ctime)
+void dirs_mkdir (struct dirs_info *p, const char *src, time_t mtime)
 {
     char path[256];
 
     sprintf (path, "%s%s", p->prefix, src);
     logf (LOG_DEBUG, "dirs_mkdir %s", path);
-    dict_insert (p->dict, path, sizeof(ctime), &ctime);
+    dict_insert (p->dict, path, sizeof(mtime), &mtime);
 }
 
 void dirs_rmdir (struct dirs_info *p, const char *src)
@@ -145,7 +148,7 @@ void dirs_rmdir (struct dirs_info *p, const char *src)
     dict_delete (p->dict, path);
 }
 
-void dirs_add (struct dirs_info *p, const char *src, int sysno, int ctime)
+void dirs_add (struct dirs_info *p, const char *src, int sysno, time_t mtime)
 {
     char path[256];
     char info[16];
@@ -153,8 +156,8 @@ void dirs_add (struct dirs_info *p, const char *src, int sysno, int ctime)
     sprintf (path, "%s%s", p->prefix, src);
     logf (LOG_DEBUG, "dirs_add %s", path);
     memcpy (info, &sysno, sizeof(sysno));
-    memcpy (info+sizeof(sysno), &ctime, sizeof(ctime));
-    dict_insert (p->dict, path, sizeof(sysno)+sizeof(ctime), info);
+    memcpy (info+sizeof(sysno), &mtime, sizeof(mtime));
+    dict_insert (p->dict, path, sizeof(sysno)+sizeof(mtime), info);
 }
 
 void dirs_del (struct dirs_info *p, const char *src)
index 2f2b7b7..212b385 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: index.h,v $
- * Revision 1.35  1996-02-12 18:45:36  adam
+ * Revision 1.36  1996-03-21 14:50:09  adam
+ * File update uses modify-time instead of change-time.
+ *
+ * Revision 1.35  1996/02/12  18:45:36  adam
  * New fileVerboseFlag in record group control.
  *
  * Revision 1.34  1995/12/11  11:43:29  adam
  *
  */
 
+#include <time.h>
 #include <zebraver.h>
 #include <alexutil.h>
 #include <dict.h>
@@ -146,14 +150,14 @@ enum dirsKind { dirs_dir, dirs_file };
 struct dir_entry {
     enum dirsKind kind;
     char *name;
-    int ctime;
+    time_t mtime;
 };
 
 struct dirs_entry {
     enum dirsKind kind;
     char path[256];
     SYSNO sysno;
-    int ctime;
+    time_t mtime;
 };
 
 struct recordGroup {
@@ -171,9 +175,9 @@ struct recordGroup {
 struct dirs_info *dirs_open (Dict dict, const char *rep);
 struct dirs_entry *dirs_read (struct dirs_info *p);
 struct dirs_entry *dirs_last (struct dirs_info *p);
-void dirs_mkdir (struct dirs_info *p, const char *src, int ctime);
+void dirs_mkdir (struct dirs_info *p, const char *src, time_t mtime);
 void dirs_rmdir (struct dirs_info *p, const char *src);
-void dirs_add (struct dirs_info *p, const char *src, int sysno, int ctime);
+void dirs_add (struct dirs_info *p, const char *src, int sysno, time_t mtime);
 void dirs_del (struct dirs_info *p, const char *src);
 void dirs_free (struct dirs_info **pp);
 
index 65237eb..9429169 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: kinput.c,v $
- * Revision 1.14  1996-02-07 14:06:37  adam
+ * Revision 1.15  1996-03-21 14:50:09  adam
+ * File update uses modify-time instead of change-time.
+ *
+ * Revision 1.14  1996/02/07  14:06:37  adam
  * Better progress report during register merge.
  * New command: clean - removes temporary shadow files.
  *
@@ -58,7 +61,6 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <stdlib.h>
-#include <time.h>
 #include <string.h>
 #include <stdio.h>
 #include <ctype.h>
index cee4bb0..75d4101 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: trav.c,v $
- * Revision 1.19  1996-03-20 16:16:55  quinn
+ * Revision 1.20  1996-03-21 14:50:10  adam
+ * File update uses modify-time instead of change-time.
+ *
+ * Revision 1.19  1996/03/20  16:16:55  quinn
  * Added diagnostic output
  *
  * Revision 1.18  1996/03/19  12:43:27  adam
@@ -194,9 +197,8 @@ static void fileUpdateR (struct dirs_info *di, struct dirs_entry *dst,
             src[++src_len] = '\0';
         }
         dirs_mkdir (di, src, 0);
-#if 0
-        dst = NULL;
-#endif
+        if (repComp (dst->path, src, src_len))
+            dst = NULL;
     }
     else if (!e_src)
     {
@@ -243,11 +245,11 @@ static void fileUpdateR (struct dirs_info *di, struct dirs_entry *dst,
             switch (e_src[i_src].kind)
             {
             case dirs_file:
-                if (e_src[i_src].ctime > dst->ctime)
+                if (e_src[i_src].mtime > dst->mtime)
                 {
                     if (fileExtract (&dst->sysno, tmppath, rGroup, 0))
                     {
-                        dirs_add (di, src, dst->sysno, e_src[i_src].ctime);
+                        dirs_add (di, src, dst->sysno, e_src[i_src].mtime);
                     }
                    logf (LOG_LOG, "old: %s", ctime (&dst->ctime));
                     logf (LOG_LOG, "new: %s", ctime (&e_src[i_src].ctime));
@@ -274,7 +276,7 @@ static void fileUpdateR (struct dirs_info *di, struct dirs_entry *dst,
             {
             case dirs_file:
                 if (fileExtract (&sysno, tmppath, rGroup, 0))
-                    dirs_add (di, src, sysno, e_src[i_src].ctime);            
+                    dirs_add (di, src, sysno, e_src[i_src].mtime);            
                 break;
             case dirs_dir:
                 fileUpdateR (di, dst, base, src, rGroup);