Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0000796 [1003.1(2013)/Issue7+TC1] Base Definitions and Headers Editorial Clarification Requested 2013-11-16 18:16 2019-06-10 08:55
Reporter steffen View Status public  
Assigned To
Priority normal Resolution Accepted As Marked  
Status Closed  
Name steffen
Organization
User Reference
Section XBD 7.2 and 7.3.1; XSH 3.; XCU 4.; XRAT A.7.2, A.8.2 and A.8.3
Page Number 136, 139, 1012, 3277, 3486, 3497, 3499, (2027, (2051, 2059, 2065, 2246, 2253, 2260))
Line Number 3882, 4027, 34234, 110021, 117642-117644, 118151, 118241, (64791, (65544, 65838, 65950, 71199, 71409, 71571))
Interp Status ---
Final Accepted Text See Note: 0002114.
Summary 0000796: Editorial adjustments for the ’C’ and ’POSIX’ locale
Description POSIX compliant systems provide a superset of
ISO C -- fine-tuned and sometimes even
incompatibly different; e.g., POSIX specifies
that a Byte is an octet, whereas ISO also allows
multi-byte Bytes; as a second example, POSIX
requires a cast to void* for the NULL macro,
whereas ISO C doesn't.

This issue is about removing some occurrences of
the term «C locale» in favour of «POSIX locale»,
and in a few places about clarifying that the
«POSIX locale» really is a superset of the ISO
C locale, (a fact that is already mentioned, here
and there), therefore assembling the incestuous
relationship of the «POSIX»- and the «C locale»
into fewest possible places.
Desired Action XBD 7.2 «POSIX Locale»

  On page 136, line 3882
  change

    Conforming systems shall provide a POSIX
    locale, also known as the C locale.

  to

    Conforming systems shall provide a POSIX
    locale, also known as the C locale.
    The POSIX locale is a superset of the
    ISO C locale.
  
XBD 7.3.1 «LC_CTYPE»
    
  On page 139, line 4027
  change
  
    Such a definition would not be a proper
    superset of the C or POSIX locale
    
  to
    
    Such a definition would not be a proper
    superset of the POSIX locale

XSH 3., «getdate()»

  On page 1012, line 34234
  change

    is Mon Sep 22 12:19:47 EDT 1986 and the LC_TIME
    category is set to the default C locale:

  to

    is Mon Sep 22 12:19:47 EDT 1986 and the LC_TIME
    category is set to the default POSIX locale:

XCU 4., «tr»

  On page 3277, line 110021
  change

    the top bit set) would have no effect because,
    in the C locale, bytes with the values octal
    200 to

  to

    the top bit set) would have no effect because,
    in the POSIX locale, bytes with the values octal
    200 to

XRAT A.7.2 «POSIX Locale»

  On page 3486, lines 117642-117644
  change

    The POSIX locale is equal to the C locale. To
    avoid being classified as a C-language
    function, the name has been changed to the
    POSIX locale; the environment variable value
    can be either "POSIX" or, for historical
    reasons, "C".

  to

    The POSIX locale is a superset of the
    ISO C locale. On conforming systems the POSIX
    locale is used in place of the ISO C locale;
    the environment variable value can be either
    "POSIX" or, for historical reasons, and for
    compatibility with the ISO C standard, "C".

XRAT A.8.2 «Internationalization Variables»

  On page 3497, line 118151
  change

    If this were omitted, the ISO C standard
    specifies that the C locale would be used.

  to

    If this were omitted, the ISO C standard
    specifies that the C locale would be used.
    (Recall that on POSIX conforming systems the
    C locale is an alias for the POSIX locale.)

XRAT A.8.3 «Other Environment Variables», «TZ»

  On page 3499, line 118241
  change

    C or POSIX locale, using characters that are
    not in the portable character set in the std
    and dst

  to

    POSIX locale, using characters that are
    not in the portable character set in the std
    and dst

Note for the following:
even though the text is in large parts taken from
the ISO C standard, larger parts are POSIX
specific.

XSH 3., «strftime()»
  On page 2027, line 64791
  change

    In the C locale, the E and O modifiers are
    ignored and the replacement strings for the
    following

  to

    In the POSIX locale, the E and O modifiers are
    ignored and the replacement strings for the
    following

Note for the following:
Imho the original text is redundant.
These changes keep a "CX" shading around, while
taking the original C99 text as a base.
If that is not desired, please ignore the
following.

XSH 3., «strtod()»

  On page 2051, line 65544
  change

    In other than the C [CX]or POSIX[/CX]
    locale[CX]s[/CX], other implementation-defined
    subject sequences may be

  to

    In other than the "[CX]POSIX[/CX]" locale,
    additional locale-specific subject sequence
    forms may be accepted

