From cdc04db6a4bcbf0630b5da7cfdf7195a88f0a9f9 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Thu, 21 Mar 1996 14:50:08 +0000 Subject: [PATCH] File update uses modify-time instead of change-time. --- index/dir.c | 9 ++++++--- index/dirs.c | 25 ++++++++++++++----------- index/index.h | 14 +++++++++----- index/kinput.c | 6 ++++-- index/trav.c | 16 +++++++++------- 5 files changed, 42 insertions(+), 28 deletions(-) diff --git a/index/dir.c b/index/dir.c index 4ed2885..0c82aae 100644 --- a/index/dir.c +++ b/index/dir.c @@ -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, "/"); diff --git a/index/dirs.c b/index/dirs.c index 83279a5..b26ff3d 100644 --- a/index/dirs.c +++ b/index/dirs.c @@ -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) diff --git a/index/index.h b/index/index.h index 2f2b7b7..212b385 100644 --- a/index/index.h +++ b/index/index.h @@ -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 @@ -127,6 +130,7 @@ * */ +#include #include #include #include @@ -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); diff --git a/index/kinput.c b/index/kinput.c index 65237eb..9429169 100644 --- a/index/kinput.c +++ b/index/kinput.c @@ -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 #include #include -#include #include #include #include diff --git a/index/trav.c b/index/trav.c index cee4bb0..75d4101 100644 --- a/index/trav.c +++ b/index/trav.c @@ -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); -- 1.7.10.4