From: Jürg Billeter Date: Sun, 18 Jan 2009 15:18:09 +0000 (+0000) Subject: Add Log.FILE, Log.LINE, and Log.METHOD constants as replacements for X-Git-Tag: VALA_0_5_6~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=05073ae6651c3a9766626545d4bc7fd1b35acdb7;p=thirdparty%2Fvala.git Add Log.FILE, Log.LINE, and Log.METHOD constants as replacements for 2009-01-18 Jürg Billeter * gobject/valaccodememberaccessmodule.vala: * vapi/glib-2.0.vapi: Add Log.FILE, Log.LINE, and Log.METHOD constants as replacements for __FILE__ and __LINE__ as they are used in C svn path=/trunk/; revision=2386 --- diff --git a/ChangeLog b/ChangeLog index 7e219cfc2..b223aabb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-01-18 Jürg Billeter + + * gobject/valaccodememberaccessmodule.vala: + * vapi/glib-2.0.vapi: + + Add Log.FILE, Log.LINE, and Log.METHOD constants as replacements + for __FILE__ and __LINE__ as they are used in C + 2009-01-18 Jürg Billeter * vapi/Makefile.am: diff --git a/gobject/valaccodememberaccessmodule.vala b/gobject/valaccodememberaccessmodule.vala index b10b4cbcc..169a585fe 100644 --- a/gobject/valaccodememberaccessmodule.vala +++ b/gobject/valaccodememberaccessmodule.vala @@ -148,7 +148,23 @@ public class Vala.CCodeMemberAccessModule : CCodeControlFlowModule { } } else if (expr.symbol_reference is Constant) { var c = (Constant) expr.symbol_reference; - expr.ccodenode = new CCodeIdentifier (c.get_cname ()); + + string fn = c.get_full_name (); + if (fn == "GLib.Log.FILE") { + string s = Path.get_basename (expr.source_reference.file.filename); + expr.ccodenode = new CCodeConstant ("\"%s\"".printf (s)); + } else if (fn == "GLib.Log.LINE") { + int i = expr.source_reference.first_line; + expr.ccodenode = new CCodeConstant ("%d".printf (i)); + } else if (fn == "GLib.Log.METHOD") { + string s = ""; + if (current_method != null) { + s = current_method.get_full_name (); + } + expr.ccodenode = new CCodeConstant ("\"%s\"".printf (s)); + } else { + expr.ccodenode = new CCodeIdentifier (c.get_cname ()); + } } else if (expr.symbol_reference is Property) { var prop = (Property) expr.symbol_reference; diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index 967601ce1..db7b3ac53 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -1499,6 +1499,10 @@ namespace GLib { namespace Log { public static uint set_handler (string? log_domain, LogLevelFlags log_levels, LogFunc log_func); public static void set_default_handler (LogFunc log_func); + + public const string FILE; + public const int LINE; + public const string METHOD; } /* String Utility Functions */