From: Juerg Billeter Date: Tue, 29 Jan 2008 20:29:22 +0000 (+0000) Subject: bind GString as GLib.StringBuilder to avoid confusion between string and X-Git-Tag: VALA_0_1_7~167 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb991fa3ba5083ef819291b4f25e74ae6883336b;p=thirdparty%2Fvala.git bind GString as GLib.StringBuilder to avoid confusion between string and 2008-01-29 Juerg Billeter * gobject/valaccodegenerator.vala, vapi/glib-2.0.vapi: bind GString as GLib.StringBuilder to avoid confusion between string and String svn path=/trunk/; revision=924 --- diff --git a/ChangeLog b/ChangeLog index 26673d8fc..46447ba44 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-01-29 Jürg Billeter + + * gobject/valaccodegenerator.vala, vapi/glib-2.0.vapi: bind GString + as GLib.StringBuilder to avoid confusion between string and String + 2008-01-29 Jürg Billeter * vala/valadatatype.vala: fix crash on invalid code, fixes bug 512306 diff --git a/gobject/valaccodegenerator.vala b/gobject/valaccodegenerator.vala index 9cad4cfe4..66693b4c5 100644 --- a/gobject/valaccodegenerator.vala +++ b/gobject/valaccodegenerator.vala @@ -98,6 +98,7 @@ public class Vala.CCodeGenerator : CodeGenerator { public Typesymbol glist_type; public Typesymbol gslist_type; public Typesymbol gstring_type; + public Typesymbol gstringbuilder_type; public Typesymbol garray_type; public DataType gquark_type; public DataType mutex_type; @@ -218,7 +219,8 @@ public class Vala.CCodeGenerator : CodeGenerator { gerror_type = (Typesymbol) glib_ns.scope.lookup ("Error"); glist_type = (Typesymbol) glib_ns.scope.lookup ("List"); gslist_type = (Typesymbol) glib_ns.scope.lookup ("SList"); - gstring_type = (Typesymbol) glib_ns.scope.lookup ("String"); + gstring_type = (Typesymbol) glib_ns.scope.lookup ("StringBuilder"); + gstringbuilder_type = (Typesymbol) glib_ns.scope.lookup ("String"); garray_type = (Typesymbol) glib_ns.scope.lookup ("Array"); gquark_type = new ValueType ((Typesymbol) glib_ns.scope.lookup ("Quark")); @@ -1099,7 +1101,7 @@ public class Vala.CCodeGenerator : CodeGenerator { cunrefcall.add_argument (new CCodeConstant ("NULL")); ccomma.append_expression (cunrefcall); } - } else if (type.data_type == gstring_type) { + } else if (type.data_type == gstring_type || type.data_type == gstringbuilder_type) { ccall.add_argument (new CCodeConstant ("TRUE")); } else if (type is ArrayType) { var array_type = (ArrayType) type; diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index c7b035e50..2f6abd9d5 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -2579,7 +2579,35 @@ namespace GLib { public static GLib.DestroyNotify g_list_free; /* Strings */ - + + [CCode (cname = "GString", cprefix = "g_string_", free_function = "g_string_free", type_id = "G_TYPE_GSTRING")] + public class StringBuilder : Boxed { + public StringBuilder (string init = ""); + [CCode (cname = "g_string_sized_new")] + public StringBuilder.sized (ulong dfl_size); + public weak StringBuilder assign (string! rval); + public weak StringBuilder append (string! val); + public weak StringBuilder append_c (char c); + public weak StringBuilder append_unichar (unichar wc); + public weak StringBuilder append_len (string! val, long len); + public weak StringBuilder prepend (string! val); + public weak StringBuilder prepend_c (char c); + public weak StringBuilder prepend_unichar (unichar wc); + public weak StringBuilder prepend_len (string! val, long len); + public weak StringBuilder insert (long pos, string! val); + public weak StringBuilder erase (long pos, long len); + + [PrintfFormat] + public void printf (string! format, ...); + [PrintfFormat] + public void append_printf (string! format, ...); + + public string str; + public long len; + public long allocated_len; + } + + // will be removed in Vala 0.1.8 [CCode (free_function = "g_string_free", type_id = "G_TYPE_GSTRING")] public class String : Boxed { public String (string init = "");