summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2006-08-08 20:59:26 +0000
committerJohn (J5) Palmieri <johnp@redhat.com>2006-08-08 20:59:26 +0000
commit7bb2361e657dc31ed73891f8e1ffdbfb916624c2 (patch)
tree6b73324fb644599ccb1d0c2a666e60b909d2484f
parent759fa115c95051eb32f6ed41b3cda1b219fc1aed (diff)
* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps.c: add _dbus_printf_length (patch from Peter Kümmel <syntheticpp at gmx dot net>)
-rw-r--r--ChangeLog9
-rw-r--r--dbus/dbus-string.c3
-rw-r--r--dbus/dbus-sysdeps.c15
-rw-r--r--dbus/dbus-sysdeps.h4
4 files changed, 28 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 76f206e9..405d1686 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,16 @@
2006-08-08 John (J5) Palmieri <johnp@redhat.com>
+ * dbus/dbus-sysdeps.h:
+ * dbus/dbus-sysdeps.c:
+ add _dbus_printf_length (patch from Peter Kümmel
+ <syntheticpp at gmx dot net>)
+
+2006-08-08 John (J5) Palmieri <johnp@redhat.com>
+
* dbus/dbus-internals.c: unistd.h is not used
(_dbus_verbose_real): only enable verbose printing
if DBUS_VERBOSE environment var is set to '1'
- (patch from Peter Kümmel <syntheticpp at gmx dot net>
+ (patch from Peter Kümmel <syntheticpp at gmx dot net>)
2006-08-08 John (J5) Palmieri <johnp@redhat.com>
diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c
index 287fe1cc..eec27b80 100644
--- a/dbus/dbus-string.c
+++ b/dbus/dbus-string.c
@@ -1193,7 +1193,6 @@ _dbus_string_append_printf_valist (DBusString *str,
va_list args)
{
int len;
- char c;
va_list args_copy;
DBUS_STRING_PREAMBLE (str);
@@ -1201,7 +1200,7 @@ _dbus_string_append_printf_valist (DBusString *str,
DBUS_VA_COPY (args_copy, args);
/* Measure the message length without terminating nul */
- len = vsnprintf (&c, 1, format, args);
+ len = _dbus_printf_length (format, args);
if (!_dbus_string_lengthen (str, len))
{
diff --git a/dbus/dbus-sysdeps.c b/dbus/dbus-sysdeps.c
index e28ea667..cd0f7cf1 100644
--- a/dbus/dbus-sysdeps.c
+++ b/dbus/dbus-sysdeps.c
@@ -2983,6 +2983,21 @@ _dbus_full_duplex_pipe (int *fd1,
#endif
}
+
+#ifndef DBUS_WIN
+/**
+ * Measure the message length without terminating nul
+ */
+int _dbus_printf_length (const char *format,
+ va_list args)
+{
+ char c;
+ return vsnprintf (&c, 1, format, args);
+}
+#endif
+
+
+
/** @} end of sysdeps */
/* tests in dbus-sysdeps-util.c */
diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h
index 03ed28ec..9bc3e485 100644
--- a/dbus/dbus-sysdeps.h
+++ b/dbus/dbus-sysdeps.h
@@ -272,6 +272,10 @@ void _dbus_fd_set_close_on_exec (int fd);
void _dbus_exit (int code) _DBUS_GNUC_NORETURN;
+int _dbus_printf_length (const char *format,
+ va_list args);
+
+
/**
* Portable struct with stat() results
*/