1------------------------------------------------------------------------------ 2-- -- 3-- GNAT RUN-TIME COMPONENTS -- 4-- -- 5-- S Y S T E M . W C H _ S T W -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 1992-2018, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. -- 17-- -- 18-- As a special exception under Section 7 of GPL version 3, you are granted -- 19-- additional permissions described in the GCC Runtime Library Exception, -- 20-- version 3.1, as published by the Free Software Foundation. -- 21-- -- 22-- You should have received a copy of the GNU General Public License and -- 23-- a copy of the GCC Runtime Library Exception along with this program; -- 24-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 25-- <http://www.gnu.org/licenses/>. -- 26-- -- 27-- GNAT was originally developed by the GNAT team at New York University. -- 28-- Extensive contributions were provided by Ada Core Technologies Inc. -- 29-- -- 30------------------------------------------------------------------------------ 31 32-- This package contains the routine used to convert strings to wide (wide) 33-- strings for use by wide (wide) image attribute. 34 35with System.WCh_Con; 36 37package System.WCh_StW is 38 pragma Pure; 39 40 procedure String_To_Wide_String 41 (S : String; 42 R : out Wide_String; 43 L : out Natural; 44 EM : System.WCh_Con.WC_Encoding_Method); 45 -- This routine simply takes its argument and converts it to wide string 46 -- format, storing the result in R (1 .. L), with L being set appropriately 47 -- on return. The caller guarantees that R is long enough to accommodate 48 -- the result. This is used in the context of the Wide_Image attribute, 49 -- where the argument is the corresponding 'Image attribute. Any wide 50 -- character escape sequences in the string are converted to the 51 -- corresponding wide character value. No syntax checks are made, it is 52 -- assumed that any such sequences are validly formed (this must be assured 53 -- by the caller), and results from the fact that Wide_Image is only used 54 -- on strings that have been built by the compiler, such as images of 55 -- enumeration literals. If the method for encoding is a shift-in, 56 -- shift-out convention, then it is assumed that normal (non-wide 57 -- character) mode holds at the start and end of the argument string. EM 58 -- indicates the wide character encoding method. 59 -- Note: in the WCEM_Brackets case, the brackets escape sequence is used 60 -- only for codes greater than 16#FF#. 61 62 procedure String_To_Wide_Wide_String 63 (S : String; 64 R : out Wide_Wide_String; 65 L : out Natural; 66 EM : System.WCh_Con.WC_Encoding_Method); 67 -- Same function with Wide_Wide_String output 68 69end System.WCh_StW; 70