XSH «strtol()»

  On page 2059, line 65838
  change

    In other than the C [CX]or POSIX[/CX]
    locale[CX]s[/CX], other implementation-defined
    subject sequences may be

  to

    In other than the "[CX]POSIX[/CX]" locale,
    additional locale-specific subject sequence
    forms may be accepted

XSH «strtoul()»

  On page 2065, line 65950
  change

    In other than the C [CX]or POSIX[/CX]
    locale[CX]s[/CX], other implementation-defined
    subject sequences may be

  to

    In other than the "[CX]POSIX[/CX]" locale,
    additional locale-specific subject sequence
    forms may be accepted

XSH «wcstod()»

  On page 2246, line 71199
  change

    In other than the C [CX]or POSIX[/CX]
    locale[CX]s[/CX], other implementation-defined
    subject sequences may be

  to

    In other than the "[CX]POSIX[/CX]" locale,
    additional locale-specific subject sequence
    forms may be accepted

XSH «wcstol()»

  On page 2253, line 71409
  change

    In other than the C [CX]or POSIX[/CX]
    locale[CX]s[/CX], other implementation-defined
    subject sequences may be

  to

    In other than the "[CX]POSIX[/CX]" locale,
    additional locale-specific subject sequence
    forms may be accepted

XSH «wcstoul()»

  On page 2260, line 71571
  change

    In other than the C [CX]or POSIX[/CX]
    locale[CX]s[/CX], other implementation-defined
    subject sequences may be

  to

    In other than the "[CX]POSIX[/CX]" locale,
    additional locale-specific subject sequence
    forms may be accepted
Tags tc2-2008
Attached Files

- Relationships

-  Notes
(0002106)
shware_systems (reporter)
2014-01-16 22:46

This is per the phone call of 2014-Jan-16, as I heard it; I've added a few implications I think are fair, but if someone thinks they aren't add a note and I'll make appropriate edits:

It was agreed that while use of either name still produces equal results on POSIX systems, POSIX now does have additional requirements over ISO C in what data shall be maintained for locale settings and this distinction could be made clearer. Before the LC_MESSAGES category was added the language there was accurate enough, I think. It was also agreed that in places it could be confused whether the ISO C version of "a locale" and what POSIX requires was being referenced, when the language only uses the "C" designation. It was felt, to be consistent in wording with other places in the standard, that both locale names be used, or kept, to keep clear(er) in context that use of either name is referencing the same locale as POSIX requires it, not just how ISO C requires it, for people comparing the language from both standards. As they are the same data, removing the plural forms aids in this recognition too. Yes, it's redundant looking but does serve a purpose.

Further, it was agreed that implementation-defined, while consistent with other general usages, in the listed contexts did not adequately express that the behavior is expected to differ only when a locale other than the default POSIX or C locale is in effect (and requires it, nominally due to a provision from some other standards body, though this wasn't explicitly discussed), not as arbitrary extensions that might apply to all locales, so going back more to how the C standard has it phrased was preferable.

Combining all that, though this just includes the items mentioned above and there may still be other places that could use similar edits:

XBD 7.2 «POSIX Locale»
  On page 136, line 3882, after:
    Conforming systems shall provide a POSIX locale, also known as the C locale.

  add:
    In POSIX the requirements for the "POSIX" locale are more extensive than the requirement for the "C" locale as specified in the C standard. However, in a conforming POSIX implementation, the "POSIX" locale and the ISO "C" locale are identical for the categories they have in common.

[Ed. Note: This is a bit different than what was put on the Etherpad, but I think more precise.]

XBD 7.3.1 «LC_CTYPE»
  On page 139, line 4027, change:
    Such a definition would not be a proper superset of the C or POSIX locale
    
  to:
    Such a definition would not be a proper superset of the "C" or "POSIX" locale

XSH 3., «getdate()»
  On page 1012, line 34234, change:
    is Mon Sep 22 12:19:47 EDT 1986 and the LC_TIME category is set to the default C locale:

  to:
    is Mon Sep 22 12:19:47 EDT 1986 and the LC_TIME category is set to the default "C" [CX]or "POSIX"[/CX] locale:

XCU 4., «tr»
  On page 3277, line 110021, change:
    the top bit set) would have no effect because, in the C locale, bytes with the values octal 200 to

  to:
    the top bit set) would have no effect because, in the "C" [CX]or "POSIX"[/CX] locale, bytes with the values octal 200 to

XRAT A.7.2 «POSIX Locale»
On page 3486, lines 117642-117644, change:
    The POSIX locale is equal to the C locale. To avoid being classified as a C-language function, the name has been changed to the POSIX locale; the environment variable value can be either "POSIX" or, for historical reasons, "C".

  to:
    For the locale categories defined by the ISO C standard, the "POSIX" or "C" locale is equal to the ISO "C" locale in its requirements. To avoid being classified as a C-language function, and as POSIX also requires the additional LC_MESSAGES category, the name has been changed to the "POSIX" locale; the environment variable value can be either "POSIX" or, for historical reasons, "C".


