diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-06-17 16:58:56 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-06-17 16:58:56 +0200 |
commit | 893033e08b1c01ae771099f6ef2066b88ffb8097 (patch) | |
tree | 827f362e7665dc988547e1603620dc1cfdd3b809 /vala/valagirparser.vala | |
parent | 0d80b5ae9c3de4ce3ace83dbd859b065f9ec1665 (diff) | |
download | vala-893033e08b1c01ae771099f6ef2066b88ffb8097.tar.gz |
girparser: Actually respect given cprefix metadata for enumerations
Diffstat (limited to 'vala/valagirparser.vala')
-rw-r--r-- | vala/valagirparser.vala | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 33d005a41..3b0743f24 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -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") { |