From: Evan Nemerson Date: Fri, 2 Apr 2010 18:41:49 +0000 (-0700) Subject: vapigen: add support for member access based default values X-Git-Tag: 0.8.1~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=198b4d0f2c3293b1a45f261c011fcf92543d4b15;p=thirdparty%2Fvala.git vapigen: add support for member access based default values --- diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index d0831128f..6d3e03d6b 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -1779,6 +1779,8 @@ public class Vala.GIdlParser : CodeVisitor { p.default_expression = new BooleanLiteral (true, param_type.source_reference); } else if (val == "false") { p.default_expression = new BooleanLiteral (false, param_type.source_reference); + } else if (val == "") { + p.default_expression = new StringLiteral ("\"\"", param_type.source_reference); } else { unowned string endptr; unowned string val_end = val.offset (val.len ()); @@ -1791,7 +1793,13 @@ public class Vala.GIdlParser : CodeVisitor { if ((long)endptr == (long)val_end) { p.default_expression = new RealLiteral (val, param_type.source_reference); } else { - p.default_expression = new StringLiteral ("\"%s\"".printf (val), param_type.source_reference); + if (val.has_prefix ("\"") && val.has_suffix ("\"")) { + p.default_expression = new StringLiteral (val, param_type.source_reference); + } else { + foreach (var member in val.split (".")) { + p.default_expression = new MemberAccess (p.default_expression, member, param_type.source_reference); + } + } } } }