ISO/ IEC JTC1/SC22/WG14 N842

UCNs handling - proposal from subcommision                         WG14/N842

Antoine Leca <[email protected]>
1998-06-24, revised 1998-06-26

Reference text: N837
Reference text: N828
Editings:

In 5.1.1.2p1, point 1 in the list, delete the sentence about replacement of multibyte
source file character by universal character names.
Delete the footnote 6 as well.
Delete the "Then" of the next sentence.

In point 2, insert the following sentence as the 3rd sentence: "If, as a result, a
character sequence that matches the syntax of an universal character name is produced,
the behavior is undefined."

In 5.2.1p3, last sentence, add "identifiers" to the enumeration "(except in..."

In 5.2.1.2p2, add "identifier" to both enumeration.

Replace 6.4.2.1p1 with
        identifier:
                non-basic-digit
                identifier non-basic-digit
                identifier basic-digit

        non-basic-digit:
                basic-letter
                universal-character-name
                any multibyte character from the extended set

        basic-letter:
                _ A B C D E F G H I J K L M
                  N O P Q R S T U V W X Y Z
                  a b c d e f g h i j k l m
                  n o p q r s t u v w x y z

        basic-digit:
                0 1 2 3 4 5 6 7 8 9

In 6.4.2.1p2, replace "specified using universal character names" with "and other
characters specified using either members of the extended source character set or
universal character name".
Add a sentence just after the closing parenthesis: "The relationship between universal
character names and members of the extended set is implementation defined."
In the next sentence, replace "universal character name" by "extended source character
and universal character name". Next, the reference to ISO10646 ought to be
"ISO/IEC 10646".
Next sentence, replace "nondigit" with "non basic digit".
In the forward references: remove the references to 6.2.2

In 6.4.3p2, first sentence, replace from "range ..." to the end of the end of the
sentence with "ranges 00000000 to 00000020, 0000007F to 0000009F and 0000D800 to
0000DFFF inclusive."
Paragraph 3, delete the word "source".
Paragraph 4, the reference to ISO10646 ought to be "ISO/IEC 10646".
            
In 6.4.4.2p1, replace digit-sequence syntax with
        digit-sequence:
                basic-digit
                digit-sequence basic-digit

In 6.4.4.4p1, remove the universal-character-name production from c-char syntax.
Add universal-character-name to escape-sequence.
Replace paragraph 8 with: "In addition, members outside of the basic execution
character set can be designated using the universal character name notation of
escape sequences.  Certain nongraphic characters are representable by escape
sequences consisting of the backslash \ followed by a lowercase letter: \a, \b,
\f, \n, \r, \t and \v. 54"

In 6.4.5p1, remove the universal-character-name production from s-char syntax. 

In 6.4.8p1, replace "digit" with "basic-digit" (3 occurences). Replace "nondigit"
with "non-basic-digit".

Remove 6.10p4, and the attached footnote 124 as well.

In 6.10.3.2p2, before "If the replacement...", insert the following sentence "If
there are any universal character name notation that appears in a character constant
or string litteral argument, the behavior is unspecified."

In 7.20.1.5p3 (and 7.24.4.1.1), replace "nondigit" with "basic-letter", and replace
"digit" with "basic-digit" in the syntax of n-char-sequence (2 occurences each).