From 1ffeeab3d43c5765d72aeb4aa01a93e2fca98bae Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 13 Nov 2008 19:57:09 +0000 Subject: [PATCH] g_irepository_dump implementation svn path=/trunk/; revision=911 --- Makefile.am | 6 ++++-- girepository.c | 25 +++++++++++++++++++++++++ girepository.h | 4 ++++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index c3694fd11..b58288e8b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,9 +13,11 @@ libgirepository_la_SOURCES = \ gtypelib.h \ gtypelib.c \ ginfo.c \ - ginvoke.c \ girffi.c \ - girffi.h + girffi.h \ + gdump.c \ + ginvoke.c + libgirepository_la_CPPFLAGS = $(GIREPO_CFLAGS) libgirepository_la_LIBADD = $(GIREPO_LIBS) libgirepository_la_LDFLAGS = -no-undefined diff --git a/girepository.c b/girepository.c index 0ff7bddf0..e65910de4 100644 --- a/girepository.c +++ b/girepository.c @@ -1145,6 +1145,31 @@ g_irepository_require (GIRepository *repository, return ret; } +static gboolean +g_irepository_introspect_cb (const char *option_name, + const char *value, + gpointer data, + GError **error) +{ + return g_irepository_dump (value, error); +} + +static const GOptionEntry introspection_args[] = { + { "introspect-dump", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, + g_irepository_introspect_cb, "Dump introspection information", + "infile.txt,outfile.xml" }, + { NULL } +}; + +GOptionGroup * +g_irepository_get_option_group (void) +{ + GOptionGroup *group; + group = g_option_group_new ("girepository", "Introspection Options", "Show Introspection Options", NULL, NULL); + + g_option_group_add_entries (group, introspection_args); + return group; +} GQuark g_irepository_error_quark (void) diff --git a/girepository.h b/girepository.h index 225c1f89d..46082e037 100644 --- a/girepository.h +++ b/girepository.h @@ -110,6 +110,10 @@ const gchar * g_irepository_get_shared_library (GIRepository *repository, const gchar * g_irepository_get_version (GIRepository *repository, const gchar *namespace); +GOptionGroup * g_irepository_get_option_group (void); + +gboolean g_irepository_dump (const char *arg, GError **error); + /* Typelib */ GTypelib * g_typelib_new_from_memory (guchar *memory,