From 6cc22c6901067882ef7952f65dbe8307f799fa3b Mon Sep 17 00:00:00 2001 From: Juerg Billeter Date: Mon, 31 Mar 2008 18:54:00 +0000 Subject: [PATCH] fix output of enums with methods 2008-03-31 Juerg Billeter * vala/valainterfacewriter.vala: fix output of enums with methods svn path=/trunk/; revision=1164 --- ChangeLog | 4 ++++ vala/valainterfacewriter.vala | 33 ++++++++++++++++++++++++--------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 684155e..8326378 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-03-31 Jürg Billeter + + * vala/valainterfacewriter.vala: fix output of enums with methods + 2008-03-30 Jürg Billeter * vala/valasemanticanalyzer.vala: enhance support for pointer diff --git a/vala/valainterfacewriter.vala b/vala/valainterfacewriter.vala index d500421..0463636 100644 --- a/vala/valainterfacewriter.vala +++ b/vala/valainterfacewriter.vala @@ -300,7 +300,7 @@ public class Vala.InterfaceWriter : CodeVisitor { write_indent (); - var first = true; + bool first = true; string cheaders; foreach (string cheader in en.get_cheader_filenames ()) { if (first) { @@ -330,16 +330,31 @@ public class Vala.InterfaceWriter : CodeVisitor { write_identifier (en.name); write_begin_block (); - en.accept_children (this); + first = true; + foreach (EnumValue ev in en.get_values ()) { + if (first) { + first = false; + } else { + write_string (","); + write_newline (); + } - write_end_block (); - write_newline (); - } + write_indent (); + write_identifier (ev.name); + } - public override void visit_enum_value (EnumValue! ev) { - write_indent (); - write_identifier (ev.name); - write_string (","); + if (!first) { + if (en.get_methods ().size > 0) { + write_string (";"); + } + write_newline (); + } + + foreach (Method m in en.get_methods ()) { + m.accept (this); + } + + write_end_block (); write_newline (); } -- 2.7.4