From 8c4e1fa0afd97ae211260e4990585629d3c010a1 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 13 Jun 2010 15:16:33 +0200 Subject: [PATCH] Add --xml to gdbus-tool to print raw introspected XML Bug #621442. --- docs/reference/gio/gdbus.xml | 1 + gio/gdbus-tool.c | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/docs/reference/gio/gdbus.xml b/docs/reference/gio/gdbus.xml index e2f3354..280b478 100644 --- a/docs/reference/gio/gdbus.xml +++ b/docs/reference/gio/gdbus.xml @@ -22,6 +22,7 @@ --dest bus_name --object-path /path/to/object + --xml gdbus diff --git a/gio/gdbus-tool.c b/gio/gdbus-tool.c index 11ffb6c..9cd504a 100644 --- a/gio/gdbus-tool.c +++ b/gio/gdbus-tool.c @@ -1155,11 +1155,13 @@ dump_node (GDBusConnection *c, static gchar *opt_introspect_dest = NULL; static gchar *opt_introspect_object_path = NULL; +static gboolean opt_introspect_xml = FALSE; static const GOptionEntry introspect_entries[] = { { "dest", 'd', 0, G_OPTION_ARG_STRING, &opt_introspect_dest, N_("Destination name to introspect"), NULL}, { "object-path", 'o', 0, G_OPTION_ARG_STRING, &opt_introspect_object_path, N_("Object path to introspect"), NULL}, + { "xml", 'x', 0, G_OPTION_ARG_NONE, &opt_introspect_xml, N_("Print XML"), NULL}, { NULL } }; @@ -1325,16 +1327,23 @@ handle_introspect (gint *argc, } g_variant_get (result, "(&s)", &xml_data); - error = NULL; - node = g_dbus_node_info_new_for_xml (xml_data, &error); - if (node == NULL) + if (opt_introspect_xml) { - g_printerr (_("Error parsing introspection XML: %s\n"), error->message); - g_error_free (error); - goto out; + g_print ("%s", xml_data); } + else + { + error = NULL; + node = g_dbus_node_info_new_for_xml (xml_data, &error); + if (node == NULL) + { + g_printerr (_("Error parsing introspection XML: %s\n"), error->message); + g_error_free (error); + goto out; + } - dump_node (c, opt_introspect_dest, node, 0, opt_introspect_object_path); + dump_node (c, opt_introspect_dest, node, 0, opt_introspect_object_path); + } ret = TRUE; -- 2.7.4