Version 1.1 of ai12s/ai12-0450-1.txt
!standard 1.1.4(14.2/5) 22-12-01 AI12-0450-1/01
!standard 1.2(4.1/3)
!standard 1.2(8/5)
!standard 1.2.1(5/5)
!standard 1.2.1(6/5)
!standard 1.2.1(8/5)
!standard 1.2.1(9/5)
!standard 1.2.1(10/5)
!standard 2.1(1/5)
!standard 2.1(3.1/5)
!standard 2.1(4/5)
!standard 2.1(4.1/5)
!standard 2.1(5/5)
!standard 2.1(15/5)
!standard 2.3(4.1/5)
!standard 2.3(5/5)
!standard 3.5.2(2/5)
!standard 3.5.2(3/5)
!standard 3.5.2(4/5)
!standard A.1(36.1/5)
!standard A.1(36.2/5)
!standard A.3.2(32.6/5)
!standard A.3.5(33.2/5)
!standard A.3.5(51.2/5)
!standard A.3.5(55/5)
!standard A.3.5(59/5)
!standard A.3.5(61.2/5)
!standard A.3.5(63/5)
!standard A.4.6(8/3)
!standard A.4.10(3/5)
!standard A.19(12/5)
!standard B.3(39.1/2)
!standard B.5(21/5)
!standard F.3.3(46)
!standard F.3.3(47)
!standard F.3.3(48)
!standard F.3.3(49)
!standard F.3.3(50)
!standard F.3.3(51)
!standard F.3.3(52)
!class binding interpretation 22-12-01
!status Amendment 1-2012 22-12-06
!status work item 22-12-01
!status received 22-11-04
!priority Low
!difficulty Easy
!qualifier Omission
!subject Update references to standards
!summary
Update references to obsolete standards.
!question
ISO does not allow us to reference obsolete standards. Should we update all
references to such standards? (Yes.)
!recommendation
(See Summary.)
!wording
Modify 1.1.4(14.2/5):
When this document mentions the conversion of some character or sequence of
characters to upper case, it means the character or sequence of characters
obtained by using simple upper case mapping, as defined by documents referenced
in Clause 2 of ISO/IEC 10646:[2017]{2020}.
Modify 1.2(4.1/3):
ISO[/IEC] 3166-1:[2006]{2020}, Codes for the representation of names of countries
and their subdivisions — Part 1: Country Codes.
[Editor's note: Update year, remove "IEC" (this is just an ISO standard).]
Modify 1.2(8/5):
ISO/IEC 10646:{2020}[2017], Information technology — Universal
[Coded Character Set]{coded character set} (UCS).
[Editor's note: Update year. Note that we previously did that for Ada 2022, but
it changed again. The title subtly changed as well.]
Modify 1.2.1(5/5):
ISO/IEC 6429:1992, Information technology — Control functions for coded
[graphic ]character sets
[Editor's note: The word "graphic" is not in the actual title.]
Modify 1.2.1(6/5):
ISO 8601{-1}:[2004]{2019}, Data elements and interchange formats — Information
interchange — {Part 1} Representation of dates and times
[Editor's note: Correct as this is now a series of standards. *** Check the title!! ***]
Modify 1.2.1(8/5):
ISO/IEC 9899:[2011]{2018}, Information technology — Programming languages — C
[Editor's note: update year.]
Modify 1.2.1(9/5):
ISO/IEC 14882:[2011]{2020}, Information technology — Programming languages — C++
[Editor's note: update year.]
Delete 1.2.1(10/5):
ISO/IEC TR 19769:2004, Information technology — Programming languages, their
environments and system software interfaces — Extensions for the programming
language C to support new character data types
[Editor's note: Jeff reports that this TR was encorporated into the current
C and C++ standards; ISO reports that this TR is withdrawn. So we don't need it
at all.]
Modify 2.1(1/5):
The character repertoire for the text of an Ada program consists of the entire
coding space described by the ISO/IEC 10646:{2020}[2017] Universal
[Coded Character Set]{coded character set}. This coding space is organized in
planes, each plane comprising 65536 characters.
Modify 2.1(3.1/5):
A character is defined by this International Standard for each cell in the
coding space described by ISO/IEC 10646:{2020}[2017], regardless of whether or
not ISO/IEC 10646:{2020}[2017] allocates a character to that cell.
Modify 2.1(4/3):
The coded representation for characters is implementation defined
(it need not be a representation defined within ISO/IEC 10646:{2010}[2017]).
A character whose relative code point in its plane is 16#FFFE# or 16#FFFF#
is not allowed anywhere in the text of a program.
The only characters allowed outside of comments are those in categories
other_format, format_effector, and graphic_character.
Modify 2.1(4.1/5):
The semantics of an Ada program whose text is not in Normalization Form C
(as defined by Clause [21]{22} of ISO/IEC 10646:[2017)]{2020}) is
implementation defined.
[Editor's note: The 10646 clause changed numbers in the 2020 edition.]
Modify 2.1(5/3):
The description of the language definition in this International Standard uses
the character properties General Category, Simple Uppercase Mapping, Uppercase
Mapping, and Special Case Condition of the documents referenced by
Clause 2 of ISO/IEC 10646:{2020}[2017]. The actual set of graphic symbols
used by an implementation for the visual representation of the text of an Ada
program is not specified.
In AARM 2.1(6.a/3), replace 2017 with 2020.
Modify 2.1(15/3):
The following names are used when referring to certain characters (the first name
is that given in ISO/IEC 10646:{2020}[2017]):
In AARM 2.1(15.a/3), replace 2017 with 2020.
Modify 2.3(4.1/5):
An identifier shall only contain characters that may be present in
Normalization Form KC [(]as defined by Clause [21]{22} of ISO/IEC
10646:[2017)]{2020}.
[Editor's note: The ISO editors deleted the parens without comment. But no
change was made to a similar sentence in A.3.5. Go figure. The 10646 clause
changed numbers in the 2020 edition.]
Modify 2.3(5/5):
Two identifiers are considered the same if they consist of the same sequence of
characters after applying locale-independent simple case folding, as defined by
documents referenced in Clause 2 of ISO/IEC 10646:[2017]{2020}.
[Editor's note: The clause here did not change numbers. Note, as always, that
case information is not included or mentioned in 10646; we have to directly
depend on Unicode.
Also note that these days there are direct references to Unicode in 10646, so
we might be able to directly reference Unicode in our standard. But best not
to make such a change this late in the process.]
In 3.5.2(2/5, 3/5, 4/5), replace 2017 with 2020.
Modify AARM 9.6.1(82.a/2):
The Image provides a string in ISO 8601{-1} format, the international standard
time format{, with the exception that we separate the date and time with a
blank rather than a 'T' (this was allowed in previous versions of the ISO 8601
standard)}. Alternative representations allowed in ISO 8601{-1} are not supported
here.
Modify AARM 9.6.1(82.b/2):
ISO 8601{-1} allows 24:00:00 for midnight; and a seconds value of 60 for leap
seconds. These are not allowed here (the routines mentioned above cannot
produce those results).
In A.1(36.1/5) and A.1(36.2/5), replace 2017 with 2020.
Modify A.3.2(32.6/5) [as introduced by AI12-0004-1]:
True if Item could be present in a string normalized to Normalization Form KC
(as defined by Clause 21 of ISO/IEC 10646:{2020}[2017]); this includes all
characters except those with positions 160, 168, 170, 175, 178, 179, 180, 181,
184, 185, 186, 188, 189, and 190.
In AARM A.3.2(60.a/5), replace 2017 with 2020.
Modify A.3.5(51.2/5) [as introduced by AI12-0004-1]:
Returns True if the Wide_Character designated by Item could be present in a
string normalized to Normalization Form KC (as defined by Clause 21 of
ISO/IEC 10646:{2020}[2017]), otherwise returns False.
Modify A.3.5(55/5):
Returns the Simple Lowercase Mapping as defined by documents referenced in
Clause 2 of ISO/IEC 10646:{2020}[2017] of the Wide_Character
designated by Item. If the Simple Lowercase Mapping does not exist for the
Wide_Character designated by Item, then the value of Item is returned.
In AARM A.3.2(55.a/5), replace 2017 with 2020.
Modify A.3.5(59/5):
Returns the Simple Uppercase Mapping as defined by documents referenced in
Clause 2 of ISO/IEC 10646:{2020}[2017] of the Wide_Character
designated by Item. If the Simple Uppercase Mapping does not exist for the
Wide_Character designated by Item, then the value of Item is returned.
Modify the references in AARM A.3.5(62.a/3) to 10646:2020 and Unicode 13.0
(current as of this writing).
Modify A.3.5(63/5):
NOTE 1 The results returned by these functions can may depend on which
particular version of {ISO/IEC}[the] 10646[ standard] is supported by the
implementation (see 2.1).
[Editor's note: Use a proper undated reference to 10646 (following the Directives).]
Modify A.4.6(8/3):
NOTE There are certain characters which are defined to be lower case letters
by ISO{/IEC} 10646 and are therefore allowed in identifiers, but are not
considered lower case letters by Ada.Strings.Maps.Constants.
[Editor's note: Use a proper undated reference to 10646 (following the Directives).]
Modify A.19(12/5):
Function Country returns the code of the country associated with the active
locale. If the Country_Code associated with the active locale cannot be
determined from the environment, then Country returns Country_Unknown.
Otherwise, the result is an upper-case string representation of an
ISO 3166-1:[2006]{2020} alpha-2 code that identifies a country.
[Editor's note: We could use an undated reference here instead. That would mean
that an updated standard might cause a change in Locales, but that is very
unlikely in practice (the standard is generally updated compatibly). ***]
Modify B.3(39.1/2):
-- ISO/IEC 10646[:2003] compatible types[ defined by ISO/IEC TR 19769:2004].
[Editor's note: Jeff reports these types are now defined by the C and
C++ standards. Rather than giving us something to change repeatedly, we
should just drop the reference to a particular Standard; similarly, we use
an undated 10646 reference.]
Modify B.5(21/5):
An implementation may add additional declarations to the Fortran interface packages.
For example, declarations are permitted for the character types corresponding to
Fortran character kinds 'ascii' and 'iso_10646', which in turn correspond to
ISO/IEC 646:1991 and to UCS-4 as specified in ISO/IEC 10646:[2017]{2020}.
[Editor's note: The ISO editors put in a comment on this paragraph marking
"iso_10646" that the correct reference is ISO/IEC 10646. But this referring to
something defined in the Fortran Standard, so we have to write it exactly as
defined there. Thus no change here for that.]
Move F.3.3(46-52) to an AARM "discussion" note:
NOTE The rules for edited output are based on COBOL (ANSI X3.23:1985,
endorsed by ISO as ISO 1989-1985), with the following differences:
[Editor's note: ISO 1989:1985 is old and cannot be referenced. We don't have
the expertise to determine if the note is still accurate with newer COBOL
standards. We could try to find someone that could comment, but that could
take a long time. And this Annex is not used much. So I recommend moving the
entire note as-is to the AARM (which has no restrictions about referencing
standards) - it will still be accurate and we won't need to update it now
or in the future.]
!discussion
See the Editor's notes in the wording.
!corrigendum 1.1.4(14.2/5)
Replace the paragraph:
When this International Standard mentions the conversion of some character or sequence
of characters to upper case, it means the character or sequence of characters obtained
by using simple upper case mapping, as defined by documents referenced
in Clause 2 of ISO/IEC 10646:2017.
by:
When this International Standard mentions the conversion of some character or sequence
of characters to upper case, it means the character or sequence of characters obtained
by using simple upper case mapping, as defined by documents referenced
in Clause 2 of ISO/IEC 10646:2020.
!corrigendum 1.2(4.1/3)
Replace the paragraph:
ISO/IEC 3166-1:2006, Codes for the representation of names of countries
and their subdivisions — Part 1: Country Codes.
by:
ISO 3166-1:2020, Codes for the representation of names of countries
and their subdivisions — Part 1: Country Codes
!corrigendum 1.2(8/3)
Replace the paragraph:
ISO/IEC 10646:2017, Information technology — Universal Coded
Character Set (UCS).
by:
ISO/IEC 10646:2020, Information technology — Universal coded
character set (UCS)
!corrigendum 1.2.1(0)
Insert new clause:
The following documents are mentioned in this document as informative references.
<Rest found in the conflict file.>
!corrigendum 2.1(1/5)
Replace the paragraph:
The character repertoire for the text of an Ada program consists of the entire coding space
described by the ISO/IEC 10646:2017 Universal Coded Character Set. This
coding space is organized in planes, each plane comprising 65536 characters.
by:
The character repertoire for the text of an Ada program consists of the entire coding space
described by the ISO/IEC 10646:2030 Universal coded character set. This
coding space is organized in planes, each plane comprising 65536 characters.
!corrigendum 2.1(3.1/5)
Replace the paragraph:
A character is defined by this International Standard for each cell in the coding
space described by ISO/IEC 10646:2017, regardless of whether or not ISO/IEC
10646:2017 allocates a character to that cell.
by:
A character is defined by this International Standard for each cell in the coding
space described by ISO/IEC 10646:2020, regardless of whether or not ISO/IEC
10646:2020 allocates a character to that cell.
!corrigendum 2.1(4/5)
Replace the paragraph:
The coded representation for characters is implementation defined
(it can be a representation that is not defined within ISO/IEC 10646:2017).
A character whose relative code point in its plane is 16#FFFE# or 16#FFFF#
is not allowed anywhere in the text of a program.
The only characters allowed outside of comments are those in categories
other_format, format_effector, and graphic_character.
by:
The coded representation for characters is implementation defined
(it can be a representation that is not defined within ISO/IEC 10646:2020).
A character whose relative code point in its plane is 16#FFFE# or 16#FFFF#
is not allowed anywhere in the text of a program.
The only characters allowed outside of comments are those in categories
other_format, format_effector, and graphic_character.
!corrigendum 2.1(4.1/5)
Replace the paragraph:
The semantics of an Ada program whose text is not in Normalization Form KC
(as defined by Clause 21 of ISO/IEC 10646:2017) is implementation defined.
by:
The semantics of an Ada program whose text is not in Normalization Form C
(as defined by Clause 22 of ISO/IEC 10646:2020) is implementation defined.
!corrigendum 2.1(5/5)
Replace the paragraph:
The description of the language definition in this International Standard uses
the character properties General Category, Simple Uppercase Mapping, Uppercase
Mapping, and Special Case Condition of the documents referenced by the note in
Clause 2 of ISO/IEC 10646:2017. The actual set of graphic symbols used by an
implementation for the visual representation of the text of an Ada program is
not specified.
by:
The description of the language definition in this International Standard uses
the character properties General Category, Simple Uppercase Mapping, Uppercase
Mapping, and Special Case Condition of the documents referenced by
Clause 2 of ISO/IEC 10646:2020. The actual set of graphic symbols used by an
implementation for the visual representation of the text of an Ada program is
not specified.
!corrigendum 2.1(15/3)
Replace the paragraph:
The following names are used when referring to certain characters (the first name
is that given in ISO/IEC 10646:2017):
by:
The following names are used when referring to certain characters (the first name
is that given in ISO/IEC 10646:2020):
!comment use the overall paragraph to force a conflict.
!corrigendum 2.3(4/3)
Replace the paragraph:
An identifier shall only contain characters that may be present in
Normalization Form KC (as defined by Clause 21 of ISO/IEC 10646:2017).
by:
An identifier shall only contain characters that may be present in
Normalization Form KC as defined by Clause 22 of ISO/IEC 10646:2020.
!corrigendum 2.3(5/3)
Replace the paragraph:
Two identifiers are considered the same if they consist of the same
sequence of characters after applying locale-independent simple case folding,
as defined by documents referenced in Clause 2 of ISO/IEC 10646:2017.
by:
Two identifiers are considered the same if they consist of the same
sequence of characters after applying locale-independent simple case folding,
as defined by documents referenced in Clause 2 of ISO/IEC 10646:2020.
!corrigendum 3.5.2(2/3)
Replace the paragraph:
The predefined type Character is a character type whose values correspond to
the 256 code points of Row 00 (also known as Latin-1) of the ISO/IEC 10646:2017 Basic
Multilingual Plane (BMP). Each of the graphic characters of Row 00 of the BMP
has a corresponding character_literal in Character. Each of the nongraphic
characters of Row 00 has a corresponding
language-defined name, which is not usable as an enumeration literal, but which
is usable with the attributes Image, Wide_Image,
Wide_Wide_Image, Value, Wide_Value, and Wide_Wide_Value; these names are
given in the definition of type Character in A.1, "The Package Standard", but
are set in italics.
by:
The predefined type Character is a character type whose values correspond to
the 256 code points of Row 00 (also known as Latin-1) of the ISO/IEC 10646:2020 Basic
Multilingual Plane (BMP). Each of the graphic characters of Row 00 of the BMP
has a corresponding character_literal in Character. Each of the nongraphic
characters of Row 00 has a corresponding
language-defined name, which is not usable as an enumeration literal, but which
is usable with the attributes Image, Wide_Image,
Wide_Wide_Image, Value, Wide_Value, and Wide_Wide_Value; these names are
given in the definition of type Character in A.1, "The Package Standard", but
are set in italics.
!corrigendum 3.5.2(3/3)
Replace the paragraph:
The predefined type Wide_Character is a character type whose values correspond
to the 65536 code points of the ISO/IEC 10646:2017 Basic Multilingual Plane (BMP).
Each of the graphic characters of the BMP has a corresponding character_literal
in Wide_Character. The first 256 values of Wide_Character have the same
character_literal or language-defined name as defined for Character.
Each of the graphic_characters has a corresponding character_literal.
by:
The predefined type Wide_Character is a character type whose values correspond
to the 65536 code points of the ISO/IEC 10646:2020 Basic Multilingual Plane (BMP).
Each of the graphic characters of the BMP has a corresponding character_literal
in Wide_Character. The first 256 values of Wide_Character have the same
character_literal or language-defined name as defined for Character.
Each of the graphic_characters has a corresponding character_literal.
!corrigendum 3.5.2(4/3)
Replace the paragraph:
The predefined type Wide_Wide_Character is a character type whose values
correspond to the 2147483648 code points of the ISO/IEC 10646:2017 character
set. Each of the graphic_characters has a corresponding character_literal
in Wide_Wide_Character. The first 65536 values of Wide_Wide_Character have the
same character_literal or language-defined name as defined for
Wide_Character.
by:
The predefined type Wide_Wide_Character is a character type whose values
correspond to the 2147483648 code points of the ISO/IEC 10646:2020 character
set. Each of the graphic_characters has a corresponding character_literal
in Wide_Wide_Character. The first 65536 values of Wide_Wide_Character have the
same character_literal or language-defined name as defined for
Wide_Character.
!corrigendum A.1(36.1/2)
Replace the paragraph:
-- The declaration of type Wide_Character is based on the standard ISO/IEC 10646:2017 BMP character
-- set. The first 256 positions have the same contents as type Character. See 3.5.2.
type Wide_Character is (nul, soh ... Hex_0000FFFE, Hex_0000FFFF);
by:
-- The declaration of type Wide_Character is based on the standard ISO/IEC 10646:2020 BMP character
-- set. The first 256 positions have the same contents as type Character. See 3.5.2.
type Wide_Character is (nul, soh ... Hex_0000FFFE, Hex_0000FFFF);
!corrigendum A.1(36.2/2)
Replace the paragraph:
-- The declaration of type Wide_Wide_Character is based on the full
-- ISO/IEC 10646:2017 character set. The first 65536 positions have the
-- same contents as type Wide_Character. See 3.5.2.
type Wide_Wide_Character is (nul, soh ... Hex_7FFFFFFE, Hex_7FFFFFFF);
for Wide_Wide_Character'Size use 32;
by:
-- The declaration of type Wide_Wide_Character is based on the full
-- ISO/IEC 10646:2020 character set. The first 65536 positions have the
-- same contents as type Wide_Character. See 3.5.2.
type Wide_Wide_Character is (nul, soh ... Hex_7FFFFFFE, Hex_7FFFFFFF);
for Wide_Wide_Character'Size use 32;
!comment use the overall paragraph to force a conflict.
!corrigendum A.3.2(32.5/5)
Replace the paragraph:
True if Item could be present in a string normalized to Normalization
Form KC (as defined by Clause 21 of ISO/IEC 10646:2017); this includes
all characters except those with positions 160, 168, 170, 175, 178, 179,
180, 181, 184, 185, 186, 188, 189, and 190.
by:
True if Item could be present in a string normalized to Normalization
Form KC (as defined by Clause 22 of ISO/IEC 10646:2020); this includes
all characters except those with positions 160, 168, 170, 175, 178, 179,
180, 181, 184, 185, 186, 188, 189, and 190.
!comment use the overall paragraph to force a conflict.
!corrigendum A.3.5(33/3)
Replace the paragraph:
Returns True if the Wide_Character designated by Item has no
Decomposition Mapping in the code charts of ISO/IEC 10646:2017;
otherwise returns False.
by:
Returns True if the Wide_Character designated by Item has no
Decomposition Mapping in the code charts of ISO/IEC 10646:2020;
otherwise returns False.
!comment use the overall paragraph to force a conflict.
!corrigendum A.3.5(51/5)
Replace the paragraph:
Returns True if the Wide_Character designated by Item could be present
in a string normalized to Normalization Form KC (as defined by Clause
21 of ISO/IEC 10646:2017), otherwise returns False.
by:
Returns True if the Wide_Character designated by Item could be present
in a string normalized to Normalization Form KC (as defined by Clause
22 of ISO/IEC 10646:2020), otherwise returns False.
!corrigendum A.3.5(55/5)
Replace the paragraph:
Returns the Simple Lowercase Mapping as defined by documents referenced
in Clause 2 of ISO/IEC 10646:2017 of the Wide_Character designated
by Item. If the Simple Lowercase Mapping does not exist for the Wide_Character
designated by Item, then the value of Item is returned.
by:
Returns the Simple Lowercase Mapping as defined by documents referenced
in Clause 2 of ISO/IEC 10646:2020 of the Wide_Character designated
by Item. If the Simple Lowercase Mapping does not exist for the Wide_Character
designated by Item, then the value of Item is returned.
!corrigendum A.3.5(59/5)
Replace the paragraph:
Returns the Simple Uppercase Mapping as defined by documents referenced
in Clause 2 of ISO/IEC 10646:2017 of the Wide_Character designated
by Item. If the Simple Uppercase Mapping does not exist for the Wide_Character
designated by Item, then the value of Item is returned.
by:
Returns the Simple Uppercase Mapping as defined by documents referenced
in Clause 2 of ISO/IEC 10646:2020 of the Wide_Character designated
by Item. If the Simple Uppercase Mapping does not exist for the Wide_Character
designated by Item, then the value of Item is returned.
!comment use the overall paragraph to force a conflict.
!corrigendum A.3.5(61/3)
Replace the paragraph:
Returns the Wide_Character whose code point is given by the first
value of its Decomposition Mapping in the code charts of ISO/IEC
10646:2017 if any; returns Item otherwise.
by:
Returns the Wide_Character whose code point is given by the first
value of its Decomposition Mapping in the code charts of ISO/IEC
10646:2020 if any; returns Item otherwise.
!corrigendum A.3.5(63/5)
Replace the paragraph:
NOTE 1 The results returned by these functions may depend on
which particular version of the 10646 standard is supported by the
implementation (see 2.1).
by:
NOTE 1 The results returned by these functions can depend on
which particular version of ISO/IEC 10646 is supported by the
implementation (see 2.1).
!corrigendum A.4.6(8/3)
Replace the paragraph:
NOTE There are certain characters which are defined to be
lower case letters by ISO{/IEC} 10646 and are therefore allowed in identifiers,
but are not considered lower case letters by Ada.Strings.Maps.Constants.
by:
NOTE There are certain characters which are defined to be
lower case letters by ISO/IEC 10646 and are therefore allowed in identifiers,
but are not considered lower case letters by Ada.Strings.Maps.Constants.
!corrigendum A.4.10(3/5)
Replace the paragraph:
Returns True if the strings consist of the same sequence of characters after
applying locale-independent simple case folding, as defined by documents
referenced in Clause 2 of ISO/IEC 10646:2017. Otherwise, returns
False. This function uses the same method as is used to determine whether two
identifiers are the same.
by:
Returns True if the strings consist of the same sequence of characters after
applying locale-independent simple case folding, as defined by documents
referenced in Clause 2 of ISO/IEC 10646:2020. Otherwise, returns
False. This function uses the same method as is used to determine whether two
identifiers are the same.
!corrigendum A.19(12/5)
Replace the paragraph:
Function Country returns the code of the country associated with the active
locale. If the Country_Code associated with the active locale cannot be
determined from the environment, then Country returns Country_Unknown.
Otherwise, the result is an upper-case string representation of an
ISO 3166-1:2006 alpha-2 code that identifies a country.
by:
Function Country returns the code of the country associated with the active
locale. If the Country_Code associated with the active locale cannot be
determined from the environment, then Country returns Country_Unknown.
Otherwise, the result is an upper-case string representation of an
ISO 3166-1:2020 alpha-2 code that identifies a country.
!corrigendum B.3(39.1/2)
Replace the paragraph:
-- ISO/IEC 10646:2003 compatible types defined by ISO/IEC TR 19769:2004.
by:
-- ISO/IEC 10646 compatible types.
!corrigendum B.5(21/5)
Replace the paragraph:
An implementation may add additional declarations to the Fortran interface
packages. For example, declarations are permitted
for the character types corresponding to Fortran character kinds 'ascii' and
'iso_10646', which in turn correspond to ISO/IEC 646:1991 and
to UCS-4 as specified in ISO/IEC 10646:2017.
by:
An implementation may add additional declarations to the Fortran interface
packages. For example, declarations are permitted
for the character types corresponding to Fortran character kinds 'ascii' and
'iso_10646', which in turn correspond to ISO/IEC 646:1991 and
to UCS-4 as specified in ISO/IEC 10646:2020.
!corrigendum F.3.3(46)
Delete the paragraph:
NOTE The rules for edited output are based on COBOL
(ANSI X3.23:1985, endorsed by ISO as ISO 1989-1985), with the following
differences:
!corrigendum F.3.3(47)
Delete the paragraph:
- The COBOL provisions for picture string localization and for
'P' format are absent from Ada.
!corrigendum F.3.3(48)
Delete the paragraph:
- The following Ada facilities are not in COBOL:
!corrigendum F.3.3(49)
Delete the paragraph:
- currency symbol placement after the number,
!corrigendum F.3.3(50)
Delete the paragraph:
- localization of edited output string for multi-character
currency string values, including support for both length-preserving and
length-expanding currency symbols in picture strings
!corrigendum F.3.3(51)
Delete the paragraph:
- localization of the radix mark, digits separator, and fill
character, and
!corrigendum F.3.3(52)
Delete the paragraph:
- parenthesization of negative values.
!corrigendum F.3.3(52.1)
Delete the paragraph:
The value of 30 for Max_Picture_Length is the same limit as in COBOL.
!ASIS
No ASIS effect.
!ACATS test
No ACATS test needed, no semantic changes are intended.
!appendix
****************************************************************
Questions? Ask the ACAA Technical Agent