Austin Group Bug Tracker
2014-10-09 14:22:17 UTC
A NOTE has been added to this issue.
======================================================================
http://austingroupbugs.net/view.php?id=872
======================================================================
Reported By: nsz
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 872
Category: Base Definitions and Headers
Type: Clarification Requested
Severity: Editorial
Priority: normal
Status: New
Name: Szabolcs Nagy
Organization: musl libc
User Reference:
Section: 9.3.5 RE Bracket Expression
Page Number: -
Line Number: -
Interp Status: ---
Final Accepted Text:
======================================================================
Date Submitted: 2014-08-27 16:16 UTC
Last Modified: 2014-10-09 14:22 UTC
======================================================================
Summary: REG_ICASE regex matching and negated bracket expr
======================================================================
----------------------------------------------------------------------
(0002413) shware_systems (reporter) - 2014-10-09 14:22
http://austingroupbugs.net/view.php?id=872#c2413
----------------------------------------------------------------------
They aren't supposed to match, with the negate; they're supposed to return
match found for 'b' or 'B', etc. If anything those implementations were
probably written without REG_ICASE support and not updated, if they are
returning match found for '[^a]' tested against 'A' with REG_ICASE
specified.
The desired action does emphasize to implementers REG_ICASE needs to be
accounted for in evaluating '^', but is nominally superfluous in my
opinion.
In Section 9.2, I think it is less ambiguously expressed by changing:
"when each character in the string is matched against the pattern, not
only the character, but also its case counterpart (if any), shall be
matched."
to:
"when a character in the string is tested against the pattern, not
only the character, but also its case counterparts (if any), shall be
tested, and a match occurs if one of them fit the test criteria."
This emphasizes match status is determined after the relevant testing, not
presumed true and possibly negated as it can be read now. Note
'counterpart' pluralized, as preliminary ground work for changes required
to adequately support Unicode's extra casing classifications. Not adding
more, as that's for a separate report as an Issue 8 matter, but I feel it
doesn't change the intent of that section for Issue 7.
Issue History
Date Modified Username Field Change
======================================================================
2014-08-27 16:16 nsz New Issue
2014-08-27 16:16 nsz Name => Szabolcs Nagy
2014-08-27 16:16 nsz Organization => musl libc
2014-08-27 16:16 nsz Section => 9.3.5 RE Bracket
Expression
2014-08-27 16:16 nsz Page Number => -
2014-08-27 16:16 nsz Line Number => -
2014-09-23 18:52 nsz Note Added: 0002396
2014-10-09 14:22 shware_systems Note Added: 0002413
======================================================================
======================================================================
http://austingroupbugs.net/view.php?id=872
======================================================================
Reported By: nsz
Assigned To:
======================================================================
Project: 1003.1(2013)/Issue7+TC1
Issue ID: 872
Category: Base Definitions and Headers
Type: Clarification Requested
Severity: Editorial
Priority: normal
Status: New
Name: Szabolcs Nagy
Organization: musl libc
User Reference:
Section: 9.3.5 RE Bracket Expression
Page Number: -
Line Number: -
Interp Status: ---
Final Accepted Text:
======================================================================
Date Submitted: 2014-08-27 16:16 UTC
Last Modified: 2014-10-09 14:22 UTC
======================================================================
Summary: REG_ICASE regex matching and negated bracket expr
======================================================================
----------------------------------------------------------------------
(0002413) shware_systems (reporter) - 2014-10-09 14:22
http://austingroupbugs.net/view.php?id=872#c2413
----------------------------------------------------------------------
They aren't supposed to match, with the negate; they're supposed to return
match found for 'b' or 'B', etc. If anything those implementations were
probably written without REG_ICASE support and not updated, if they are
returning match found for '[^a]' tested against 'A' with REG_ICASE
specified.
The desired action does emphasize to implementers REG_ICASE needs to be
accounted for in evaluating '^', but is nominally superfluous in my
opinion.
In Section 9.2, I think it is less ambiguously expressed by changing:
"when each character in the string is matched against the pattern, not
only the character, but also its case counterpart (if any), shall be
matched."
to:
"when a character in the string is tested against the pattern, not
only the character, but also its case counterparts (if any), shall be
tested, and a match occurs if one of them fit the test criteria."
This emphasizes match status is determined after the relevant testing, not
presumed true and possibly negated as it can be read now. Note
'counterpart' pluralized, as preliminary ground work for changes required
to adequately support Unicode's extra casing classifications. Not adding
more, as that's for a separate report as an Issue 8 matter, but I feel it
doesn't change the intent of that section for Issue 7.
Issue History
Date Modified Username Field Change
======================================================================
2014-08-27 16:16 nsz New Issue
2014-08-27 16:16 nsz Name => Szabolcs Nagy
2014-08-27 16:16 nsz Organization => musl libc
2014-08-27 16:16 nsz Section => 9.3.5 RE Bracket
Expression
2014-08-27 16:16 nsz Page Number => -
2014-08-27 16:16 nsz Line Number => -
2014-09-23 18:52 nsz Note Added: 0002396
2014-10-09 14:22 shware_systems Note Added: 0002413
======================================================================