Index: impunit.adb
===================================================================
--- impunit.adb	(revision 165080)
+++ impunit.adb	(working copy)
@@ -177,6 +177,7 @@ package body Impunit is
       --  harmless (and useful) to make then available in Ada 95 mode, since
       --  they do not deal with Wide_Wide_Character.
 
+     "a-wichha",    -- Ada.Wide_Characters.Handling
      "a-stuten",    -- Ada.Strings.UTF_Encoding
      "a-suenco",    -- Ada.Strings.UTF_Encoding.Conversions
      "a-suesen",    -- Ada.Strings.UTF_Encoding.String_Encoding
@@ -426,6 +427,7 @@ package body Impunit is
      "a-wwboio",    -- Ada.Wide_Text_IO.Wide_Bounded_IO
      "a-wwunio",    -- Ada.Wide_Text_IO.Wide_Unbounded_IO
      "a-zchara",    -- Ada.Wide_Wide_Characters
+     "a-zchhan",    -- Ada.Wide_Wide_Characters.Handling
      "a-ztcoio",    -- Ada.Wide_Wide_Text_IO.Complex_IO
      "a-ztedit",    -- Ada.Wide_Wide_Text_IO.Editing
      "a-zttest",    -- Ada.Wide_Wide_Text_IO.Text_Streams
