CVS difference for ais/ai-00285.txt

Differences between 1.26 and version 1.27
Log of other versions for file ais/ai-00285.txt

--- ais/ai-00285.txt	2005/02/10 05:46:29	1.26
+++ ais/ai-00285.txt	2005/04/13 05:37:06	1.27
@@ -1,4 +1,4 @@
-!standard 2.1(1)                                      05-02-08  AI95-00285/14
+!standard 2.1(1)                                      05-03-01  AI95-00285/15
 !standard 2.1(2)
 !standard 2.1(3)
 !standard 2.1(4)
@@ -76,8 +76,9 @@
 !standard A.12(01)
 !standard A.12.4(01)
 !standard B.3(39)
-!standard B.3(40)
+!standard B.3(43)
 !standard B.3(60)
+!standard B.3(62.1)
 !standard C.5(07)
 !standard F(04)
 !standard F.3(01)
@@ -341,7 +342,11 @@
 ISO/IEC 10646:2003, Information technology - Universal Multiple-Octet
 Coded Character Set (UCS)
 
+ISO/IEC TR 19769:2004, Information technology - Programming Languages,
+their environments and system software inferfaces - Extensions for the
+programming language C to support new character data types
 
+
 Replace 2.1(1) by:
 
 The character repertoire for the text of an Ada program consists of the
@@ -1100,7 +1105,7 @@
 
 Add after B.3(39):
 
-   -- ISO/IEC 10646:2003 compatible types defined by SC22/WG14 document N1010.
+   -- ISO/IEC 10646:2003 compatible types defined by ISO/IEC TR 19769:2004.
 
    type char16_t is <implementation-defined character type>;
 
@@ -1122,15 +1127,15 @@
                     Trim_Nul : in Boolean := True)
       return Wide_String;
 
-   procedure To_C (Item       : in Wide_String;
+   procedure To_C (Item       : in  Wide_String;
                    Target     : out char16_array;
                    Count      : out size_t;
-                   Append_Nul : in Boolean := True);
+                   Append_Nul : in  Boolean := True);
 
-   procedure To_Ada (Item     : in char16_array;
+   procedure To_Ada (Item     : in  char16_array;
                      Target   : out Wide_String;
                      Count    : out Natural;
-                     Trim_Nul : in Boolean := True);
+                     Trim_Nul : in  Boolean := True);
 
    type char32_t is <implementation-defined character type>;
 
@@ -1152,15 +1157,15 @@
                     Trim_Nul : in Boolean := True)
       return Wide_Wide_String;
 
-   procedure To_C (Item       : in Wide_Wide_String;
+   procedure To_C (Item       : in  Wide_Wide_String;
                    Target     : out char32_array;
                    Count      : out size_t;
-                   Append_Nul : in Boolean := True);
+                   Append_Nul : in  Boolean := True);
 
-   procedure To_Ada (Item     : in char32_array;
+   procedure To_Ada (Item     : in  char32_array;
                      Target   : out Wide_Wide_String;
                      Count    : out Natural;
-                     Trim_Nul : in Boolean := True);
+                     Trim_Nul : in  Boolean := True);
 
 
 In B.3(43) change:
@@ -1177,8 +1182,8 @@
       The result of Is_Nul_Terminated is True if Item contains char16_nul, and
       is False otherwise.
 
-   function To_C (Item : in Wide_Character) return char16_t;
-   function To_Ada (Item : in char16_t ) return Wide_Character;
+   function To_C   (Item : in Wide_Character) return char16_t;
+   function To_Ada (Item : in char16_t      ) return Wide_Character;
 
    To_C and To_Ada provide mappings between the Ada and C 16-bit character
    types.
@@ -1191,15 +1196,15 @@
                     Trim_Nul : in Boolean := True)
       return Wide_String;
 
-   procedure To_C (Item       : in Wide_String;
+   procedure To_C (Item       : in  Wide_String;
                    Target     : out char16_array;
                    Count      : out size_t;
-                   Append_Nul : in Boolean := True);
+                   Append_Nul : in  Boolean := True);
 
-   procedure To_Ada (Item     : in char16_array;
+   procedure To_Ada (Item     : in  char16_array;
                      Target   : out Wide_String;
                      Count    : out Natural;
-                     Trim_Nul : in Boolean := True);
+                     Trim_Nul : in  Boolean := True);
 
       The To_C and To_Ada subprograms that convert between Wide_String and
       char16_array have analogous effects to the To_C and To_Ada subprograms
@@ -1211,8 +1216,8 @@
       The result of Is_Nul_Terminated is True if Item contains char16_nul, and
       is False otherwise.
 
-   function To_C (Item : in Wide_Wide_Character) return char32_t;
-   function To_Ada (Item : in char32_t ) return Wide_Wide_Character;
+   function To_C   (Item : in Wide_Wide_Character) return char32_t;
+   function To_Ada (Item : in char32_t           ) return Wide_Wide_Character;
 
    To_C and To_Ada provide mappings between the Ada and C 32-bit character
    types.
@@ -1225,21 +1230,25 @@
                     Trim_Nul : in Boolean := True)
       return Wide_Wide_String;
 
-   procedure To_C (Item       : in Wide_Wide_String;
+   procedure To_C (Item       : in  Wide_Wide_String;
                    Target     : out char32_array;
                    Count      : out size_t;
-                   Append_Nul : in Boolean := True);
+                   Append_Nul : in  Boolean := True);
 
-   procedure To_Ada (Item     : in char32_array;
+   procedure To_Ada (Item     : in  char32_array;
                      Target   : out Wide_Wide_String;
                      Count    : out Natural;
-                     Trim_Nul : in Boolean := True);
+                     Trim_Nul : in  Boolean := True);
 
       The To_C and To_Ada subprograms that convert between Wide_Wide_String and
       char32_array have analogous effects to the To_C and To_Ada subprograms
       that convert between String and char_array, except that char32_nul is used
       instead of nul.
 
+Change B.3(62.1) as:
+
+The constants nul{,}[ and] wide_nul{, char16_nul, and char32_nul} should have
+a representation of zero.
 
 At the beginning of C.5(7) change:
 
@@ -1389,8 +1398,12 @@
 supplemented by Technical Corrigendum 1:1996.
 @dby
 ISO/IEC 10646:2003, @i<Information technology - Universal Multiple-Octet
-Coded Character Set (UCS)>
+Coded Character Set (UCS)>.
 
+ISO/IEC TR 19769:2004, @i<Information technology - Programming Languages,
+their environments and system software inferfaces - Extensions for the
+programming language C to support new character data types>.
+
 !corrigendum 2.1(1)
 
 @drepl
@@ -2210,58 +2223,57 @@
 @dby
 @xcode<   --@ft<@i<Classifications of and conversions between Wide_Wide_Character, Wide_Character, and Character.>>>
 
-
-!corrigendum A.3.2(14)
-
-@dinsa
-@xcode<   @b<function> Is_Character (Item : @b<in> Wide_Character) @b<return> Boolean;
-   @b<function> Is_String    (Item : @b<in> Wide_String)    @b<return> Boolean;>
-@dinst
-@xcode<   @b<function> Is_Character (Item : @b<in> Wide_Wide_Character) @b<return> Boolean;
-   @b<function> Is_String    (Item : @b<in> Wide_Wide_String)    @b<return> Boolean;
-   @b<function> Is_Wide_Character (Item : @b<in> Wide_Wide_Character) @b<return> Boolean;
-   @b<function> Is_Wide_String    (Item : @b<in> Wide_Wide_String)    @b<return> Boolean;>
-
-!corrigendum A.3.2(16)
-
-@dinsa
-@xcode<   @b<function> To_String    (Item       : @b<in> Wide_String;
-                        Substitute : @b<in> Character := ' ')
-   @b<return> String;>
-@dinst
-@xcode<   @b<function> To_Character (Item :       @b<in> Wide_Wide_Character;
-                          Substitute : @b<in> Character := ' ') @b<return> Character;
-
-   @b<function> To_String    (Item :       @b<in> Wide_Wide_String;
-                          Substitute : @b<in> Character := ' ') @b<return> String;>
 
+!comment Change removed by AI-395:
+!comment !corrigendum A.3.2(14)
+!comment @dinsa
+!comment @xcode<   @b<function> Is_Character (Item : @b<in> Wide_Character) @b<return> Boolean;
+!comment    @b<function> Is_String    (Item : @b<in> Wide_String)    @b<return> Boolean;>
+!comment @dinst
+!comment @xcode<   @b<function> Is_Character (Item : @b<in> Wide_Wide_Character) @b<return> Boolean;
+!comment    @b<function> Is_String    (Item : @b<in> Wide_Wide_String)    @b<return> Boolean;
+!comment    @b<function> Is_Wide_Character (Item : @b<in> Wide_Wide_Character) @b<return> Boolean;
+!comment    @b<function> Is_Wide_String    (Item : @b<in> Wide_Wide_String)    @b<return> Boolean;>
+
+!comment Change removed by AI-395:
+!comment !corrigendum A.3.2(16)
+!comment @dinsa
+!comment @xcode<   @b<function> To_String    (Item       : @b<in> Wide_String;
+!comment                         Substitute : @b<in> Character := ' ')
+!comment    @b<return> String;>
+!comment @dinst
+!comment @xcode<   @b<function> To_Character (Item :       @b<in> Wide_Wide_Character;
+!comment                           Substitute : @b<in> Character := ' ') @b<return> Character;
+!comment
+!comment    @b<function> To_String    (Item :       @b<in> Wide_Wide_String;
+!comment                           Substitute : @b<in> Character := ' ') @b<return> String;>
+
+!comment Change removed by AI-395:
+!comment !corrigendum A.3.2(18)
+!comment @dinsa
+!comment @xcode<   @b<function> To_Wide_String    (Item : @b<in> String)    @b<return> Wide_String;>
+!comment @dinss
+!comment @xcode<   @b<function> To_Wide_Character (Item :       @b<in> Wide_Wide_Character;
+!comment                                Substitute : @b<in> Wide_Character := ' ')
+!comment                                @b<return> Wide_Character;
+!comment
+!comment    @b<function> To_Wide_String    (Item :       @b<in> Wide_Wide_String;
+!comment                                Substitute : @b<in> Wide_Character := ' ')
+!comment                                @b<return> Wide_String;
+!comment
+!comment    @b<function> To_Wide_Wide_Character (Item : @b<in> Character)
+!comment          @b<return> Wide_Wide_Character;
+!comment
+!comment    @b<function> To_Wide_Wide_String    (Item : @b<in> String)
+!comment          @b<return> Wide_Wide_String;
+!comment
+!comment    @b<function> To_Wide_Wide_Character (Item : @b<in> Wide_Character)
+!comment          @b<return> Wide_Wide_Character;
+!comment
+!comment    @b<function> To_Wide_Wide_String    (Item : @b<in> Wide_String)
+!comment          @b<return> Wide_Wide_String;>
 
-!corrigendum A.3.2(18)
 
-@dinsa
-@xcode<   @b<function> To_Wide_String    (Item : @b<in> String)    @b<return> Wide_String;>
-@dinss
-@xcode<   @b<function> To_Wide_Character (Item :       @b<in> Wide_Wide_Character;
-                               Substitute : @b<in> Wide_Character := ' ')
-                               @b<return> Wide_Character;
-
-   @b<function> To_Wide_String    (Item :       @b<in> Wide_Wide_String;
-                               Substitute : @b<in> Wide_Character := ' ')
-                               @b<return> Wide_String;
-
-   @b<function> To_Wide_Wide_Character (Item : @b<in> Character)
-         @b<return> Wide_Wide_Character;
-
-   @b<function> To_Wide_Wide_String    (Item : @b<in> String)
-         @b<return> Wide_Wide_String;
-
-   @b<function> To_Wide_Wide_Character (Item : @b<in> Wide_Character)
-         @b<return> Wide_Wide_Character;
-
-   @b<function> To_Wide_Wide_String    (Item : @b<in> Wide_String)
-         @b<return> Wide_Wide_String;>
-
-
 !corrigendum A.3.2(42)
 
 @drepl
@@ -2745,7 +2757,7 @@
                      Count    : @b<out> Natural;
                      Trim_Nul : @b<in> Boolean := True);>
 @dinss
-@xcode<   -- @ft<@i<ISO/IEC 10646:2003 compatible types defined by SC22/WG14 document N1010.>>
+@xcode<   -- @ft<@i<ISO/IEC 10646:2003 compatible types defined by ISO/IEC TR 19769:2004.>>
 
    @b<type> char16_t @b<is> @ft<@i<<implementation-defined character type@>>>;
 
@@ -2767,15 +2779,15 @@
                     Trim_Nul : @b<in> Boolean := True)
       @b<return> Wide_String;
 
-   @b<procedure> To_C (Item       : @b<in> Wide_String;
+   @b<procedure> To_C (Item       : @b<in>  Wide_String;
                    Target     : @b<out> char16_array;
                    Count      : @b<out> size_t;
-                   Append_Nul : @b<in> Boolean := True);
+                   Append_Nul : @b<in>  Boolean := True);
 
-   @b<procedure> To_Ada (Item     : @b<in> char16_array;
+   @b<procedure> To_Ada (Item     : @b<in>  char16_array;
                      Target   : @b<out> Wide_String;
                      Count    : @b<out> Natural;
-                     Trim_Nul : @b<in> Boolean := True);
+                     Trim_Nul : @b<in>  Boolean := True);
 
    @b<type> char32_t @b<is> @ft<@i<<implementation-defined character type@>>>;
 
@@ -2797,15 +2809,15 @@
                     Trim_Nul : @b<in> Boolean := True)
       @b<return> Wide_Wide_String;
 
-   @b<procedure> To_C (Item       : @b<in> Wide_Wide_String;
+   @b<procedure> To_C (Item       : @b<in>  Wide_Wide_String;
                    Target     : @b<out> char32_array;
                    Count      : @b<out> size_t;
-                   Append_Nul : @b<in> Boolean := True);
+                   Append_Nul : @b<in>  Boolean := True);
 
-   @b<procedure> To_Ada (Item     : @b<in> char32_array;
+   @b<procedure> To_Ada (Item     : @b<in>  char32_array;
                      Target   : @b<out> Wide_Wide_String;
                      Count    : @b<out> Natural;
-                     Trim_Nul : @b<in> Boolean := True);>
+                     Trim_Nul : @b<in>  Boolean := True);>
 
 
 !corrigendum B.3(43)
@@ -2837,8 +2849,8 @@
 @xindent<The result of Is_Nul_Terminated is True if Item contains char16_nul,
 and is False otherwise.>
 
-@xcode<@b<function> To_C (Item : @b<in> Wide_Character) @b<return> char16_t;
-@b<function> To_Ada (Item : @b<in> char16_t ) @b<return> Wide_Character;>
+@xcode<@b<function> To_C   (Item : @b<in> Wide_Character) @b<return> char16_t;
+@b<function> To_Ada (Item : @b<in> char16_t      ) @b<return> Wide_Character;>
 
 @xindent<To_C and To_Ada provide mappings between the Ada and C 16-bit
 character types.>
@@ -2851,15 +2863,15 @@
                  Trim_Nul : @b<in> Boolean := True)
    @b<return> Wide_String;
 
-@b<procedure> To_C (Item       : @b<in> Wide_String;
+@b<procedure> To_C (Item       : @b<in>  Wide_String;
                 Target     : @b<out> char16_array;
                 Count      : @b<out> size_t;
-                Append_Nul : @b<in> Boolean := True);
+                Append_Nul : @b<in>  Boolean := True);
 
-@b<procedure> To_Ada (Item     : @b<in> char16_array;
+@b<procedure> To_Ada (Item     : @b<in>  char16_array;
                   Target   : @b<out> Wide_String;
                   Count    : @b<out> Natural;
-                  Trim_Nul : @b<in> Boolean := True);>
+                  Trim_Nul : @b<in>  Boolean := True);>
 
 @xindent<The To_C and To_Ada subprograms that convert between Wide_String and
 char16_array have analogous effects to the To_C and To_Ada subprograms that
@@ -2871,8 +2883,8 @@
 @xindent<The result of Is_Nul_Terminated is True if Item contains char16_nul,
 and is False otherwise.>
 
-@xcode<@b<function> To_C (Item : @b<in> Wide_Wide_Character) @b<return> char32_t;
-@b<function> To_Ada (Item : @b<in> char32_t ) @b<return> Wide_Wide_Character;>
+@xcode<@b<function> To_C   (Item : @b<in> Wide_Wide_Character) @b<return> char32_t;
+@b<function> To_Ada (Item : @b<in> char32_t           ) @b<return> Wide_Wide_Character;>
 
 @xindent<To_C and To_Ada provide mappings between the Ada and C 32-bit
 character types.>
@@ -2885,20 +2897,31 @@
                  Trim_Nul : @b<in> Boolean := True)
    @b<return> Wide_Wide_String;
 
-@b<procedure> To_C (Item       : @b<in> Wide_Wide_String;
+@b<procedure> To_C (Item       : @b<in>  Wide_Wide_String;
                 Target     : @b<out> char32_array;
                 Count      : @b<out> size_t;
-                Append_Nul : @b<in> Boolean := True);
+                Append_Nul : @b<in>  Boolean := True);
 
-@b<procedure> To_Ada (Item     : @b<in> char32_array;
+@b<procedure> To_Ada (Item     : @b<in>  char32_array;
                   Target   : @b<out> Wide_Wide_String;
                   Count    : @b<out> Natural;
-                  Trim_Nul : @b<in> Boolean := True);>
+                  Trim_Nul : @b<in>  Boolean := True);>
 
 @xindent<The To_C and To_Ada subprograms that convert between Wide_Wide_String
 and char32_array have analogous effects to the To_C and To_Ada subprograms that
 convert between String and char_array, except that char32_nul is used instead
 of nul.>
+
+
+!corrigendum B.3(62.1)
+
+@drepl
+The constants nul and wide_nul should have
+a representation of zero.
+@dby
+The constants nul, wide_nul, char16_nul, and char32_nul should have
+a representation of zero.
+
 
 
 !corrigendum C.5(7)

Questions? Ask the ACAA Technical Agent