- From: <bugzilla@jessica.w3.org>
- Date: Wed, 16 Nov 2016 14:50:53 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29789 Michael Kay <mike@saxonica.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mike@saxonica.com Status|NEW |ASSIGNED --- Comment #2 from Michael Kay <mike@saxonica.com> --- I was asked to review this (action A-659-04). My interpretation is as follows: (a) There is no explicit presentation modifier, so the default kicks in, which is "1" (ยง9.8.4.1). (b) In the width modifier, "*" means "there is no explicit minimum". It's not entirely clear what this means. Specifying zero explicitly would be an error. So I think it makes sense to interpret "*" as "1". Section 9.8.4.5: 9.8.4.5 Formatting Fractional Seconds The output for the fractional seconds component (f) is equivalent to the result of the following algorithm: (1) If the first presentation modifier contains no Unicode digit, then the output is implementation-defined. We've defaulted the presentation modifier to "1" so it does contain a Unicode digit. (2) Otherwise, the value of the fractional seconds is output as follows: (2a) If there is no width modifier and ... N/A (2b) If there is a width modifier, then the first presentation modifier is adjusted as follows: The number of mandatory-digit-sign characters in the first presentation modifier is increased if necessary. This is done first by replacing optional-digit-signs with mandatory-digit-signs, starting from the left, and then appending mandatory-digit-signs to the presentation modifier, until the number of mandatory-digit-signs is equal to the minimum width. See above, "there is no explicit minimum". So it's not at all clear what happens here. My vote would be to treat "*" as implying minimum width 1, which means that the first presentation modifier remains "1". In comment #1, Josh appears to have decided that the minimum width is 2; I can't see the rationale for that. (2c) "1" reversed is "1" (2d) => 600 (2e) => "600" (2f) => "006" (2g) => "0" which is the expected result. This hinges on an interpretation that "*" as the minimum width in a width specifier means "1", which is the lowest legal value. I can't see any logic for treating it as meaning "2". I would suggest resolving this ambiguity by prepending to 9.8.4.5 2.b.i the phrase "If a minimum width is specified, ". This change has the same effect as treating the minimum width as 1. The expected test result is then correct. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Wednesday, 16 November 2016 14:51:00 UTC