summaryrefslogtreecommitdiff
path: root/ccode
diff options
context:
space:
mode:
authorJuerg Billeter <j@bitron.ch>2007-08-28 18:53:29 +0000
committerJürg Billeter <juergbi@src.gnome.org>2007-08-28 18:53:29 +0000
commite5bccaaa717a8d988b0d4a035946c462bf77231b (patch)
tree5cf4224c8bbbaba8439b7af19dfd1a5b0e126f22 /ccode
parent77edd1784de9afda7caeb2d01548c336cbf07341 (diff)
downloadvala-e5bccaaa717a8d988b0d4a035946c462bf77231b.tar.gz
generate warning about invalid property ids, fixes bug 463668
2007-08-28 Juerg Billeter <j@bitron.ch> * ccode/valaccodeswitchstatement.vala, gobject/valacodegeneratorclass.vala: generate warning about invalid property ids, fixes bug 463668 svn path=/trunk/; revision=522
Diffstat (limited to 'ccode')
-rw-r--r--ccode/valaccodeswitchstatement.vala24
1 files changed, 22 insertions, 2 deletions
diff --git a/ccode/valaccodeswitchstatement.vala b/ccode/valaccodeswitchstatement.vala
index 8a12d8d88..596b97270 100644
--- a/ccode/valaccodeswitchstatement.vala
+++ b/ccode/valaccodeswitchstatement.vala
@@ -33,6 +33,7 @@ public class Vala.CCodeSwitchStatement : CCodeStatement {
public CCodeExpression! expression { get; set; }
private Gee.List<CCodeCaseStatement> case_statements = new ArrayList<CCodeCaseStatement> ();
+ private Gee.List<CCodeStatement> default_statements = new ArrayList<CCodeStatement> ();
public CCodeSwitchStatement (construct CCodeExpression! expression) {
}
@@ -45,7 +46,16 @@ public class Vala.CCodeSwitchStatement : CCodeStatement {
public void add_case (CCodeCaseStatement! case_stmt) {
case_statements.add (case_stmt);
}
-
+
+ /**
+ * Append the specified statement to the default clause.
+ *
+ * @param stmt a statement
+ */
+ public void add_default_statement (CCodeStatement! stmt) {
+ default_statements.add (stmt);
+ }
+
public override void write (CCodeWriter! writer) {
writer.write_indent ();
writer.write_string ("switch (");
@@ -56,7 +66,17 @@ public class Vala.CCodeSwitchStatement : CCodeStatement {
foreach (CCodeCaseStatement case_stmt in case_statements) {
case_stmt.write (writer);
}
-
+
+ if (default_statements.size > 0) {
+ writer.write_indent ();
+ writer.write_string ("default:");
+ writer.write_newline ();
+
+ foreach (CCodeStatement stmt in default_statements) {
+ stmt.write (writer);
+ }
+ }
+
writer.write_end_block ();
}
}