]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: Actually respect given cprefix metadata for enumerations
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 17 Jun 2020 14:58:56 +0000 (16:58 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 17 Jun 2020 14:58:56 +0000 (16:58 +0200)
vala/valagirparser.vala

index 33d005a41cdc25fba3dbacac011e6cdd8c369df6..3b0743f249b8e3b1505a7e6aea321545a6b9e114 100644 (file)
@@ -2386,7 +2386,12 @@ public class Vala.GirParser : CodeVisitor {
 
                sym.access = SymbolAccessibility.PUBLIC;
 
-               string common_prefix = null;
+               string? common_prefix = null;
+               bool explicit_prefix = false;
+               if (metadata.has_argument (ArgumentType.CPREFIX)) {
+                       sym.set_attribute_string ("CCode", "cprefix", metadata.get_string (ArgumentType.CPREFIX));
+                       explicit_prefix = true;
+               }
                bool has_member = false;
 
                next ();
@@ -2403,9 +2408,10 @@ public class Vala.GirParser : CodeVisitor {
                                has_member = true;
                                if (error_domain) {
                                        parse_error_member ();
-                                       calculate_common_prefix (ref common_prefix, old_current.get_cname ());
                                } else {
                                        parse_enumeration_member ();
+                               }
+                               if (!explicit_prefix) {
                                        calculate_common_prefix (ref common_prefix, old_current.get_cname ());
                                }
                        } else if (reader.name == "function") {