From 5c5245d1ca3616c0d4f861efff07418ddc67e294 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Sun, 18 Sep 2016 13:27:35 +0200 Subject: glib-2.0: Add UCS-4 and UTF-16 related bindings https://bugzilla.gnome.org/show_bug.cgi?id=740818 --- vapi/glib-2.0.vapi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index 501df3404..9d145106b 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -959,6 +959,22 @@ public struct unichar { [CCode (cname = "G_UNICHAR_MAX_DECOMPOSITION_LENGTH")] public const int MAX_DECOMPOSITION_LENGTH; + + [CCode (cname = "G_GUINT32_FORMAT")] + public const string FORMAT; + [CCode (cname = "G_GINT32_MODIFIER")] + public const string FORMAT_MODIFIER; +} + +[SimpleType] +[GIR (name = "guint16")] +[CCode (cname = "gunichar2", cheader_filename = "glib.h", default_value = "0U", type_signature = "q", has_type_id = false)] +[IntegerType (rank = 5)] +public struct unichar2 { + [CCode (cname = "G_GUINT16_FORMAT")] + public const string FORMAT; + [CCode (cname = "G_GINT16_MODIFIER")] + public const string FORMAT_MODIFIER; } [Compact] @@ -1412,6 +1428,52 @@ public class string { public unowned string to_string () { return this; } + + [CCode (cname = "g_utf8_to_utf16")] + public string16 to_utf16 (long len = -1, out long? items_read = null, out long? items_written = null) throws GLib.ConvertError; + [CCode (cname = "g_utf8_to_ucs4")] + public string32 to_utf32 (long len = -1, out long? items_read = null, out long? items_written = null) throws GLib.ConvertError; + [CCode (cname = "g_utf8_to_ucs4_fast")] + public string32 to_utf32_fast (long len = -1, out long? items_written = null); + +} + +[Compact] +[Immutable] +[GIR (name = "gunichar")] +[CCode (cname = "gunichar", const_cname = "const gunichar", free_function = "g_free", cheader_filename = "glib.h")] +public class string32 { + [CCode (cname = "g_ucs4_to_utf16")] + public string16 to_utf16 (long len = -1, out long? items_read = null, out long? items_written = null) throws GLib.ConvertError; + [CCode (cname = "g_ucs4_to_utf8")] + public string to_utf8 (long len = -1, out long? items_read = null, out long? items_written = null) throws GLib.ConvertError; + + public string? to_string () { + try { + return this.to_utf8 (); + } catch (GLib.ConvertError e) { + return null; + } + } +} + +[Compact] +[Immutable] +[GIR (name = "guint16")] +[CCode (cname = "gunichar2", const_cname = "const gunichar2", free_function = "g_free", cheader_filename = "glib.h")] +public class string16 { + [CCode (cname = "g_utf16_to_ucs4")] + public string32 to_utf32 (long len = -1, out long? items_read = null, out long? items_written = null) throws GLib.ConvertError; + [CCode (cname = "g_utf16_to_utf8")] + public string to_utf8 (long len = -1, out long? items_read = null, out long? items_written = null) throws GLib.ConvertError; + + public string? to_string () { + try { + return this.to_utf8 (); + } catch (GLib.ConvertError e) { + return null; + } + } } [CCode (cprefix = "G", lower_case_cprefix = "g_", cheader_filename = "glib.h", gir_namespace = "GLib", gir_version = "2.0")] -- cgit v1.2.1