time zone functions in January 11, 1988 draft C standard

Arthur David Olson ado
Wed Feb 17 01:26:26 UTC 1988


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



More information about the tz mailing list