From: Rico Tzschichholz Date: Sun, 18 Sep 2016 11:27:35 +0000 (+0200) Subject: glib-2.0: Add UCS-4 and UTF-16 related bindings X-Git-Tag: 0.35.1~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c5245d1ca3616c0d4f861efff07418ddc67e294;p=thirdparty%2Fvala.git glib-2.0: Add UCS-4 and UTF-16 related bindings https://bugzilla.gnome.org/show_bug.cgi?id=740818 --- 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")]