This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

B19: Newlib: mktime bug; it assumes GMT struct tm


The current implementation (B19) of mktime (time.h) incorrectly assumes that
the given argument of the type "struct *tm" represents GMT, and not local
time as it is supposed to do. It also ignores the field tm_isdst.

The current implementation is found in src/newlib/libc/time/mktime.c

The bug was reported a year ago in the following message:
http://www.cygnus.com/ml/gnu-win32/1997-Jul/0153.html 

Solving the first problem is very simple

change the (last) line
------------------------------
  return tim;
------------------------------
to
------------------------------
  tzset();
  return tim + _timezone;
------------------------------
in mktime.c

The second problem, that it ignores tm_isdst, may not be a problem. I've
seen other implementations ignoring the field, so I don't care providing a
fix for it. Which DST specification to follow is a problem anyway.

/Anders Torger

"Who can do anything after Beethoven?" -- Franz Schubert

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]