[glib] Add --xml to gdbus-tool to print raw introspected XML
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Add --xml to gdbus-tool to print raw introspected XML
- Date: Sun, 13 Jun 2010 22:03:39 +0000 (UTC)
commit 8c4e1fa0afd97ae211260e4990585629d3c010a1
Author: Christian Persch <chpe gnome org>
Date: Sun Jun 13 15:16:33 2010 +0200
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 @@
</group>
<arg choice="plain">--dest <replaceable>bus_name</replaceable></arg>
<arg choice="plain">--object-path <replaceable>/path/to/object</replaceable></arg>
+ <arg choice="plain">--xml</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>gdbus</command>
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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]