]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
bind GString as GLib.StringBuilder to avoid confusion between string and
authorJuerg Billeter <j@bitron.ch>
Tue, 29 Jan 2008 20:29:22 +0000 (20:29 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Tue, 29 Jan 2008 20:29:22 +0000 (20:29 +0000)
2008-01-29  Juerg Billeter  <j@bitron.ch>

* 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

ChangeLog
gobject/valaccodegenerator.vala
vapi/glib-2.0.vapi

index 26673d8fc28055b6045eb56b8866487907d310ee..46447ba4496abc97203391d5bb6af9c7da8cb81b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-29  Jürg Billeter  <j@bitron.ch>
+
+       * 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  <j@bitron.ch>
 
        * vala/valadatatype.vala: fix crash on invalid code, fixes bug 512306
index 9cad4cfe49a4143d338dcf804418fe4129dd9565..66693b4c5c3659fc2b67c86096f040874fdb70e7 100644 (file)
@@ -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;
index c7b035e502aa0393f22c7ab63c7fad4a3df8ffb6..2f6abd9d505773611bb941103d901e4e7429c578 100644 (file)
@@ -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 = "");