time zone functions in January 11, 1988 draft C standard
Little in the way of change to time functions in the January 11, 1988 draft C standard. Recall that the last draft said, in the main text, this about the tm_isdst element of the struct tm structure: The value of tm_isdst is positive if Daylight Saving Time is in effect, zero if Daylight Saving Time is not in effect, and negative if the information is not available. It later described the new "mktime" function for converting a struct tm back into a time_t value, noting in a footnote that A positive or zero value for tm_isdst causes the mktime function initially to presume that Daylight Saving Time, respectively, is or is not in effect for the specified time. A negative value for tm_isdst causes the mktime function to attempt to determine whether Daylight Saving Time is in effect for the specified time. Your correspondent sent a letter to the X3J11 committee, noting (among other things) that the above material was all well and good, but since it was in a footnote, \fIand since footnotes are not part of the Standard\fP, programmers would not be able to count on the above characteristics of mktime. Well, the good news is that X3J11 acted on this point. The other news is that they simply changed the footnote to read Thus, a positive or zero value for tm_isdst. . . This makes me realize just how feeble-minded I must be getting in my dotage. I didn't understand (and still don't understand) how the promise that "A negative value for tm_isdst causes [mktime] to attempt to determine whether [DST] is in effect. . ." is implied by the description of tm_isdst in the standard. (Actually, I'm unclear about both sentences in the footnote, but the second especially.) Maybe someone on the time zone mailing list will be able to set me clear before I again make a fool of myself in my next letter to the Committee? Other than the added "Thus," there were no time-related changes to section 4.12 of the draft. They did throw in a few "noalias"es and required that if you #include <time.h> then NULL and size_t will be defined for you. --ado
participants (1)
-
ado