Support cname attribute for enum values, patch by Jared Moore, fixes bug
authorJuerg Billeter <j@bitron.ch>
Sat, 10 May 2008 14:55:38 +0000 (14:55 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sat, 10 May 2008 14:55:38 +0000 (14:55 +0000)
2008-05-10  Juerg Billeter  <j@bitron.ch>

* vala/valaattributeprocessor.vala:
* vala/valaenumvalue.vala:

Support cname attribute for enum values,
patch by Jared Moore, fixes bug 529288

svn path=/trunk/; revision=1353

ChangeLog
vala/valaattributeprocessor.vala
vala/valaenumvalue.vala

index bd54a5f..5c08f11 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2008-05-10  Jürg Billeter  <j@bitron.ch>
 
+       * vala/valaattributeprocessor.vala:
+       * vala/valaenumvalue.vala:
+
+       Support cname attribute for enum values,
+       patch by Jared Moore, fixes bug 529288
+
+2008-05-10  Jürg Billeter  <j@bitron.ch>
+
        * vapi/packages/gtk+-2.0/:
 
        Fix gtk_dialog_new_with_buttons and gtk_file_chooser_dialog_new*
index d117b42..9daaf88 100644 (file)
@@ -68,6 +68,12 @@ public class Vala.AttributeProcessor : CodeVisitor {
 
        public override void visit_enum (Enum en) {
                en.process_attributes ();
+
+               en.accept_children (this);
+       }
+
+       public override void visit_enum_value (EnumValue ev) {
+               ev.process_attributes ();
        }
 
        public override void visit_error_domain (ErrorDomain edomain) {
index 9bfd3f6..7ba7306 100644 (file)
@@ -95,6 +95,18 @@ public class Vala.EnumValue : Symbol {
        }
 
        /**
+        * Process all associated attributes.
+        */
+       public void process_attributes () {
+               foreach (Attribute a in attributes) {
+                       if (a.name == "CCode" && a.has_argument("cname")) {
+                               cname = a.get_string ("cname");
+                       }
+               }
+       }
+
+
+       /**
         * Returns the name of this enum value as it is used in C code.
         *
         * @return the name to be used in C code