From: Luca Bruno Date: Mon, 4 Apr 2011 19:53:45 +0000 (+0200) Subject: codewriter: Write enum cname when it differs from the default cname X-Git-Tag: 0.13.0~259 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3f3dbf16787e95f7bf26b2ce57e8f769f3d8309;p=thirdparty%2Fvala.git codewriter: Write enum cname when it differs from the default cname Based on patch by Evan Nemerson. Fixes bug 615493. --- diff --git a/vala/valacodewriter.vala b/vala/valacodewriter.vala index 6b83956f5..6c11da933 100644 --- a/vala/valacodewriter.vala +++ b/vala/valacodewriter.vala @@ -591,6 +591,10 @@ public class Vala.CodeWriter : CodeVisitor { write_string ("has_type_id = false, "); } + if (en.get_cname () != en.get_default_cname ()) { + write_string ("cname = \"%s\", ".printf (en.get_cname ())); + } + write_string ("cheader_filename = \"%s\")]".printf (get_cheaders(en))); if (en.is_flags) { diff --git a/vala/valaenum.vala b/vala/valaenum.vala index f5fca292f..fed3286fe 100644 --- a/vala/valaenum.vala +++ b/vala/valaenum.vala @@ -160,12 +160,21 @@ public class Vala.Enum : TypeSymbol { cname = attr.get_string ("cname"); } if (cname == null) { - cname = "%s%s".printf (parent_symbol.get_cprefix (), name); + cname = get_default_cname (); } } return cname; } + /** + * Returns the default name of this enum as it is used in C code. + * + * @return the name to be used in C code by default + */ + public string get_default_cname () { + return "%s%s".printf (parent_symbol.get_cprefix (), name); + } + public void set_cname (string cname) { this.cname = cname; }