----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 2001-2003 ACT-Europe -- -- -- -- This library is free software; you can redistribute it and/or -- -- modify it under the terms of the GNU General Public -- -- License as published by the Free Software Foundation; either -- -- version 2 of the License, or (at your option) any later version. -- -- -- -- This library is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- -- General Public License for more details. -- -- -- -- You should have received a copy of the GNU General Public -- -- License along with this library; if not, write to the -- -- Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- -- Boston, MA 02111-1307, USA. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- -- This package provides definitions for string conversions and i18n. -- See also Glib.Unicode. -- -- -- 1.3.11 -- Glib, the general-purpose library with Glib.Error; use Glib.Error; with Interfaces.C.Strings; use Interfaces.C.Strings; package Glib.Convert is pragma Preelaborate; -- Convert_Error domain for GErrors: No_Conversion : constant := 0; Illegal_Sequence : constant := 1; Failed : constant := 2; Partial_Input : constant := 3; Bad_URI : constant := 4; Not_Absolute_Path : constant := 5; function Convert_Error_Domain return GQuark; -- Return the error domain associated with Glib.Convert. procedure Convert (Str : String; To_Codeset : String; From_Codeset : String; Bytes_Read : out Natural; Bytes_Written : out Natural; Error : GError_Access := null; Result : out String); -- Convert a string from one character set to another. -- -- Str: String to convert -- Result: String converted, if no error. -- To_Codeset: Name of character set into which to convert Str -- From_Codeset: Character set of Str. -- Bytes_Read: Number of bytes in the input string that were -- successfully converted. -- Even if the conversion was successful, this may be -- less than Len if there were partial characters -- at the end of the input. If the error -- Illegal_Sequence occurs, the value -- stored will the byte offset after the last valid -- input sequence. -- Bytes_Written: Number of bytes stored in the output buffer. -- Error: Location to store the error occuring, ignored if null. -- Any of the errors in Convert_Error_Domain may occur. function Convert (Str : String; To_Codeset : String; From_Codeset : String; Error : GError_Access := null) return String; -- Same as above, but return a String directly. procedure Convert (Str : chars_ptr; Len : Natural; To_Codeset : String; From_Codeset : String; Bytes_Read : out Natural; Bytes_Written : out Natural; Error : GError_Access := null; Result : out String); -- Same as Convert procedure, but take a C string as input. function Convert (Str : String; To_Codeset : String; From_Codeset : String; Bytes_Read : access Natural; Bytes_Written : access Natural; Error : GError_Access := null) return chars_ptr; -- Same as Convert procedure, but return the result as a C string. function Convert (Str : chars_ptr; Len : Natural; To_Codeset : String; From_Codeset : String; Bytes_Read : access Natural; Bytes_Written : access Natural; Error : GError_Access := null) return chars_ptr; -- Same as Convert procedure, but take and return the result as a C string. procedure Locale_To_UTF8 (OS_String : String; Bytes_Read : out Natural; Bytes_Written : out Natural; Error : GError_Access := null; Result : out String); -- Convert a string which is in the encoding used for strings by -- the C runtime (usually the same as that used by the operating -- system) in the current locale into a UTF-8 string. -- -- OS_String: A string in the encoding of the current locale -- Bytes_Read: Number of bytes in the input string that were -- successfully converted. -- Even if the conversion was successful, this may be -- less than Len if there were partial characters -- at the end of the input. If the error -- Illegal_Sequence occurs, the value -- stored will the byte offset after the last valid -- input sequence. -- Bytes_Written: Number of bytes stored in Result. -- Error: Location to store the error occuring, ignored if null. -- Any of the errors in Convert_Error_Domain may occur. function Locale_To_UTF8 (OS_String : String; Bytes_Read : access Natural; Bytes_Written : access Natural; Error : GError_Access := null) return chars_ptr; -- Same as procedure Locale_To_UTF8, but return the raw C string for -- efficiency. The caller is responsible for freeing the resulting string. function Locale_To_UTF8 (OS_String : String) return String; -- Same as procedure Locale_To_UTF8, but return only the String. procedure Locale_From_UTF8 (UTF8_String : String; Bytes_Read : out Natural; Bytes_Written : out Natural; Error : GError_Access := null; Result : out String); -- Convert a string from UTF-8 to the encoding used for strings by -- the C runtime (usually the same as that used by the operating -- system) in the current locale. -- -- UTF8_String: A UTF-8 encoded string -- Bytes_Read: Number of bytes in the input string that were -- successfully converted. -- Even if the conversion was successful, this may be -- less than Len if there were partial characters -- at the end of the input. If the error -- Illegal_Sequence occurs, the value -- stored will the byte offset after the last valid -- input sequence. -- Bytes_Written: Number of bytes stored in the output buffer. -- Error: Location to store the error occuring, ignored if null. -- Any of the errors in Convert_Error_Domain may occur. function Locale_From_UTF8 (UTF8_String : String; Bytes_Read : access Natural; Bytes_Written : access Natural; Error : GError_Access := null) return chars_ptr; -- Same as procedure Locale_From_UTF8, but return the raw C string for -- efficiency. The caller is responsible for freeing the resulting string. -- Use the C "free" function to free this. function Locale_From_UTF8 (UTF8_String : String) return String; -- Same as procedure Locale_From_UTF8, but return only the String. function Filename_To_UTF8 (OS_String : String; Error : GError_Access := null) return String; -- Convert a string which is in the encoding used for filenames -- into a UTF-8 string. function Filename_From_UTF8 (UTF8_String : String; Error : GError_Access := null) return String; -- Convert a string from UTF-8 to the encoding used for filenames. function Filename_From_URI (URI : String; Hostname : access chars_ptr; Error : GError_Access := null) return String; -- Convert an escaped UTF-8 encoded URI to a local filename in the -- encoding used for filenames. -- -- URI: A uri describing a filename (escaped, encoded in UTF-8). -- Hostname: Location to store hostname for the URI. -- If there is no hostname in the URI, null will be -- stored in this location. -- Error: Location to store the error occuring, ignored if null. -- Any of the errors in Convert_Error_Domain may occur. function Filename_To_URI (Filename : String; Hostname : String := ""; Error : GError_Access := null) return String; -- Convert an absolute filename to an escaped UTF-8 encoded URI. -- -- Filename: An absolute filename specified in the encoding -- used for filenames by the operating system. -- Hostname: A UTF-8 encoded hostname, or "" for none. -- Error: Location to store the error occuring, ignored if null. -- Any of the errors in Convert_Error may occur. function Escape_Text (S : String) return String; -- Escape the text so that it is interpreted as-is by the Pango markup -- language private pragma Import (C, Convert_Error_Domain, "g_convert_error_quark"); end Glib.Convert;