Index: a-zchhan.adb
===================================================================
--- a-zchhan.adb	(revision 0)
+++ a-zchhan.adb	(revision 0)
@@ -0,0 +1,186 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                         GNAT RUN-TIME COMPONENTS                         --
+--                                                                          --
+--    A D A . W I D E _ W I D E _ C H A R A C T E R S . H A N D L I N G     --
+--                                                                          --
+--                                 B o d y                                  --
+--                                                                          --
+--            Copyright (C) 2010, Free Software Foundation, Inc.            --
+--                                                                          --
+-- GNAT is free software;  you can  redistribute it  and/or modify it under --
+-- terms of the  GNU General Public License as published  by the Free Soft- --
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+--                                                                          --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception,   --
+-- version 3.1, as published by the Free Software Foundation.               --
+--                                                                          --
+-- You should have received a copy of the GNU General Public License and    --
+-- a copy of the GCC Runtime Library Exception along with this program;     --
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+-- <http://www.gnu.org/licenses/>.                                          --
+--                                                                          --
+-- GNAT was originally developed  by the GNAT team at  New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
+--                                                                          --
+------------------------------------------------------------------------------
+
+with Ada.Wide_Wide_Characters.Unicode; use Ada.Wide_Wide_Characters.Unicode;
+
+package body Ada.Wide_Wide_Characters.Handling is
+
+   ---------------------
+   -- Is_Alphanumeric --
+   ---------------------
+
+   function Is_Alphanumeric (Item : Wide_Wide_Character) return Boolean is
+   begin
+      return Is_Letter (Item) or else Is_Digit (Item);
+   end Is_Alphanumeric;
+
+   ----------------
+   -- Is_Control --
+   ----------------
+
+   function Is_Control (Item : Wide_Wide_Character) return Boolean is
+   begin
+      return Get_Category (Item) = Cc;
+   end Is_Control;
+
+   --------------
+   -- Is_Digit --
+   --------------
+
+   function Is_Digit (Item : Wide_Wide_Character) return Boolean
+     renames Ada.Wide_Wide_Characters.Unicode.Is_Digit;
+
+   ----------------
+   -- Is_Graphic --
+   ----------------
+
+   function Is_Graphic (Item : Wide_Wide_Character) return Boolean is
+   begin
+      return not Is_Non_Graphic (Item);
+   end Is_Graphic;
+
+   --------------------------
+   -- Is_Hexadecimal_Digit --
+   --------------------------
+
+   function Is_Hexadecimal_Digit (Item : Wide_Wide_Character) return Boolean is
+   begin
+      return Is_Digit (Item)
+        or else Item in 'A' .. 'F'
+        or else Item in 'a' .. 'f';
+   end Is_Hexadecimal_Digit;
+
+   ---------------
+   -- Is_Letter --
+   ---------------
+
+   function Is_Letter (Item : Wide_Wide_Character) return Boolean
+     renames Ada.Wide_Wide_Characters.Unicode.Is_Letter;
+
+   ------------------------
+   -- Is_Line_Terminator --
+   ------------------------
+
+   function Is_Line_Terminator (Item : Wide_Wide_Character) return Boolean
+     renames Ada.Wide_Wide_Characters.Unicode.Is_Line_Terminator;
+
+   --------------
+   -- Is_Lower --
+   --------------
+
+   function Is_Lower (Item : Wide_Wide_Character) return Boolean is
+   begin
+      return Get_Category (Item) = Ll;
+   end Is_Lower;
+
+   -------------
+   -- Is_Mark --
+   -------------
+
+   function Is_Mark (Item : Wide_Wide_Character) return Boolean
+     renames Ada.Wide_Wide_Characters.Unicode.Is_Mark;
+
+   --------------
+   -- Is_Other --
+   --------------
+
+   function Is_Other (Item : Wide_Wide_Character) return Boolean
+     renames Ada.Wide_Wide_Characters.Unicode.Is_Other;
+
+   --------------------
+   -- Is_Punctuation --
+   --------------------
+
+   function Is_Punctuation (Item : Wide_Wide_Character) return Boolean
+     renames Ada.Wide_Wide_Characters.Unicode.Is_Punctuation;
+
+   --------------
+   -- Is_Space --
+   --------------
+
+   function Is_Space (Item : Wide_Wide_Character) return Boolean
+     renames Ada.Wide_Wide_Characters.Unicode.Is_Space;
+
+   ----------------
+   -- Is_Special --
+   ----------------
+
+   function Is_Special (Item : Wide_Wide_Character) return Boolean is
+   begin
+      return Is_Graphic (Item) and then not Is_Alphanumeric (Item);
+   end Is_Special;
+
+   --------------
+   -- Is_Upper --
+   --------------
+
+   function Is_Upper (Item : Wide_Wide_Character) return Boolean is
+   begin
+      return Get_Category (Item) = Lu;
+   end Is_Upper;
+
+   --------------
+   -- To_Lower --
+   --------------
+
+   function To_Lower (Item : Wide_Wide_Character) return Wide_Wide_Character
+     renames Ada.Wide_Wide_Characters.Unicode.To_Lower_Case;
+
+   function To_Lower (Item : Wide_Wide_String) return Wide_Wide_String is
+      Result : Wide_Wide_String (Item'Range);
+
+   begin
+      for J in Result'Range loop
+         Result (J) := To_Lower (Item (J));
+      end loop;
+
+      return Result;
+   end To_Lower;
+
+   --------------
+   -- To_Upper --
+   --------------
+
+   function To_Upper (Item : Wide_Wide_Character) return Wide_Wide_Character
+     renames Ada.Wide_Wide_Characters.Unicode.To_Upper_Case;
+
+   function To_Upper (Item : Wide_Wide_String) return Wide_Wide_String is
+      Result : Wide_Wide_String (Item'Range);
+
+   begin
+      for J in Result'Range loop
+         Result (J) := To_Upper (Item (J));
+      end loop;
+
+      return Result;
+   end To_Upper;
+
+end Ada.Wide_Wide_Characters.Handling;

Property changes on: a-zchhan.adb
___________________________________________________________________
Name: svn:executable
   + *

Index: a-zchhan.ads
===================================================================
--- a-zchhan.ads	(revision 0)
+++ a-zchhan.ads	(revision 0)
@@ -0,0 +1,126 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                         GNAT RUN-TIME COMPONENTS                         --
+--                                                                          --
+--    A D A . W I D E _ W I D E _ C H A R A C T E R S . H A N D L I N G     --
+--                                                                          --
+--                                 S p e c                                  --
+--                                                                          --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT.  In accordance with the copyright of that document, you can freely --
+-- copy and modify this specification,  provided that if you redistribute a --
+-- modified version,  any changes that you have made are clearly indicated. --
+--                                                                          --
+------------------------------------------------------------------------------
+
+package Ada.Wide_Wide_Characters.Handling is
+
+   function Is_Control (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Control);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as other_control, otherwise returns false.
+
+   function Is_Letter (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Letter);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as letter_uppercase, letter_lowercase, letter_titlecase,
+   --  letter_modifier, letter_other, or number_letter. Otherwise returns
+   --  false.
+
+   function Is_Lower (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Lower);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as letter_lowercase, otherwise returns false.
+
+   function Is_Upper (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Upper);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as letter_uppercase, otherwise returns false.
+
+   function Is_Digit (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Digit);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as number_decimal, otherwise returns false.
+
+   function Is_Decimal_Digit (Item : Wide_Wide_Character) return Boolean
+     renames Is_Digit;
+
+   function Is_Hexadecimal_Digit (Item : Wide_Wide_Character) return Boolean;
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as number_decimal, or is in the range 'A' .. 'F' or
+   --  'a' .. 'f', otherwise returns false.
+
+   function Is_Alphanumeric (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Alphanumeric);
+   --  Returns True if the Wide_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.
+
+   function Is_Special (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Special);
+   --  Returns True if the Wide_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.
+
+   function Is_Line_Terminator (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Line_Terminator);
+   --  Returns True if the Wide_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.
+
+   function Is_Mark (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Mark);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as mark_non_spacing or mark_spacing_combining, otherwise
+   --  returns false.
+
+   function Is_Other (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Other);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as other_format, otherwise returns false.
+
+   function Is_Punctuation (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Punctuation);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as punctuation_connector, otherwise returns false.
+
+   function Is_Space (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Space);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as separator_space, otherwise returns false.
+
+   function Is_Graphic (Item : Wide_Wide_Character) return Boolean;
+   pragma Inline (Is_Graphic);
+   --  Returns True if the Wide_Wide_Character designated by Item is
+   --  categorized as graphic_character, otherwise returns false.
+
+   function To_Lower (Item : Wide_Wide_Character) return Wide_Wide_Character;
+   pragma Inline (To_Lower);
+   --  Returns the Simple Lowercase Mapping of the Wide_Wide_Character
+   --  designated by Item. If the Simple Lowercase Mapping does not exist for
+   --  the Wide_Wide_Character designated by Item, then the value of Item is
+   --  returned.
+
+   function To_Lower (Item : Wide_Wide_String) return Wide_Wide_String;
+   --  Returns the result of applying the To_Lower Wide_Wide_Character to
+   --  Wide_Wide_Character conversion to each element of the Wide_Wide_String
+   --  designated by Item. The result is the null Wide_Wide_String if the value
+   --  of the formal parameter is the null Wide_Wide_String.
+
+   function To_Upper (Item : Wide_Wide_Character) return Wide_Wide_Character;
+   pragma Inline (To_Upper);
+   --  Returns the Simple Uppercase Mapping of the Wide_Wide_Character
+   --  designated by Item. If the Simple Uppercase Mapping does not exist for
+   --  the Wide_Wide_Character designated by Item, then the value of Item is
+   --  returned.
+
+   function To_Upper (Item : Wide_Wide_String) return Wide_Wide_String;
+   --  Returns the result of applying the To_Upper Wide_Wide_Character to
+   --  Wide_Wide_Character conversion to each element of the Wide_Wide_String
+   --  designated by Item. The result is the null Wide_Wide_String if the value
+   --  of the formal parameter is the null Wide_Wide_String.
+
+end Ada.Wide_Wide_Characters.Handling;

Property changes on: a-zchhan.ads
___________________________________________________________________
Name: svn:executable
   + *

Index: Makefile.rtl
===================================================================
--- Makefile.rtl	(revision 165080)
+++ Makefile.rtl	(working copy)
@@ -268,6 +268,7 @@ GNATRTL_NONTASKING_OBJS= \
   a-tiunio$(objext) \
   a-unccon$(objext) \
   a-uncdea$(objext) \
+  a-wichha$(objext) \
   a-wichun$(objext) \
   a-widcha$(objext) \
   a-witeio$(objext) \
@@ -292,6 +293,7 @@ GNATRTL_NONTASKING_OBJS= \
   a-wwboio$(objext) \
   a-wwunio$(objext) \
   a-zchara$(objext) \
+  a-zchhan$(objext) \
   a-zchuni$(objext) \
   a-zrstfi$(objext) \
   a-ztcoau$(objext) \
Index: a-wichha.adb
===================================================================
--- a-wichha.adb	(revision 0)
+++ a-wichha.adb	(revision 0)
@@ -0,0 +1,186 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                         GNAT RUN-TIME COMPONENTS                         --
+--                                                                          --
+--         A D A . W I D E _ C H A R A C T E R S . H A N D L I N G          --
+--                                                                          --
+--                                 B o d y                                  --
+--                                                                          --
+--            Copyright (C) 2010, Free Software Foundation, Inc.            --
+--                                                                          --
+-- GNAT is free software;  you can  redistribute it  and/or modify it under --
+-- terms of the  GNU General Public License as published  by the Free Soft- --
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+--                                                                          --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception,   --
+-- version 3.1, as published by the Free Software Foundation.               --
+--                                                                          --
+-- You should have received a copy of the GNU General Public License and    --
+-- a copy of the GCC Runtime Library Exception along with this program;     --
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+-- <http://www.gnu.org/licenses/>.                                          --
+--                                                                          --
+-- GNAT was originally developed  by the GNAT team at  New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
+--                                                                          --
+------------------------------------------------------------------------------
+
+with Ada.Wide_Characters.Unicode; use Ada.Wide_Characters.Unicode;
+
+package body Ada.Wide_Characters.Handling is
+
+   ---------------------
+   -- Is_Alphanumeric --
+   ---------------------
+
+   function Is_Alphanumeric (Item : Wide_Character) return Boolean is
+   begin
+      return Is_Letter (Item) or else Is_Digit (Item);
+   end Is_Alphanumeric;
+
+   ----------------
+   -- Is_Control --
+   ----------------
+
+   function Is_Control (Item : Wide_Character) return Boolean is
+   begin
+      return Get_Category (Item) = Cc;
+   end Is_Control;
+
+   --------------
+   -- Is_Digit --
+   --------------
+
+   function Is_Digit (Item : Wide_Character) return Boolean
+     renames Ada.Wide_Characters.Unicode.Is_Digit;
+
+   ----------------
+   -- Is_Graphic --
+   ----------------
+
+   function Is_Graphic (Item : Wide_Character) return Boolean is
+   begin
+      return not Is_Non_Graphic (Item);
+   end Is_Graphic;
+
+   --------------------------
+   -- Is_Hexadecimal_Digit --
+   --------------------------
+
+   function Is_Hexadecimal_Digit (Item : Wide_Character) return Boolean is
+   begin
+      return Is_Digit (Item)
+        or else Item in 'A' .. 'F'
+        or else Item in 'a' .. 'f';
+   end Is_Hexadecimal_Digit;
+
+   ---------------
+   -- Is_Letter --
+   ---------------
+
+   function Is_Letter (Item : Wide_Character) return Boolean
+     renames Ada.Wide_Characters.Unicode.Is_Letter;
+
+   ------------------------
+   -- Is_Line_Terminator --
+   ------------------------
+
+   function Is_Line_Terminator (Item : Wide_Character) return Boolean
+     renames Ada.Wide_Characters.Unicode.Is_Line_Terminator;
+
+   --------------
+   -- Is_Lower --
+   --------------
+
+   function Is_Lower (Item : Wide_Character) return Boolean is
+   begin
+      return Get_Category (Item) = Ll;
+   end Is_Lower;
+
+   -------------
+   -- Is_Mark --
+   -------------
+
+   function Is_Mark (Item : Wide_Character) return Boolean
+     renames Ada.Wide_Characters.Unicode.Is_Mark;
+
+   --------------
+   -- Is_Other --
+   --------------
+
+   function Is_Other (Item : Wide_Character) return Boolean
+     renames Ada.Wide_Characters.Unicode.Is_Other;
+
+   --------------------
+   -- Is_Punctuation --
+   --------------------
+
+   function Is_Punctuation (Item : Wide_Character) return Boolean
+     renames Ada.Wide_Characters.Unicode.Is_Punctuation;
+
+   --------------
+   -- Is_Space --
+   --------------
+
+   function Is_Space (Item : Wide_Character) return Boolean
+     renames Ada.Wide_Characters.Unicode.Is_Space;
+
+   ----------------
+   -- Is_Special --
+   ----------------
+
+   function Is_Special (Item : Wide_Character) return Boolean is
+   begin
+      return Is_Graphic (Item) and then not Is_Alphanumeric (Item);
+   end Is_Special;
+
+   --------------
+   -- Is_Upper --
+   --------------
+
+   function Is_Upper (Item : Wide_Character) return Boolean is
+   begin
+      return Get_Category (Item) = Lu;
+   end Is_Upper;
+
+   --------------
+   -- To_Lower --
+   --------------
+
+   function To_Lower (Item : Wide_Character) return Wide_Character
+     renames Ada.Wide_Characters.Unicode.To_Lower_Case;
+
+   function To_Lower (Item : Wide_String) return Wide_String is
+      Result : Wide_String (Item'Range);
+
+   begin
+      for J in Result'Range loop
+         Result (J) := To_Lower (Item (J));
+      end loop;
+
+      return Result;
+   end To_Lower;
+
+   --------------
+   -- To_Upper --
+   --------------
+
+   function To_Upper (Item : Wide_Character) return Wide_Character
+     renames Ada.Wide_Characters.Unicode.To_Upper_Case;
+
+   function To_Upper (Item : Wide_String) return Wide_String is
+      Result : Wide_String (Item'Range);
+
+   begin
+      for J in Result'Range loop
+         Result (J) := To_Upper (Item (J));
+      end loop;
+
+      return Result;
+   end To_Upper;
+
+end Ada.Wide_Characters.Handling;

Property changes on: a-wichha.adb
___________________________________________________________________
Name: svn:executable
   + *

Index: a-wichha.ads
===================================================================
--- a-wichha.ads	(revision 0)
+++ a-wichha.ads	(revision 0)
@@ -0,0 +1,120 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                         GNAT RUN-TIME COMPONENTS                         --
+--                                                                          --
+--         A D A . W I D E _ C H A R A C T E R S . H A N D L I N G          --
+--                                                                          --
+--                                 S p e c                                  --
+--                                                                          --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT.  In accordance with the copyright of that document, you can freely --
+-- copy and modify this specification,  provided that if you redistribute a --
+-- modified version,  any changes that you have made are clearly indicated. --
+--                                                                          --
+------------------------------------------------------------------------------
+
+package Ada.Wide_Characters.Handling is
+
+   function Is_Control (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Control);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  other_control, otherwise returns false.
+
+   function Is_Letter (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Letter);
+   --  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.
+
+   function Is_Lower (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Lower);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  letter_lowercase, otherwise returns false.
+
+   function Is_Upper (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Upper);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  letter_uppercase, otherwise returns false.
+
+   function Is_Digit (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Digit);
+   --  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
+     renames 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.
+
+   function Is_Alphanumeric (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Alphanumeric);
+   --  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.
+
+   function Is_Special (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Special);
+   --  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.
+
+   function Is_Line_Terminator (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Line_Terminator);
+   --  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.
+
+   function Is_Mark (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Mark);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  mark_non_spacing or mark_spacing_combining, otherwise returns false.
+
+   function Is_Other (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Other);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  other_format, otherwise returns false.
+
+   function Is_Punctuation (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Punctuation);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  punctuation_connector, otherwise returns false.
+
+   function Is_Space (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Space);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  separator_space, otherwise returns false.
+
+   function Is_Graphic (Item : Wide_Character) return Boolean;
+   pragma Inline (Is_Graphic);
+   --  Returns True if the Wide_Character designated by Item is categorized as
+   --  graphic_character, otherwise returns false.
+
+   function To_Lower (Item : Wide_Character) return Wide_Character;
+   pragma Inline (To_Lower);
+   --  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.
+
+   function To_Lower (Item : Wide_String) return Wide_String;
+   --  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.
+
+   function To_Upper (Item : Wide_Character) return Wide_Character;
+   pragma Inline (To_Upper);
+   --  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.
+
+   function To_Upper (Item : Wide_String) return Wide_String;
+   --  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.
+
+end Ada.Wide_Characters.Handling;
