* 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.
*
{
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, "/");
* 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.
*
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;
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)
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];
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)
* 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>
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 {
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);
* 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.
*
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
-#include <time.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>
* 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
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)
{
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));
{
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);