[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [h-e-w] Almost a bug :)
From: |
Richard M. Heiberger |
Subject: |
Re: [h-e-w] Almost a bug :) |
Date: |
Thu, 27 Jun 2002 17:32:48 -0400 (EDT) |
It looks like you found several real bugs and several design limitations.
1. the windows "dat/time properties" (double click on the time in the windows
task bar) goes from 1980 to 2099 and then starts cycling.
2. windows explorer can display dates at least to 2105
3. cygwin touch is limited to 2037
d:/tmp$ touch time.test
d:/tmp$ lss time.test
-rw-r--r-- 1 rmh 544 0 Jun 27 09:04 time.test
d:/tmp$ touch -t 203712312359 time.test
d:/tmp$ lss time.test
-rw-r--r-- 1 rmh 544 0 Dec 31 2037 time.test
d:/tmp$ touch -t 203812312359 time.test
touch: invalid date format `203812312359'
d:/tmp$
4. ntemacs dired displays times past xxxx (I think 2037) as Unk 0 0000
Now my value judgments. The simultaneous truth of 1 and 2 is a MS bug.
I think 3 is a cygwin bug since I think cygwin should track the
underlying operating system for fundamentals like time.
4 is a correct response to the MS inconsistencies.
What is happening (iirc) is that some MS programs use signed integers for
time and others use unsigned integers and we are seeing the effects of
wraparound for the extra bit. My piece of the history is that I got
a screensaver dated 2105 with my thinkpad and emacs wouldn't display the
entire c:/windows/system/ directory containing it in dired. After some
back and forth discussion, Andrew Innes discovered the (un)signed integer
problem and invented the "Unk 0 0000" to allow dired to proceed.
DETAILS
Windows Explorer
THINK1.SCR 166KB Screen Saver 01/02/2105 12:00 AM
DOS dir
THINK1 SCR 169,984 01-01-99 12:00a THINK1.SCR
cgwin ls -alF
-rwxr-xr-x 1 rmh 544 169984 Nov 25 1968 THINK1.SCR*
ntemacs dired
-rw-rw-rw- 1 rmh root 169984 Unk 0 0000 THINK1.SCR
Rich