XRAT A.8.2 «Internationalization Variables»
  On page 3497, line 118151, change:
    If this were omitted, the ISO C standard specifies that the C locale would be used.

  to:
    If this were omitted, the ISO C standard specifies that the "C" [CX]or "POSIX"[/CX] locale would be used.

XRAT A.8.3 «Other Environment Variables», «TZ»
  On page 3499, line 118241, change:
    C or POSIX locale, using characters that are not in the portable character set in the std and dst

  to:
    "C" [CX]or "POSIX"[/CX] locale, using characters that are not in the portable character set in the std and dst

[Ed. Note: Having CX shading in XRAT may be superfluous, but I kept it as being more consistent with the XBD and XSH entries.]

XSH 3., «strftime()»
  On page 2027, line 64791, change:
    In the C locale, the E and O modifiers are ignored and the replacement strings for the following

  to:
    In the "C" [CX]or "POSIX"[/CX] locale, the E and O modifiers are ignored and the replacement strings for the following

XSH 3., «strtod()»
  On page 2051, line 65544, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the "C" [CX]or "POSIX"[/CX] locale, additional locale-specific subject sequence forms may be

XSH «strtol()»
  On page 2059, line 65838, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the "C" [CX]or "POSIX"[/CX] locale, additional locale-specific subject sequence forms may be

XSH «strtoul()»
  On page 2065, line 65950, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the "C" [CX]or "POSIX"[/CX] locale, additional locale-specific subject sequence forms may be

XSH «wcstod()»
  On page 2246, line 71199, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the "C" [CX]or "POSIX"[/CX] locale, additional locale-specific subject sequence forms may be

XSH «wcstol()»
  On page 2253, line 71409, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the "C" [CX]or "POSIX"[/CX] locale, additional locale-specific subject sequence forms may be

XSH «wcstoul()»
  On page 2260, line 71571, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the "C" [CX]or "POSIX"[/CX] locale, additional locale-specific subject sequence forms may be
(0002112)
Don Cragun (manager)
2014-01-23 00:02
edited on: 2014-01-23 00:06

Concerning the change suggested in Note: 0002106:
    XBD 7.2 «POSIX Locale»
      On page 136, line 3882, after:
        Conforming systems shall provide a POSIX locale, also known as the C locale.

      add:
        In POSIX the requirements for the "POSIX" locale are more extensive than
        the requirement for the "C" locale as specified in the C standard. However,
        in a conforming POSIX implementation, the "POSIX" locale and the ISO "C"
        locale are identical for the categories they have in common.

    [Ed. Note: This is a bit different than what was put on the Etherpad, but I think more precise.]

I believe that the " for the categories they have in common" needs to be removed. By definition, the C Locale and the POSIX Locale are identical on a system that conforms to the POSIX Standards. All categories are, therefore, in common. Adding that phrase makes it sound like one or both of the POSIX and C Locales contain one or more categories that are not present in the other.

The precise statement is:
    However, in a conforming POSIX implementation, the "POSIX" locale and the ISO "C" locale are identical.
Adding qualifiers to this statement just confuses the issue.

(0002113)
shware_systems (reporter)
2014-01-23 08:34

It's a confused situation... POSIX defines that two labels will reference the same default locale data values, but the base definition of locales is made by the C standard, not POSIX, and is what defines the base data that it considers the defaults. XBD Chapter 7 inherits this definition and specifies how that is expected to be implemented, and defines additional requirements (the LC_MESSAGES category) and optional behaviors. As POSIX extends, not defers to, the C standard, the extra language to indicate this non-deferral is required in a statement comparing POSIX's default "C" locale with C99's default "C" locale. To get rid of it would require the LC_MESSAGES category be excluded from the "POSIX" locale, and then the required behavior of both standards would be equal again.

I simply use <the "POSIX" locale> in that context instead of <POSIX's "POSIX" or "C" locale data requirements>, and <ISO "C" locale> instead of <the data the C standard requires an implementation provide as the default locale values> or <ISO 9899:1999 version of default locale data>. So something needs to be there; possibly phrased in a better though probably less succinct fashion, but not deleted. The intent of the phrasing was to leave open Issue 8 may require even more additions than it does now on top of any changes needed for compatibility with C11, but that's the essential way they differ and are the same now.
(0002114)
geoffclare (manager)
2014-01-23 10:23
edited on: 2014-01-23 15:58

This is a modified copy of Note: 0002106 which I believe is a more
accurate reflection of what the Jan 16 teleconference intended, and
has some editorial corrections such as removing unnecessary CX shading
and the double quotes that were added around "C" and "POSIX".

