"Clive D.W. Feather" <clive@demon.net> writes:
making a Quiet Change to a published standard is a serious matter, since it potentially breaks existing working code.
Quite true. However, this is an unusual case, since the standard itself made an undocumented Quiet Change to existing documentation, and the overwhelming majority of working code that cares, one way or another, wants the old 26-byte behavior rather than standard behavior. I've never seen code that assumes the standard behavior, but (like Robert Elz) I've seen several pieces of code, over the years, that assumes the 26-byte behavior.
Broken implementations aren't exactly a great argument either. What about those implementations that are currently conforming?
They would still conform after the proposed change, no? So I don't see the problem. The tz implementation currently conforms to C99, but the next version will deliberately not conform by default. That's one pretty-strong vote for the change, as the tz code is the sole widely-used public-domain implementation of this part of the standard. I am one of the official maintainers of the GNU C Library (which does currently conform), and I'd be happy to see this change. I daresay the BSD folks would agree, if Robert Elz's opinion is any sample. So, overall I think we have a goodly number of "yes" opinions from people whose implementations currently conform. I realize that this isn't everybody, not by a long shot, but it's a reasonable sample of people who are very concerned about compatibility, and they're in favor of this change.
%04d would be better in my opinion, though I'm willing to debate it.
That'd be fine with me too, though it'd be nice to hear Arthur David Olson's opinion on it as well. The main point is that it should be 4 bytes for years within range.
I will draft one when I have some spare time.
Thanks!