]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
GIR writer: Generate enum values and c:identifer attributes
authorDidier 'Ptitjes <ptitjes@free.fr>
Fri, 20 Mar 2009 19:40:17 +0000 (20:40 +0100)
committerJürg Billeter <j@bitron.ch>
Thu, 30 Apr 2009 21:44:14 +0000 (23:44 +0200)
Signed-off-by: Didier 'Ptitjes <ptitjes@free.fr>
gobject/valagirwriter.vala

index c6bad7a191cd449d27d747b7c6e4943cb064e4ac..c32b87a81e1ce1b9dd1f7064f500f4735496611f 100644 (file)
@@ -303,6 +303,7 @@ public class Vala.GIRWriter : CodeVisitor {
                stream.printf (">\n");
                indent++;
 
+               enum_value = 0;
                en.accept_children (this);
 
                indent--;
@@ -310,9 +311,18 @@ public class Vala.GIRWriter : CodeVisitor {
                stream.printf ("</enumeration>\n");
        }
 
+       private int enum_value;
+
        public override void visit_enum_value (EnumValue ev) {
                write_indent ();
-               stream.printf ("<member name=\"%s\"/>\n", string.joinv ("-", ev.name.down ().split ("_")));
+               stream.printf ("<member name=\"%s\" c:identifier=\"%s\"", ev.name.down (), ev.get_cname ());
+               if (ev.value != null) {
+                       string value = literal_expression_to_value_string (ev.value);
+                       stream.printf (" value=\"%s\"", value);
+               } else {
+                       stream.printf (" value=\"%d\"", enum_value++);
+               }
+               stream.printf ("/>\n");
        }
 
        public override void visit_error_domain (ErrorDomain edomain) {