diff options
author | Ralf Habacker <Ralf.Habacker@freenet.de> | 2009-01-06 13:01:20 +0000 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2009-11-30 13:11:26 +0100 |
commit | 807fd7e7318a28d9d9677e07727652db1322b6d0 (patch) | |
tree | ab7b30d179b7ad0458be4e414a63b7fcd210c39a /dbus/dbus-internals.c | |
parent | b94b853cd729eecab5eccb86d7ce8ccd1ce49af9 (diff) | |
download | dbus-807fd7e7318a28d9d9677e07727652db1322b6d0.tar.gz |
_dbus_verbose_real: (optionally) use OutputDebugString() (cherry picked from commit fd6d354c47b4b8dc24ce32e31171568a8704e7d1)
Diffstat (limited to 'dbus/dbus-internals.c')
-rw-r--r-- | dbus/dbus-internals.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/dbus/dbus-internals.c b/dbus/dbus-internals.c index 65bb751f..96302d74 100644 --- a/dbus/dbus-internals.c +++ b/dbus/dbus-internals.c @@ -28,6 +28,9 @@ #include <stdarg.h> #include <string.h> #include <stdlib.h> +#ifdef DBUS_USE_OUTPUT_DEBUG_STRING +#include <windows.h> +#endif /** * @defgroup DBusInternals D-Bus secret internal implementation details @@ -298,15 +301,28 @@ static dbus_bool_t verbose = TRUE; #ifdef DBUS_WIN #define inline #endif +#ifdef DBUS_USE_OUTPUT_DEBUG_STRING +static char module_name[1024]; +#endif static inline void _dbus_verbose_init (void) { if (!verbose_initted) { - const char *p = _dbus_getenv ("DBUS_VERBOSE"); + char *p = _dbus_getenv ("DBUS_VERBOSE"); verbose = p != NULL && *p == '1'; verbose_initted = TRUE; +#ifdef DBUS_USE_OUTPUT_DEBUG_STRING + GetModuleFileName(0,module_name,sizeof(module_name)-1); + p = strrchr(module_name,'.'); + if (p) + *p ='\0'; + p = strrchr(module_name,'\\'); + if (p) + strcpy(module_name,p+1); + strcat(module_name,": "); +#endif } } @@ -345,6 +361,7 @@ _dbus_verbose_real (const char *format, if (!_dbus_is_verbose_real()) return; +#ifndef DBUS_USE_OUTPUT_DEBUG_STRING /* Print out pid before the line */ if (need_pid) { @@ -354,7 +371,7 @@ _dbus_verbose_real (const char *format, fprintf (stderr, "%lu: ", _dbus_pid_for_log ()); #endif } - +#endif /* Only print pid again if the next line is a new line */ len = strlen (format); @@ -364,10 +381,20 @@ _dbus_verbose_real (const char *format, need_pid = FALSE; va_start (args, format); +#ifdef DBUS_USE_OUTPUT_DEBUG_STRING + { + char buf[1024]; + strcpy(buf,module_name); + vsprintf (buf+strlen(buf),format, args); + va_end (args); + OutputDebugString(buf); + } +#else vfprintf (stderr, format, args); va_end (args); fflush (stderr); +#endif } /** |