summaryrefslogtreecommitdiff
path: root/vala/valainterfacewriter.vala
diff options
context:
space:
mode:
authorJuerg Billeter <j@bitron.ch>2008-03-31 18:54:00 +0000
committerJürg Billeter <juergbi@src.gnome.org>2008-03-31 18:54:00 +0000
commit6cc22c6901067882ef7952f65dbe8307f799fa3b (patch)
treeff7f726728b0b1320b85302ea9b3b092004c3c14 /vala/valainterfacewriter.vala
parent71275f71cb6e558588e341af6376d5e0e3a97282 (diff)
downloadvala-6cc22c6901067882ef7952f65dbe8307f799fa3b.tar.gz
fix output of enums with methods
2008-03-31 Juerg Billeter <j@bitron.ch> * vala/valainterfacewriter.vala: fix output of enums with methods svn path=/trunk/; revision=1164
Diffstat (limited to 'vala/valainterfacewriter.vala')
-rw-r--r--vala/valainterfacewriter.vala33
1 files changed, 24 insertions, 9 deletions
diff --git a/vala/valainterfacewriter.vala b/vala/valainterfacewriter.vala
index d50042130..046363650 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 ();
}