]> sourceware.org Git - newlib-cygwin.git/commitdiff
* fhandler_disk_file.cc (fhandler_disk_file::fstat): Set st_ctime if
authorCorinna Vinschen <corinna@vinschen.de>
Thu, 17 Feb 2005 12:41:49 +0000 (12:41 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Thu, 17 Feb 2005 12:41:49 +0000 (12:41 +0000)
has_changed flag is set.
(fhandler_disk_file::touch_ctime): Reset has_changed flag on success.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_disk_file.cc

index f04afaffc00281e0e190e44c625360ac5ba73410..178cf81d9629ec0526ad10e73e7deaa1fccd7a12 100644 (file)
@@ -1,3 +1,9 @@
+2005-02-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fstat): Set st_ctime if
+       has_changed flag is set.
+       (fhandler_disk_file::touch_ctime): Reset has_changed flag on success.
+
 2005-02-17  Corinna Vinschen  <corinna@vinschen.de>
 
        * times.cc (utimes): Open files with FILE_WRITE_ATTRIBUTES first,
index 129e9ce6bd6223ead442b216db547575c436d5c4..8644e89643465a13413733c7209a5f3b7cb1aabb 100644 (file)
@@ -374,6 +374,8 @@ fhandler_base::fstat_helper (struct __stat64 *buf,
 int __stdcall
 fhandler_disk_file::fstat (struct __stat64 *buf)
 {
+  if (has_changed ())
+    touch_ctime ();
   return fstat_fs (buf);
 }
 
@@ -387,6 +389,8 @@ fhandler_disk_file::touch_ctime (void)
   SystemTimeToFileTime (&st, &ft);
   if (!SetFileTime (get_io_handle (), &ft, NULL, NULL))
     debug_printf ("SetFileTime (%s) failed, %E", get_win32_name ());
+  else
+    has_changed (false);
 }
 
 int __stdcall
This page took 0.03538 seconds and 5 git commands to generate.