From 5764316a8e5ee227fbd1255927bbe5d3f9ab3b4a Mon Sep 17 00:00:00 2001 From: Tim-Philipp Müller Date: Thu, 5 Mar 2015 17:54:04 +0000 Subject: info: move __FILE__ path shortening into default log handler Instead of always shortening the __FILE__ path, even if the log message is not actually printed, which might happen if the log level is activated but the category is not, only shorten the path if we're actually going to output it and if it looks like it needs shortening. Log handlers had no guarantee that they would get a name instead of a path anyway on any architecture, so it shouldn't be a problem. https://bugzilla.gnome.org/show_bug.cgi?id=745213 --- gst/gstinfo.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gst/gstinfo.c b/gst/gstinfo.c index f94578657..a506823d4 100644 --- a/gst/gstinfo.c +++ b/gst/gstinfo.c @@ -495,11 +495,6 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level, g_return_if_fail (function != NULL); g_return_if_fail (format != NULL); - /* The predefined macro __FILE__ is always the exact path given to the - * compiler with MSVC, which may or may not be the basename. We work - * around it at runtime to improve the readability. */ - file = gst_path_basename (file); - message.message = NULL; message.format = format; G_VA_COPY (message.arguments, args); @@ -991,10 +986,20 @@ gst_debug_log_default (GstDebugCategory * category, GstDebugLevel level, gchar *obj = NULL; GstDebugColorMode color_mode; FILE *log_file = user_data ? user_data : stderr; + gchar c; if (level > gst_debug_category_get_threshold (category)) return; + /* __FILE__ might be a file name or an absolute path or a + * relative path, irrespective of the exact compiler used, + * in which case we want to shorten it to the filename for + * readability. */ + c = file[0]; + if (c == '.' || c == '/' || c == '\\' || (c != '\0' && file[1] == ':')) { + file = gst_path_basename (file); + } + pid = getpid (); color_mode = gst_debug_get_color_mode (); -- cgit v1.2.3