From: Luca Bruno Date: Tue, 26 Jul 2011 18:50:55 +0000 (+0200) Subject: girparser: Support cprefix metadata for the namespace X-Git-Tag: 0.13.2~106 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=65f38c93e38d914030edabdb62297ea4dad88dcd;p=thirdparty%2Fvala.git girparser: Support cprefix metadata for the namespace --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index a89b81050..741f1753b 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -575,7 +575,8 @@ public class Vala.GirParser : CodeVisitor { if (metadata.has_argument (ArgumentType.CPREFIX)) { return metadata.get_string (ArgumentType.CPREFIX); } - if (girdata != null && girdata["c:symbol-prefix"] != null) { + // gir doesn't use the full C prefix in c:symbol-prefix + if (girdata != null && girdata["c:symbol-prefix"] != null && !parent.metadata.has_argument (ArgumentType.CPREFIX)) { 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)); @@ -860,7 +861,7 @@ public class Vala.GirParser : CodeVisitor { // cheader filename var cheader_filename = metadata.get_string (ArgumentType.CHEADER_FILENAME); - if (cheader_filename != null) { + if (parent != parser.root && cheader_filename != null) { foreach (string filename in cheader_filename.split (",")) { symbol.add_cheader_filename (filename); } @@ -1648,6 +1649,11 @@ public class Vala.GirParser : CodeVisitor { ns.attributes = null; ns.source_reference = current.source_reference; } + current.metadata = ns_metadata; + + if (ns_metadata.has_argument (ArgumentType.CPREFIX)) { + cprefix = ns_metadata.get_string (ArgumentType.CPREFIX); + } if (cprefix != null) { ns.add_cprefix (cprefix);