The following issue has been SUBMITTED.
======================================================================
https://austingroupbugs.net/view.php?id=1638
======================================================================
Reported By: kre
Assigned To:
======================================================================
Project: Issue 8 drafts
Issue ID: 1638
Category: Base Definitions and Headers
Type: Clarification Requested
Severity: Objection
Priority: normal
Status: New
Name: Robert Elz
Organization:
User Reference:
Section: XBD 8.3
Page Number: 162
Line Number: 5648-5651
Final Accepted Text:
======================================================================
Date Submitted: 2023-03-03 10:03 UTC
Last Modified: 2023-03-03 10:03 UTC
======================================================================
Summary: Requirement that TZ "std" and "dst" be 3 chars long
(when given) is apparently ambiguous
Description:
This could be filed against 7 TC2, and I think probably D3 (when it
appears as well) - I don't think the text has changed.
It wasn't changed by bugno:1619 though perhaps should have been.
The current (as in D2.1) text says:
The interpretation of these fields is unspecified if either field is
less than three bytes (except for the case when dst is missing),
To me that was always clear enough, it means that "dst" doesn't have to be
at least 3 chars, if it was omitted, that would be absurd. But on a
(unrelated) mailing list, I have just seen a claim:
When /dst/ is missing, /std/ can be less than 3 bytes.
which is obviously based upon reading that "except" as applying to both
"std" and "dst" rather than just "dst" which I have always assumed.
And when the text is read, without already having a preconceived idea of
what it is intended to mean, I can see how that interpretation is
possible.
Beyond that, for all parts of the POSIZ TZ strip specification, now that
bugno:1619 has been applied, we really need to remove all "is unspecified"
in invalid cases - those should now be simply invalidating the string as
being considered as a POSIZ TZ string, leaving it open to be considered as
one of the new form added by bugno:1619.
That part I am not going to supply new text for here, that can wait until
after D3 is available, when we know what we're working with.
Desired Action:
Replace the paragraph in lines 5648-5651 (D2.1) on page 162
<blockquote>The interpretation of these fields is unspecified if either
field is less than three bytes (except for the case when dst is missing),
more than {TZNAME_MAX} bytes, or if they contain characters
other than those specified.</blockquote>
with (something like - and here I am making the working, for just this one
case for now, invalidate the string, as being a POSIX TZ string):
<blockquote>If <em>std</em> contains less than 3 bytes, or <em>dst</em>
(if present in the string) contains less than 3 bytes, or if either
<em>std</em> or <em>dst</em> contain more than {TZNAME_MAX} bytes, or
if either of those fields contains any characters other than those
specified, the string will not be a valid string of this format, and
shall be considered as a candidate for being of the third
format.</blockquote>
(Yes, I know, that's ugly - someone else can do better...)
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2023-03-03 10:03 kre New Issue
2023-03-03 10:03 kre Name => Robert Elz
2023-03-03 10:03 kre Section => XBD 8.3
2023-03-03 10:03 kre Page Number => 162
2023-03-03 10:03 kre Line Number => 5648-5651
======================================================================