XBD 7.2 «POSIX Locale»
  On page 136, line 3882, after:
    Conforming systems shall provide a POSIX locale, also known as the C locale.

  add:
    In POSIX.1 the requirements for the POSIX locale are more extensive than the requirements for the C locale as specified in the C standard. However, in a conforming POSIX implementation, the POSIX locale and the C locale are identical.

XSH 3., «getdate()»
  On page 1012, line 34234, change:
    is Mon Sep 22 12:19:47 EDT 1986 and the LC_TIME category is set to the default C locale:

  to:
    is Mon Sep 22 12:19:47 EDT 1986 and the LC_TIME category is set to the default C or POSIX locale:

XCU 4., «tr»
  On page 3277, line 110021, change:
    the top bit set) would have no effect because, in the C locale, bytes with the values octal 200 to

  to:
    the top bit set) would have no effect because, in the C or POSIX locale, bytes with the values octal 200 to

XRAT A.7.2 «POSIX Locale»
On page 3486, lines 117642-117644, change:
    The POSIX locale is equal to the C locale.

  to:
    On POSIX.1 implementations the POSIX locale is equal to the C locale, even though the requirements for the POSIX locale are more extensive than the C standard's requirements for the C locale.

XRAT A.8.2 «Internationalization Variables»
  On page 3497, line 118151, change:
    If this were omitted, the ISO C standard specifies that the C locale would be used.

  to:
    If this were omitted, the ISO C standard specifies that the C (or POSIX) locale would be used.

XSH 3., «strftime()»
  On page 2027, line 64791, change:
    In the C locale, the E and O modifiers are ignored and the replacement strings for the following

  to:
    In the C [CX]or POSIX[/CX] locale, the E and O modifiers are ignored and the replacement strings for the following

XSH 3., «strtod()»
  On page 2051, line 65544, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the C [CX]or POSIX[/CX] locale, additional locale-specific subject sequence forms may be

XSH «strtol()»
  On page 2059, line 65838, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the C [CX]or POSIX[/CX] locale, additional locale-specific subject sequence forms may be

XSH «strtoul()»
  On page 2065, line 65950, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the C [CX]or POSIX[/CX] locale, additional locale-specific subject sequence forms may be

XSH «wcstod()»
  On page 2246, line 71199, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the C [CX]or POSIX[/CX] locale, additional locale-specific subject sequence forms may be

XSH «wcstol()»
  On page 2253, line 71409, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the C [CX]or POSIX[/CX] locale, additional locale-specific subject sequence forms may be

XSH «wcstoul()»
  On page 2260, line 71571, change:
    In other than the C [CX]or POSIX[/CX] locale[CX]s[/CX], other implementation-defined subject sequences may be

  to:
    In other than the C [CX]or POSIX[/CX] locale, additional locale-specific subject sequence forms may be

(0002829)
geoffclare (manager)
2015-09-17 11:20

Note that the change to the tr utility in Note: 0002114 is not needed, as this text is being removed by 0000663.

- Issue History
Date Modified Username Field Change
2013-11-16 18:16 steffen New Issue
2013-11-16 18:16 steffen Name => steffen
2013-11-16 18:16 steffen Section => XBD 7.2 and 7.3.1; XSH 3.; XCU 4.; XRAT A.7.2, A.8.2 and A.8.3
2013-11-16 18:16 steffen Page Number => 136, 139, 1012, 3277, 3486, 3497, 3499, (2027, (2051, 2059, 2065, 2246, 2253, 2260))
2013-11-16 18:16 steffen Line Number => 3882, 4027, 34234, 110021, 117642-117644, 118151, 118241, (64791, (65544, 65838, 65950, 71199, 71409, 71571))
2014-01-16 22:46 shware_systems Note Added: 0002106
2014-01-23 00:02 Don Cragun Note Added: 0002112
2014-01-23 00:03 Don Cragun Note Edited: 0002112
2014-01-23 00:06 Don Cragun Note Edited: 0002112
2014-01-23 08:34 shware_systems Note Added: 0002113
2014-01-23 10:23 geoffclare Note Added: 0002114
2014-01-23 15:58 geoffclare Note Edited: 0002114
2014-01-23 16:26 Don Cragun Interp Status => ---
2014-01-23 16:26 Don Cragun Final Accepted Text => See Note: 0002114.
2014-01-23 16:26 Don Cragun Status New => Resolved
2014-01-23 16:26 Don Cragun Resolution Open => Accepted As Marked
2014-01-23 16:26 Don Cragun Tag Attached: tc2-2008
2015-09-17 11:20 geoffclare Note Added: 0002829
2019-06-10 08:55 agadmin Status Resolved => Closed


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker