CVS difference for ai05s/ai05-0185-1.txt

Differences between 1.1 and version 1.2
Log of other versions for file ai05s/ai05-0185-1.txt

--- ai05s/ai05-0185-1.txt	2009/11/03 02:04:55	1.1
+++ ai05s/ai05-0185-1.txt	2010/08/12 03:30:57	1.2
@@ -1,6 +1,8 @@
-!standard A.3.5 (0)                                09-11-02  AI05-0185-1/01
+!standard A.3.5 (0)                                10-08-11  AI05-0185-1/02
 !standard A.3.6 (0)
 !class amendment 09-11-02
+!status Amendment 2012 10-08-11
+!status ARG Approved  8-0-0  10-06-20
 !status work item 09-11-02
 !status received 09-11-02
 !priority Medium
@@ -53,16 +55,15 @@
    function Is_Control (Item : Wide_Character) return Boolean;
 
    function Is_Letter (Item : Wide_Character) return Boolean;
-   pragma Inline (Is_Letter);
 
    function Is_Lower (Item : Wide_Character) return Boolean;
 
    function Is_Upper (Item : Wide_Character) return Boolean;
 
    function Is_Digit (Item : Wide_Character) return Boolean;
-   pragma Inline (Is_Digit);
 
-   function Is_Decimal_Digit (Item : Wide_Character) return Boolean;
+   function Is_Decimal_Digit (Item : Wide_Character) return Boolean
+      renames Is_Digit;
 
    function Is_Hexadecimal_Digit (Item : Wide_Character) return Boolean;
 
@@ -71,20 +72,16 @@
    function Is_Special (Item : Wide_Character) return Boolean;
 
    function Is_Line_Terminator (Item : Wide_Character) return Boolean;
-   pragma Inline (Is_Line_Terminator);
 
    function Is_Mark (Item : Wide_Character) return Boolean;
 
    function Is_Other (Item : Wide_Character) return Boolean;
 
    function Is_Punctuation (Item : Wide_Character) return Boolean;
-   pragma Inline (Is_Punctuation);
 
    function Is_Space (Item : Wide_Character) return Boolean;
-   pragma Inline (Is_Space);
 
    function Is_Graphic (Item : Wide_Character) return Boolean;
-   pragma Inline (Is_Non_Graphic);
 
    function To_Lower (Item : Wide_Character) return Wide_Character;
    function To_Upper (Item : Wide_Character) return Wide_Character;
@@ -99,82 +96,78 @@
    function Is_Control (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      other_control, otherwise returns false.
+      other_control, otherwise returns False.
 
    function Is_Letter (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
       letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier,
-      letter_other, or number_letter. Otherwise returns false.
+      letter_other, or number_letter. Otherwise returns False.
 
    function Is_Lower (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      letter_lowercase, otherwise returns false.
+      letter_lowercase, otherwise returns False.
 
    function Is_Upper (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      letter_uppercase, otherwise returns false.
+      letter_uppercase, otherwise returns False.
 
    function Is_Digit (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      number_decimal, otherwise returns false.
-
-   function Is_Decimal_Digit (Item : Wide_Character) return Boolean;
+      number_decimal, otherwise returns False.
 
-      This function is a rename of Is_Digit.
-
    function Is_Hexadecimal_Digit (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
       number_decimal, or is in the range 'A' .. 'F' or 'a' .. 'f', otherwise
-      returns false.
+      returns False.
 
    function Is_Alphanumeric (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
       letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier,
-      letter_other, number_letter, or number_decimal. Otherwise returns false.
+      letter_other, number_letter, or number_decimal. Otherwise returns False.
 
    function Is_Special (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
       graphic_character, but not categorized as letter_uppercase,
       letter_lowercase, letter_titlecase, letter_modifier, letter_other,
-      number_letter, or number_decimal. Otherwise returns false.
+      number_letter, or number_decimal. Otherwise returns False.
 
    function Is_Line_Terminator (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
       separator_line or separator_paragraph, or if Item is a conventional line
-      terminator character (CR, LF, VT, or FF). Otherwise returns false.
+      terminator character (CR, LF, VT, or FF). Otherwise returns False.
 
    function Is_Mark (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      mark_non_spacing or mark_spacing_combining, otherwise returns false.
+      mark_non_spacing or mark_spacing_combining, otherwise returns False.
 
    function Is_Other (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      other_format, otherwise returns false.
+      other_format, otherwise returns False.
 
    function Is_Punctuation (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      punctuation_connector, otherwise returns false.
+      punctuation_connector, otherwise returns False.
 
    function Is_Space (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      separator_space, otherwise returns false.
+      separator_space, otherwise returns False.
 
    function Is_Graphic (Item : Wide_Character) return Boolean;
 
       Returns True if the Wide_Character designated by Item is categorized as
-      graphic_character, otherwise returns false.
+      graphic_character, otherwise returns False.
 
    function To_Lower (Item : Wide_Character) return Wide_Character;
 
@@ -254,8 +247,195 @@
 
 (See discussion.)
 
+!corrigendum A.3.5(0)
+
+@dinsc
+
+The package Wide_Characters.Handling provides operations for classifying
+Wide_Characters and case folding for Wide_Characters.
+
+@s8<@i<Static Semantics>>
+
+The library package Wide_Characters.Handling has the following declaration:
+
+@xcode<@b<package> Ada.Wide_Characters.Handling @b<is>
+
+   @b<function> Is_Control (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Letter (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Lower (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Upper (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Digit (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Decimal_Digit (Item : Wide_Character) @b<return> Boolean
+      @b<renames> Is_Digit;
+
+   @b<function> Is_Hexadecimal_Digit (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Alphanumeric (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Special (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Line_Terminator (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Mark (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Other (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Punctuation (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Space (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> Is_Graphic (Item : Wide_Character) @b<return> Boolean;
+
+   @b<function> To_Lower (Item : Wide_Character) @b<return> Wide_Character;
+   @b<function> To_Upper (Item : Wide_Character) @b<return> Wide_Character;
+
+   @b<function> To_Lower (Item : Wide_String) @b<return> Wide_String;
+   @b<function> To_Upper (Item : Wide_String) @b<return> Wide_String;
+
+@b<end> Ada.Wide_Characters.Handling;>
+
+The subprograms defined in Ada.Wide_Characters.Handling are locale independent.
+
+@xcode<@b<function> Is_Control (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<other_control>, otherwise returns False.>
+
+@xcode<@b<function> Is_Letter (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_uppercase>, @fa<letter_lowercase>, @fa<letter_titlecase>,
+@fa<letter_modifier>, @fa<letter_other>, or @fa<number_letter>. Otherwise
+returns False.>
+
+@xcode<@b<function> Is_Lower (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_lowercase>, otherwise returns False.>
+
+@xcode<@b<function> Is_Upper (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_uppercase>, otherwise returns False.>
+
+@xcode<@b<function> Is_Digit (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<number_decimal>, otherwise returns False.>
+
+@xcode<@b<function> Is_Hexadecimal_Digit (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<number_decimal>, or is in the range 'A' .. 'F' or 'a' .. 'f', otherwise
+returns False.>
+
+@xcode<@b<function> Is_Alphanumeric (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_uppercase>, @fa<letter_lowercase>, @fa<letter_titlecase>,
+@fa<letter_modifier>, @fa<letter_other>, @fa<number_letter>, or
+@fa<number_decimal>. Otherwise returns False.>
+
+@xcode<@b<function> Is_Special (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<graphic_character>, but not categorized as @fa<letter_uppercase>,
+@fa<letter_lowercase>, @fa<letter_titlecase>, @fa<letter_modifier>,
+@fa<letter_other>, @fa<number_letter>, or number_decimal. Otherwise returns
+False.>
+
+@xcode<@b<function> Is_Line_Terminator (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<separator_line> or @fa<separator_paragraph>, or if Item is a conventional
+line terminator character (CR, LF, VT, or FF). Otherwise returns False.>
+
+@xcode<@b<function> Is_Mark (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<mark_non_spacing> or @fa<mark_spacing_combining>, otherwise returns False.>
+
+@xcode<@b<function> Is_Other (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<other_format>, otherwise returns False.>
+
+@xcode<@b<function> Is_Punctuation (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<punctuation_connector>, otherwise returns False.>
+
+@xcode<@b<function> Is_Space (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<separator_space>, otherwise returns False.>
+
+@xcode<@b<function> Is_Graphic (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<graphic_character>, otherwise returns False.>
+
+@xcode<@b<function> To_Lower (Item : Wide_Character) @b<return> Wide_Character;>
+
+@xindent<Returns the Simple Lowercase Mapping 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.>
+
+@xcode<@b<function> To_Lower (Item : Wide_String) @b<return> Wide_String;>
+
+@xindent<Returns the result of applying the To_Lower Wide_Character to
+Wide_Character conversion to each element of the Wide_String designated by Item.
+The result is the null Wide_String if the value of the formal parameter is the
+null Wide_String.>
+
+@xcode<@b<function> To_Upper (Item : Wide_Character) @b<return> Wide_Character;>
+
+@xindent<Returns the Simple Uppercase Mapping 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.>
+
+@xcode<@b<function> To_Upper (Item : Wide_String) @b<return> Wide_String;>
+
+@xindent<Returns the result of applying the To_Upper Wide_Character to
+Wide_Character conversion to each element of the Wide_String designated by Item.
+The result is the null Wide_String if the value of the formal parameter is the
+null Wide_String.>
+
+
+!corrigendum A.3.6(0)
+
+@dinsc
+
+The package Wide_Wide_Characters.Handling has the same contents as
+Wide_Character.Handling except that each occurrence of Wide_Character is
+replaced by Wide_Wide_Character, and each occurrence of Wide_String is replaced
+by Wide_Wide_String.
+
 !ACATS test
 
+ACATS C-Tests should be constructed for these packages.
+
 !appendix
+
+From: Randy Brukardt
+Sent: Wednesday, August 11, 2010  9:44 PM
+
+The text in this AI says:
+
+   function Is_Decimal_Digit (Item : Wide_Character) return Boolean;
+
+      This function is a rename of Is_Digit.
+
+We don't write this in English, we just do it when desired. That is, the
+specification ought to be:
+
+   function Is_Decimal_Digit (Item : Wide_Character) return Boolean renames Is_Digit;
+
+and the text description removed.
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent