[vala] Insert "%s" argument in printf calls with non-literal format string
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] Insert "%s" argument in printf calls with non-literal format string
- Date: Sat, 10 Oct 2009 13:32:10 +0000 (UTC)
commit e4dea42ed513323115a36358cbcb14116416a8b7
Author: Jürg Billeter <j bitron ch>
Date: Sat Oct 10 15:31:01 2009 +0200
Insert "%s" argument in printf calls with non-literal format string
vala/valamethodcall.vala | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/vala/valamethodcall.vala b/vala/valamethodcall.vala
index 7c31f6e..25865c6 100644
--- a/vala/valamethodcall.vala
+++ b/vala/valamethodcall.vala
@@ -271,6 +271,21 @@ public class Vala.MethodCall : Expression {
if (last_arg != null) {
// use last argument as format string
format_literal = last_arg as StringLiteral;
+ if (format_literal == null && args.size == params.size - 1) {
+ // insert "%s" to avoid issues with embedded %
+ format_literal = new StringLiteral ("\"%s\"");
+ format_literal.target_type = analyzer.string_type.copy ();
+ argument_list.insert (args.size - 1, format_literal);
+
+ // recreate iterator and skip to right position
+ arg_it = argument_list.iterator ();
+ foreach (FormalParameter param in params) {
+ if (param.ellipsis) {
+ break;
+ }
+ arg_it.next ();
+ }
+ }
} else {
// use instance as format string for string.printf (...)
var ma = call as MemberAccess;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]