]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: Properly handle the c:symbol-prefix hint for lower_case_cprefix
authorLuca Bruno <lucabru@src.gnome.org>
Sun, 24 Jul 2011 19:38:42 +0000 (21:38 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Sun, 24 Jul 2011 19:49:40 +0000 (21:49 +0200)
vala/valagirparser.vala

index e7c2ca65c274f7219f718c04fcd7d0b3b315d066..67d9941985287ec57bc4458fbf96938716ca259a 100644 (file)
@@ -573,7 +573,11 @@ public class Vala.GirParser : CodeVisitor {
                                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));
+                               if (girdata != null && girdata["c:symbol-prefix"] != null) {
+                                       return "%s%s_".printf (parent.get_lower_case_cprefix (), girdata["c:symbol-prefix"]);
+                               } else {
+                                       return "%s%s_".printf (parent.get_lower_case_cprefix (), Symbol.camel_case_to_lower_case (name));
+                               }
                        } else {
                                return symbol.get_lower_case_cprefix ();
                        }
@@ -860,6 +864,11 @@ public class Vala.GirParser : CodeVisitor {
                                                symbol.add_cheader_filename (filename);
                                        }
                                }
+
+                               // lower_case_cprefix
+                               if (symbol is Class) {
+                                       ((Class) symbol).set_lower_case_cprefix (get_lower_case_cprefix ());
+                               }
                        }
 
                        if (!(new_symbol && merged) && is_container (symbol)) {
@@ -2207,9 +2216,6 @@ 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));
-                       }
                        cl.is_abstract = reader.get_attribute ("abstract") == "1";
 
                        if (parent != null) {