summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-message.c
diff options
context:
space:
mode:
authorMichael Meeks <michael@ximian.com>2004-03-29 13:11:05 +0000
committerMichael Meeks <michael@ximian.com>2004-03-29 13:11:05 +0000
commit004b37eca4ed9a33269d4850525a0e1c2f5deaff (patch)
treeab72056115269370b018373aef20c5a8d457acb8 /dbus/dbus-message.c
parentd7a044a1382782cae8f1311355b78b4b5ff587dd (diff)
2004-03-29 Michael Meeks <michael@ximian.com>
* dbus/dbus-message.c (dbus_message_new_error_printf): impl. * dbus/dbus-connection.c (dbus_connection_unregister_object_path): fix warning. * configure.in: fix no-mono-installed situation.
Diffstat (limited to 'dbus/dbus-message.c')
-rw-r--r--dbus/dbus-message.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c
index d56cd45d..322e5d0b 100644
--- a/dbus/dbus-message.c
+++ b/dbus/dbus-message.c
@@ -1422,6 +1422,45 @@ dbus_message_new_error (DBusMessage *reply_to,
}
/**
+ * Creates a new message that is an error reply to a certain message.
+ * Error replies are possible in response to method calls primarily.
+ *
+ * @param reply_to the original message
+ * @param error_name the error name
+ * @param error_format the error message string to be printed
+ * @param ... value of first argument, list of additional values to print
+ * @returns a new error message
+ */
+DBusMessage*
+dbus_message_new_error_printf (DBusMessage *reply_to,
+ const char *error_name,
+ const char *error_format,
+ ...)
+{
+ va_list args;
+ DBusString str;
+ DBusMessage *message;
+
+ if (!_dbus_string_init (&str))
+ return NULL;
+
+ va_start (args, error_format);
+
+ if (_dbus_string_append_printf_valist (&str, error_format, args))
+ message = dbus_message_new_error (reply_to, error_name,
+ _dbus_string_get_const_data (&str));
+ else
+ message = NULL;
+
+ _dbus_string_free (&str);
+
+ va_end (args);
+
+ return message;
+}
+
+
+/**
* Creates a new message that is an exact replica of the message
* specified, except that its refcount is set to 1.
*