diff --git a/bus/dispatch.c b/bus/dispatch.c index f769a44..ef534ac 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -4536,11 +4536,13 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, if (!check_add_match_all (context, baz)) _dbus_assert_not_reached ("AddMatch message failed"); +#ifndef DBUS_WIN if (!check_get_connection_unix_user (context, baz)) _dbus_assert_not_reached ("GetConnectionUnixUser message failed"); if (!check_get_connection_unix_process_id (context, baz)) _dbus_assert_not_reached ("GetConnectionUnixProcessID message failed"); +#endif if (!check_list_services (context, baz)) _dbus_assert_not_reached ("ListActivatableNames message failed"); diff --git a/bus/test-main.c b/bus/test-main.c diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake diff --git a/dbus/dbus-internals.c b/dbus/dbus-internals.c index edf7de6..9d4ef8d 100644 --- a/dbus/dbus-internals.c +++ b/dbus/dbus-internals.c @@ -329,6 +329,41 @@ _dbus_verbose_init (void) } } +#ifdef DBUS_WIN +#define DBUS_DIR_SEPARATOR '\\' +#else +#define DBUS_DIR_SEPARATOR '/' +#endif + +/** + remove source root from file path + the source root is determined by +*/ +static char *_dbus_file_path_extract_elements_from_tail(const char *file,int level) +{ + static int prefix = -1; + char *p; + + if (prefix == -1) + { + char *p = file + strlen(file); + int i = 0; + prefix = 0; + for (;p >= file;p--) + { + if (*p == DBUS_DIR_SEPARATOR) + { + if (++i >= level) + { + prefix = p-file+1; + break; + } + } + } + } + return file+prefix; +} + /** * Implementation of dbus_is_verbose() macro if built with verbose logging * enabled. @@ -350,7 +385,14 @@ _dbus_is_verbose_real (void) * @param format printf-style format string. */ void +#ifdef __VA_ARGS__ +_dbus_verbose_real (const char *file, + const int line, + const char *function, + const char *format, +#else _dbus_verbose_real (const char *format, +#endif ...) { va_list args; @@ -382,17 +424,24 @@ _dbus_verbose_real (const char *format, need_pid = TRUE; else need_pid = FALSE; - + va_start (args, format); #ifdef DBUS_USE_OUTPUT_DEBUG_STRING { char buf[1024]; strcpy(buf,module_name); +#ifdef __VA_ARGS__ + vsprintf (buf+strlen(buf), "%s(%d):%s ",_dbus_file_path_extract_elements_from_tail(file,2),line,function); +#endif vsprintf (buf+strlen(buf),format, args); va_end (args); OutputDebugString(buf); } #else +#ifdef __VA_ARGS__ + fprintf (stderr, "%s(%d):%s ",_dbus_file_path_extract_elements_from_tail(file,2),line,function); +#endif + vfprintf (stderr, format, args); va_end (args); diff --git a/dbus/dbus-internals.h b/dbus/dbus-internals.h index 8b5af8d..a79ee20 100644 --- a/dbus/dbus-internals.h +++ b/dbus/dbus-internals.h @@ -83,12 +83,18 @@ void _dbus_warn_check_failed (const char *format, #ifdef DBUS_ENABLE_VERBOSE_MODE +#ifdef __VA_ARGS__ +void _dbus_verbose_real (const char *file, const int line, const char *function, + const char *format,...) _DBUS_GNUC_PRINTF (1, 2); +# define _dbus_verbose(fmt,...) _dbus_verbose_real( __FILE__,__LINE__,__FUNCTION__,fmt, ## __VA_ARGS__) +#else void _dbus_verbose_real (const char *format, ...) _DBUS_GNUC_PRINTF (1, 2); +# define _dbus_verbose _dbus_verbose_real +#endif void _dbus_verbose_reset_real (void); dbus_bool_t _dbus_is_verbose_real (void); -# define _dbus_verbose _dbus_verbose_real # define _dbus_verbose_reset _dbus_verbose_reset_real # define _dbus_is_verbose _dbus_is_verbose_real #else diff --git a/dbus/dbus-mainloop.c b/dbus/dbus-mainloop.c diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c