On Oct 7, 4:48pm, arthurdavidolson@gmail.com (Arthur David Olson) wrote: -- Subject: Re: [tz] localtime.c patch | Back in the 1980s (when this code had its origins), NULL pointers weren't | guaranteed to be all zeroes; having a static, otherwise unused structure | (which was guaranteed to be initialized correctly) for initialization | purposes was cheap portability insurance. (The insurance was taken out | consistently, both for uniformity and to avoid problems if a pointer was | added to a structure later.) Given updates to the C standard and waning | interest in supporting old systems, this insurance may well no longer be | needed. I don't think that there are any systems where this code will compile that have this limitation. Strictly speaking you are right of course. | Meanwhile, changing... | memset(sp->ttis, 0, sizeof(sp->ttis)); | ...to... | memset(sp->ttis, 0, sizeof sp->ttis); | ...saves a character and is a reminder (to me, at least) that sizeof isn't | a function. There is a bug fix there too; in one of the cases sp->ttis[1] is not initialized, and returns trash to the user. christos