On 3 July 2014 09:11, Guy Harris <guy@alum.mit.edu> wrote:
Perhaps it should be rethought at this point (in a fashion that don't involve changing every program that uses localtime() or mktime(), of course; requiring a change doesn't help).
Oh no, localtime() and especially mktime() very much need to change, or rather to be replaced. The POSIX spec so poorly defines mktime() behaviour that Windows and Mac have completely opposite behaviours for ambiguous times during the daylight to standard time transition, and the Linux behaviour is non-deterministic. Windows assumes you mean the second occurrence or standard time, Mac assumes you mean the first occurrence or daylight time (well, for the first 47 or so minutes, after that it assumes standard time!), and Linux just outright guesses based on what the last calculation it did returned. Also setting the daylight/standard flag manually returns inconsistent results and really shouldn't be able to be manually set, we should set first/second occurrence instead. And a dozen other different issues that wouldn't exist if they had been defined in modern times... Well, I digress, these are the complaints of a cross-platform C++ toolkit developer who needs consistent behaviour from his standards and doesn't get any. John.