]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: Add cprefix metadata argument for classes
authorLuca Bruno <lucabru@src.gnome.org>
Mon, 27 Jun 2011 18:17:12 +0000 (20:17 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Mon, 27 Jun 2011 18:17:12 +0000 (20:17 +0200)
vala/valagirparser.vala

index 567d9beef6143c61220fa9404e95f5cbd862a2fa..b64f2ddf4d0064c8ef2fb39f0ef8e714218d4890 100644 (file)
@@ -66,7 +66,8 @@ public class Vala.GirParser : CodeVisitor {
                PRINTF_FORMAT,
                ARRAY_LENGTH_FIELD,
                SENTINEL,
-               CLOSURE;
+               CLOSURE,
+               CPREFIX;
 
                public static ArgumentType? from_string (string name) {
                        var enum_class = (EnumClass) typeof(ArgumentType).class_ref ();
@@ -565,6 +566,9 @@ public class Vala.GirParser : CodeVisitor {
                                return "";
                        }
                        if (new_symbol) {
+                               if (metadata.has_argument (ArgumentType.CPREFIX)) {
+                                       return metadata.get_string (ArgumentType.CPREFIX);
+                               }
                                return "%s%s_".printf (parent.get_lower_case_cprefix (), Symbol.camel_case_to_lower_case (name));
                        } else {
                                return symbol.get_lower_case_cprefix ();
@@ -2193,6 +2197,9 @@ public class Vala.GirParser : CodeVisitor {
                        if (cname != null) {
                                cl.set_cname (cname);
                        }
+                       if (metadata.has_argument (ArgumentType.CPREFIX)) {
+                               cl.set_lower_case_cprefix (metadata.get_string (ArgumentType.CPREFIX));
+                       }
 
                        if (parent != null) {
                                cl.add_base_type (parse_type_from_gir_name (parent));