Hello, with ruby 1.8.4 on Windows XP, there seems still to be an error of 1 hour when assigning mtime to a file by using utime. Condition: Assigning a daylight saving time while actual time is not daylight saving time. The same seems to be OK on Windows 98SE. I tested it as described in: <longLine> http://groups.google.com/group/comp.lang.ruby/brow... 342986ebd71 </longLine> Is there a fix or work-around? I'm using: ruby 1.8.4 (2005-12-24) [i386-mswin32] on both systems. Axel
on 2006-03-01 21:48
on 2006-03-02 05:47
Hello. >I tested it as described in: >ruby 1.8.4 (2005-12-24) [i386-mswin32] on both systems. > > >Axel Sorry, this is regression I introduced when fixed another bug of stat(2) on WinNT. Index: win32.c =================================================================== RCS file: /src/ruby/win32/win32.c,v retrieving revision 1.186 diff -u -w -b -p -r1.186 win32.c --- win32.c 24 Feb 2006 02:19:44 -0000 1.186 +++ win32.c 2 Mar 2006 03:39:48 -0000 @@ -3223,6 +3223,7 @@ filetime_to_unixtime(const FILETIME *ft) tm.tm_hour = st.wHour; tm.tm_min = st.wMinute; tm.tm_sec = st.wSecond; + tm.tm_isdst = -1; t = mktime(&tm); return t == -1 ? 0 : t; } I'll commit this on CVS.
on 2006-03-02 08:34
> I'll commit this on CVS. Thank You! (I'm looking forward to get the "right" utime.) > http://search.cpan.org/~shay/Win32-UTCFileTime- 1.45/lib/Win32/UTCFileTime.pm *Very* interesting; and even the presentation of the solution in chapter "The Final Solution" and "More problems: utime()". Axel