From: Rico Tzschichholz Date: Sat, 1 Mar 2025 18:24:43 +0000 (+0100) Subject: girparser: Respect given lower_case_cprefix metadata all the way X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=b42fd41a0a167b8c5f65bf15330a469a6d4a98c8;p=thirdparty%2Fvala.git girparser: Respect given lower_case_cprefix metadata all the way GIR allows to define multiple prefixes in "c:identifier-prefixes". Vala is blindly taking the first one which worked well so far, but can go very wrong. So allow overriding this information of the root namespace for real. --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 7672ad5b0..c51261e19 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -2224,6 +2224,8 @@ public class Vala.GirParser : CodeVisitor { void parse_namespace () { start_element ("namespace"); + //TODO Handle all given prefixes instead of taking the first one + string? cprefix = reader.get_attribute ("c:identifier-prefixes"); if (cprefix != null) { int idx = cprefix.index_of (","); @@ -2285,10 +2287,14 @@ public class Vala.GirParser : CodeVisitor { if (ns_metadata.has_argument (ArgumentType.CPREFIX)) { cprefix = ns_metadata.get_string (ArgumentType.CPREFIX); + //NOTE Explicitly patch our girdata while not all prefixes are handled + current.girdata["c:identifier-prefixes"] = cprefix; } if (ns_metadata.has_argument (ArgumentType.LOWER_CASE_CPREFIX)) { lower_case_cprefix = ns_metadata.get_string (ArgumentType.LOWER_CASE_CPREFIX); + //NOTE Explicitly patch our girdata while not all prefixes are handled + current.girdata["c:symbol-prefixes"] = lower_case_cprefix.substring (0, lower_case_cprefix.length - 1); } else if (lower_case_cprefix != null) { lower_case_cprefix += "_"; }