summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-09-29 10:00:28 +0000
committerJakub Jelinek <jakub@redhat.com>2004-09-29 10:00:28 +0000
commitbd307f4e23f985b55276724a00f88e07309e68be (patch)
tree144ac6e0d3884d9be1c613dd8086d6bebc7aa631
parentf9ff03a8353afc7e83bafc99c1a2fb53f80a8128 (diff)
* time/tzfile.c (tzfile_mtime): New variable.cvs/fedora-glibc-2_3_3-60
(__tzfile_read): Reread the file if mtime is different.
-rw-r--r--ChangeLog3
-rw-r--r--time/tzfile.c7
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 46dc4b994e..cf39515d6d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2004-09-29 Jakub Jelinek <jakub@redhat.com>
+ * time/tzfile.c (tzfile_mtime): New variable.
+ (__tzfile_read): Reread the file if mtime is different.
+
* sysdeps/i386/fpu/s_fdim.S (__fdim): Handle +inf/+inf.
* sysdeps/i386/fpu/s_fdimf.S (__fdimf): Likewise.
* sysdeps/i386/fpu/s_fdiml.S (__fdiml): Likewise.
diff --git a/time/tzfile.c b/time/tzfile.c
index 8c2756e7bb..48c1e4d790 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -32,6 +32,7 @@
int __use_tzfile;
static dev_t tzfile_dev;
static ino64_t tzfile_ino;
+static time_t tzfile_mtime;
struct ttinfo
{
@@ -161,7 +162,8 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
fclose (f);
goto ret_free_transitions;
}
- if (was_using_tzfile && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev)
+ if (was_using_tzfile && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev
+ && tzfile_mtime == st.st_mtime)
{
/* It's the same file. No further work needed. */
fclose (f);
@@ -172,9 +174,10 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
free ((void *) transitions);
transitions = NULL;
- /* Remember the inode and device number. */
+ /* Remember the inode and device number and modification time. */
tzfile_dev = st.st_dev;
tzfile_ino = st.st_ino;
+ tzfile_mtime = st.st_mtime;
/* No threads reading this stream. */
__fsetlocking (f, FSETLOCKING_BYCALLER);