summaryrefslogtreecommitdiff
path: root/dbus/dbus-internals.c
diff options
context:
space:
mode:
authorRalf Habacker <Ralf.Habacker@freenet.de>2009-01-06 13:01:20 +0000
committerRalf Habacker <ralf.habacker@freenet.de>2009-11-30 13:11:26 +0100
commit807fd7e7318a28d9d9677e07727652db1322b6d0 (patch)
treeab7b30d179b7ad0458be4e414a63b7fcd210c39a /dbus/dbus-internals.c
parentb94b853cd729eecab5eccb86d7ce8ccd1ce49af9 (diff)
downloaddbus-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.c31
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
}
/**