From 246efe09f5787bcf5dfd82bd19727526196b4766 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sat, 3 Sep 2011 12:34:29 -0400 Subject: gi-dump-types: New uninstalled debugging program Usage: ./_build/gi-dump-types g_object_get_type --- Makefile-girepository.am | 6 ++++++ girepository/gdump.c | 2 ++ girepository/gi-dump-types.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 girepository/gi-dump-types.c diff --git a/Makefile-girepository.am b/Makefile-girepository.am index 736efc5a..3279cf7d 100644 --- a/Makefile-girepository.am +++ b/Makefile-girepository.am @@ -77,6 +77,12 @@ libgirepository_1_0_la_LDFLAGS = -no-undefined -version-number 1:0:0 -export-sym gdumpdir = $(datadir)/gobject-introspection-1.0/ gdump_DATA = girepository/gdump.c +noinst_PROGRAMS += gi-dump-types + +gi_dump_types_SOURCES = girepository/gdump.c girepository/gi-dump-types.c +gi_dump_types_CFLAGS = $(GIO_UNIX_CFLAGS) +gi_dump_types_LDADD = $(GIO_UNIX_LIBS) + GTESTER_PROGS += gthash-test gthash_test_SOURCES = girepository/gthash.c girepository/gthash-test.c diff --git a/girepository/gdump.c b/girepository/gdump.c index aab067b6..c237a81e 100644 --- a/girepository/gdump.c +++ b/girepository/gdump.c @@ -431,6 +431,8 @@ dump_error_quark (GQuark quark, const char *symbol, GOutputStream *out) */ #ifndef G_IREPOSITORY_COMPILATION static gboolean +dump_irepository (const char *arg, GError **error) G_GNUC_UNUSED; +static gboolean dump_irepository (const char *arg, GError **error) #else gboolean diff --git a/girepository/gi-dump-types.c b/girepository/gi-dump-types.c new file mode 100644 index 00000000..eacf8a01 --- /dev/null +++ b/girepository/gi-dump-types.c @@ -0,0 +1,34 @@ +#include "gdump.c" +#include + +int +main (int argc, + char **argv) +{ + int i; + GOutputStream *stdout; + GModule *self; + + g_type_init (); + + stdout = g_unix_output_stream_new (1, FALSE); + + self = g_module_open (NULL, 0); + + for (i = 1; i < argc; i++) + { + GError *error = NULL; + GType type; + + type = invoke_get_type (self, argv[i], &error); + if (!type) + { + g_printerr ("%s\n", error->message); + g_clear_error (&error); + } + else + dump_type (type, argv[i], stdout); + } + + return 0; +} -- cgit v1.2.1