Imported Upstream version 1.59.1 upstream/1.59.1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 10 Jan 2019 04:16:30 +0000 (13:16 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 10 Jan 2019 04:16:30 +0000 (13:16 +0900)
204 files changed:
.flake8
Makefile-examples.am
Makefile-gir.am
Makefile-girepository.am
Makefile-giscanner.am
Makefile-tools.am
Makefile.am
Makefile.in
NEWS
config.h.in
configure
configure.ac
docs/Makefile.in
docs/gir-1.2.rnc
docs/reference/Makefile.am
docs/reference/Makefile.in
docs/reference/gi-docs.xml
docs/reference/gi-gir-reference.xml [deleted file]
docs/reference/gi-sections.txt
docs/reference/gi-struct-hierarchy.xml
docs/reference/html/GIBaseInfo.html [moved from docs/reference/html/gi-GIBaseInfo.html with 70% similarity]
docs/reference/html/GIRepository.html
docs/reference/html/annotation-glossary.html
docs/reference/html/api-index-1-29-0.html [deleted file]
docs/reference/html/api-index-1-30.html [moved from docs/reference/html/api-index-1-29-17.html with 63% similarity]
docs/reference/html/api-index-1-32.html [moved from docs/reference/html/api-index-1-30-1.html with 73% similarity]
docs/reference/html/api-index-1-34.html
docs/reference/html/api-index-1-36.html [moved from docs/reference/html/api-index-1-35-8.html with 73% similarity]
docs/reference/html/api-index-1-42.html [new file with mode: 0644]
docs/reference/html/api-index-1-44.html [new file with mode: 0644]
docs/reference/html/api-index-1-46.html [new file with mode: 0644]
docs/reference/html/api-index-1-60.html [new file with mode: 0644]
docs/reference/html/api-index-deprecated.html
docs/reference/html/api-index-full.html
docs/reference/html/ch01.html
docs/reference/html/ch02.html [moved from docs/reference/html/gi-typelib.html with 51% similarity]
docs/reference/html/ch03.html
docs/reference/html/gi-Common-Types.html [moved from docs/reference/html/gi-common-types.html with 86% similarity]
docs/reference/html/gi-GIArgInfo.html
docs/reference/html/gi-GICallableInfo.html
docs/reference/html/gi-GICallbackInfo.html
docs/reference/html/gi-GIConstantInfo.html
docs/reference/html/gi-GIEnumInfo.html
docs/reference/html/gi-GIFieldInfo.html
docs/reference/html/gi-GIFunctionInfo.html
docs/reference/html/gi-GIInterfaceInfo.html
docs/reference/html/gi-GIObjectInfo.html
docs/reference/html/gi-GIPropertyInfo.html
docs/reference/html/gi-GIRegisteredTypeInfo.html
docs/reference/html/gi-GISignalInfo.html
docs/reference/html/gi-GIStructInfo.html
docs/reference/html/gi-GITypeInfo.html
docs/reference/html/gi-GITypelib-Internals.html [new file with mode: 0644]
docs/reference/html/gi-GITypelib.html
docs/reference/html/gi-GIUnionInfo.html
docs/reference/html/gi-GIVFuncInfo.html
docs/reference/html/gi-GIValueInfo.html
docs/reference/html/gi-Version-Information.html [new file with mode: 0644]
docs/reference/html/gi-building.html [deleted file]
docs/reference/html/gi-gir-reference.html [deleted file]
docs/reference/html/gi-girffi.html
docs/reference/html/gi-gitypelib.html [deleted file]
docs/reference/html/gi-programming.html [deleted file]
docs/reference/html/gi-struct-hierarchy.html
docs/reference/html/gi.devhelp2
docs/reference/html/gi.html [deleted file]
docs/reference/html/index.html
docs/reference/html/overview.html [deleted file]
docs/reference/html/overview.png [deleted file]
docs/reference/images/overview.png [deleted file]
docs/reference/meson.build
docs/reference/overview-building.xml [deleted file]
docs/reference/overview-programming.xml [deleted file]
docs/reference/version.xml
gir/gio-2.0.c
gir/glib-2.0.c
gir/gobject-2.0.c
gir/meson.build
girepository/docs.c
girepository/giarginfo.c
girepository/gibaseinfo.c
girepository/gibaseinfo.h
girepository/gicallableinfo.c
girepository/giconstantinfo.c
girepository/gienuminfo.c
girepository/gifieldinfo.c
girepository/gifunctioninfo.c
girepository/giinterfaceinfo.c
girepository/giobjectinfo.c
girepository/gipropertyinfo.c
girepository/giregisteredtypeinfo.c
girepository/girepository.c
girepository/girepository.h
girepository/girparser.c
girepository/gisignalinfo.c
girepository/gistructinfo.c
girepository/gistructinfo.h
girepository/gitypeinfo.c
girepository/gitypelib-internal.h
girepository/gitypelib.c
girepository/gitypelib.h
girepository/gitypes.h
girepository/giunioninfo.c
girepository/giversion.c [new file with mode: 0644]
girepository/giversion.h [new file with mode: 0644]
girepository/giversion.h.in [new file with mode: 0644]
girepository/giversionmacros.h
girepository/givfuncinfo.c
girepository/meson.build
giscanner/__init__.py
giscanner/_version.py
giscanner/annotationmain.py
giscanner/annotationparser.py
giscanner/ast.py
giscanner/cachestore.py
giscanner/ccompiler.py
giscanner/codegen.py
giscanner/docmain.py
giscanner/docwriter.py
giscanner/dumper.py
giscanner/gdumpparser.py
giscanner/girparser.py
giscanner/girwriter.py
giscanner/giscannermodule.c
giscanner/introspectablepass.py
giscanner/libtoolimporter.py
giscanner/maintransformer.py
giscanner/message.py
giscanner/scannerlexer.c
giscanner/scannerlexer.l
giscanner/scannermain.py
giscanner/scannerparser.c
giscanner/scannerparser.h
giscanner/scannerparser.y
giscanner/sectionparser.py
giscanner/shlibs.py
giscanner/sourcescanner.c
giscanner/sourcescanner.h
giscanner/sourcescanner.py
giscanner/testcodegen.py
giscanner/transformer.py
giscanner/utils.py
giscanner/xmlwriter.py
gobject-introspection-1.0.pc
gobject-introspection-1.0.pc.in
gobject-introspection-no-export-1.0.pc
gobject-introspection-no-export-1.0.pc.in
meson.build
meson_options.txt
misc/update-glib-annotations.py
misc/update-gtkdoc-tests.py
misc/verbump.py [deleted file]
tests/Makefile.in
tests/meson.build
tests/offsets/Makefile.am
tests/offsets/Makefile.in
tests/offsets/gen-gitestoffsets
tests/offsets/meson.build [new file with mode: 0644]
tests/repository/Makefile.am
tests/repository/Makefile.in
tests/repository/gitestrepo.c
tests/repository/meson.build [new file with mode: 0644]
tests/scanner/Bar-1.0-expected.gir
tests/scanner/GetType-1.0-expected.gir
tests/scanner/GtkFrob-1.0-expected.gir
tests/scanner/Headeronly-1.0-expected.gir
tests/scanner/Identfilter-1.0-expected.gir
tests/scanner/Makefile.am
tests/scanner/Makefile.in
tests/scanner/Regress-1.0-C-expected/Regress.TestInterface.page
tests/scanner/Regress-1.0-C-expected/Regress.TestObj-write-only.page [new file with mode: 0644]
tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj-boolean.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInterface.page
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-write-only.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj-boolean.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.page
tests/scanner/Regress-1.0-Python-expected/Regress.TestInterface.page
tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-write-only.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.page
tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj-boolean.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.page
tests/scanner/Regress-1.0-expected.gir
tests/scanner/SLetter-1.0-expected.gir
tests/scanner/Symbolfilter-1.0-expected.gir
tests/scanner/Typedefs-1.0-expected.gir
tests/scanner/Utility-1.0-expected.gir
tests/scanner/WarnLib-1.0-expected.gir
tests/scanner/annotationparser/Makefile.am
tests/scanner/annotationparser/Makefile.in
tests/scanner/annotationparser/meson.build [new file with mode: 0644]
tests/scanner/annotationparser/test_parser.py
tests/scanner/annotationparser/test_patterns.py
tests/scanner/meson.build
tests/scanner/regress.c
tests/scanner/regress.h
tests/scanner/test_pkgconfig.py
tests/scanner/test_shlibs.py
tests/scanner/test_sourcescanner.py
tests/scanner/test_transformer.py
tests/warn/Makefile.in
tests/warn/meson.build
tests/warn/warningtester.py
tools/g-ir-tool-template.in
tools/meson.build

diff --git a/.flake8 b/.flake8
index 4ce8025..527cabc 100644 (file)
--- a/.flake8
+++ b/.flake8
@@ -1,4 +1,4 @@
 [flake8]
 ignore=E127,E402,E501,E731,E128,W503,E741,W504
 exclude=misc,subprojects
-builtins=DATADIR
+builtins=DATADIR,GIRDIR
index cc882a8..9404e2b 100644 (file)
@@ -1,7 +1,7 @@
 noinst_PROGRAMS += glib-print
 
 glib_print_SOURCES = examples/glib-print.c
-glib_print_CFLAGS = $(GOBJECT_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir)/girepository
+glib_print_CFLAGS = $(GOBJECT_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 glib_print_LDFLAGS = $(WARN_LDFLAGS)
 glib_print_LDADD = libgirepository-1.0.la $(GOBJECT_LIBS)
 
index 2cd7358..c7eb377 100644 (file)
@@ -117,7 +117,8 @@ GObject_2_0_gir_CFLAGS = \
             -I$(GOBJECT_INCLUDEDIR) \
             -I$(GOBJECT_LIBDIR)/glib-2.0/include
 GObject_2_0_gir_FILES = \
-       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h, $(wildcard $(GOBJECT_INCLUDEDIR)/gobject/*.h)) \
+       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h $(GOBJECT_INCLUDEDIR)/gobject/gvaluecollector.h, \
+               $(wildcard $(GOBJECT_INCLUDEDIR)/gobject/*.h)) \
        gir/gobject-2.0.c
 
 BUILT_GIRSOURCES += GObject-2.0.gir
@@ -200,19 +201,23 @@ GIRepository_2_0_gir_SCANNERFLAGS = \
         $(WARN_SCANNERFLAGS) \
         --identifier-prefix=GI \
         --symbol-prefix=g \
+        --symbol-prefix=gi \
         --c-include="girepository.h" \
         --add-include-path=.
 GIRepository_2_0_gir_PACKAGES = gobject-2.0
 GIRepository_2_0_gir_INCLUDES = GObject-2.0
 GIRepository_2_0_gir_EXPORT_PACKAGES = gobject-introspection-1.0
 GIRepository_2_0_gir_CFLAGS = \
-    -I$(top_srcdir)/girepository -I$(top_srcdir) \
+    -I$(top_srcdir)/girepository \
+    -I$(top_srcdir) \
+    -I$(top_builddir)/girepository \
     -DGI_COMPILATION
 GIRepository_2_0_gir_FILES = \
         $(top_srcdir)/girepository/girepository.h   \
         $(top_srcdir)/girepository/girepository.c   \
         $(top_srcdir)/girepository/gi*info.c       \
         $(top_srcdir)/girepository/gi*info.h       \
+        $(top_builddir)/girepository/giversion.h    \
         $(top_srcdir)/girepository/gitypelib.h     \
         $(top_srcdir)/girepository/gitypes.h
 
index 2af8c4a..c7f74b2 100644 (file)
@@ -24,7 +24,8 @@ girepo_HEADERS =                                      \
        girepository/gitypes.h                          \
        girepository/giunioninfo.h                      \
        girepository/giversionmacros.h          \
-       girepository/givfuncinfo.h
+       girepository/givfuncinfo.h                      \
+       $(top_builddir)/girepository/giversion.h
 
 lib_LTLIBRARIES += libgirepository-1.0.la
 noinst_LTLIBRARIES += libgirepository-internals.la libgirepository-gthash.la
@@ -35,7 +36,8 @@ libgirepository_gthash_la_CFLAGS =    \
        $(WARN_CFLAGS) \
        $(GIREPO_CFLAGS)        \
        $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
-       -I$(top_srcdir)/girepository
+       -I$(top_srcdir)/girepository    \
+       -I$(top_builddir)/girepository
 libgirepository_gthash_la_LDFLAGS =    \
        $(WARN_LDFLAGS)
 libgirepository_gthash_la_LIBADD = libcmph.la $(GIREPO_LIBS)
@@ -55,7 +57,8 @@ libgirepository_internals_la_CFLAGS = \
        $(WARN_CFLAGS) \
        $(GIREPO_CFLAGS)        \
        $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
-       -I$(top_srcdir)/girepository
+       -I$(top_srcdir)/girepository    \
+       -I$(top_builddir)/girepository
 
 libgirepository_internals_la_LDFLAGS = \
        $(WARN_LDFLAGS)
@@ -86,6 +89,7 @@ libgirepository_1_0_la_SOURCES =                      \
        girepository/gitypelib.c                        \
        girepository/gitypelib-internal.h               \
        girepository/giunioninfo.c                      \
+       girepository/giversion.c                        \
        girepository/givfuncinfo.c
 
 libgirepository_1_0_la_CPPFLAGS =      \
@@ -93,6 +97,7 @@ libgirepository_1_0_la_CPPFLAGS =     \
        $(GIREPO_CFLAGS)        \
        $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
        -I$(top_srcdir)/girepository    \
+       -I$(top_builddir)/girepository  \
        -DG_IREPOSITORY_COMPILATION
 libgirepository_1_0_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS)
 libgirepository_1_0_la_LDFLAGS = \
@@ -117,5 +122,5 @@ CLEANFILES += gthash-test
 TESTS += gthash-test
 
 gthash_test_SOURCES = girepository/gthash.c girepository/gthash-test.c
-gthash_test_CFLAGS = -I$(top_srcdir)/girepository $(GOBJECT_CFLAGS)
+gthash_test_CFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository $(GOBJECT_CFLAGS)
 gthash_test_LDADD = libcmph.la libgirepository-1.0.la $(GOBJECT_LIBS)
index 2879ab2..e78df42 100644 (file)
@@ -21,7 +21,7 @@ libgiscanner_la_SOURCES = \
        giscanner/sourcescanner.h                               \
        giscanner/scannerlexer.l                                \
        giscanner/scannerparser.y
-libgiscanner_la_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_srcdir)/giscanner
+libgiscanner_la_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository -I$(top_srcdir)/giscanner
 libgiscanner_la_LIBADD = $(GOBJECT_LIBS) $(GIO_LIBS)
 libgiscanner_la_CFLAGS = $(GOBJECT_CFLAGS) $(GIO_CFLAGS) $(WARN_CFLAGS_FLEX)
 libgiscanner_la_LDFLAGS = $(WARN_LDFLAGS)
index c70d985..06622f4 100644 (file)
@@ -9,7 +9,7 @@ EXTRA_DIST +=                           \
        tools/g-ir-tool-template.in \
        tools/meson.build
 
-TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON_CMD\@,\/usr\/bin\/env\ $(PYTHON),
+TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON_CMD\@,\/usr\/bin\/env\ $(PYTHON), -e s,@GIR_DIR\@,$(GIR_DIR),g
 
 g-ir-scanner: tools/g-ir-tool-template.in _giscanner.la Makefile
        $(AM_V_GEN) sed $(TOOL_SUBSTITUTIONS) -e s,@TOOL_MODULE\@,scannermain, -e s,@TOOL_FUNCTION\@,scanner_main, $< > $@.tmp && mv $@.tmp $@
@@ -24,7 +24,7 @@ g-ir-doc-tool: tools/g-ir-tool-template.in _giscanner.la Makefile
        @chmod a+x $@
 
 g_ir_compiler_SOURCES = tools/compiler.c
-g_ir_compiler_CPPFLAGS = -I$(top_srcdir)/girepository
+g_ir_compiler_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 g_ir_compiler_CFLAGS = $(GIO_CFLAGS) $(WARN_CFLAGS)
 g_ir_compiler_LDFLAGS = $(WARN_LDFLAGS)
 g_ir_compiler_LDADD = \
@@ -33,7 +33,7 @@ g_ir_compiler_LDADD = \
        $(GIREPO_LIBS)
 
 g_ir_generate_SOURCES = tools/generate.c
-g_ir_generate_CPPFLAGS = -I$(top_srcdir)/girepository
+g_ir_generate_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 g_ir_generate_CFLAGS = $(GIO_CFLAGS) $(WARN_CFLAGS)
 g_ir_generate_LDFLAGS = $(WARN_LDFLAGS)
 g_ir_generate_LDADD = \
@@ -42,7 +42,7 @@ g_ir_generate_LDADD = \
        $(GIREPO_LIBS)
 
 g_ir_inspect_SOURCES = tools/g-ir-inspect.c
-g_ir_inspect_CFLAGS = $(GIO_CFLAGS)  $(WARN_CFLAGS) -I$(top_srcdir)/girepository
+g_ir_inspect_CFLAGS = $(GIO_CFLAGS)  $(WARN_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 g_ir_inspect_LDFLAGS = $(WARN_LDFLAGS)
 g_ir_inspect_LDADD = \
         libgirepository-1.0.la \
index 44ed115..952bf71 100644 (file)
@@ -55,7 +55,6 @@ EXTRA_DIST +=                         \
        $(m4_DATA)              \
        misc/update-glib-annotations.py \
        misc/update-gtkdoc-tests.py     \
-       misc/verbump.py         \
        README.rst \
        MSVC.README.rst \
        meson.build \
@@ -64,37 +63,3 @@ EXTRA_DIST +=                        \
 
 check.quality:
        (cd $(abs_top_srcdir) && $(PYTHON) -m flake8 --count);
-
-# Colin's handy Makefile bits for:
-# 1) stuffing tarballs with pre-generated scripts from your workstation
-# 2) bumping configure.ac version post-release
-# 3) tagging correctly in git
-# 4) uploading to gnome.org
-# To use:
-#  $ make check
-#  $ make dist
-#  $ make prepare-minor-release
-
-# Customize to taste
-TAG_PREFIX=GOBJECT_INTROSPECTION_
-COMPRESSION=.xz
-
-
-PACKAGE=@PACKAGE@
-VERSION=@VERSION@
-DISTNAME=$(PACKAGE)-$(VERSION).tar$(COMPRESSION)
-TAG_VERSION=$(shell echo $(VERSION) |sed s/\\\./_/g)
-
-prepare-release-tag: Makefile
-       git tag -m "Tag $(TAG_VERSION)" -a $(TAG_PREFIX)$(TAG_VERSION)
-
-prepare-minor-release: $(DISTNAME) prepare-release-tag Makefile
-       env top_srcdir=$(top_srcdir) python $(top_srcdir)/misc/verbump.py
-
-upload-release: $(DISTNAME) Makefile
-       git log origin/master..master
-       @echo -n "Ok to push? [y/N] "; read ans; test x$$ans == xy || exit 1
-       git push --tags origin master:master
-       scp $(DISTNAME) master.gnome.org:
-       ssh master.gnome.org install-module $(DISTNAME)
-
index c0ba8d1..500c810 100644 (file)
@@ -176,7 +176,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = giscanner/_version.py \
+CONFIG_CLEAN_FILES = giscanner/_version.py girepository/giversion.h \
        gobject-introspection-1.0.pc \
        gobject-introspection-no-export-1.0.pc
 CONFIG_CLEAN_VPATH_FILES =
@@ -280,6 +280,7 @@ am_libgirepository_1_0_la_OBJECTS =  \
        girepository/libgirepository_1_0_la-gitypeinfo.lo \
        girepository/libgirepository_1_0_la-gitypelib.lo \
        girepository/libgirepository_1_0_la-giunioninfo.lo \
+       girepository/libgirepository_1_0_la-giversion.lo \
        girepository/libgirepository_1_0_la-givfuncinfo.lo
 libgirepository_1_0_la_OBJECTS = $(am_libgirepository_1_0_la_OBJECTS)
 libgirepository_1_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -416,6 +417,7 @@ am__depfiles_remade = examples/$(DEPDIR)/glib_print-glib-print.Po \
        girepository/$(DEPDIR)/libgirepository_1_0_la-gitypeinfo.Plo \
        girepository/$(DEPDIR)/libgirepository_1_0_la-gitypelib.Plo \
        girepository/$(DEPDIR)/libgirepository_1_0_la-giunioninfo.Plo \
+       girepository/$(DEPDIR)/libgirepository_1_0_la-giversion.Plo \
        girepository/$(DEPDIR)/libgirepository_1_0_la-givfuncinfo.Plo \
        girepository/$(DEPDIR)/libgirepository_gthash_la-gthash.Plo \
        girepository/$(DEPDIR)/libgirepository_internals_la-girmodule.Plo \
@@ -755,6 +757,7 @@ am__DIST_COMMON = $(srcdir)/Makefile-cmph.am \
        $(top_srcdir)/build-aux/py-compile \
        $(top_srcdir)/build-aux/test-driver \
        $(top_srcdir)/build-aux/ylwrap \
+       $(top_srcdir)/girepository/giversion.h.in \
        $(top_srcdir)/giscanner/_version.py.in COPYING NEWS TODO \
        build-aux/compile build-aux/config.guess build-aux/config.sub \
        build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \
@@ -851,8 +854,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -1000,8 +1007,8 @@ EXTRA_DIST = girepository/cmph/meson.build girepository/docs.c \
        tools/meson.build COPYING.LGPL COPYING.GPL autogen.sh \
        $(pkgconfig_DATA) $(man_MANS) $(m4_DATA) \
        misc/update-glib-annotations.py misc/update-gtkdoc-tests.py \
-       misc/verbump.py README.rst MSVC.README.rst meson.build \
-       meson_options.txt .flake8
+       README.rst MSVC.README.rst meson.build meson_options.txt \
+       .flake8
 lib_LTLIBRARIES = libgirepository-1.0.la
 noinst_LTLIBRARIES = libgirepository-internals.la \
        libgirepository-gthash.la libgiscanner.la
@@ -1188,7 +1195,8 @@ girepo_HEADERS = \
        girepository/gitypes.h                          \
        girepository/giunioninfo.h                      \
        girepository/giversionmacros.h          \
-       girepository/givfuncinfo.h
+       girepository/givfuncinfo.h                      \
+       $(top_builddir)/girepository/giversion.h
 
 libgirepository_gthash_la_SOURCES = \
        girepository/gthash.c
@@ -1197,7 +1205,8 @@ libgirepository_gthash_la_CFLAGS = \
        $(WARN_CFLAGS) \
        $(GIREPO_CFLAGS)        \
        $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
-       -I$(top_srcdir)/girepository
+       -I$(top_srcdir)/girepository    \
+       -I$(top_builddir)/girepository
 
 libgirepository_gthash_la_LDFLAGS = \
        $(WARN_LDFLAGS)
@@ -1218,7 +1227,8 @@ libgirepository_internals_la_CFLAGS = \
        $(WARN_CFLAGS) \
        $(GIREPO_CFLAGS)        \
        $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
-       -I$(top_srcdir)/girepository
+       -I$(top_srcdir)/girepository    \
+       -I$(top_builddir)/girepository
 
 libgirepository_internals_la_LDFLAGS = \
        $(WARN_LDFLAGS)
@@ -1248,6 +1258,7 @@ libgirepository_1_0_la_SOURCES = \
        girepository/gitypelib.c                        \
        girepository/gitypelib-internal.h               \
        girepository/giunioninfo.c                      \
+       girepository/giversion.c                        \
        girepository/givfuncinfo.c
 
 libgirepository_1_0_la_CPPFLAGS = \
@@ -1255,6 +1266,7 @@ libgirepository_1_0_la_CPPFLAGS = \
        $(GIREPO_CFLAGS)        \
        $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
        -I$(top_srcdir)/girepository    \
+       -I$(top_builddir)/girepository  \
        -DG_IREPOSITORY_COMPILATION
 
 libgirepository_1_0_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS)
@@ -1270,7 +1282,7 @@ gdump_DATA = girepository/gdump.c
 @OS_WIN32_FALSE@gi_dump_types_LDFLAGS = $(WARN_LDFLAGS)
 @OS_WIN32_FALSE@gi_dump_types_LDADD = $(GIO_UNIX_LIBS) $(GMODULE_LIBS)
 gthash_test_SOURCES = girepository/gthash.c girepository/gthash-test.c
-gthash_test_CFLAGS = -I$(top_srcdir)/girepository $(GOBJECT_CFLAGS)
+gthash_test_CFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository $(GOBJECT_CFLAGS)
 gthash_test_LDADD = libcmph.la libgirepository-1.0.la $(GOBJECT_LIBS)
 AM_YFLAGS = -d -t
 libgiscanner_la_SOURCES = \
@@ -1279,7 +1291,7 @@ libgiscanner_la_SOURCES = \
        giscanner/scannerlexer.l                                \
        giscanner/scannerparser.y
 
-libgiscanner_la_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_srcdir)/giscanner
+libgiscanner_la_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository -I$(top_srcdir)/giscanner
 libgiscanner_la_LIBADD = $(GOBJECT_LIBS) $(GIO_LIBS)
 libgiscanner_la_CFLAGS = $(GOBJECT_CFLAGS) $(GIO_CFLAGS) $(WARN_CFLAGS_FLEX)
 libgiscanner_la_LDFLAGS = $(WARN_LDFLAGS)
@@ -1391,7 +1403,7 @@ _giscanner_la_LDFLAGS = $(WARN_LDFLAGS) -module -avoid-version \
        $(am__append_3)
 _giscanner_la_SOURCES = giscanner/giscannermodule.c
 glib_print_SOURCES = examples/glib-print.c
-glib_print_CFLAGS = $(GOBJECT_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir)/girepository
+glib_print_CFLAGS = $(GOBJECT_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 glib_print_LDFLAGS = $(WARN_LDFLAGS)
 glib_print_LDADD = libgirepository-1.0.la $(GOBJECT_LIBS)
 BUILT_GIRSOURCES = GLib-2.0.gir GObject-2.0.gir GModule-2.0.gir \
@@ -1471,7 +1483,8 @@ GObject_2_0_gir_CFLAGS = \
             -I$(GOBJECT_LIBDIR)/glib-2.0/include
 
 GObject_2_0_gir_FILES = \
-       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h, $(wildcard $(GOBJECT_INCLUDEDIR)/gobject/*.h)) \
+       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h $(GOBJECT_INCLUDEDIR)/gobject/gvaluecollector.h, \
+               $(wildcard $(GOBJECT_INCLUDEDIR)/gobject/*.h)) \
        gir/gobject-2.0.c
 
 
@@ -1536,6 +1549,7 @@ GIRepository_2_0_gir_SCANNERFLAGS = \
         $(WARN_SCANNERFLAGS) \
         --identifier-prefix=GI \
         --symbol-prefix=g \
+        --symbol-prefix=gi \
         --c-include="girepository.h" \
         --add-include-path=.
 
@@ -1543,7 +1557,9 @@ GIRepository_2_0_gir_PACKAGES = gobject-2.0
 GIRepository_2_0_gir_INCLUDES = GObject-2.0
 GIRepository_2_0_gir_EXPORT_PACKAGES = gobject-introspection-1.0
 GIRepository_2_0_gir_CFLAGS = \
-    -I$(top_srcdir)/girepository -I$(top_srcdir) \
+    -I$(top_srcdir)/girepository \
+    -I$(top_srcdir) \
+    -I$(top_builddir)/girepository \
     -DGI_COMPILATION
 
 GIRepository_2_0_gir_FILES = \
@@ -1551,6 +1567,7 @@ GIRepository_2_0_gir_FILES = \
         $(top_srcdir)/girepository/girepository.c   \
         $(top_srcdir)/girepository/gi*info.c       \
         $(top_srcdir)/girepository/gi*info.h       \
+        $(top_builddir)/girepository/giversion.h    \
         $(top_srcdir)/girepository/gitypelib.h     \
         $(top_srcdir)/girepository/gitypes.h
 
@@ -1558,9 +1575,9 @@ girdir = $(GIR_DIR)
 gir_DATA = $(STATIC_GIRSOURCES) $(SUBSTITUTED_GIRSOURCES) $(BUILT_GIRSOURCES)
 typelibsdir = $(libdir)/girepository-1.0
 typelibs_DATA = $(gir_DATA:.gir=.typelib)
-TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON_CMD\@,\/usr\/bin\/env\ $(PYTHON),
+TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON_CMD\@,\/usr\/bin\/env\ $(PYTHON), -e s,@GIR_DIR\@,$(GIR_DIR),g
 g_ir_compiler_SOURCES = tools/compiler.c
-g_ir_compiler_CPPFLAGS = -I$(top_srcdir)/girepository
+g_ir_compiler_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 g_ir_compiler_CFLAGS = $(GIO_CFLAGS) $(WARN_CFLAGS)
 g_ir_compiler_LDFLAGS = $(WARN_LDFLAGS)
 g_ir_compiler_LDADD = \
@@ -1569,7 +1586,7 @@ g_ir_compiler_LDADD = \
        $(GIREPO_LIBS)
 
 g_ir_generate_SOURCES = tools/generate.c
-g_ir_generate_CPPFLAGS = -I$(top_srcdir)/girepository
+g_ir_generate_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 g_ir_generate_CFLAGS = $(GIO_CFLAGS) $(WARN_CFLAGS)
 g_ir_generate_LDFLAGS = $(WARN_LDFLAGS)
 g_ir_generate_LDADD = \
@@ -1578,7 +1595,7 @@ g_ir_generate_LDADD = \
        $(GIREPO_LIBS)
 
 g_ir_inspect_SOURCES = tools/g-ir-inspect.c
-g_ir_inspect_CFLAGS = $(GIO_CFLAGS)  $(WARN_CFLAGS) -I$(top_srcdir)/girepository
+g_ir_inspect_CFLAGS = $(GIO_CFLAGS)  $(WARN_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 g_ir_inspect_LDFLAGS = $(WARN_LDFLAGS)
 g_ir_inspect_LDADD = \
         libgirepository-1.0.la \
@@ -1598,22 +1615,6 @@ m4dir = $(datadir)/aclocal
 m4_DATA = m4/introspection.m4
 makedir = $(datadir)/gobject-introspection-1.0
 dist_make_DATA = Makefile.introspection
-
-# Colin's handy Makefile bits for:
-# 1) stuffing tarballs with pre-generated scripts from your workstation
-# 2) bumping configure.ac version post-release
-# 3) tagging correctly in git
-# 4) uploading to gnome.org
-# To use:
-#  $ make check
-#  $ make dist
-#  $ make prepare-minor-release
-
-# Customize to taste
-TAG_PREFIX = GOBJECT_INTROSPECTION_
-COMPRESSION = .xz
-DISTNAME = $(PACKAGE)-$(VERSION).tar$(COMPRESSION)
-TAG_VERSION = $(shell echo $(VERSION) |sed s/\\\./_/g)
 all: $(BUILT_SOURCES) config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -1670,6 +1671,8 @@ distclean-hdr:
        -rm -f config.h stamp-h1
 giscanner/_version.py: $(top_builddir)/config.status $(top_srcdir)/giscanner/_version.py.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
+girepository/giversion.h: $(top_builddir)/config.status $(top_srcdir)/girepository/giversion.h.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
 gobject-introspection-1.0.pc: $(top_builddir)/config.status $(srcdir)/gobject-introspection-1.0.pc.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
 gobject-introspection-no-export-1.0.pc: $(top_builddir)/config.status $(srcdir)/gobject-introspection-no-export-1.0.pc.in
@@ -1988,6 +1991,9 @@ girepository/libgirepository_1_0_la-gitypelib.lo:  \
 girepository/libgirepository_1_0_la-giunioninfo.lo:  \
        girepository/$(am__dirstamp) \
        girepository/$(DEPDIR)/$(am__dirstamp)
+girepository/libgirepository_1_0_la-giversion.lo:  \
+       girepository/$(am__dirstamp) \
+       girepository/$(DEPDIR)/$(am__dirstamp)
 girepository/libgirepository_1_0_la-givfuncinfo.lo:  \
        girepository/$(am__dirstamp) \
        girepository/$(DEPDIR)/$(am__dirstamp)
@@ -2169,6 +2175,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@girepository/$(DEPDIR)/libgirepository_1_0_la-gitypeinfo.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@girepository/$(DEPDIR)/libgirepository_1_0_la-gitypelib.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@girepository/$(DEPDIR)/libgirepository_1_0_la-giunioninfo.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@girepository/$(DEPDIR)/libgirepository_1_0_la-giversion.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@girepository/$(DEPDIR)/libgirepository_1_0_la-givfuncinfo.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@girepository/$(DEPDIR)/libgirepository_gthash_la-gthash.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@girepository/$(DEPDIR)/libgirepository_internals_la-girmodule.Plo@am__quote@ # am--include-marker
@@ -2545,6 +2552,13 @@ girepository/libgirepository_1_0_la-giunioninfo.lo: girepository/giunioninfo.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgirepository_1_0_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o girepository/libgirepository_1_0_la-giunioninfo.lo `test -f 'girepository/giunioninfo.c' || echo '$(srcdir)/'`girepository/giunioninfo.c
 
+girepository/libgirepository_1_0_la-giversion.lo: girepository/giversion.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgirepository_1_0_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT girepository/libgirepository_1_0_la-giversion.lo -MD -MP -MF girepository/$(DEPDIR)/libgirepository_1_0_la-giversion.Tpo -c -o girepository/libgirepository_1_0_la-giversion.lo `test -f 'girepository/giversion.c' || echo '$(srcdir)/'`girepository/giversion.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) girepository/$(DEPDIR)/libgirepository_1_0_la-giversion.Tpo girepository/$(DEPDIR)/libgirepository_1_0_la-giversion.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='girepository/giversion.c' object='girepository/libgirepository_1_0_la-giversion.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgirepository_1_0_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o girepository/libgirepository_1_0_la-giversion.lo `test -f 'girepository/giversion.c' || echo '$(srcdir)/'`girepository/giversion.c
+
 girepository/libgirepository_1_0_la-givfuncinfo.lo: girepository/givfuncinfo.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgirepository_1_0_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT girepository/libgirepository_1_0_la-givfuncinfo.lo -MD -MP -MF girepository/$(DEPDIR)/libgirepository_1_0_la-givfuncinfo.Tpo -c -o girepository/libgirepository_1_0_la-givfuncinfo.lo `test -f 'girepository/givfuncinfo.c' || echo '$(srcdir)/'`girepository/givfuncinfo.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) girepository/$(DEPDIR)/libgirepository_1_0_la-givfuncinfo.Tpo girepository/$(DEPDIR)/libgirepository_1_0_la-givfuncinfo.Plo
@@ -3580,6 +3594,7 @@ distclean: distclean-recursive
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-gitypeinfo.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-gitypelib.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-giunioninfo.Plo
+       -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-giversion.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-givfuncinfo.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_gthash_la-gthash.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_internals_la-girmodule.Plo
@@ -3695,6 +3710,7 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-gitypeinfo.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-gitypelib.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-giunioninfo.Plo
+       -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-giversion.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_1_0_la-givfuncinfo.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_gthash_la-gthash.Plo
        -rm -f girepository/$(DEPDIR)/libgirepository_internals_la-girmodule.Plo
@@ -3937,19 +3953,6 @@ g-ir-doc-tool: tools/g-ir-tool-template.in _giscanner.la Makefile
 check.quality:
        (cd $(abs_top_srcdir) && $(PYTHON) -m flake8 --count);
 
-prepare-release-tag: Makefile
-       git tag -m "Tag $(TAG_VERSION)" -a $(TAG_PREFIX)$(TAG_VERSION)
-
-prepare-minor-release: $(DISTNAME) prepare-release-tag Makefile
-       env top_srcdir=$(top_srcdir) python $(top_srcdir)/misc/verbump.py
-
-upload-release: $(DISTNAME) Makefile
-       git log origin/master..master
-       @echo -n "Ok to push? [y/N] "; read ans; test x$$ans == xy || exit 1
-       git push --tags origin master:master
-       scp $(DISTNAME) master.gnome.org:
-       ssh master.gnome.org install-module $(DISTNAME)
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/NEWS b/NEWS
index 9622d72..f5d44d5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,37 +1,64 @@
-1.58.3 - 2018-12-30
+1.59.1 - 2018-12-16
 -------------------
 
-* docwriter: Support python-markdown 3.x. issue#250
-* scanner:  Define grefcount and gatomicrefcount as aliases to gint. issue#254
-  (Tomasz Miąsko <tomasz.miasko@gmail.com>)
-* scanner: make using bool without stdbool include work again. issue#247
-* gir: Update glib annotations for glib 2.58.2
-
-
-2.58.2 - 2018-12-09
+* Everything included in 1.58.2
+* build: Drop Python 2 support, require Python 3.4+ :mr:`69`
+* build: Add option to make .gir files installation paths configurable
+  :mr:`63` (:user:`Kai Kang <kai.7.kang>`)
+* build: Skip gobject/gvaluecollector.h when constructing GObject GIR
+  :mr:`20` (:user:`Tomasz Miąsko <tmiasko>`)
+* build: Port various tests to work with meson
+  :mr:`92` :mr:`94` :mr:`95` (:user:`Tomasz Miąsko <tmiasko>`)
+* regress: Add test for write-only property
+  :mr:`67` (:user:`Philip Chimento <ptomato>`)
+* regress: Implement interface and override properties
+  :mr:`59` (:user:`Philip Chimento <ptomato>`)
+* writer: Include documentation and symbol position in source files
+  :mr:`75` (:user:`Thibault Saunier <thiblahute>`)
+* giscanner: Print relative filename paths when warning
+  :mr:`74` (:user:`Jonas Ådahl <jadahl>`)
+* giscanner: Define grefcount and gatomicrefcount as aliases to gint
+  :mr:`76` (:user:`Tomasz Miąsko <tmiasko>`)
+* giscanner: Allow empty declarations. Fixes warnings with mingw headers.
+  :issue:`216` :mr:`89` (:user:`Christoph Reiter <creiter>`)
+* giscanner: Replace linked lists with arrays in source scanner
+  :mr:`90` (:user:`Tomasz Miąsko <tmiasko>`)
+* girepository: Various docs cleanups and fixes
+  :mr:`96` :mr:`97` :issue:`66` (:user:`Tomasz Miąsko <tmiasko>`,
+  :user:`Christoph Reiter <creiter>`, Jasper St. Pierre)
+* girepository: Don't abort when calling g_base_info_get_name() on a GITypeInfo
+  :issue:`96` :mr:`99` (:user:`Christoph Reiter <creiter>`)
+* girepository: Add version macros and functions
+  :issue:`200` :mr:`98` (:user:`Christoph Reiter <creiter>`)
+
+
+1.58.2 - 2018-12-09
 -------------------
 
 * meson: Fix random build errors (mostly MSVC)
-  (Tomasz Miąsko <tomasz.miasko@gmail.com>)
+  :mr:`88` (:user:`Tomasz Miąsko <tmiasko>`)
 * scanner: Fix parsing of __typeof__ that is part of a cast expression
-  (Tomasz Miąsko <tomasz.miasko@gmail.com>)
+  :mr:`78` (:user:`Tomasz Miąsko <tmiasko>`)
 * scanner: Ignore __pragma keyword used by MSVC
-  (Tomasz Miąsko <tomasz.miasko@gmail.com>)
+  :mr:`87` (:user:`Tomasz Miąsko <tmiasko>`)
 
 
-2.58.1 - 2018-11-17
+1.58.1 - 2018-11-17
 -------------------
 
-* meson: Install warnlib mr#62 (Jan Tojnar <jtojnar@gmail.com>)
+* meson: Install warnlib :mr:`62` (:user:`Jan Tojnar <jtojnar>`)
 * scanner: Parse __typeof__ and discard it
-  mr#71 (Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>)
+  :mr:`71` (:user:`Jan Alexander Steffens <heftig>`)
 * meson: add back /usr/bin/env to the python-cmd
-  issue#237 mr#70 (Havard Graff <havard@pexip.com>)
+  :issue:`237` :mr:`70` (:user:`Håvard Graff <hgr>`)
 * Fix non libtool build
-  mr#72 (Olivier Crête <olivier.crete@collabora.com>)
+  :mr:`72` (:user:`Olivier Crête <ocrete>`)
 
 
-=== 2.58 ======================================================================
+1.58.0 - 2018-08-31
+-------------------
+
+::
 
     • Changes:
       - Update annotations imported from GLib, and require GLib 2.58
       Philip Chimento, Tom Schoonjans, Christoph Reiter, Ray Donnelly,
       Marcus Calhoun-Lopez, Florian Müllner, Evan Welsh, Mathieu Duponchelle
 
-=== 2.56 ======================================================================
+1.56 - 2018-03-13
+-----------------
+
+::
 
     • Changes:
       - Add _Float128 to the base C types
       Nicola Fontana, Tomasz Miąsko, Emmanuele Bassi, Philip Chimento,
       Karl-Philipp Richter
 
----
-For older releases, see the Git log
----
-0.6.3 22-jun 2009
-    Bugs resolved:
-      - 551738 Association needed between records and classes/interfaces
-      - 555960 Nested structs and unions
-      - 555964 float #defined constants are ignored
-      - 556475 support Shadows: annotation
-      - 561360 do not fail for not-found GTypes
-      - 561604 g-ir-compiler fails on gvariant
-      - 563469 Arrays not treated correctly in struct offset calculation
-      - 563682 Fails to build on Hurd/i386 because of undefined PATH_MAX
-      - 564016 add nsprefix to gir and typelib
-      - 566560 giscanner.transformer.SkipError
-      - 567906 put pkg-config name in gir, use them by default in scanner
-      - 568680 Scanner misses fields (at least in GObject.Object)
-      - 569355 warning fixes
-      - 569633 [PATCH] Typelib compiler fails with vararg callbacks.
-      - 569930 g_registered_type_info_get_g_type does not handle GObject
-      - 570594 everything you know about C syntax is wrong
-      - 570903 Add information about -I flag to scanner manpage.
-      - 571182 introspection.m4 issues
-      - 571248 [patch] ignore unknown elements in gir parser
-      - 571483 .gir should be sorted
-      - 571548 generic typelib attributes
-      - 571649 Rename Soup-2.0.gir to Soup-2.4.gir
-      - 572075 Make the scanner work with static and convenience libraries
-      - 572086 Parse doc-comment tags case-insensitive
-      - 572423 Add c:header-filename or c:header-filenames where appropr...
-      - 572434 Have glib:is-iface-struct-for attribute on *Iface structs
-      - 572563 build failure in tests/everything
-      - 572790 #defines should be parsed in .h files but not .c files
-      - 572965 Allow generic marshaller to be called without parameters
-      - 573306 Relax callback grouping detection rules
-      - 573309 Adding an "--all" parameter to g-ir-generate
-      - 573332 Allow annotation of enums as bitfields
-      - 574139 There is no way to identify 'user_data' arguments in the ...
-      - 574284 Add support for a 'closure' and 'destroy' annotations
-      - 574501 build script looks for site-packages instead of dist-pack...
-      - 575613 incorrect enum stripping
-      - 576323 g-ir-compiler fails with constant in classes
-      - 576605 Get rid of GI_SCOPE_TYPE_OBJECT
-      - 576627 gir-repository: WebKit needs to include Soup-2.4
-      - 577065 Fix 'Could not find GIR file ...' error to use right file...
-      - 577534 use rename() to write out typelibs
-      - 577546 Missing annotations for GLib, GObject and Gio
-      - 579522 gobject-introspection fails to build when missing libsoup...
-      - 579602 Annotation fixes for gdk, gdkpixbuf, gtk and notify
-      - 581680 Leftover bogus text in g-object-introspection documentation
-      - 581681 Allow the use of the "Rename To" annotation for literal m...
-      - 581682 Improve "Everything" test library
-      - 581684 Minor doc comment fix
-      - 581685 Allow nested parameterized types for GList, GSList, and G...
-      - 581689 Better handle classes with non-standard to_underscore names.
-      - 583338 GIR annotations: gtk_init can take a null argv
-      - 584423 Add short/ushort support
-      - 584432 g-ir-compiler fails to find gir files installed by gobjec...
-      - 584453 Default annotations value for const gchar* const *
-      - 584816 Add GLclampf to the GL GIR
-      - 584842 Add an Everything-1.0-expected.gir, test Everything versu...
-      - 585081 libgirepository-everything is not linked against libglib,...
-      - 585141 Incomplete gir generation for GdkPixbuf, Atk, Poppler
-      - 585150 XPATH_TESTS are not run
-      - 585328 g_type_info_is_zero_terminated returns TRUE unless (array...
-      - 585373 Add annotations for g_spawn_* functions.
-      - 585579 g-o-i: 'make check' doesn't check Everything-1.0-expected...
-      - 585584 Fix warnings in girparser.c and compiler.c
-      - 585908 make distcheck fails
-    Contributors:
-    C. Scott Ananian, Emmanuele Bassi, Johan Bilien, Robert Carr,
-    Johan Dahlin, Holger Hans Peter Freyther, Marco Pesenti Gritti,
-    David Ignacio, Mark Lee, Simon van der Linden, Xan Lopez,
-    Didier 'Ptitjes, Chris Rivera, Andreas Rottmann, Owen W. Taylor,
-    Colin Walters, Dan Winship, Tomeu Vizoso and Marina Zhurakhinskaya
-
-
-0.6.2 21-jan-2009
-    Bugs resolved:
-    - Bug 562622 – Errordomains missing
-    - Bug 562615 – Struct methods missing
-    - Bug 567813 – Everything should be versioned
-    - Bug 555036 – put gtk-doc in GIR
-    - Bug 562467 – Property annotation
-    - Bug 546739 – Introspection should know precise signal parameter types
-    - Bug 563591 – Flags not recognized when there is no introspection data
-    - Bug 563386 – scanner ignores "const" on boxed return values
-    - Bug 566404 – Annotations for GLib
-    - Bug 566419 – Element type of arrays not properly handled in all cases
-    - Bug 566560 – giscanner.transformer.SkipError
-    - Bug 563794 - Redo annotation parsing & applying
-    - Bug 563469 – Arrays not treated correctly in struct offset calculation
-    - Bug 556489 – callback annotations
-    - Bug 563998 – Cache the GIBaseInfo for GTypes
-    - Bug 562545 – Add function taking / returning GValue
-    - Bug 563742 – introspection should record the introduced version of
-    - Bug 562971 – g-ir-scanner failure on libgpod headers
-    - Bug 562289 – Race when removing invalid cache
-    - Bug 559705 – Missing association between static methods and classes
-    - Bug 562022 – gobject-introspection needs python headers
-    - Bug 561617 – Return value array annotations
-    - Bug 561296 - Add "storage type" to the typelib data for enums
-    - Bug 559706 - Interface prerequisites
-    - Bug 561087 - Respect is_pointer in serialize_type()
-    - Bug 560825 – Add size and alignment to typelib
-    Contributors:
-    Johan Bilien, Jürg Billeter, Johan Dahlin, Christophe Fergeau
-    Havoc Pennington, Andreas Rottmann, Owen Taylor, Tristan Van Berkom
-    Colin Walters, Dan Winship
-
-0.6.1 25-nov-2008
-    Bugs resolved:
-    - Bug 552371 - implement struct field get/set
-    - Bug 552568 - All the argv parameters in Gtk.gir map char*** to int8
-    - Bug 557468 - Support for GI_TYPELIB_PATH
-    - Bug 557788 - Return types for constructors in generated typelib bogus
-    - Bug 557898 - Fails to build on OSX 10.4
-    - Bug 558436 - avoid having scanner load app code
-    - Bug 558848 - girparser.py: shared-library should be optional
-    - Bug 558849 - girepository: extend X stubbing
-    - Bug 559601 - Pointers in structs/unions unduly treated as arrays
-    - Bug 559703 - Virtual functions miss throws attribute in .gir
-    - Bug 559706 - Interface prerequisites missing
-    - Bug 559736 - Show the right filename in error messages
-    - Bug 559737 - Deal with continuations in macros
-    - Bug 560241 - Out-arguments should not be marked as being pointers in a...
-    - Bug 560248 - "disguised structures"
-    - Bug 560250 - [PATCH] Fully parse included modules
-    - Bug 560251 - [PATCH] Split g_ir_ffi_get_ffi_type() out from ginvoke.c
-    - Bug 560252 - Compute field offsets before writing typelib
-    - Bug 560253 - [PATCH] Add struture and boxed types to Everything test m...
-    - Bug 560308 - g-ir-compiler goes in infinite loop on Gdk-2.0.gir
-    - Bug 560326 - Fails to build Gtk-2.0.typelib with "Unexpected non-point...
-    - Bug 560346 - Fix and install pkgconfig file
-    - Bug 560404 - Prefix types when resolving aliases in included modules
-    - Bug 560419 - Cache includes when parsing
-    - Bug 560474 - g-ir-compiler crashes when compiling the glib gir
-    - Bug 560708 - Don't treat arrays that have a length specified as zero-t...
-    - Bug 560825 - Add size and alignment to typelib
-    - Bug 561087 - Respect is_pointer in serialize_type()
-    - Bug 561135 - hashtable element-type annotations broken
-    - Bug 561137 - support multiple repos for GBaseInfo
-    - Bug 561296 - Add "storage type" to the typelib data for enums
-    - Bug 561568 - Add Gio Unix bits to the Gio.gir if available
-    - Bug 561570 - Add TestObj with static methods
-    - Bug 561617 - Return value array annotations
-    - Bug 562022 - gobject-introspection needs python headers
-    - Bug 562030 - gir repository fails to build DBus-1.0.typelib without db...
-    - Bug 562031 - gir repository fails to libxml2 typelib without libxml2 i... 
-    Contributors: Étienne Bersac, Johan Bilien, Jürg Billeter, Johan Dahlin,
-      Tommi Komulainen, Tom Parker, Lucas Rocha, Andreas Rottmann
-      Colin Walters, Dan Winship, Owen Taylor
-
-0.6.0 31-oct-2008
-    Bugs resolved:
-    - Bug 551162 - giscanner does not recognize asm and __asm__
-    - Bug 551737 - Fix strip_namespace_func to only strip prefix...
-    - Bug 551744 - Non-GObject types aren't aggregating ctors and methods
-    - Bug 552065 - Add deprecation annotation
-    - Bug 552347 - Parse #defines constants
-    - Bug 552370 - add one more test for unsigned as a type, not as a type qualifier
-    - Bug 552370 - unsigned not scanned properly
-    - Bug 552374 - Const strings should be identified in the gir
-    - Bug 552380 - Array parameters should be marked in the gir
-    - Bug 552384 - Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
-    - Bug 552390 - Handle capitialization like "DBus" more robustly
-    - Bug 552393 - Note variadic functions
-    - Bug 552566 - Add time_t type 
-    - Bug 552858 - versioning
-    - Bug 554490 - g-ir-scanner gets confused by '\\'
-    - Bug 554521 - scanner generates wrong names for enum members with...
-    - Bug 554576 - scan problem with ev_selection_render_selection()
-    - Bug 554632 - type tag for GType
-    - Bug 554854 - The --typelib-xml and --inject options should reuse giscanner ...
-    - Bug 555293 - append library_paths to LPATH env variable to workaround a...
-    - Bug 555294 - Add support for multiple shared libraries per typelib.
-    - Bug 555712 - Struct and union issues
-    - Bug 555946 - Install a test module exercising all types, transfer rules, etc
-    - Bug 556048 – Crash in g_irepository_find_by_gtype
-    - Bug 556174 – parse types for lists etc
-    - Bug 556185 - segfault on g_callable_info_get_return_type
-    - Bug 556323 – transfer-ownership is wrong for functions returning const char *
-    - Bug 556331 - clean up includes handling
-    - Bug 556358 - don't use libtool internals
-    - Bug 556400 – Fails to build on OS X 10.4
-    - Bug 556432 - transfer annotations and defaults
-    - Bug 556433 – assume direction = out for int * parameters
-    - Bug 556434 – unhandled interface/object/... member types
-    - Bug 556541 – access union members through UnionBlob rather than StructBlob
-    - Bug 556543 – reduce compiler warnings
-    - Bug 556579 - union and struct name misresolved
-    - Bug 556610 – giscanner/girparser.py drops parameter options
-    - Bug 556732 – generate gir files consistently
-    - Bug 556739 - transfer ownership
-    - Bug 556777 - validate properties
-    - Bug 556783 - change namespace handling to be more consistent
-    - Bug 556795 - char ** regression
-    - Bug 557076 - move typelibs to $libdir
-    - Bug 557092 – Callback annotations not used
-    - Bug 557241 – "throws" flag for functions
-    - Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
-    - Bug 557379 – g-ir-generate not writing the 'abstract' attribute
-    - Bug 557405 – Use 'allow-none' consistently
-    - Bug 557468 – Support for GI_TYPELIB_PATH
-    - Bug 557623 - Constructors shouldn't be flagged as methods
-    - Bug 557786 - support fixed size arrays
-    - Bug 557788 – Return types for constructors in generated typelib bogus
-    - Bug 557791 – g_irepository_require() could return a GTypelib *
-    - Bug 558062 – provide and use paths in the .pc file
-    - Bug 558065 – gitesttypes should be installed
-    - Bug 558068 – when invoking a method, offset the in arguments by one, not the out
-    - Bug 558109 – _g_typelib_init fails to find shared libraries
-    - Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed
-    Contributors: Johan Bilien, Jürg Billeter, Johan Dahlin, John Ehresman,
-      Tommi Komulainen, Jani Monoses, Lucas Rocha, Andreas Rottmann
-      Colin Walters, Dan Winship, Owen Taylor
+.. note::
 
-0.5.0 01-sep-2008
-    - First public release
+    For older releases, see the Git log
index 2d3baee..3a0703f 100644 (file)
@@ -1,6 +1,6 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
-/* Director prefix for gir installation */
+/* Directory prefix for gir installation */
 #undef GIR_DIR
 
 /* Name of the gir directory */
index 32ef490..c5f08d7 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gobject-introspection 1.58.3.
+# Generated by GNU Autoconf 2.69 for gobject-introspection 1.59.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gobject-introspection'
 PACKAGE_TARNAME='gobject-introspection'
-PACKAGE_VERSION='1.58.3'
-PACKAGE_STRING='gobject-introspection 1.58.3'
+PACKAGE_VERSION='1.59.1'
+PACKAGE_STRING='gobject-introspection 1.59.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection'
 PACKAGE_URL=''
 
@@ -706,6 +706,7 @@ GOBJECT_LIBS
 GOBJECT_CFLAGS
 GLIB_LIBS
 GLIB_CFLAGS
+GIR_PC_DIR
 GIR_DIR
 GIR_SUFFIX
 GOBJECT_INTROSPECTION_LIBDIR
@@ -776,6 +777,9 @@ build_os
 build_vendor
 build_cpu
 build
+GI_MICRO_VERSION
+GI_MINOR_VERSION
+GI_MAJOR_VERSION
 GI_VERSION
 MAINT
 MAINTAINER_MODE_FALSE
@@ -863,6 +867,7 @@ with_sysroot
 enable_libtool_lock
 enable_compile_warnings
 enable_Werror
+with_gir_dir_prefix
 with_cairo
 with_html_dir
 enable_gtk_doc
@@ -1457,7 +1462,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gobject-introspection 1.58.3 to adapt to many kinds of systems.
+\`configure' configures gobject-introspection 1.59.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1529,7 +1534,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gobject-introspection 1.58.3:";;
+     short | recursive ) echo "Configuration of gobject-introspection 1.59.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1571,11 +1576,13 @@ Optional Packages:
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
                           compiler's sysroot if not specified).
+  --with-gir-dir-prefix   Directory prefix for gir installation
   --with-cairo            Use cairo [default=maybe]
   --with-html-dir=PATH    path to installed docs
   --with-python=PATH      Path to Python interpreter; searches $PATH if only a
-                          program name is given; if not given, searches for a
-                          few standard names such as "python3" or "python2"
+                          program name, such as "python3" or "python3.4", is
+                          given; if not given, searches for a few standard
+                          names
   --with-glib-src=PATH    Source directory for glib - needed to add docs to gir
 
 Some influential environment variables:
@@ -1694,7 +1701,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gobject-introspection configure 1.58.3
+gobject-introspection configure 1.59.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2246,7 +2253,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gobject-introspection $as_me 1.58.3, which was
+It was created by gobject-introspection $as_me 1.59.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3114,7 +3121,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gobject-introspection'
- VERSION='1.58.3'
+ VERSION='1.59.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3388,7 +3395,14 @@ AM_BACKSLASH='\'
 
 
 # Used in docs/reference/version.xml
-GI_VERSION=1.58.3
+GI_VERSION=1.59.1
+
+
+GI_MAJOR_VERSION=1
+GI_MINOR_VERSION=59
+GI_MICRO_VERSION=1
+
+
 
 
 # Check for Win32
@@ -14437,7 +14451,22 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-GIR_DIR="$EXPANDED_DATADIR/$GIR_SUFFIX"
+
+# Check whether --with-gir-dir-prefix was given.
+if test "${with_gir_dir_prefix+set}" = set; then :
+  withval=$with_gir_dir_prefix; GIR_DIR_PREFIX="$withval"
+fi
+
+
+if test -z $GIR_DIR_PREFIX; then
+        GIR_DIR="$EXPANDED_DATADIR/$GIR_SUFFIX"
+        GIR_PC_DIR="\${datadir}/$GIR_SUFFIX"
+else
+        GIR_DIR="$GIR_DIR_PREFIX/$GIR_SUFFIX"
+        GIR_PC_DIR="$GIR_DIR_PREFIX/$GIR_SUFFIX"
+fi
+
+
 
 
 cat >>confdefs.h <<_ACEOF
 if test x"$PYTHON" = xyes; then
     as_fn_error $? "--with-python option requires a path or program argument" "$LINENO" 5
 fi
-if test -n "$PYTHON" && ! which "$PYTHON"; then
-    as_fn_error $? "Python interpreter $PYTHON does not exist" "$LINENO" 5
-fi
-
 
 
 
 
         if test -n "$PYTHON"; then
       # If the user set $PYTHON, use it and don't search something else.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.7" >&5
-$as_echo_n "checking whether $PYTHON version is >= 2.7... " >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 3.4" >&5
+$as_echo_n "checking whether $PYTHON version is >= 3.4... " >&6; }
       prog="import sys
 # split strings by '.' and convert to numeric.  Append some zeros
 # because we need at least 4 digits for the hex conversion.
 # map returns an iterator in Python 3.0 and a list in 2.x
-minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
+minver = list(map(int, '3.4'.split('.'))) + [0, 0, 0]
 minverhex = 0
 # xrange is not present in Python 3.0 and range returns an iterator
 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
@@ -16291,8 +16316,8 @@ fi
     else
       # Otherwise, try each interpreter until we find one that satisfies
       # VERSION.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.7" >&5
-$as_echo_n "checking for a Python interpreter with version >= 2.7... " >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 3.4" >&5
+$as_echo_n "checking for a Python interpreter with version >= 3.4... " >&6; }
 if ${am_cv_pathless_PYTHON+:} false; then :
   $as_echo_n "(cached) " >&6
 else
@@ -16303,7 +16328,7 @@ else
 # split strings by '.' and convert to numeric.  Append some zeros
 # because we need at least 4 digits for the hex conversion.
 # map returns an iterator in Python 3.0 and a list in 2.x
-minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
+minver = list(map(int, '3.4'.split('.'))) + [0, 0, 0]
 minverhex = 0
 # xrange is not present in Python 3.0 and range returns an iterator
 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
@@ -16369,7 +16394,7 @@ fi
 
 
   if test "$PYTHON" = :; then
-      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
+      as_fn_error $? "Requires Python >=3.4" "$LINENO" 5
   else
 
 
@@ -16517,6 +16542,7 @@ $as_echo "$am_cv_python_pyexecdir" >&6; }
   fi
 
 
+
 case "$host" in
 *-*-mingw*)
        # Change backslashes to forward slashes in pyexecdir to avoid
@@ -16828,7 +16854,7 @@ else
 fi
 
 
-ac_config_files="$ac_config_files Makefile tests/Makefile tests/offsets/Makefile tests/scanner/Makefile tests/scanner/annotationparser/Makefile tests/repository/Makefile tests/warn/Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml giscanner/_version.py gobject-introspection-1.0.pc gobject-introspection-no-export-1.0.pc"
+ac_config_files="$ac_config_files Makefile tests/Makefile tests/offsets/Makefile tests/scanner/Makefile tests/scanner/annotationparser/Makefile tests/repository/Makefile tests/warn/Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml giscanner/_version.py girepository/giversion.h gobject-introspection-1.0.pc gobject-introspection-no-export-1.0.pc"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -17416,7 +17442,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gobject-introspection $as_me 1.58.3, which was
+This file was extended by gobject-introspection $as_me 1.59.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17482,7 +17508,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gobject-introspection config.status 1.58.3
+gobject-introspection config.status 1.59.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -17908,6 +17934,7 @@ do
     "docs/reference/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/Makefile" ;;
     "docs/reference/version.xml") CONFIG_FILES="$CONFIG_FILES docs/reference/version.xml" ;;
     "giscanner/_version.py") CONFIG_FILES="$CONFIG_FILES giscanner/_version.py" ;;
+    "girepository/giversion.h") CONFIG_FILES="$CONFIG_FILES girepository/giversion.h" ;;
     "gobject-introspection-1.0.pc") CONFIG_FILES="$CONFIG_FILES gobject-introspection-1.0.pc" ;;
     "gobject-introspection-no-export-1.0.pc") CONFIG_FILES="$CONFIG_FILES gobject-introspection-no-export-1.0.pc" ;;
 
index 57f3d4d..d27edcf 100644 (file)
@@ -3,8 +3,8 @@
 
 dnl the gi version number
 m4_define(gi_major_version, 1)
-m4_define(gi_minor_version, 58)
-m4_define(gi_micro_version, 3)
+m4_define(gi_minor_version, 59)
+m4_define(gi_micro_version, 1)
 m4_define(gi_version, gi_major_version.gi_minor_version.gi_micro_version)
 
 AC_PREREQ([2.63])
@@ -26,6 +26,13 @@ AM_SILENT_RULES([yes])
 GI_VERSION=gi_version
 AC_SUBST(GI_VERSION)
 
+GI_MAJOR_VERSION=gi_major_version
+GI_MINOR_VERSION=gi_minor_version
+GI_MICRO_VERSION=gi_micro_version
+AC_SUBST(GI_MAJOR_VERSION)
+AC_SUBST(GI_MINOR_VERSION)
+AC_SUBST(GI_MICRO_VERSION)
+
 # Check for Win32
 AC_CANONICAL_HOST
 case "$host" in
@@ -114,9 +121,21 @@ GIR_SUFFIX="gir-1.0"
 AC_SUBST(GIR_SUFFIX)
 AC_DEFINE_UNQUOTED(GIR_SUFFIX, "$GIR_SUFFIX", [Name of the gir directory])
 
-GIR_DIR="$EXPANDED_DATADIR/$GIR_SUFFIX"
+AC_ARG_WITH([gir-dir-prefix],
+               [AS_HELP_STRING([--with-gir-dir-prefix], [Directory prefix for gir installation])],
+               [GIR_DIR_PREFIX="$withval"], [])
+
+if test -z $GIR_DIR_PREFIX; then
+        GIR_DIR="$EXPANDED_DATADIR/$GIR_SUFFIX"
+        GIR_PC_DIR="\${datadir}/$GIR_SUFFIX"
+else
+        GIR_DIR="$GIR_DIR_PREFIX/$GIR_SUFFIX"
+        GIR_PC_DIR="$GIR_DIR_PREFIX/$GIR_SUFFIX"
+fi
+
 AC_SUBST(GIR_DIR)
-AC_DEFINE_UNQUOTED(GIR_DIR, "$GIR_DIR", [Director prefix for gir installation])
+AC_SUBST(GIR_PC_DIR)
+AC_DEFINE_UNQUOTED(GIR_DIR, "$GIR_DIR", [Directory prefix for gir installation])
 
 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.58.0])
 
@@ -246,16 +265,13 @@ AC_CHECK_FUNCS([backtrace backtrace_symbols])
 # we will fallback to reading $PYTHON if --with-python is not given, and
 # python.m4 will get the expected input
 AC_ARG_WITH(python,
-  AS_HELP_STRING([--with-python=PATH],[Path to Python interpreter; searches $PATH if only a program name is given; if not given, searches for a few standard names such as "python3" or "python2"]),
+  AS_HELP_STRING([--with-python=PATH],[Path to Python interpreter; searches $PATH if only a program name, such as "python3" or "python3.4", is given; if not given, searches for a few standard names]),
   [PYTHON="$withval"], [])
 if test x"$PYTHON" = xyes; then
     AC_MSG_ERROR([--with-python option requires a path or program argument])
 fi
-if test -n "$PYTHON" && ! which "$PYTHON"; then
-    AC_MSG_ERROR([Python interpreter $PYTHON does not exist])
-fi
+AM_PATH_PYTHON(3.4,,[AC_MSG_ERROR([Requires Python >=3.4])])
 
-AM_PATH_PYTHON([2.7])
 case "$host" in
 *-*-mingw*)
        # Change backslashes to forward slashes in pyexecdir to avoid
@@ -379,6 +395,7 @@ docs/Makefile
 docs/reference/Makefile
 docs/reference/version.xml
 giscanner/_version.py
+girepository/giversion.h
 gobject-introspection-1.0.pc
 gobject-introspection-no-export-1.0.pc])
 AC_OUTPUT
index 3c9463d..c24e4bf 100644 (file)
@@ -262,8 +262,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index 5072be1..8b121e9 100644 (file)
@@ -195,6 +195,9 @@ grammar {
     & element doc {
       attribute xml:space { "preserve" }?,
       attribute xml:whitespace { "preserve" }?,
+      attribute filename { xsd:string },
+      attribute line { xsd:string },
+      attribute column { xsd:string },
 
       text
     }?
@@ -204,6 +207,11 @@ grammar {
 
       text
     }?
+    & element source-position {
+      attribute filename { xsd:string },
+      attribute line { xsd:string },
+      attribute column { xsd:string },
+    }?
   )
 
   Info.elements = (
index ed55e59..ee953bb 100644 (file)
@@ -57,17 +57,9 @@ IGNORE_HFILES=                                               \
        girmodule.h                                     \
        girepository-private.h
 
-# Images to copy into HTML directory.
-# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
-HTML_IMAGES=                                           \
-    images/overview.png
-
 # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
 # e.g. content_files=running.sgml building.sgml changes-2.0.sgml
 content_files=                                         \
-       overview-building.xml                           \
-       overview-programming.xml                        \
-       gi-gir-reference.xml                            \
        gi-struct-hierarchy.xml                         \
        version.xml
 
index 0ad448b..149bcea 100644 (file)
@@ -196,8 +196,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -393,18 +397,9 @@ IGNORE_HFILES = \
        girepository-private.h
 
 
-# Images to copy into HTML directory.
-# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
-HTML_IMAGES = \
-    images/overview.png
-
-
 # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
 # e.g. content_files=running.sgml building.sgml changes-2.0.sgml
 content_files = \
-       overview-building.xml                           \
-       overview-programming.xml                        \
-       gi-gir-reference.xml                            \
        gi-struct-hierarchy.xml                         \
        version.xml
 
index b6bc54f..741023d 100644 (file)
@@ -5,99 +5,31 @@
 <!ENTITY version SYSTEM "xml/version.xml">
 ]>
 <book id="index" lang="en" xmlns:xi="http://www.w3.org/2003/XInclude">
-  <title>GObject Introspection Reference Manual</title>
+  <title>libgirepository API Reference</title>
   <bookinfo>
-    <title>GObject Introspection Reference Manual</title>
+    <title>libgirepository API Reference</title>
     <releaseinfo>
-      This document is for GObject Introspection version &version;.
+      This document is for libgirepository version &version;.
       The latest version of this documentation can be found on-line at
-      <ulink type="http" url="http://developer.gnome.org/gi/unstable/">http://developer.gnome.org/gi/unstable/</ulink>.
-    </releaseinfo>
-  </bookinfo>
-
-  <part id="overview">
-    <title>GObject-Introspection Overview</title>
-    <para>
-      GObject-Introspection is striving to provide a middleware layer between
-      (GObject based) C libraries and language bindings. The primary goal of
-      this project is to minimize duplicated effort in language binding
-      projects by providing shared metadata files on bound C libraries.
-      Language bindings can read these metadata files at runtime to learn
-      how to interface with a bound C library.
-    </para>
-
-    <xi:include href="xml/overview-building.xml"/>
-    <xi:include href="xml/overview-programming.xml"/>
-    <!-- <chapter>
-      <title>Introduction</title>
-
+      <ulink type="http" url="https://developer.gnome.org/gi/unstable/">https://developer.gnome.org/gi/unstable/</ulink>.
       <para>
-        Metadata provided by GObject-Introspection is represented by a
-        number of structures:
-        <synopsis>
-        * <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
-          * <link linkend="gi-GICallableInfo">GICallableInfo</link>
-            * <link linkend="gi-GIFunctionInfo">GIFunctionInfo</link>
-            * <link linkend="gi-GISignalInfo">GISignalInfo</link>
-            * <link linkend="gi-GIVFuncInfo">GIVFuncInfo</link>
-          * <link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
-            * <link linkend="gi-GIEnumInfo">GIEnumInfo</link>
-            * <link linkend="gi-GIInterfaceInfo">GIInterfaceInfo</link>
-            * <link linkend="gi-GIObjectInfo">GIObjectInfo</link>
-            * <link linkend="gi-GIStructInfo">GIStructInfo</link>
-            * <link linkend="gi-GIUnionInfo">GIUnionInfo</link>
-          * <link linkend="gi-GIArgInfo">GIArgInfo</link>
-          * <link linkend="gi-GIConstantInfo">GIConstantInfo</link>
-          * <link linkend="gi-GIFieldInfo">GIFieldInfo</link>
-          * <link linkend="gi-GIPropertyInfo">GIPropertyInfo</link>
-          * <link linkend="gi-GITypeInfo">GITypeInfo</link>
-        </synopsis>
+        For more information on how to build libgirepository, for how to build
+        bindings with it and for information on GObject Introspection in
+        general see
+        <ulink type="http" url="https://gi.readthedocs.io">https://gi.readthedocs.io</ulink>.
       </para>
-    </chapter> -->
-
-<!--
-    <chapter id="tools">
-      <title>GObject Introspection Tools</title>
-
-      &g-ir-scanner;
-      &g-ir-compiler;
-      &g-ir-generator;
-    </chapter>
--->
+    </releaseinfo>
+  </bookinfo>
 
-    <para>
-      The GObject-Introspection package contains of a few different parts:
-      <itemizedlist>
-        <listitem>
-          <para>The GIR XML format - an XML format describing the exported C API including documentation</para>
-        </listitem>
-        <listitem>
-          <para>The GTypelib format - a binary format optimized for fast disk access and low memory usage</para>
-        </listitem>
-        <listitem>
-          <para>g-ir-scanner - parses C source code and gtk-doc comments and generates GIR XML files</para>
-        </listitem>
-        <listitem>
-          <para>g-ir-compiler - compiles GIR XML files into typelibs</para>
-        </listitem>
-        <listitem>
-          <para>libgirepository - library to access typelib from C</para>
-        </listitem>
-      </itemizedlist>
-    </para>
-    <para>The following illustration shows how the different components fit together:</para>
-    <inlinegraphic fileref="overview.png" format="PNG"></inlinegraphic>
-  </part>
+    <xi:include href="xml/girepository.xml"/>
+    <xi:include href="xml/gitypelib.xml" />
+    <xi:include href="xml/giversion.xml"/>
+    <xi:include href="xml/gicommontypes.xml"/>
 
-  <part id="gi">
-    <title>API Reference</title>
     <chapter>
-      <title>GIRepository</title>
-      <xi:include href="xml/girepository.xml"/>
+      <title>GIBaseInfo</title>
       <xi:include href="xml/gi-struct-hierarchy.xml"/>
 
-      <xi:include href="xml/gicommontypes.xml"/>
-
       <xi:include href="xml/gibaseinfo.xml"/>
 
       <xi:include href="xml/gicallableinfo.xml"/>
       <xi:include href="xml/givalueinfo.xml"/>
     </chapter>
 
-    <chapter id="gi-typelib">
-      <title>GITypelib</title>
-      <xi:include href="xml/gitypelib.xml" />
-      <xi:include href="xml/gitypelib-internal.xml"/>
-    </chapter>
-
     <chapter>
-      <title>TODO</title>
+      <title>FFI Interface</title>
       <xi:include href="xml/girffi.xml"/>
-
-      <xi:include href="xml/gi-gir-reference.xml"/>
-      <!--
-      &gi-gir-creating;
-      &gi-gir-parsing;
-      &gi-gir-verifying;
-       -->
     </chapter>
 
-  </part>
+    <chapter>
+      <title>Internals &amp; Typelib Format</title>
+      <xi:include href="xml/gitypelib-internal.xml"/>
+    </chapter>
 
   <index id="api-index-full">
     <title id="index-all">Index</title>
     <title>Index of deprecated symbols</title>
     <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
   </index>
-  <index id="api-index-1-29-0" role="1.29.0">
-    <title>Index of new symbols in 1.29.0</title>
-    <xi:include href="xml/api-index-1.29.0.xml"><xi:fallback /></xi:include>
+  <index id="api-index-1-30" role="1.30">
+    <title>Index of new symbols in 1.30</title>
+    <xi:include href="xml/api-index-1.30.xml"><xi:fallback /></xi:include>
   </index>
-  <index id="api-index-1-29-17" role="1.29.17">
-    <title>Index of new symbols in 1.29.17</title>
-    <xi:include href="xml/api-index-1.29.17.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-1-30-1" role="1.30.1">
-    <title>Index of new symbols in 1.30.1</title>
-    <xi:include href="xml/api-index-1.30.1.xml"><xi:fallback /></xi:include>
+  <index id="api-index-1-32" role="1.32">
+    <title>Index of new symbols in 1.32</title>
+    <xi:include href="xml/api-index-1.32.xml"><xi:fallback /></xi:include>
   </index>
   <index id="api-index-1-34" role="1.34">
     <title>Index of new symbols in 1.34</title>
     <xi:include href="xml/api-index-1.34.xml"><xi:fallback /></xi:include>
   </index>
-  <index id="api-index-1-35-8" role="1.35.8">
-    <title>Index of new symbols in 1.35.8</title>
-    <xi:include href="xml/api-index-1.35.8.xml"><xi:fallback /></xi:include>
+  <index id="api-index-1-36" role="1.36">
+    <title>Index of new symbols in 1.36</title>
+    <xi:include href="xml/api-index-1.36.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-1-42" role="1.42">
+    <title>Index of new symbols in 1.42</title>
+    <xi:include href="xml/api-index-1.42.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-1-44" role="1.44">
+    <title>Index of new symbols in 1.44</title>
+    <xi:include href="xml/api-index-1.44.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-1-46" role="1.46">
+    <title>Index of new symbols in 1.46</title>
+    <xi:include href="xml/api-index-1.46.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-1-60" role="1.60">
+    <title>Index of new symbols in 1.60</title>
+    <xi:include href="xml/api-index-1.60.xml"><xi:fallback /></xi:include>
   </index>
-
   <xi:include href="xml/annotation-glossary.xml" />
 </book>
diff --git a/docs/reference/gi-gir-reference.xml b/docs/reference/gi-gir-reference.xml
deleted file mode 100644 (file)
index 38604d0..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
-               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
-<!ENTITY version SYSTEM "version.xml">
-]>
-<refentry id="gi-gir-reference">
-       <refmeta>
-         <refentrytitle role="top_of_page" id="gi-gir-reference.top_of_page">The GIR XML format</refentrytitle>
-         <manvolnum>3</manvolnum>
-         <refmiscinfo>The GIR XML format</refmiscinfo>
-       </refmeta>
-       <refnamediv>
-         <refname>The GIR XML format</refname>
-         <refpurpose>The GIR XML format</refpurpose>
-       </refnamediv>
-
-  <para>
-    This chapter describes the GIR XML markup format. This describes exported C
-    API, including documentation. It may contain installation-specific data,
-    such as library filenames which may differ between platforms.
-  </para>
-
-  <refsect2 id="gi-gir-api-node">
-    <title><emphasis>api</emphasis> node</title>
-
-    The root node of all GIR documents is the api node.
-
-    Possible children: <link linkend="gi-gir-namespace">namespace</link>.
-
-    <example>
-    <title>A GIR fragment showing an api node</title>
-    <programlisting><![CDATA[
-    <api version="1.0">
-      <namespace/>
-    </api>]]></programlisting>
-    </example>
-  </refsect2>
-
-  <refsect2 id="gi-gir-namespace">
-    <title><emphasis>namespace</emphasis> node</title>
-
-    Parent node: <link linkend="gi-gir-api">api</link>.
-    Possible children: <link linkend="gi-gir-callback">callback</link>,
-    <link linkend="gi-gir-class">class</link>,
-    <link linkend="gi-gir-function">function</link>.
-    <link linkend="gi-gir-interface">interface</link>.
-
-    <example>
-    <title>A GIR fragment showing an namespace node</title>
-    <programlisting><![CDATA[
-    <api version="1.0">
-      <namespace="Gtk">
-         <class/>
-         <function/>
-      </namespace>
-    </api>]]></programlisting>
-    </example>
-  </refsect2>
-
-  <refsect2 id="gi-gir-class">
-    <title><emphasis>class</emphasis> node</title>
-
-    Parent node: <link linkend="gi-gir-namespace">namespace</link>.
-    Possible children: <link linkend="gi-gir-class">constructor</link>,
-    <link linkend="gi-gir-field">field</link>,
-    <link linkend="gi-gir-method">method</link>,
-    <link linkend="gi-gir-property">property</link>.
-    <example>
-    <title>A GIR fragment showing an class node</title>
-    <programlisting><![CDATA[
-    <api version="1.0">
-      <namespace="Gtk">
-        <class name="Widget">
-           <constructor/>
-           <field/>
-           <method/>
-           <property/>
-        <class>
-      </namespace>
-    </api>]]></programlisting>
-    </example>
-  </refsect2>
-
-  <refsect2 id="gi-gir-interface">
-    <title><emphasis>interface</emphasis> node</title>
-
-    Parent node: <link linkend="gi-gir-namespace">namespace</link>.
-    Possible children: <link linkend="gi-gir-field">field</link>,
-    <link linkend="gi-gir-method">method</link>,
-    <link linkend="gi-gir-property">property</link>.
-    <example>
-    <title>A GIR fragment showing an interface node</title>
-    <programlisting><![CDATA[
-    <api version="1.0">
-      <namespace="Gtk">
-        <interface name="Buildable">
-           <field/>
-           <method/>
-           <property/>
-        <interface>
-      </namespace>
-    </api>]]></programlisting>
-    </example>
-  </refsect2>
-
-  <refsect2 id="gi-gir-function">
-    <title><emphasis>function</emphasis> node</title>
-
-    Parent node: <link linkend="gi-gir-namespace">namespace</link>.
-    <example>
-    <title>A GIR fragment showing an function node</title>
-    <programlisting><![CDATA[
-    <api version="1.0">
-      <namespace="Gtk">
-        <function name="init">
-        </function>
-      </namespace>
-    </api>]]></programlisting>
-    </example>
-   </refsect2>
-
-</refentry>
index 548a5f4..28a59e0 100644 (file)
@@ -47,10 +47,48 @@ G_IREPOSITORY_GET_CLASS
 GIRepositoryPrivate
 g_irepository_get_type
 g_irepository_error_quark
+GI_AVAILABLE_IN_1_32
+GI_AVAILABLE_IN_1_34
+GI_AVAILABLE_IN_1_36
+GI_AVAILABLE_IN_1_38
+GI_AVAILABLE_IN_1_40
+GI_AVAILABLE_IN_1_42
+GI_AVAILABLE_IN_1_44
+GI_AVAILABLE_IN_1_46
+GI_AVAILABLE_IN_1_60
+GI_AVAILABLE_IN_ALL
+GI_DEPRECATED_IN_1_32
+GI_DEPRECATED_IN_1_32_FOR
+GI_DEPRECATED_IN_1_34
+GI_DEPRECATED_IN_1_34_FOR
+GI_DEPRECATED_IN_1_36
+GI_DEPRECATED_IN_1_36_FOR
+GI_DEPRECATED_IN_1_38
+GI_DEPRECATED_IN_1_38_FOR
+GI_DEPRECATED_IN_1_40
+GI_DEPRECATED_IN_1_40_FOR
+GI_DEPRECATED_IN_1_42
+GI_DEPRECATED_IN_1_42_FOR
+GI_DEPRECATED_IN_1_44
+GI_DEPRECATED_IN_1_44_FOR
+GI_DEPRECATED_IN_1_46
+GI_DEPRECATED_IN_1_46_FOR
+</SECTION>
+
+<SECTION>
+<FILE>giversion</FILE>
+GI_MAJOR_VERSION
+GI_MINOR_VERSION
+GI_MICRO_VERSION
+GI_CHECK_VERSION
+gi_get_major_version
+gi_get_minor_version
+gi_get_micro_version
 </SECTION>
 
 <SECTION>
 <FILE>gibaseinfo</FILE>
+GIBaseInfo
 GIInfoType
 GIAttributeIter
 g_info_new
@@ -65,11 +103,12 @@ g_base_info_get_attribute
 g_base_info_iterate_attributes
 g_base_info_get_container
 g_base_info_is_deprecated
+g_info_type_to_string
 <SUBSECTION Standard>
 GI_TYPE_BASE_INFO
 g_base_info_gtype_get_type
 <SUBSECTION Private>
-GIBaseInfoStub
+GIUnresolvedInfo
 </SECTION>
 
 <SECTION>
@@ -101,6 +140,7 @@ g_callable_info_can_throw_gerror
 g_callable_info_get_n_args
 g_callable_info_get_arg
 g_callable_info_get_caller_owns
+g_callable_info_get_instance_ownership_transfer
 g_callable_info_get_return_attribute
 g_callable_info_get_return_type
 g_callable_info_invoke
@@ -115,11 +155,11 @@ g_callable_info_skip_return
 <SECTION>
 <FILE>gicommontypes</FILE>
 GIArgument
-GIUnresolvedInfo
 GITypeTag
 GIArrayType
 GI_TYPE_TAG_N_TYPES
 G_TYPE_TAG_IS_BASIC
+g_type_tag_to_string
 </SECTION>
 
 <SECTION>
@@ -297,6 +337,7 @@ g_signal_info_true_stops_emit
 <FILE>gistructinfo</FILE>
 GI_IS_STRUCT_INFO
 GIStructInfo
+g_struct_info_find_field
 g_struct_info_get_alignment
 g_struct_info_get_size
 g_struct_info_is_gtype_struct
@@ -314,8 +355,6 @@ g_struct_info_find_method
 <FILE>gitypeinfo</FILE>
 GI_IS_TYPE_INFO
 GITypeInfo
-g_type_tag_to_string
-g_info_type_to_string
 g_type_info_is_pointer
 g_type_info_get_tag
 g_type_info_get_param_type
index 1407485..685f85a 100644 (file)
 <title role="synopsis.title">Synopsis</title>
 
 <synopsis>
-* <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+* <link linkend="GIBaseInfo">GIBaseInfo</link>
   * <link linkend="gi-GICallableInfo">GICallableInfo</link>
     * <link linkend="gi-GIFunctionInfo">GIFunctionInfo</link>
+    * <link linkend="gi-GICallbackInfo">GICallbackInfo</link>
     * <link linkend="gi-GISignalInfo">GISignalInfo</link>
     * <link linkend="gi-GIVFuncInfo">GIVFuncInfo</link>
   * <link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
     * <link linkend="gi-GIEnumInfo">GIEnumInfo</link>
-    * <link linkend="gi-GIInterfaceInfo">GIInterfaceInfo</link>
-    * <link linkend="gi-GIObjectInfo">GIObjectInfo</link>
     * <link linkend="gi-GIStructInfo">GIStructInfo</link>
     * <link linkend="gi-GIUnionInfo">GIUnionInfo</link>
+    * <link linkend="gi-GIObjectInfo">GIObjectInfo</link>
+    * <link linkend="gi-GIInterfaceInfo">GIInterfaceInfo</link>
   * <link linkend="gi-GIArgInfo">GIArgInfo</link>
   * <link linkend="gi-GIConstantInfo">GIConstantInfo</link>
   * <link linkend="gi-GIFieldInfo">GIFieldInfo</link>
   * <link linkend="gi-GIPropertyInfo">GIPropertyInfo</link>
   * <link linkend="gi-GITypeInfo">GITypeInfo</link>
+  * <link linkend="gi-GIValueInfo">GIValueInfo</link>
 </synopsis>
 
 </refsynopsisdiv>
similarity index 70%
rename from docs/reference/html/gi-GIBaseInfo.html
rename to docs/reference/html/GIBaseInfo.html
index 637028b..cc77165 100644 (file)
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIBaseInfo: GObject Introspection Reference Manual</title>
+<title>GIBaseInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
-<link rel="prev" href="gi-common-types.html" title="common types">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
+<link rel="prev" href="gi-struct-hierarchy.html" title="Struct hierarchy">
 <link rel="next" href="gi-GICallableInfo.html" title="GICallableInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#gi-GIBaseInfo.description" class="shortcut">Description</a></span>
+                  <a href="#GIBaseInfo.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#GIBaseInfo.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-common-types.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gi-struct-hierarchy.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gi-GICallableInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
-<a name="gi-GIBaseInfo"></a><div class="titlepage"></div>
+<a name="GIBaseInfo"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
-<h2><span class="refentrytitle"><a name="gi-GIBaseInfo.top_of_page"></a>GIBaseInfo</span></h2>
+<h2><span class="refentrytitle"><a name="GIBaseInfo.top_of_page"></a>GIBaseInfo</span></h2>
 <p>GIBaseInfo — Base struct for all GITypelib structs</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="gi-GIBaseInfo.functions"></a><h2>Functions</h2>
+<a name="GIBaseInfo.functions"></a><h2>Functions</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <tbody>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-info-new" title="g_info_new ()">g_info_new</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-info-new" title="g_info_new ()">g_info_new</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-ref" title="g_base_info_ref ()">g_base_info_ref</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-ref" title="g_base_info_ref ()">g_base_info_ref</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
@@ -60,7 +61,7 @@
 <span class="returnvalue">void</span>
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()">g_base_info_unref</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()">g_base_info_unref</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-equal" title="g_base_info_equal ()">g_base_info_equal</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-equal" title="g_base_info_equal ()">g_base_info_equal</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="returnvalue">GIInfoType</span></a>
+<a class="link" href="GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="returnvalue">GIInfoType</span></a>
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-type" title="g_base_info_get_type ()">g_base_info_get_type</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-type" title="g_base_info_get_type ()">g_base_info_get_type</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+<a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-typelib" title="g_base_info_get_typelib ()">g_base_info_get_typelib</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-typelib" title="g_base_info_get_typelib ()">g_base_info_get_typelib</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-namespace" title="g_base_info_get_namespace ()">g_base_info_get_namespace</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-namespace" title="g_base_info_get_namespace ()">g_base_info_get_namespace</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-name" title="g_base_info_get_name ()">g_base_info_get_name</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-name" title="g_base_info_get_name ()">g_base_info_get_name</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-attribute" title="g_base_info_get_attribute ()">g_base_info_get_attribute</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-attribute" title="g_base_info_get_attribute ()">g_base_info_get_attribute</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-iterate-attributes" title="g_base_info_iterate_attributes ()">g_base_info_iterate_attributes</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-iterate-attributes" title="g_base_info_iterate_attributes ()">g_base_info_iterate_attributes</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-container" title="g_base_info_get_container ()">g_base_info_get_container</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-container" title="g_base_info_get_container ()">g_base_info_get_container</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-is-deprecated" title="g_base_info_is_deprecated ()">g_base_info_is_deprecated</a> <span class="c_punctuation">()</span>
+<a class="link" href="GIBaseInfo.html#g-base-info-is-deprecated" title="g_base_info_is_deprecated ()">g_base_info_is_deprecated</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GIBaseInfo.html#g-info-type-to-string" title="g_info_type_to_string ()">g_info_type_to_string</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gi-GIBaseInfo.other"></a><h2>Types and Values</h2>
+<a name="GIBaseInfo.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 </colgroup>
 <tbody>
 <tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="GIBaseInfo.html#GIBaseInfo-struct" title="GIBaseInfo">GIBaseInfo</a></td>
+</tr>
+<tr>
 <td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType">GIInfoType</a></td>
+<td class="function_name"><a class="link" href="GIBaseInfo.html#GIInfoType" title="enum GIInfoType">GIInfoType</a></td>
 </tr>
 <tr>
 <td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter">GIAttributeIter</a></td>
+<td class="function_name"><a class="link" href="GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter">GIAttributeIter</a></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gi-GIBaseInfo.description"></a><h2>Description</h2>
+<a name="GIBaseInfo.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+    <span class="lineart">╰──</span> GIBaseInfo
+</pre>
+</div>
+<div class="refsect1">
+<a name="GIBaseInfo.description"></a><h2>Description</h2>
 <p>GIBaseInfo is the common base struct of all other *Info structs
 accessible through the <a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> API.
-All other structs can be casted to a <span class="type">GIBaseInfo</span>, for instance:</p>
+All other structs can be casted to a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>, for instance:</p>
 <div class="example">
-<a name="id-1.4.2.5.5.3"></a><p class="title"><b>Example 1. Casting a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> to <span class="type">GIBaseInfo</span></b></p>
+<a name="id-1.7.3.6.3"></a><p class="title"><b>Example 1. Casting a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> to <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -175,12 +193,12 @@ GIBaseInfo <span class="gtkdoc opt">*</span>info <span class="gtkdoc opt">= (</s
 </div>
 
 </div>
-<br class="example-break"><p>Most <a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> APIs returning a <span class="type">GIBaseInfo</span> is actually creating a new struct, in other
-words, <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> has to be called when done accessing the data.
+<br class="example-break"><p>Most <a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> APIs returning a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> is actually creating a new struct, in other
+words, <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> has to be called when done accessing the data.
 GIBaseInfos are normally accessed by calling either
 <a class="link" href="GIRepository.html#g-irepository-find-by-name" title="g_irepository_find_by_name ()"><code class="function">g_irepository_find_by_name()</code></a>, <a class="link" href="GIRepository.html#g-irepository-find-by-gtype" title="g_irepository_find_by_gtype ()"><code class="function">g_irepository_find_by_gtype()</code></a> or <a class="link" href="GIRepository.html#g-irepository-get-info" title="g_irepository_get_info ()"><code class="function">g_irepository_get_info()</code></a>.</p>
 <div class="example">
-<a name="id-1.4.2.5.5.5"></a><p class="title"><b>Example 2. Getting the Button of the Gtk typelib</b></p>
+<a name="id-1.7.3.6.5"></a><p class="title"><b>Example 2. Getting the Button of the Gtk typelib</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -190,7 +208,7 @@ GIBaseInfos are normally accessed by calling either
 3</pre></td>
         <td class="listing_code"><pre class="programlisting">GIBaseInfo <span class="gtkdoc opt">*</span>button_info <span class="gtkdoc opt">=</span> <span class="function"><a href="GIRepository.html#g-irepository-find-by-name">g_irepository_find_by_name</a></span><span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> <span class="string">&quot;Gtk&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;Button&quot;</span><span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">...</span> use button_info <span class="gtkdoc opt">...</span>
-<span class="function"><a href="gi-GIBaseInfo.html#g-base-info-unref">g_base_info_unref</a></span><span class="gtkdoc opt">(</span>button_info<span class="gtkdoc opt">);</span></pre></td>
+<span class="function"><a href="GIBaseInfo.html#g-base-info-unref">g_base_info_unref</a></span><span class="gtkdoc opt">(</span>button_info<span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -212,13 +230,13 @@ GIBaseInfos are normally accessed by calling either
 </div>
 </div>
 <div class="refsect1">
-<a name="gi-GIBaseInfo.functions_details"></a><h2>Functions</h2>
+<a name="GIBaseInfo.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="g-info-new"></a><h3>g_info_new ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
-g_info_new (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> type</code></em>,
-            <em class="parameter"><code><span class="type">GIBaseInfo</span> *container</code></em>,
-            <em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
+g_info_new (<em class="parameter"><code><a class="link" href="GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> type</code></em>,
+            <em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *container</code></em>,
+            <em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> offset</code></em>);</pre>
 <p>TODO</p>
 <div class="refsect3">
@@ -261,8 +279,8 @@ g_info_new (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html
 <hr>
 <div class="refsect2">
 <a name="g-base-info-ref"></a><h3>g_base_info_ref ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
-g_base_info_ref (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
+g_base_info_ref (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Increases the reference count of <em class="parameter"><code>info</code></em>
 .</p>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
@@ -276,7 +294,7 @@ g_base_info_ref (<em class="parameter"><code><span class="type">GIBaseInfo</span
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -291,7 +309,7 @@ g_base_info_ref (<em class="parameter"><code><span class="type">GIBaseInfo</span
 <div class="refsect2">
 <a name="g-base-info-unref"></a><h3>g_base_info_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-g_base_info_unref (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+g_base_info_unref (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Decreases the reference count of <em class="parameter"><code>info</code></em>
 . When its reference count
 drops to 0, the info is freed.</p>
@@ -306,7 +324,7 @@ drops to 0, the info is freed.</p>
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -316,12 +334,12 @@ drops to 0, the info is freed.</p>
 <div class="refsect2">
 <a name="g-base-info-equal"></a><h3>g_base_info_equal ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-g_base_info_equal (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info1</code></em>,
-                   <em class="parameter"><code><span class="type">GIBaseInfo</span> *info2</code></em>);</pre>
-<p>Compare two <span class="type">GIBaseInfo</span>.</p>
+g_base_info_equal (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info1</code></em>,
+                   <em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info2</code></em>);</pre>
+<p>Compare two <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>.</p>
 <p>Using pointer comparison is not practical since many functions return
-different instances of <span class="type">GIBaseInfo</span> that refers to the same part of the
-TypeLib; use this function instead to do <span class="type">GIBaseInfo</span> comparisons.</p>
+different instances of <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> that refers to the same part of the
+TypeLib; use this function instead to do <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> comparisons.</p>
 <div class="refsect3">
 <a name="g-base-info-equal.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -333,12 +351,12 @@ TypeLib; use this function instead to do <span class="type">GIBaseInfo</span> co
 <tbody>
 <tr>
 <td class="parameter_name"><p>info1</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>info2</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -354,8 +372,8 @@ equals <em class="parameter"><code>info2</code></em>
 <hr>
 <div class="refsect2">
 <a name="g-base-info-get-type"></a><h3>g_base_info_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="returnvalue">GIInfoType</span></a>
-g_base_info_get_type (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="returnvalue">GIInfoType</span></a>
+g_base_info_get_type (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the info type of the GIBaseInfo.</p>
 <div class="refsect3">
 <a name="g-base-info-get-type.parameters"></a><h4>Parameters</h4>
@@ -367,7 +385,7 @@ g_base_info_get_type (<em class="parameter"><code><span class="type">GIBaseInfo<
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -381,8 +399,8 @@ g_base_info_get_type (<em class="parameter"><code><span class="type">GIBaseInfo<
 <hr>
 <div class="refsect2">
 <a name="g-base-info-get-typelib"></a><h3>g_base_info_get_typelib ()</h3>
-<pre class="programlisting"><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
-g_base_info_get_typelib (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+g_base_info_get_typelib (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the typelib this <em class="parameter"><code>info</code></em>
  belongs to</p>
 <div class="refsect3">
@@ -395,7 +413,7 @@ g_base_info_get_typelib (<em class="parameter"><code><span class="type">GIBaseIn
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -410,7 +428,7 @@ g_base_info_get_typelib (<em class="parameter"><code><span class="type">GIBaseIn
 <div class="refsect2">
 <a name="g-base-info-get-namespace"></a><h3>g_base_info_get_namespace ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-g_base_info_get_namespace (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+g_base_info_get_namespace (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the namespace of <em class="parameter"><code>info</code></em>
 .</p>
 <div class="refsect3">
@@ -423,7 +441,7 @@ g_base_info_get_namespace (<em class="parameter"><code><span class="type">GIBase
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -437,10 +455,10 @@ g_base_info_get_namespace (<em class="parameter"><code><span class="type">GIBase
 <div class="refsect2">
 <a name="g-base-info-get-name"></a><h3>g_base_info_get_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-g_base_info_get_name (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+g_base_info_get_name (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the name of the <em class="parameter"><code>info</code></em>
 . What the name represents depends on
-the <a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> of the <em class="parameter"><code>info</code></em>
+the <a class="link" href="GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> of the <em class="parameter"><code>info</code></em>
 . For instance for <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> it is
 the name of the function.</p>
 <div class="refsect3">
@@ -453,7 +471,7 @@ the name of the function.</p>
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -468,7 +486,7 @@ or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><c
 <div class="refsect2">
 <a name="g-base-info-get-attribute"></a><h3>g_base_info_get_attribute ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-g_base_info_get_attribute (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>,
+g_base_info_get_attribute (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>Retrieve an arbitrary attribute associated with this node.</p>
 <div class="refsect3">
@@ -482,7 +500,7 @@ g_base_info_get_attribute (<em class="parameter"><code><span class="type">GIBase
 <tbody>
 <tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -502,8 +520,8 @@ g_base_info_get_attribute (<em class="parameter"><code><span class="type">GIBase
 <div class="refsect2">
 <a name="g-base-info-iterate-attributes"></a><h3>g_base_info_iterate_attributes ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-g_base_info_iterate_attributes (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>,
-                                <em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> *iterator</code></em>,
+g_base_info_iterate_attributes (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>,
+                                <em class="parameter"><code><a class="link" href="GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> *iterator</code></em>,
                                 <em class="parameter"><code><span class="type">char</span> **name</code></em>,
                                 <em class="parameter"><code><span class="type">char</span> **value</code></em>);</pre>
 <p>Iterate over all attributes associated with this node.  The iterator
@@ -517,7 +535,7 @@ normal GIR annotations.</p>
  should be treated as constants
 and must not be freed.</p>
 <div class="example">
-<a name="id-1.4.2.5.6.11.6"></a><p class="title"><b>Example 3. Iterating over attributes</b></p>
+<a name="id-1.7.3.7.11.6"></a><p class="title"><b>Example 3. Iterating over attributes</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -539,7 +557,7 @@ and must not be freed.</p>
   GIAttributeIter iter <span class="gtkdoc opt">= {</span> <span class="number">0</span><span class="gtkdoc opt">, };</span>
   <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>name<span class="gtkdoc opt">;</span>
   <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>value<span class="gtkdoc opt">;</span>
-  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="gi-GIBaseInfo.html#g-base-info-iterate-attributes">g_base_info_iterate_attributes</a></span> <span class="gtkdoc opt">(</span>info<span class="gtkdoc opt">, &amp;</span>iter<span class="gtkdoc opt">, &amp;</span>name<span class="gtkdoc opt">, &amp;</span>value<span class="gtkdoc opt">))</span>
+  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="GIBaseInfo.html#g-base-info-iterate-attributes">g_base_info_iterate_attributes</a></span> <span class="gtkdoc opt">(</span>info<span class="gtkdoc opt">, &amp;</span>iter<span class="gtkdoc opt">, &amp;</span>name<span class="gtkdoc opt">, &amp;</span>value<span class="gtkdoc opt">))</span>
     <span class="gtkdoc opt">{</span>
       <span class="function"><a href="/usr/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;attribute name: %s value: %s&quot;</span><span class="gtkdoc opt">,</span> name<span class="gtkdoc opt">,</span> value<span class="gtkdoc opt">);</span>
     <span class="gtkdoc opt">}</span>
@@ -561,12 +579,12 @@ and must not be freed.</p>
 <tbody>
 <tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>iterator</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> structure, must be initialized; see below. </p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> structure, must be initialized; see below. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
 </tr>
 <tr>
@@ -590,8 +608,8 @@ and must not be freed.</p>
 <hr>
 <div class="refsect2">
 <a name="g-base-info-get-container"></a><h3>g_base_info_get_container ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
-g_base_info_get_container (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
+g_base_info_get_container (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the container of the <em class="parameter"><code>info</code></em>
 . The container is the parent
 GIBaseInfo. For instance, the parent of a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> is an
@@ -606,7 +624,7 @@ GIBaseInfo. For instance, the parent of a <a class="link" href="gi-GIFunctionInf
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -621,7 +639,7 @@ GIBaseInfo. For instance, the parent of a <a class="link" href="gi-GIFunctionInf
 <div class="refsect2">
 <a name="g-base-info-is-deprecated"></a><h3>g_base_info_is_deprecated ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-g_base_info_is_deprecated (<em class="parameter"><code><span class="type">GIBaseInfo</span> *info</code></em>);</pre>
+g_base_info_is_deprecated (<em class="parameter"><code><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
 <p>Obtain whether the <em class="parameter"><code>info</code></em>
  is represents a metadata which is
 deprecated or not.</p>
@@ -635,7 +653,7 @@ deprecated or not.</p>
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GIBaseInfo</span></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
@@ -645,9 +663,43 @@ deprecated or not.</p>
 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if deprecated</p>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="g-info-type-to-string"></a><h3>g_info_type_to_string ()</h3>
+<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+g_info_type_to_string (<em class="parameter"><code><a class="link" href="GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> type</code></em>);</pre>
+<p>Obtain a string representation of <em class="parameter"><code>type</code></em>
+</p>
+<div class="refsect3">
+<a name="g-info-type-to-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the info type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-info-type-to-string.returns"></a><h4>Returns</h4>
+<p> the string</p>
+</div>
+</div>
 </div>
 <div class="refsect1">
-<a name="gi-GIBaseInfo.other_details"></a><h2>Types and Values</h2>
+<a name="GIBaseInfo.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GIBaseInfo-struct"></a><h3>GIBaseInfo</h3>
+<pre class="programlisting">typedef struct {
+} GIBaseInfo;
+</pre>
+</div>
+<hr>
 <div class="refsect2">
 <a name="GIInfoType"></a><h3>enum GIInfoType</h3>
 <p>The type of a GIBaseInfo struct.</p>
@@ -812,7 +864,7 @@ deprecated or not.</p>
 } GIAttributeIter;
 </pre>
 <p>An opaque structure used to iterate over attributes
-in a <span class="type">GIBaseInfo</span> struct.</p>
+in a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> struct.</p>
 </div>
 </div>
 </div>
index 2197bb2..33113e1 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIRepository: GObject Introspection Reference Manual</title>
+<title>GIRepository: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
-<link rel="prev" href="ch01.html" title="GIRepository">
-<link rel="next" href="gi-struct-hierarchy.html" title="Struct hierarchy">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="index.html" title="libgirepository API Reference">
+<link rel="next" href="gi-GITypelib.html" title="GITypelib">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -19,9 +19,9 @@
                   <a href="#GIRepository.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-struct-hierarchy.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gi-GITypelib.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="GIRepository"></a><div class="titlepage"></div>
@@ -82,7 +82,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="GIRepository.html#g-irepository-get-info" title="g_irepository_get_info ()">g_irepository_get_info</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+<a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="GIRepository.html#g-irepository-require" title="g_irepository_require ()">g_irepository_require</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+<a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="GIRepository.html#g-irepository-require-private" title="g_irepository_require_private ()">g_irepository_require_private</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="GIRepository.html#g-irepository-find-by-gtype" title="g_irepository_find_by_gtype ()">g_irepository_find_by_gtype</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="GIRepository.html#g-irepository-find-by-name" title="g_irepository_find_by_name ()">g_irepository_find_by_name</a> <span class="c_punctuation">()</span>
@@ -393,7 +393,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 dependencies. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: 1.44</p>
+<p class="since">Since: <a class="link" href="api-index-1-44.html#api-index-1.44">1.44</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -464,7 +464,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 <hr>
 <div class="refsect2">
 <a name="g-irepository-get-info"></a><h3>g_irepository_get_info ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 g_irepository_get_info (<em class="parameter"><code><a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> *repository</code></em>,
                         <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *namespace_</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> index</code></em>);</pre>
@@ -504,7 +504,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 </div>
 <div class="refsect3">
 <a name="g-irepository-get-info.returns"></a><h4>Returns</h4>
-<p><span class="type">GIBaseInfo</span> containing metadata. </p>
+<p><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> containing metadata. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -593,7 +593,7 @@ See the documentation of your dynamic linker for full details.</p>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-35-8.html#api-index-1.35.8">1.35.8</a></p>
+<p class="since">Since: <a class="link" href="api-index-1-36.html#api-index-1.36">1.36</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -626,7 +626,7 @@ search path. </p></td>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> *
 g_irepository_get_search_path (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Returns the current search path <a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> will use when loading
-typelib files. The list is internal to <span class="type">GIRespository</span> and should not
+typelib files. The list is internal to <a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> and should not
 be freed, nor should its string elements.</p>
 <div class="refsect3">
 <a name="g-irepository-get-search-path.returns"></a><h4>Returns</h4>
@@ -639,7 +639,7 @@ be freed, nor should its string elements.</p>
 <a name="g-irepository-load-typelib"></a><h3>g_irepository_load_typelib ()</h3>
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 g_irepository_load_typelib (<em class="parameter"><code><a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> *repository</code></em>,
-                            <em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                            <em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
                             <em class="parameter"><code><a class="link" href="GIRepository.html#GIRepositoryLoadFlags" title="enum GIRepositoryLoadFlags"><span class="type">GIRepositoryLoadFlags</span></a> flags</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>TODO</p>
@@ -766,7 +766,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 <hr>
 <div class="refsect2">
 <a name="g-irepository-require"></a><h3>g_irepository_require ()</h3>
-<pre class="programlisting"><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+<pre class="programlisting"><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 g_irepository_require (<em class="parameter"><code><a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> *repository</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *namespace_</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *version</code></em>,
@@ -821,14 +821,14 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 </div>
 <div class="refsect3">
 <a name="g-irepository-require.returns"></a><h4>Returns</h4>
-<p>a pointer to the <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> if successful, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
+<p>a pointer to the <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> if successful, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="g-irepository-require-private"></a><h3>g_irepository_require_private ()</h3>
-<pre class="programlisting"><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+<pre class="programlisting"><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 g_irepository_require_private (<em class="parameter"><code><a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> *repository</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typelib_dir</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *namespace_</code></em>,
@@ -889,7 +889,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 </div>
 <div class="refsect3">
 <a name="g-irepository-require-private.returns"></a><h4>Returns</h4>
-<p>a pointer to the <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> if successful, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
+<p>a pointer to the <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> if successful, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
@@ -1016,7 +1016,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 <hr>
 <div class="refsect2">
 <a name="g-irepository-find-by-gtype"></a><h3>g_irepository_find_by_gtype ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 g_irepository_find_by_gtype (<em class="parameter"><code><a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> *repository</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> gtype</code></em>);</pre>
 <p>Searches all loaded namespaces for a particular <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a>.  Note that
@@ -1050,7 +1050,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 </div>
 <div class="refsect3">
 <a name="g-irepository-find-by-gtype.returns"></a><h4>Returns</h4>
-<p><span class="type">GIBaseInfo</span> representing metadata about <em class="parameter"><code>type</code></em>
+<p><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> representing metadata about <em class="parameter"><code>type</code></em>
 , or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1095,12 +1095,12 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 enum type, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-29-17.html#api-index-1.29.17">1.29.17</a></p>
+<p class="since">Since: <a class="link" href="api-index-1-30.html#api-index-1.30">1.30</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="g-irepository-find-by-name"></a><h3>g_irepository_find_by_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 g_irepository_find_by_name (<em class="parameter"><code><a class="link" href="GIRepository.html" title="GIRepository"><span class="type">GIRepository</span></a> *repository</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *namespace_</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
@@ -1138,7 +1138,7 @@ process-global default <a class="link" href="GIRepository.html" title="GIReposit
 </div>
 <div class="refsect3">
 <a name="g-irepository-find-by-name.returns"></a><h4>Returns</h4>
-<p><span class="type">GIBaseInfo</span> representing metadata about <em class="parameter"><code>name</code></em>
+<p><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> representing metadata about <em class="parameter"><code>name</code></em>
 , or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
index 2e0c3b9..e824fb8 100644 (file)
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Annotation Glossary: GObject Introspection Reference Manual</title>
+<title>Annotation Glossary: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="api-index-1-35-8.html" title="Index of new symbols in 1.35.8">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-1-60.html" title="Index of new symbols in 1.60">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -27,7 +27,7 @@
                   <a class="shortcut" href="#glsT">T</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="api-index-1-35-8.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="api-index-1-60.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
 </tr></table>
 <div class="glossary">
diff --git a/docs/reference/html/api-index-1-29-0.html b/docs/reference/html/api-index-1-29-0.html
deleted file mode 100644 (file)
index 1e776fd..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.29.0: GObject Introspection Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="api-index-deprecated.html" title="Index of deprecated symbols">
-<link rel="next" href="api-index-1-29-17.html" title="Index of new symbols in 1.29.17">
-<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a></span></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-29-17.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="index">
-<div class="titlepage"><div><div><h1 class="title">
-<a name="api-index-1-29-0"></a>Index of new symbols in 1.29.0</h1></div></div></div>
-<a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
-<dt>
-<a class="link" href="gi-GIArgInfo.html#g-arg-info-is-skip" title="g_arg_info_is_skip ()">g_arg_info_is_skip</a>, function in <a class="link" href="gi-GIArgInfo.html" title="GIArgInfo">GIArgInfo</a>
-</dt>
-<dd></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.28</div>
-</body>
-</html>
\ No newline at end of file
similarity index 63%
rename from docs/reference/html/api-index-1-29-17.html
rename to docs/reference/html/api-index-1-30.html
index 60beda7..6c38873 100644 (file)
@@ -2,29 +2,36 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.29.17: GObject Introspection Reference Manual</title>
+<title>Index of new symbols in 1.30: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="api-index-1-29-0.html" title="Index of new symbols in 1.29.0">
-<link rel="next" href="api-index-1-30-1.html" title="Index of new symbols in 1.30.1">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-deprecated.html" title="Index of deprecated symbols">
+<link rel="next" href="api-index-1-32.html" title="Index of new symbols in 1.32">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxE">E</a>
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxE">E</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxI">I</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="api-index-1-29-0.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-30-1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-1-32.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
-<a name="api-index-1-29-17"></a>Index of new symbols in 1.29.17</h1></div></div></div>
-<a name="idx"></a><a name="idxE"></a><h3 class="title">E</h3>
+<a name="api-index-1-30"></a>Index of new symbols in 1.30</h1></div></div></div>
+<a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
+<dt>
+<a class="link" href="gi-GIArgInfo.html#g-arg-info-is-skip" title="g_arg_info_is_skip ()">g_arg_info_is_skip</a>, function in <a class="link" href="gi-GIArgInfo.html" title="GIArgInfo">GIArgInfo</a>
+</dt>
+<dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
 <dt>
 <a class="link" href="gi-GIEnumInfo.html#g-enum-info-get-error-domain" title="g_enum_info_get_error_domain ()">g_enum_info_get_error_domain</a>, function in <a class="link" href="gi-GIEnumInfo.html" title="GIEnumInfo">GIEnumInfo</a>
 </dt>
similarity index 73%
rename from docs/reference/html/api-index-1-30-1.html
rename to docs/reference/html/api-index-1-32.html
index bc8267d..2953c96 100644 (file)
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.30.1: GObject Introspection Reference Manual</title>
+<title>Index of new symbols in 1.32: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="api-index-1-29-17.html" title="Index of new symbols in 1.29.17">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-1-30.html" title="Index of new symbols in 1.30">
 <link rel="next" href="api-index-1-34.html" title="Index of new symbols in 1.34">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="api-index-1-29-17.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="api-index-1-30.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="api-index-1-34.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
-<a name="api-index-1-30-1"></a>Index of new symbols in 1.30.1</h1></div></div></div>
+<a name="api-index-1-32"></a>Index of new symbols in 1.32</h1></div></div></div>
 <a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
 <dt>
 <a class="link" href="gi-GIConstantInfo.html#g-constant-info-free-value" title="g_constant_info_free_value ()">g_constant_info_free_value</a>, function in <a class="link" href="gi-GIConstantInfo.html" title="GIConstantInfo">GIConstantInfo</a>
index 5c8480f..154aa2f 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.34: GObject Introspection Reference Manual</title>
+<title>Index of new symbols in 1.34: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="api-index-1-30-1.html" title="Index of new symbols in 1.30.1">
-<link rel="next" href="api-index-1-35-8.html" title="Index of new symbols in 1.35.8">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-1-32.html" title="Index of new symbols in 1.32">
+<link rel="next" href="api-index-1-36.html" title="Index of new symbols in 1.36">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,8 +18,8 @@
                   <a class="shortcut" href="#idxI">I</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="api-index-1-30-1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-35-8.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="api-index-1-32.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-1-36.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
similarity index 73%
rename from docs/reference/html/api-index-1-35-8.html
rename to docs/reference/html/api-index-1-36.html
index 65a7cf7..3540358 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.35.8: GObject Introspection Reference Manual</title>
+<title>Index of new symbols in 1.36: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
 <link rel="prev" href="api-index-1-34.html" title="Index of new symbols in 1.34">
-<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
+<link rel="next" href="api-index-1-42.html" title="Index of new symbols in 1.42">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
 <td><a accesskey="p" href="api-index-1-34.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="api-index-1-42.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
-<a name="api-index-1-35-8"></a>Index of new symbols in 1.35.8</h1></div></div></div>
+<a name="api-index-1-36"></a>Index of new symbols in 1.36</h1></div></div></div>
 <a name="idx"></a><a name="idxI"></a><h3 class="title">I</h3>
 <dt>
 <a class="link" href="GIRepository.html#g-irepository-prepend-library-path" title="g_irepository_prepend_library_path ()">g_irepository_prepend_library_path</a>, function in <a class="link" href="GIRepository.html" title="GIRepository">GIRepository</a>
diff --git a/docs/reference/html/api-index-1-42.html b/docs/reference/html/api-index-1-42.html
new file mode 100644 (file)
index 0000000..83e58c3
--- /dev/null
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.42: libgirepository API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-1-36.html" title="Index of new symbols in 1.36">
+<link rel="next" href="api-index-1-44.html" title="Index of new symbols in 1.44">
+<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="api-index-1-36.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-1-44.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-1-42"></a>Index of new symbols in 1.42</h1></div></div></div>
+<a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+<a class="link" href="gi-GICallableInfo.html#g-callable-info-get-instance-ownership-transfer" title="g_callable_info_get_instance_ownership_transfer ()">g_callable_info_get_instance_ownership_transfer</a>, function in <a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.28</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/html/api-index-1-44.html b/docs/reference/html/api-index-1-44.html
new file mode 100644 (file)
index 0000000..292d5f1
--- /dev/null
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.44: libgirepository API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-1-42.html" title="Index of new symbols in 1.42">
+<link rel="next" href="api-index-1-46.html" title="Index of new symbols in 1.46">
+<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxI">I</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="api-index-1-42.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-1-46.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-1-44"></a>Index of new symbols in 1.44</h1></div></div></div>
+<a name="idx"></a><a name="idxI"></a><h3 class="title">I</h3>
+<dt>
+<a class="link" href="GIRepository.html#g-irepository-get-immediate-dependencies" title="g_irepository_get_immediate_dependencies ()">g_irepository_get_immediate_dependencies</a>, function in <a class="link" href="GIRepository.html" title="GIRepository">GIRepository</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.28</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/html/api-index-1-46.html b/docs/reference/html/api-index-1-46.html
new file mode 100644 (file)
index 0000000..8fffc34
--- /dev/null
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.46: libgirepository API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-1-44.html" title="Index of new symbols in 1.44">
+<link rel="next" href="api-index-1-60.html" title="Index of new symbols in 1.60">
+<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxS">S</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="api-index-1-44.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-1-60.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-1-46"></a>Index of new symbols in 1.46</h1></div></div></div>
+<a name="idx"></a><a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+<a class="link" href="gi-GIStructInfo.html#g-struct-info-find-field" title="g_struct_info_find_field ()">g_struct_info_find_field</a>, function in <a class="link" href="gi-GIStructInfo.html" title="GIStructInfo">GIStructInfo</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.28</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/html/api-index-1-60.html b/docs/reference/html/api-index-1-60.html
new file mode 100644 (file)
index 0000000..9fd053d
--- /dev/null
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.60: libgirepository API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="api-index-1-46.html" title="Index of new symbols in 1.46">
+<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
+<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxI">I</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="api-index-1-46.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-1-60"></a>Index of new symbols in 1.60</h1></div></div></div>
+<a name="idx"></a><a name="idxI"></a><h3 class="title">I</h3>
+<dt>
+<a class="link" href="gi-Version-Information.html#GI-CHECK-VERSION:CAPS" title="GI_CHECK_VERSION()">GI_CHECK_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#gi-get-major-version" title="gi_get_major_version ()">gi_get_major_version</a>, function in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#gi-get-micro-version" title="gi_get_micro_version ()">gi_get_micro_version</a>, function in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#gi-get-minor-version" title="gi_get_minor_version ()">gi_get_minor_version</a>, function in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#GI-MAJOR-VERSION:CAPS" title="GI_MAJOR_VERSION">GI_MAJOR_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#GI-MICRO-VERSION:CAPS" title="GI_MICRO_VERSION">GI_MICRO_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#GI-MINOR-VERSION:CAPS" title="GI_MINOR_VERSION">GI_MINOR_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.28</div>
+</body>
+</html>
\ No newline at end of file
index c4fb760..09e919d 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of deprecated symbols: GObject Introspection Reference Manual</title>
+<title>Index of deprecated symbols: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
 <link rel="prev" href="api-index-full.html" title="Index">
-<link rel="next" href="api-index-1-29-0.html" title="Index of new symbols in 1.29.0">
+<link rel="next" href="api-index-1-30.html" title="Index of new symbols in 1.30">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
 <td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-1-29-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="api-index-1-30.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h1 class="title">
index 04c9732..217881f 100644 (file)
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index: GObject Introspection Reference Manual</title>
+<title>Index: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="gi-gir-reference.html" title="The GIR XML format">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="gi-GITypelib-Internals.html" title="GITypelib Internals">
 <link rel="next" href="api-index-deprecated.html" title="Index of deprecated symbols">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -44,7 +44,7 @@
                   <a class="shortcut" href="#idxV">V</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="gi-gir-reference.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gi-GITypelib-Internals.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="api-index-deprecated.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
@@ -52,7 +52,7 @@
 <a name="api-index-full"></a>Index</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#ArgBlob" title="ArgBlob">ArgBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ArgBlob" title="ArgBlob">ArgBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#ArrayTypeBlob" title="ArrayTypeBlob">ArrayTypeBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ArrayTypeBlob" title="ArrayTypeBlob">ArrayTypeBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#ArrayTypeDimension" title="ArrayTypeDimension">ArrayTypeDimension</a>, union in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ArrayTypeDimension" title="ArrayTypeDimension">ArrayTypeDimension</a>, union in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#AttributeBlob" title="AttributeBlob">AttributeBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#AttributeBlob" title="AttributeBlob">AttributeBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <a name="idxB"></a><h3 class="title">B</h3>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-equal" title="g_base_info_equal ()">g_base_info_equal</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-equal" title="g_base_info_equal ()">g_base_info_equal</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-attribute" title="g_base_info_get_attribute ()">g_base_info_get_attribute</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-attribute" title="g_base_info_get_attribute ()">g_base_info_get_attribute</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-container" title="g_base_info_get_container ()">g_base_info_get_container</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-container" title="g_base_info_get_container ()">g_base_info_get_container</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-name" title="g_base_info_get_name ()">g_base_info_get_name</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-name" title="g_base_info_get_name ()">g_base_info_get_name</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-namespace" title="g_base_info_get_namespace ()">g_base_info_get_namespace</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-namespace" title="g_base_info_get_namespace ()">g_base_info_get_namespace</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-type" title="g_base_info_get_type ()">g_base_info_get_type</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-type" title="g_base_info_get_type ()">g_base_info_get_type</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-get-typelib" title="g_base_info_get_typelib ()">g_base_info_get_typelib</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-get-typelib" title="g_base_info_get_typelib ()">g_base_info_get_typelib</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-is-deprecated" title="g_base_info_is_deprecated ()">g_base_info_is_deprecated</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-is-deprecated" title="g_base_info_is_deprecated ()">g_base_info_is_deprecated</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-iterate-attributes" title="g_base_info_iterate_attributes ()">g_base_info_iterate_attributes</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-iterate-attributes" title="g_base_info_iterate_attributes ()">g_base_info_iterate_attributes</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-ref" title="g_base_info_ref ()">g_base_info_ref</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-ref" title="g_base_info_ref ()">g_base_info_ref</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()">g_base_info_unref</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()">g_base_info_unref</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <a name="idxC"></a><h3 class="title">C</h3>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gi-GICallableInfo.html#g-callable-info-get-instance-ownership-transfer" title="g_callable_info_get_instance_ownership_transfer ()">g_callable_info_get_instance_ownership_transfer</a>, function in <a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gi-GICallableInfo.html#g-callable-info-get-n-args" title="g_callable_info_get_n_args ()">g_callable_info_get_n_args</a>, function in <a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob">CallbackBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#CallbackBlob" title="CallbackBlob">CallbackBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#CommonBlob" title="CommonBlob">CommonBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#CommonBlob" title="CommonBlob">CommonBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#ConstantBlob" title="ConstantBlob">ConstantBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ConstantBlob" title="ConstantBlob">ConstantBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 <dd></dd>
 <a name="idxD"></a><h3 class="title">D</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry">DirEntry</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry">DirEntry</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <a name="idxE"></a><h3 class="title">E</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob">EnumBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#EnumBlob" title="EnumBlob">EnumBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#ErrorTypeBlob" title="ErrorTypeBlob">ErrorTypeBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ErrorTypeBlob" title="ErrorTypeBlob">ErrorTypeBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <a name="idxF"></a><h3 class="title">F</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#FieldBlob" title="FieldBlob">FieldBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#FieldBlob" title="FieldBlob">FieldBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob">FunctionBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#FunctionBlob" title="FunctionBlob">FunctionBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 <dd></dd>
 <a name="idxH"></a><h3 class="title">H</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#Header" title="Header">Header</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#Header" title="Header">Header</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <a name="idxI"></a><h3 class="title">I</h3>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-common-types.html#GIArgument" title="GIArgument">GIArgument</a>, union in <a class="link" href="gi-common-types.html" title="common types">common types</a>
+<a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument">GIArgument</a>, union in <a class="link" href="gi-Common-Types.html" title="Common Types">Common Types</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-common-types.html#GIArrayType" title="enum GIArrayType">GIArrayType</a>, enum in <a class="link" href="gi-common-types.html" title="common types">common types</a>
+<a class="link" href="gi-Common-Types.html#GIArrayType" title="enum GIArrayType">GIArrayType</a>, enum in <a class="link" href="gi-Common-Types.html" title="Common Types">Common Types</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter">GIAttributeIter</a>, struct in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter">GIAttributeIter</a>, struct in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GIBaseInfo.html#GIBaseInfo-struct" title="GIBaseInfo">GIBaseInfo</a>, struct in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType">GIInfoType</a>, enum in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#GIInfoType" title="enum GIInfoType">GIInfoType</a>, enum in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GIBaseInfo.html#g-info-new" title="g_info_new ()">g_info_new</a>, function in <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+<a class="link" href="GIBaseInfo.html#g-info-new" title="g_info_new ()">g_info_new</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypeInfo.html#g-info-type-to-string" title="g_info_type_to_string ()">g_info_type_to_string</a>, function in <a class="link" href="gi-GITypeInfo.html" title="GITypeInfo">GITypeInfo</a>
+<a class="link" href="GIBaseInfo.html#g-info-type-to-string" title="g_info_type_to_string ()">g_info_type_to_string</a>, function in <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#InterfaceBlob" title="InterfaceBlob">InterfaceBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#InterfaceBlob" title="InterfaceBlob">InterfaceBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#InterfaceTypeBlob" title="InterfaceTypeBlob">InterfaceTypeBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#InterfaceTypeBlob" title="InterfaceTypeBlob">InterfaceTypeBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC">G_IR_MAGIC</a>, macro in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC">G_IR_MAGIC</a>, macro in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib">GITypelib</a>, struct in <a class="link" href="gi-gitypelib.html" title="gitypelib">gitypelib</a>
+<a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib">GITypelib</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#GITypelibError" title="enum GITypelibError">GITypelibError</a>, enum in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#GITypelibError" title="enum GITypelibError">GITypelibError</a>, enum in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#GITypelibHashBuilder" title="GITypelibHashBuilder">GITypelibHashBuilder</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#GITypelibHashBuilder" title="GITypelibHashBuilder">GITypelibHashBuilder</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag">GITypeTag</a>, enum in <a class="link" href="gi-common-types.html" title="common types">common types</a>
+<a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag">GITypeTag</a>, enum in <a class="link" href="gi-Common-Types.html" title="Common Types">Common Types</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-common-types.html#GIUnresolvedInfo" title="GIUnresolvedInfo">GIUnresolvedInfo</a>, struct in <a class="link" href="gi-common-types.html" title="common types">common types</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gi-GIValueInfo.html#GIValueInfo" title="GIValueInfo">GIValueInfo</a>, typedef in <a class="link" href="gi-GIValueInfo.html" title="GIValueInfo">GIValueInfo</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gi-Version-Information.html#GI-CHECK-VERSION:CAPS" title="GI_CHECK_VERSION()">GI_CHECK_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#gi-get-major-version" title="gi_get_major_version ()">gi_get_major_version</a>, function in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#gi-get-micro-version" title="gi_get_micro_version ()">gi_get_micro_version</a>, function in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#gi-get-minor-version" title="gi_get_minor_version ()">gi_get_minor_version</a>, function in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gi-GIArgInfo.html#GI-IS-ARG-INFO:CAPS" title="GI_IS_ARG_INFO()">GI_IS_ARG_INFO</a>, macro in <a class="link" href="gi-GIArgInfo.html" title="GIArgInfo">GIArgInfo</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gi-Version-Information.html#GI-MAJOR-VERSION:CAPS" title="GI_MAJOR_VERSION">GI_MAJOR_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#GI-MICRO-VERSION:CAPS" title="GI_MICRO_VERSION">GI_MICRO_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-Version-Information.html#GI-MINOR-VERSION:CAPS" title="GI_MINOR_VERSION">GI_MINOR_VERSION</a>, macro in <a class="link" href="gi-Version-Information.html" title="Version Information">Version Information</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gi-girffi.html#gi-type-info-extract-ffi-return-value" title="gi_type_info_extract_ffi_return_value ()">gi_type_info_extract_ffi_return_value</a>, function in <a class="link" href="gi-girffi.html" title="girffi">girffi</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-common-types.html#GI-TYPE-TAG-N-TYPES:CAPS" title="GI_TYPE_TAG_N_TYPES">GI_TYPE_TAG_N_TYPES</a>, macro in <a class="link" href="gi-common-types.html" title="common types">common types</a>
+<a class="link" href="gi-Common-Types.html#GI-TYPE-TAG-N-TYPES:CAPS" title="GI_TYPE_TAG_N_TYPES">GI_TYPE_TAG_N_TYPES</a>, macro in <a class="link" href="gi-Common-Types.html" title="Common Types">Common Types</a>
 </dt>
 <dd></dd>
 <a name="idxO"></a><h3 class="title">O</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#ObjectBlob" title="ObjectBlob">ObjectBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ObjectBlob" title="ObjectBlob">ObjectBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#ParamTypeBlob" title="ParamTypeBlob">ParamTypeBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ParamTypeBlob" title="ParamTypeBlob">ParamTypeBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#PropertyBlob" title="PropertyBlob">PropertyBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#PropertyBlob" title="PropertyBlob">PropertyBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 <dd></dd>
 <a name="idxR"></a><h3 class="title">R</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#RegisteredTypeBlob" title="RegisteredTypeBlob">RegisteredTypeBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#RegisteredTypeBlob" title="RegisteredTypeBlob">RegisteredTypeBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 <dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#Section" title="Section">Section</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#Section" title="Section">Section</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#SectionType" title="enum SectionType">SectionType</a>, enum in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#SectionType" title="enum SectionType">SectionType</a>, enum in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#SignalBlob" title="SignalBlob">SignalBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#SignalBlob" title="SignalBlob">SignalBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob">SignatureBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#SignatureBlob" title="SignatureBlob">SignatureBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob">SimpleTypeBlob</a>, union in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob">SimpleTypeBlob</a>, union in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags">SimpleTypeBlobFlags</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags">SimpleTypeBlobFlags</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#StructBlob" title="StructBlob">StructBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob">StructBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GIStructInfo.html#g-struct-info-find-field" title="g_struct_info_find_field ()">g_struct_info_find_field</a>, function in <a class="link" href="gi-GIStructInfo.html" title="GIStructInfo">GIStructInfo</a>
 </dt>
 <dd></dd>
 <dt>
 <dd></dd>
 <a name="idxT"></a><h3 class="title">T</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType">GTypelibBlobType</a>, enum in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#GTypelibBlobType" title="enum GTypelibBlobType">GTypelibBlobType</a>, enum in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-check-sanity" title="g_typelib_check_sanity ()">g_typelib_check_sanity</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-check-sanity" title="g_typelib_check_sanity ()">g_typelib_check_sanity</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#G-TYPELIB-ERROR:CAPS" title="G_TYPELIB_ERROR">G_TYPELIB_ERROR</a>, macro in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#G-TYPELIB-ERROR:CAPS" title="G_TYPELIB_ERROR">G_TYPELIB_ERROR</a>, macro in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-error-quark" title="g_typelib_error_quark ()">g_typelib_error_quark</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-error-quark" title="g_typelib_error_quark ()">g_typelib_error_quark</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-gitypelib.html#g-typelib-free" title="g_typelib_free ()">g_typelib_free</a>, function in <a class="link" href="gi-gitypelib.html" title="gitypelib">gitypelib</a>
+<a class="link" href="gi-GITypelib.html#g-typelib-free" title="g_typelib_free ()">g_typelib_free</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry" title="g_typelib_get_dir_entry ()">g_typelib_get_dir_entry</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry" title="g_typelib_get_dir_entry ()">g_typelib_get_dir_entry</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-error-domain" title="g_typelib_get_dir_entry_by_error_domain ()">g_typelib_get_dir_entry_by_error_domain</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-error-domain" title="g_typelib_get_dir_entry_by_error_domain ()">g_typelib_get_dir_entry_by_error_domain</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-gtype-name" title="g_typelib_get_dir_entry_by_gtype_name ()">g_typelib_get_dir_entry_by_gtype_name</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-gtype-name" title="g_typelib_get_dir_entry_by_gtype_name ()">g_typelib_get_dir_entry_by_gtype_name</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-name" title="g_typelib_get_dir_entry_by_name ()">g_typelib_get_dir_entry_by_name</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-name" title="g_typelib_get_dir_entry_by_name ()">g_typelib_get_dir_entry_by_name</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-gitypelib.html#g-typelib-get-namespace" title="g_typelib_get_namespace ()">g_typelib_get_namespace</a>, function in <a class="link" href="gi-gitypelib.html" title="gitypelib">gitypelib</a>
+<a class="link" href="gi-GITypelib.html#g-typelib-get-namespace" title="g_typelib_get_namespace ()">g_typelib_get_namespace</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-get-string" title="g_typelib_get_string()">g_typelib_get_string</a>, macro in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-string" title="g_typelib_get_string()">g_typelib_get_string</a>, macro in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-matches-gtype-name-prefix" title="g_typelib_matches_gtype_name_prefix ()">g_typelib_matches_gtype_name_prefix</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-matches-gtype-name-prefix" title="g_typelib_matches_gtype_name_prefix ()">g_typelib_matches_gtype_name_prefix</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-gitypelib.html#g-typelib-new-from-const-memory" title="g_typelib_new_from_const_memory ()">g_typelib_new_from_const_memory</a>, function in <a class="link" href="gi-gitypelib.html" title="gitypelib">gitypelib</a>
+<a class="link" href="gi-GITypelib.html#g-typelib-new-from-const-memory" title="g_typelib_new_from_const_memory ()">g_typelib_new_from_const_memory</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-gitypelib.html#g-typelib-new-from-mapped-file" title="g_typelib_new_from_mapped_file ()">g_typelib_new_from_mapped_file</a>, function in <a class="link" href="gi-gitypelib.html" title="gitypelib">gitypelib</a>
+<a class="link" href="gi-GITypelib.html#g-typelib-new-from-mapped-file" title="g_typelib_new_from_mapped_file ()">g_typelib_new_from_mapped_file</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-gitypelib.html#g-typelib-new-from-memory" title="g_typelib_new_from_memory ()">g_typelib_new_from_memory</a>, function in <a class="link" href="gi-gitypelib.html" title="gitypelib">gitypelib</a>
+<a class="link" href="gi-GITypelib.html#g-typelib-new-from-memory" title="g_typelib_new_from_memory ()">g_typelib_new_from_memory</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-gitypelib.html#g-typelib-symbol" title="g_typelib_symbol ()">g_typelib_symbol</a>, function in <a class="link" href="gi-gitypelib.html" title="gitypelib">gitypelib</a>
+<a class="link" href="gi-GITypelib.html#g-typelib-symbol" title="g_typelib_symbol ()">g_typelib_symbol</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#g-typelib-validate" title="g_typelib_validate ()">g_typelib_validate</a>, function in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-validate" title="g_typelib_validate ()">g_typelib_validate</a>, function in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-common-types.html#G-TYPE-TAG-IS-BASIC:CAPS" title="G_TYPE_TAG_IS_BASIC()">G_TYPE_TAG_IS_BASIC</a>, macro in <a class="link" href="gi-common-types.html" title="common types">common types</a>
+<a class="link" href="gi-Common-Types.html#G-TYPE-TAG-IS-BASIC:CAPS" title="G_TYPE_TAG_IS_BASIC()">G_TYPE_TAG_IS_BASIC</a>, macro in <a class="link" href="gi-Common-Types.html" title="Common Types">Common Types</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypeInfo.html#g-type-tag-to-string" title="g_type_tag_to_string ()">g_type_tag_to_string</a>, function in <a class="link" href="gi-GITypeInfo.html" title="GITypeInfo">GITypeInfo</a>
+<a class="link" href="gi-Common-Types.html#g-type-tag-to-string" title="g_type_tag_to_string ()">g_type_tag_to_string</a>, function in <a class="link" href="gi-Common-Types.html" title="Common Types">Common Types</a>
 </dt>
 <dd></dd>
 <a name="idxU"></a><h3 class="title">U</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob">UnionBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#UnionBlob" title="UnionBlob">UnionBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 <dd></dd>
 <a name="idxV"></a><h3 class="title">V</h3>
 <dt>
-<a class="link" href="gi-GITypelib.html#ValueBlob" title="ValueBlob">ValueBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#ValueBlob" title="ValueBlob">ValueBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gi-GITypelib.html#VFuncBlob" title="VFuncBlob">VFuncBlob</a>, struct in <a class="link" href="gi-GITypelib.html" title="GITypelib">GITypelib</a>
+<a class="link" href="gi-GITypelib-Internals.html#VFuncBlob" title="VFuncBlob">VFuncBlob</a>, struct in <a class="link" href="gi-GITypelib-Internals.html" title="GITypelib Internals">GITypelib Internals</a>
 </dt>
 <dd></dd>
 <dt>
index 261d606..da213ad 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIRepository: GObject Introspection Reference Manual</title>
+<title>GIBaseInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="gi.html" title="Part II. API Reference">
-<link rel="prev" href="gi.html" title="Part II. API Reference">
-<link rel="next" href="GIRepository.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="gi-Common-Types.html" title="Common Types">
+<link rel="next" href="gi-struct-hierarchy.html" title="Struct hierarchy">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="gi.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="GIRepository.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="gi-Common-Types.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gi-struct-hierarchy.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="id-1.4.2"></a>GIRepository</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.7"></a>GIBaseInfo</h1></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="GIRepository.html">GIRepository</a></span><span class="refpurpose"> — GObject Introspection repository manager</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gi-struct-hierarchy.html">Struct hierarchy</a></span><span class="refpurpose"> — Struct hierarchy description for GIBaseInfo and all its sub structs</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gi-common-types.html">common types</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIBaseInfo.html">GIBaseInfo</a></span><span class="refpurpose"> — Base struct for all GITypelib structs</span>
+<span class="refentrytitle"><a href="GIBaseInfo.html">GIBaseInfo</a></span><span class="refpurpose"> — Base struct for all GITypelib structs</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gi-GICallableInfo.html">GICallableInfo</a></span><span class="refpurpose"> — Struct representing a callable</span>
similarity index 51%
rename from docs/reference/html/gi-typelib.html
rename to docs/reference/html/ch02.html
index d57275a..38223c4 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GITypelib: GObject Introspection Reference Manual</title>
+<title>FFI Interface: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="gi.html" title="Part II. API Reference">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
 <link rel="prev" href="gi-GIValueInfo.html" title="GIValueInfo">
-<link rel="next" href="gi-gitypelib.html" title="gitypelib">
+<link rel="next" href="gi-girffi.html" title="girffi">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="gi.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
 <td><a accesskey="p" href="gi-GIValueInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-gitypelib.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gi-girffi.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="gi-typelib"></a>GITypelib</h2></div></div></div>
-<div class="toc"><dl class="toc">
-<dt>
-<span class="refentrytitle"><a href="gi-gitypelib.html">gitypelib</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GITypelib.html">GITypelib</a></span><span class="refpurpose"> — Layout and accessors for typelib</span>
-</dt>
-</dl></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.8"></a>FFI Interface</h1></div></div></div>
+<div class="toc"><dl class="toc"><dt>
+<span class="refentrytitle"><a href="gi-girffi.html">girffi</a></span><span class="refpurpose"> — TODO</span>
+</dt></dl></div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.28</div>
index ba00ab5..250f94a 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TODO: GObject Introspection Reference Manual</title>
+<title>Internals &amp; Typelib Format: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="gi.html" title="Part II. API Reference">
-<link rel="prev" href="gi-GITypelib.html" title="GITypelib">
-<link rel="next" href="gi-girffi.html" title="girffi">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="gi-girffi.html" title="girffi">
+<link rel="next" href="gi-GITypelib-Internals.html" title="GITypelib Internals">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="gi.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-GITypelib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-girffi.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="gi-girffi.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gi-GITypelib-Internals.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="id-1.4.4"></a>TODO</h2></div></div></div>
-<div class="toc"><dl class="toc">
-<dt>
-<span class="refentrytitle"><a href="gi-girffi.html">girffi</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-gir-reference.html">The GIR XML format</a></span><span class="refpurpose"> — The GIR XML format</span>
-</dt>
-</dl></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.9"></a>Internals &amp; Typelib Format</h1></div></div></div>
+<div class="toc"><dl class="toc"><dt>
+<span class="refentrytitle"><a href="gi-GITypelib-Internals.html">GITypelib Internals</a></span><span class="refpurpose"> — Layout and accessors for typelib</span>
+</dt></dl></div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.28</div>
similarity index 86%
rename from docs/reference/html/gi-common-types.html
rename to docs/reference/html/gi-Common-Types.html
index a91acca..40c9a7e 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>common types: GObject Introspection Reference Manual</title>
+<title>Common Types: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
-<link rel="prev" href="gi-struct-hierarchy.html" title="Struct hierarchy">
-<link rel="next" href="gi-GIBaseInfo.html" title="GIBaseInfo">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="gi-Version-Information.html" title="Version Information">
+<link rel="next" href="ch01.html" title="GIBaseInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#gi-common-types.description" class="shortcut">Description</a></span>
+                  <a href="#gi-Common-Types.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-struct-hierarchy.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-GIBaseInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="gi-Version-Information.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch01.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
-<a name="gi-common-types"></a><div class="titlepage"></div>
+<a name="gi-Common-Types"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
-<h2><span class="refentrytitle"><a name="gi-common-types.top_of_page"></a>common types</span></h2>
-<p>common types — TODO</p>
+<h2><span class="refentrytitle"><a name="gi-Common-Types.top_of_page"></a>Common Types</span></h2>
+<p>Common Types — TODO</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="gi-common-types.functions"></a><h2>Functions</h2>
+<a name="gi-Common-Types.functions"></a><h2>Functions</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="define_keyword">#define</td>
 <td class="function_name">
-<a class="link" href="gi-common-types.html#G-TYPE-TAG-IS-BASIC:CAPS" title="G_TYPE_TAG_IS_BASIC()">G_TYPE_TAG_IS_BASIC</a><span class="c_punctuation">()</span>
+<a class="link" href="gi-Common-Types.html#G-TYPE-TAG-IS-BASIC:CAPS" title="G_TYPE_TAG_IS_BASIC()">G_TYPE_TAG_IS_BASIC</a><span class="c_punctuation">()</span>
 </td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gi-Common-Types.html#g-type-tag-to-string" title="g_type_tag_to_string ()">g_type_tag_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gi-common-types.other"></a><h2>Types and Values</h2>
+<a name="gi-Common-Types.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <tbody>
 <tr>
 <td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument">GIArgument</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-common-types.html#GIUnresolvedInfo" title="GIUnresolvedInfo">GIUnresolvedInfo</a></td>
+<td class="function_name"><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument">GIArgument</a></td>
 </tr>
 <tr>
 <td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag">GITypeTag</a></td>
+<td class="function_name"><a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag">GITypeTag</a></td>
 </tr>
 <tr>
 <td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gi-common-types.html#GIArrayType" title="enum GIArrayType">GIArrayType</a></td>
+<td class="function_name"><a class="link" href="gi-Common-Types.html#GIArrayType" title="enum GIArrayType">GIArrayType</a></td>
 </tr>
 <tr>
 <td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="gi-common-types.html#GI-TYPE-TAG-N-TYPES:CAPS" title="GI_TYPE_TAG_N_TYPES">GI_TYPE_TAG_N_TYPES</a></td>
+<td class="function_name"><a class="link" href="gi-Common-Types.html#GI-TYPE-TAG-N-TYPES:CAPS" title="GI_TYPE_TAG_N_TYPES">GI_TYPE_TAG_N_TYPES</a></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gi-common-types.description"></a><h2>Description</h2>
+<a name="gi-Common-Types.description"></a><h2>Description</h2>
 <p>TODO</p>
 </div>
 <div class="refsect1">
-<a name="gi-common-types.functions_details"></a><h2>Functions</h2>
+<a name="gi-Common-Types.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="G-TYPE-TAG-IS-BASIC:CAPS"></a><h3>G_TYPE_TAG_IS_BASIC()</h3>
 <pre class="programlisting">#define G_TYPE_TAG_IS_BASIC(tag) (tag &lt; GI_TYPE_TAG_ARRAY || tag == GI_TYPE_TAG_UNICHAR)
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="g-type-tag-to-string"></a><h3>g_type_tag_to_string ()</h3>
+<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+g_type_tag_to_string (<em class="parameter"><code><a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a> type</code></em>);</pre>
+<p>Obtain a string representation of <em class="parameter"><code>type</code></em>
+</p>
+<div class="refsect3">
+<a name="g-type-tag-to-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type_tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-type-tag-to-string.returns"></a><h4>Returns</h4>
+<p> the string</p>
+</div>
+</div>
 </div>
 <div class="refsect1">
-<a name="gi-common-types.other_details"></a><h2>Types and Values</h2>
+<a name="gi-Common-Types.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GIArgument"></a><h3>GIArgument</h3>
 <p>Stores an argument of varying type</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GIUnresolvedInfo"></a><h3>GIUnresolvedInfo</h3>
-<pre class="programlisting">typedef struct _GIUnresolvedInfo GIUnresolvedInfo;</pre>
-<p>Represents a unresolved type in a typelib.</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GITypeTag"></a><h3>enum GITypeTag</h3>
 <p>The type tag of a <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>.</p>
 <div class="refsect3">
index b20e42c..79d702f 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIArgInfo: GObject Introspection Reference Manual</title>
+<title>GIArgInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIInterfaceInfo.html" title="GIInterfaceInfo">
 <link rel="next" href="gi-GIConstantInfo.html" title="GIConstantInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -178,7 +178,7 @@ part of a <a class="link" href="gi-GICallableInfo.html#GICallableInfo" title="GI
 <div class="refsect1">
 <a name="gi-giarginfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GIArgInfo
 </pre>
 </div>
@@ -369,7 +369,7 @@ g_arg_info_get_type (<em class="parameter"><code><a class="link" href="gi-GIArgI
 <a name="g-arg-info-get-type.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> holding the type
 information for <em class="parameter"><code>info</code></em>
-, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -548,7 +548,7 @@ g_arg_info_is_skip (<em class="parameter"><code><a class="link" href="gi-GIArgIn
 <a name="g-arg-info-is-skip.returns"></a><h4>Returns</h4>
 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if argument is only useful in C.</p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-29-0.html#api-index-1.29.0">1.29.0</a></p>
+<p class="since">Since: <a class="link" href="api-index-1-30.html#api-index-1.30">1.30</a></p>
 </div>
 </div>
 <div class="refsect1">
index fdeb04c..65dab44 100644 (file)
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GICallableInfo: GObject Introspection Reference Manual</title>
+<title>GICallableInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
-<link rel="prev" href="gi-GIBaseInfo.html" title="GIBaseInfo">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
+<link rel="prev" href="GIBaseInfo.html" title="GIBaseInfo">
 <link rel="next" href="gi-GIFunctionInfo.html" title="GIFunctionInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -19,7 +19,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-GIBaseInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GIBaseInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gi-GIFunctionInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 </td>
 </tr>
 <tr>
+<td class="function_type">
+<a class="link" href="gi-GIArgInfo.html#GITransfer" title="enum GITransfer"><span class="returnvalue">GITransfer</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gi-GICallableInfo.html#g-callable-info-get-instance-ownership-transfer" title="g_callable_info_get_instance_ownership_transfer ()">g_callable_info_get_instance_ownership_transfer</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
 <td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
@@ -174,7 +182,7 @@ direction and a flag which decides if it returns null.</p>
 <div class="refsect1">
 <a name="gi-gicallableinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GICallableInfo
          +----<a class="link" href="gi-GIFunctionInfo.html" title="GIFunctionInfo">GIFunctionInfo</a>
          +----<a class="link" href="gi-GISignalInfo.html" title="GISignalInfo">GISignalInfo</a>
@@ -290,7 +298,7 @@ g_callable_info_get_arg (<em class="parameter"><code><a class="link" href="gi-GI
 <div class="refsect3">
 <a name="g-callable-info-get-arg.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIArgInfo.html#GIArgInfo" title="GIArgInfo"><span class="type">GIArgInfo</span></a>. Free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -323,6 +331,35 @@ g_callable_info_get_caller_owns (<em class="parameter"><code><a class="link" hre
 </div>
 <hr>
 <div class="refsect2">
+<a name="g-callable-info-get-instance-ownership-transfer"></a><h3>g_callable_info_get_instance_ownership_transfer ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GIArgInfo.html#GITransfer" title="enum GITransfer"><span class="returnvalue">GITransfer</span></a>
+g_callable_info_get_instance_ownership_transfer
+                               (<em class="parameter"><code><a class="link" href="gi-GICallableInfo.html#GICallableInfo" title="GICallableInfo"><span class="type">GICallableInfo</span></a> *info</code></em>);</pre>
+<p>Obtains the ownership transfer for the instance argument.
+<a class="link" href="gi-GIArgInfo.html#GITransfer" title="enum GITransfer"><span class="type">GITransfer</span></a> contains a list of possible transfer values.</p>
+<div class="refsect3">
+<a name="g-callable-info-get-instance-ownership-transfer.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gi-GICallableInfo.html#GICallableInfo" title="GICallableInfo"><span class="type">GICallableInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-callable-info-get-instance-ownership-transfer.returns"></a><h4>Returns</h4>
+<p> the transfer mode of the instance argument</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-42.html#api-index-1.42">1.42</a></p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="g-callable-info-get-return-attribute"></a><h3>g_callable_info_get_return_attribute ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 g_callable_info_get_return_attribute (<em class="parameter"><code><a class="link" href="gi-GICallableInfo.html#GICallableInfo" title="GICallableInfo"><span class="type">GICallableInfo</span></a> *info</code></em>,
@@ -379,7 +416,7 @@ g_callable_info_get_return_type (<em class="parameter"><code><a class="link" hre
 <div class="refsect3">
 <a name="g-callable-info-get-return-type.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -389,11 +426,11 @@ g_callable_info_get_return_type (<em class="parameter"><code><a class="link" hre
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_callable_info_invoke (<em class="parameter"><code><a class="link" href="gi-GICallableInfo.html#GICallableInfo" title="GICallableInfo"><span class="type">GICallableInfo</span></a> *info</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> function</code></em>,
-                        <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
+                        <em class="parameter"><code>const <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
                         <em class="parameter"><code><span class="type">int</span> n_in_args</code></em>,
-                        <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
+                        <em class="parameter"><code>const <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
                         <em class="parameter"><code><span class="type">int</span> n_out_args</code></em>,
-                        <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
+                        <em class="parameter"><code><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> is_method</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> throws</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
@@ -502,7 +539,7 @@ is a method, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FAL
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_callable_info_iterate_return_attributes
                                (<em class="parameter"><code><a class="link" href="gi-GICallableInfo.html#GICallableInfo" title="GICallableInfo"><span class="type">GICallableInfo</span></a> *info</code></em>,
-                                <em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> *iterator</code></em>,
+                                <em class="parameter"><code><a class="link" href="GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> *iterator</code></em>,
                                 <em class="parameter"><code><span class="type">char</span> **name</code></em>,
                                 <em class="parameter"><code><span class="type">char</span> **value</code></em>);</pre>
 <p>Iterate over all attributes associated with the return value.  The
@@ -512,7 +549,7 @@ first member initialized to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-
  and <em class="parameter"><code>value</code></em>
  should be treated as constants
 and must not be freed.</p>
-<p>See <a class="link" href="gi-GIBaseInfo.html#g-base-info-iterate-attributes" title="g_base_info_iterate_attributes ()"><code class="function">g_base_info_iterate_attributes()</code></a> for an example of how to use a
+<p>See <a class="link" href="GIBaseInfo.html#g-base-info-iterate-attributes" title="g_base_info_iterate_attributes ()"><code class="function">g_base_info_iterate_attributes()</code></a> for an example of how to use a
 similar API.</p>
 <div class="refsect3">
 <a name="g-callable-info-iterate-return-attributes.parameters"></a><h4>Parameters</h4>
@@ -530,7 +567,7 @@ similar API.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>iterator</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> structure, must be initialized; see below. </p></td>
+<td class="parameter_description"><p>a <a class="link" href="GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> structure, must be initialized; see below. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
 </tr>
 <tr>
index 6e020bb..d240b9a 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GICallbackInfo: GObject Introspection Reference Manual</title>
+<title>GICallbackInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIFunctionInfo.html" title="GIFunctionInfo">
 <link rel="next" href="gi-GISignalInfo.html" title="GISignalInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -50,7 +50,7 @@
 <div class="refsect1">
 <a name="gi-gicallbackinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
          +----GIFunctionInfo
          +----<a class="link" href="gi-GISignalInfo.html" title="GISignalInfo">GISignalInfo</a>
index e8a12c9..0676064 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIConstantInfo: GObject Introspection Reference Manual</title>
+<title>GIConstantInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIArgInfo.html" title="GIArgInfo">
 <link rel="next" href="gi-GIFieldInfo.html" title="GIFieldInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -93,7 +93,7 @@ which can be obtained by calling <a class="link" href="gi-GIConstantInfo.html#g-
 <div class="refsect1">
 <a name="gi-giconstantinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GIConstantInfo
 </pre>
 </div>
@@ -126,7 +126,7 @@ which can be obtained by calling <a class="link" href="gi-GIConstantInfo.html#g-
 <a name="g-constant-info-free-value"></a><h3>g_constant_info_free_value ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 g_constant_info_free_value (<em class="parameter"><code><a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a> *info</code></em>,
-                            <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
+                            <em class="parameter"><code><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
 <p>Free the value returned from <a class="link" href="gi-GIConstantInfo.html#g-constant-info-get-value" title="g_constant_info_get_value ()"><code class="function">g_constant_info_get_value()</code></a>.</p>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
@@ -151,7 +151,7 @@ g_constant_info_free_value (<em class="parameter"><code><a class="link" href="gi
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-30-1.html#api-index-1.30.1">1.30.1</a></p>
+<p class="since">Since: <a class="link" href="api-index-1-32.html#api-index-1.32">1.32</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -177,7 +177,7 @@ g_constant_info_get_type (<em class="parameter"><code><a class="link" href="gi-G
 <div class="refsect3">
 <a name="g-constant-info-get-type.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -186,7 +186,7 @@ g_constant_info_get_type (<em class="parameter"><code><a class="link" href="gi-G
 <a name="g-constant-info-get-value"></a><h3>g_constant_info_get_value ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 g_constant_info_get_value (<em class="parameter"><code><a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a> *info</code></em>,
-                           <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
+                           <em class="parameter"><code><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
 <p>Obtain the value associated with the <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a> and store it in the
 <em class="parameter"><code>value</code></em>
  parameter. <em class="parameter"><code>argument</code></em>
index 5fe8fd5..28f3306 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIEnumInfo: GObject Introspection Reference Manual</title>
+<title>GIEnumInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">
 <link rel="next" href="gi-GIStructInfo.html" title="GIStructInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -85,7 +85,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
+<a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gi-GIEnumInfo.html#g-enum-info-get-storage-type" title="g_enum_info_get_storage_type ()">g_enum_info_get_storage_type</a> <span class="c_punctuation">()</span>
@@ -130,7 +130,7 @@ The GIValueInfo is fetched by calling <a class="link" href="gi-GIEnumInfo.html#g
 <div class="refsect1">
 <a name="gi-gienuminfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
          +----GIEnumInfo
 </pre>
@@ -239,7 +239,7 @@ g_enum_info_get_value (<em class="parameter"><code><a class="link" href="gi-GIEn
 <div class="refsect3">
 <a name="g-enum-info-get-value.returns"></a><h4>Returns</h4>
 <p>the enumeration value or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if type tag is wrong,
-free the struct with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+free the struct with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -268,7 +268,7 @@ g_enum_info_get_n_methods (<em class="parameter"><code><a class="link" href="gi-
 <a name="g-enum-info-get-n-methods.returns"></a><h4>Returns</h4>
 <p> number of methods</p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-29-17.html#api-index-1.29.17">1.29.17</a></p>
+<p class="since">Since: <a class="link" href="api-index-1-30.html#api-index-1.30">1.30</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -303,15 +303,15 @@ g_enum_info_get_method (<em class="parameter"><code><a class="link" href="gi-GIE
 <div class="refsect3">
 <a name="g-enum-info-get-method.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-29-17.html#api-index-1.29.17">1.29.17</a></p>
+<p class="since">Since: <a class="link" href="api-index-1-30.html#api-index-1.30">1.30</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="g-enum-info-get-storage-type"></a><h3>g_enum_info_get_storage_type ()</h3>
-<pre class="programlisting"><a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
+<pre class="programlisting"><a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
 g_enum_info_get_storage_type (<em class="parameter"><code><a class="link" href="gi-GIEnumInfo.html#GIEnumInfo" title="GIEnumInfo"><span class="type">GIEnumInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the tag of the type used for the enum in the C ABI. This will
 will be a signed or unsigned integral type.</p>
@@ -366,7 +366,7 @@ this enum, if any.</p>
 with this enum, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-29-17.html#api-index-1.29.17">1.29.17</a></p>
+<p class="since">Since: <a class="link" href="api-index-1-30.html#api-index-1.30">1.30</a></p>
 </div>
 <hr>
 <div class="refsect2">
index 30aee4c..e40090c 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIFieldInfo: GObject Introspection Reference Manual</title>
+<title>GIFieldInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIConstantInfo.html" title="GIConstantInfo">
 <link rel="next" href="gi-GIPropertyInfo.html" title="GIPropertyInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -126,7 +126,7 @@ which is currently <a class="link" href="gi-GIFieldInfo.html#GI-FIELD-IS-READABL
 <div class="refsect1">
 <a name="gi-gifieldinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GIFieldInfo
 </pre>
 </div>
@@ -160,7 +160,7 @@ which is currently <a class="link" href="gi-GIFieldInfo.html#GI-FIELD-IS-READABL
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_field_info_get_field (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *field_info</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> mem</code></em>,
-                        <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
+                        <em class="parameter"><code><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
 <p>Reads a field identified by a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> from a C structure or
 union.  This only handles fields of simple C types. It will fail
 for a field of a composite type like a nested structure or union
@@ -187,7 +187,7 @@ even if that is actually readable.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> into which to store the value retrieved</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> into which to store the value retrieved</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -204,7 +204,7 @@ even if that is actually readable.</p>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_field_info_set_field (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *field_info</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> mem</code></em>,
-                        <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
+                        <em class="parameter"><code>const <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
 <p>Writes a field identified by a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> to a C structure or
 union.  This only handles fields of simple C types. It will fail
 for a field of a composite type like a nested structure or union
@@ -233,7 +233,7 @@ with a type such as 'char *' must be set with a setter function.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> holding the value to store</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> holding the value to store</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -276,7 +276,7 @@ flag values.</p>
 <a name="g-field-info-get-offset"></a><h3>g_field_info_get_offset ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 g_field_info_get_offset (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);</pre>
-<p>Obtain the offset in bits of the field member, this is relative
+<p>Obtain the offset in bytes of the field member, this is relative
 to the beginning of the struct or union.</p>
 <div class="refsect3">
 <a name="g-field-info-get-offset.parameters"></a><h4>Parameters</h4>
@@ -349,7 +349,7 @@ g_field_info_get_type (<em class="parameter"><code><a class="link" href="gi-GIFi
 <div class="refsect3">
 <a name="g-field-info-get-type.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
index accc91a..f66ec8e 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIFunctionInfo: GObject Introspection Reference Manual</title>
+<title>GIFunctionInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GICallableInfo.html" title="GICallableInfo">
 <link rel="next" href="gi-GICallbackInfo.html" title="GICallbackInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -132,7 +132,7 @@ other metadata.</p>
 <div class="refsect1">
 <a name="gi-gifunctioninfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
          +----GIFunctionInfo
          +----<a class="link" href="gi-GISignalInfo.html" title="GISignalInfo">GISignalInfo</a>
@@ -217,7 +217,7 @@ Only <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunct
 <div class="refsect3">
 <a name="g-function-info-get-property.returns"></a><h4>Returns</h4>
 <p>the property or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not set. Free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -275,7 +275,7 @@ a virtual function set. For other cases, <a href="/usr/share/gtk-doc/html/glib/g
 <div class="refsect3">
 <a name="g-function-info-get-vfunc.returns"></a><h4>Returns</h4>
 <p>the virtual function or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not set.
-Free it by calling <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+Free it by calling <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -284,11 +284,11 @@ Free it by calling <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" t
 <a name="g-function-info-invoke"></a><h3>g_function_info_invoke ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_function_info_invoke (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>,
-                        <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
+                        <em class="parameter"><code>const <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
                         <em class="parameter"><code><span class="type">int</span> n_in_args</code></em>,
-                        <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
+                        <em class="parameter"><code>const <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
                         <em class="parameter"><code><span class="type">int</span> n_out_args</code></em>,
-                        <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
+                        <em class="parameter"><code><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Invokes the function described in <em class="parameter"><code>info</code></em>
  with the given
@@ -314,7 +314,7 @@ have been <a href="/usr/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.
 </tr>
 <tr>
 <td class="parameter_name"><p>in_args</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each in
+<td class="parameter_description"><p>an array of <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each in
 parameter of <em class="parameter"><code>info</code></em>
 . If there are no in parameter, <em class="parameter"><code>in_args</code></em>
 can be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
@@ -328,7 +328,7 @@ array</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>out_args</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each out
+<td class="parameter_description"><p>an array of <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each out
 parameter of <em class="parameter"><code>info</code></em>
 . If there are no out parameters, <em class="parameter"><code>out_args</code></em>
 may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
index 77da6f2..ab3d986 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIInterfaceInfo: GObject Introspection Reference Manual</title>
+<title>GIInterfaceInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIObjectInfo.html" title="GIObjectInfo">
 <link rel="next" href="gi-GIArgInfo.html" title="GIArgInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -55,7 +55,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gi-GIInterfaceInfo.html#g-interface-info-get-prerequisite" title="g_interface_info_get_prerequisite ()">g_interface_info_get_prerequisite</a> <span class="c_punctuation">()</span>
@@ -197,7 +197,7 @@ virtual functions and prerequisites.</p>
 <div class="refsect1">
 <a name="gi-giinterfaceinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
          +----GIInterfaceInfo
 </pre>
@@ -257,7 +257,7 @@ interface, similar to an base class for GObjects.</p>
 <hr>
 <div class="refsect2">
 <a name="g-interface-info-get-prerequisite"></a><h3>g_interface_info_get_prerequisite ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 g_interface_info_get_prerequisite (<em class="parameter"><code><a class="link" href="gi-GIInterfaceInfo.html#GIInterfaceInfo" title="GIInterfaceInfo"><span class="type">GIInterfaceInfo</span></a> *info</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n</code></em>);</pre>
 <p>Obtain an interface type prerequisites index <em class="parameter"><code>n</code></em>
@@ -286,8 +286,8 @@ g_interface_info_get_prerequisite (<em class="parameter"><code><a class="link" h
 </div>
 <div class="refsect3">
 <a name="g-interface-info-get-prerequisite.returns"></a><h4>Returns</h4>
-<p>the prerequisites as a <span class="type">GIBaseInfo</span>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<p>the prerequisites as a <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>. Free the struct by calling
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -350,7 +350,7 @@ g_interface_info_get_property (<em class="parameter"><code><a class="link" href=
 <div class="refsect3">
 <a name="g-interface-info-get-property.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="type">GIPropertyInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -413,7 +413,7 @@ g_interface_info_get_method (<em class="parameter"><code><a class="link" href="g
 <div class="refsect3">
 <a name="g-interface-info-get-method.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -451,7 +451,7 @@ returned if there's no method available with that name.</p>
 <div class="refsect3">
 <a name="g-interface-info-find-method.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none found.
-Free the struct by calling <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+Free the struct by calling <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -514,7 +514,7 @@ g_interface_info_get_signal (<em class="parameter"><code><a class="link" href="g
 <div class="refsect3">
 <a name="g-interface-info-get-signal.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GISignalInfo.html#GISignalInfo" title="GISignalInfo"><span class="type">GISignalInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -616,7 +616,7 @@ g_interface_info_get_vfunc (<em class="parameter"><code><a class="link" href="gi
 <div class="refsect3">
 <a name="g-interface-info-get-vfunc.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -654,7 +654,7 @@ for <a class="link" href="gi-GIObjectInfo.html#g-object-info-find-vfunc" title="
 <div class="refsect3">
 <a name="g-interface-info-find-vfunc.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -717,7 +717,7 @@ g_interface_info_get_constant (<em class="parameter"><code><a class="link" href=
 <div class="refsect3">
 <a name="g-interface-info-get-constant.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -745,7 +745,7 @@ g_interface_info_get_iface_struct (<em class="parameter"><code><a class="link" h
 <div class="refsect3">
 <a name="g-interface-info-get-iface-struct.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
index 7167469..5aac736 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIObjectInfo: GObject Introspection Reference Manual</title>
+<title>GIObjectInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIUnionInfo.html" title="GIUnionInfo">
 <link rel="next" href="gi-GIInterfaceInfo.html" title="GIInterfaceInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -360,7 +360,7 @@ and virtual functions.</p>
 <div class="refsect1">
 <a name="gi-giobjectinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
          +----GIObjectInfo
 </pre>
@@ -467,7 +467,7 @@ g_object_info_get_parent (<em class="parameter"><code><a class="link" href="gi-G
 <div class="refsect3">
 <a name="g-object-info-get-parent.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIObjectInfo.html#GIObjectInfo" title="GIObjectInfo"><span class="type">GIObjectInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -583,7 +583,7 @@ g_object_info_get_constant (<em class="parameter"><code><a class="link" href="gi
 <div class="refsect3">
 <a name="g-object-info-get-constant.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -646,7 +646,7 @@ g_object_info_get_field (<em class="parameter"><code><a class="link" href="gi-GI
 <div class="refsect3">
 <a name="g-object-info-get-field.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -709,7 +709,7 @@ g_object_info_get_interface (<em class="parameter"><code><a class="link" href="g
 <div class="refsect3">
 <a name="g-object-info-get-interface.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIInterfaceInfo.html#GIInterfaceInfo" title="GIInterfaceInfo"><span class="type">GIInterfaceInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -772,7 +772,7 @@ g_object_info_get_method (<em class="parameter"><code><a class="link" href="gi-G
 <div class="refsect3">
 <a name="g-object-info-get-method.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -810,7 +810,7 @@ returned if there's no method available with that name.</p>
 <div class="refsect3">
 <a name="g-object-info-find-method.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -859,7 +859,7 @@ to chain up if that's desired.</p>
 <div class="refsect3">
 <a name="g-object-info-find-method-using-interfaces.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -922,7 +922,7 @@ g_object_info_get_property (<em class="parameter"><code><a class="link" href="gi
 <div class="refsect3">
 <a name="g-object-info-get-property.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="type">GIPropertyInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -985,7 +985,7 @@ g_object_info_get_signal (<em class="parameter"><code><a class="link" href="gi-G
 <div class="refsect3">
 <a name="g-object-info-get-signal.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GISignalInfo.html#GISignalInfo" title="GISignalInfo"><span class="type">GISignalInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -1085,7 +1085,7 @@ g_object_info_get_vfunc (<em class="parameter"><code><a class="link" href="gi-GI
 <div class="refsect3">
 <a name="g-object-info-get-vfunc.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -1128,7 +1128,7 @@ information on invoking virtuals.</p>
 <div class="refsect3">
 <a name="g-object-info-find-vfunc.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -1166,7 +1166,7 @@ to chain up if that's desired.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>name of method to obtain</p></td>
+<td class="parameter_description"><p>name of vfunc to obtain</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1179,8 +1179,8 @@ to chain up if that's desired.</p>
 </div>
 <div class="refsect3">
 <a name="g-object-info-find-vfunc-using-interfaces.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>. Free the struct by calling
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<p>the <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a>. Free the struct by calling
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -1209,7 +1209,7 @@ structure.  This function returns the metadata for the class structure.</p>
 <div class="refsect3">
 <a name="g-object-info-get-class-struct.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Free with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
index f31746c..5464395 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIPropertyInfo: GObject Introspection Reference Manual</title>
+<title>GIPropertyInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIFieldInfo.html" title="GIFieldInfo">
 <link rel="next" href="gi-GITypeInfo.html" title="GITypeInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -92,7 +92,7 @@ either a <a class="link" href="gi-GIObjectInfo.html#GIObjectInfo" title="GIObjec
 <div class="refsect1">
 <a name="gi-gipropertyinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GIPropertyInfo
 </pre>
 </div>
@@ -200,7 +200,7 @@ g_property_info_get_type (<em class="parameter"><code><a class="link" href="gi-G
 <div class="refsect3">
 <a name="g-property-info-get-type.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>, free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
index a5b4376..fc1115f 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIRegisteredTypeInfo: GObject Introspection Reference Manual</title>
+<title>GIRegisteredTypeInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIVFuncInfo.html" title="GIVFuncInfo">
 <link rel="next" href="gi-GIEnumInfo.html" title="GIEnumInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -95,7 +95,7 @@ about the rest of the details.</p>
 <div class="refsect1">
 <a name="gi-giregisteredtypeinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GIRegisteredTypeInfo
          +----<a class="link" href="gi-GIEnumInfo.html" title="GIEnumInfo">GIEnumInfo</a>
          +----<a class="link" href="gi-GIInterfaceInfo.html" title="GIInterfaceInfo">GIInterfaceInfo</a>
index 6e37bed..58d896c 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GISignalInfo: GObject Introspection Reference Manual</title>
+<title>GISignalInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GICallbackInfo.html" title="GICallbackInfo">
 <link rel="next" href="gi-GIVFuncInfo.html" title="GIVFuncInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -94,7 +94,7 @@ and other metadata from the signal.</p>
 <div class="refsect1">
 <a name="gi-gisignalinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
          +----<a class="link" href="gi-GIFunctionInfo.html" title="GIFunctionInfo">GIFunctionInfo</a>
          +----GISignalInfo
index 7c66d9d..8c5d50c 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIStructInfo: GObject Introspection Reference Manual</title>
+<title>GIStructInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIEnumInfo.html" title="GIEnumInfo">
 <link rel="next" href="gi-GIUnionInfo.html" title="GIUnionInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 </tr>
 <tr>
 <td class="function_type">
+<a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="returnvalue">GIFieldInfo</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gi-GIStructInfo.html#g-struct-info-find-field" title="g_struct_info_find_field ()">g_struct_info_find_field</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
 </td>
 <td class="function_name">
 <div class="refsect1">
 <a name="gi-giobjectinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
          +----GIStructInfo
 </pre>
 </div>
 <hr>
 <div class="refsect2">
+<a name="g-struct-info-find-field"></a><h3>g_struct_info_find_field ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="returnvalue">GIFieldInfo</span></a> *
+g_struct_info_find_field (<em class="parameter"><code><a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a> *info</code></em>,
+                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>Obtain the type information for field named <em class="parameter"><code>name</code></em>
+.</p>
+<div class="refsect3">
+<a name="g-struct-info-find-field.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>a field name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-struct-info-find-field.returns"></a><h4>Returns</h4>
+<p>the <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found,
+free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-46.html#api-index-1.46">1.46</a></p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="g-struct-info-get-alignment"></a><h3>g_struct_info_get_alignment ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
 g_struct_info_get_alignment (<em class="parameter"><code><a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a> *info</code></em>);</pre>
@@ -332,7 +378,7 @@ g_struct_info_get_field (<em class="parameter"><code><a class="link" href="gi-GI
 </div>
 <div class="refsect3">
 <a name="g-struct-info-get-field.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -394,7 +440,7 @@ g_struct_info_get_method (<em class="parameter"><code><a class="link" href="gi-G
 </div>
 <div class="refsect3">
 <a name="g-struct-info-get-method.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -431,7 +477,7 @@ g_struct_info_find_method (<em class="parameter"><code><a class="link" href="gi-
 </div>
 <div class="refsect3">
 <a name="g-struct-info-find-method.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
index 12f3589..1e62452 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GITypeInfo: GObject Introspection Reference Manual</title>
+<title>GITypeInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIPropertyInfo.html" title="GIPropertyInfo">
 <link rel="next" href="gi-GIValueInfo.html" title="GIValueInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gi-GITypeInfo.html#g-type-tag-to-string" title="g_type_tag_to_string ()">g_type_tag_to_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gi-GITypeInfo.html#g-info-type-to-string" title="g_info_type_to_string ()">g_info_type_to_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
 <td class="function_type">
 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
@@ -69,7 +55,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
+<a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gi-GITypeInfo.html#g-type-info-get-tag" title="g_type_info_get_tag ()">g_type_info_get_tag</a> <span class="c_punctuation">()</span>
@@ -85,7 +71,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GIBaseInfo</span> *
+<a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gi-GITypeInfo.html#g-type-info-get-interface" title="g_type_info_get_interface ()">g_type_info_get_interface</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-common-types.html#GIArrayType" title="enum GIArrayType"><span class="returnvalue">GIArrayType</span></a>
+<a class="link" href="gi-Common-Types.html#GIArrayType" title="enum GIArrayType"><span class="returnvalue">GIArrayType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gi-GITypeInfo.html#g-type-info-get-array-type" title="g_type_info_get_array_type ()">g_type_info_get_array_type</a> <span class="c_punctuation">()</span>
@@ -152,7 +138,7 @@ interface.</p>
 <div class="refsect1">
 <a name="gi-gitypeinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GITypeInfo
 </pre>
 </div>
@@ -182,60 +168,6 @@ interface.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-type-tag-to-string"></a><h3>g_type_tag_to_string ()</h3>
-<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-g_type_tag_to_string (<em class="parameter"><code><a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a> type</code></em>);</pre>
-<p>Obtain a string representation of <em class="parameter"><code>type</code></em>
-</p>
-<div class="refsect3">
-<a name="g-type-tag-to-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the type_tag</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-type-tag-to-string.returns"></a><h4>Returns</h4>
-<p> the string</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-info-type-to-string"></a><h3>g_info_type_to_string ()</h3>
-<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-g_info_type_to_string (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> type</code></em>);</pre>
-<p>Obtain a string representation of <em class="parameter"><code>type</code></em>
-</p>
-<div class="refsect3">
-<a name="g-info-type-to-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the info type</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-info-type-to-string.returns"></a><h4>Returns</h4>
-<p> the string</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="g-type-info-is-pointer"></a><h3>g_type_info_is_pointer ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_type_info_is_pointer (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *info</code></em>);</pre>
@@ -267,9 +199,9 @@ pointer).</p>
 <hr>
 <div class="refsect2">
 <a name="g-type-info-get-tag"></a><h3>g_type_info_get_tag ()</h3>
-<pre class="programlisting"><a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
+<pre class="programlisting"><a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="returnvalue">GITypeTag</span></a>
 g_type_info_get_tag (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *info</code></em>);</pre>
-<p>Obtain the type tag for the type. See <a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a> for a list
+<p>Obtain the type tag for the type. See <a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a> for a list
 of type tags.</p>
 <div class="refsect3">
 <a name="g-type-info-get-tag.parameters"></a><h4>Parameters</h4>
@@ -330,12 +262,12 @@ g_type_info_get_param_type (<em class="parameter"><code><a class="link" href="gi
 <hr>
 <div class="refsect2">
 <a name="g-type-info-get-interface"></a><h3>g_type_info_get_interface ()</h3>
-<pre class="programlisting"><span class="returnvalue">GIBaseInfo</span> *
+<pre class="programlisting"><a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *
 g_type_info_get_interface (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *info</code></em>);</pre>
-<p>For types which have <a class="link" href="gi-common-types.html#GI-TYPE-TAG-INTERFACE:CAPS"><span class="type">GI_TYPE_TAG_INTERFACE</span></a> such as GObjects and boxed values,
+<p>For types which have <a class="link" href="gi-Common-Types.html#GI-TYPE-TAG-INTERFACE:CAPS"><span class="type">GI_TYPE_TAG_INTERFACE</span></a> such as GObjects and boxed values,
 this function returns full information about the referenced type.  You can then
-inspect the type of the returned <span class="type">GIBaseInfo</span> to further query whether it is
-a concrete GObject, a GInterface, a structure, etc. using <a class="link" href="gi-GIBaseInfo.html#g-base-info-get-type" title="g_base_info_get_type ()"><code class="function">g_base_info_get_type()</code></a>.</p>
+inspect the type of the returned <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> to further query whether it is
+a concrete GObject, a GInterface, a structure, etc. using <a class="link" href="GIBaseInfo.html#g-base-info-get-type" title="g_base_info_get_type ()"><code class="function">g_base_info_get_type()</code></a>.</p>
 <div class="refsect3">
 <a name="g-type-info-get-interface.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -353,8 +285,8 @@ a concrete GObject, a GInterface, a structure, etc. using <a class="link" href="
 </div>
 <div class="refsect3">
 <a name="g-type-info-get-interface.returns"></a><h4>Returns</h4>
-<p>the <span class="type">GIBaseInfo</span>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<p>the <a class="link" href="GIBaseInfo.html" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Free it with
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -364,7 +296,7 @@ a concrete GObject, a GInterface, a structure, etc. using <a class="link" href="
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 g_type_info_get_array_length (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the array length of the type. The type tag must be a
-<a class="link" href="gi-common-types.html#GI-TYPE-TAG-ARRAY:CAPS"><span class="type">GI_TYPE_TAG_ARRAY</span></a> or -1 will returned.</p>
+<a class="link" href="gi-Common-Types.html#GI-TYPE-TAG-ARRAY:CAPS"><span class="type">GI_TYPE_TAG_ARRAY</span></a> or -1 will returned.</p>
 <div class="refsect3">
 <a name="g-type-info-get-array-length.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -391,7 +323,7 @@ g_type_info_get_array_length (<em class="parameter"><code><a class="link" href="
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 g_type_info_get_array_fixed_size (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *info</code></em>);</pre>
 <p>Obtain the fixed array size of the type. The type tag must be a
-<a class="link" href="gi-common-types.html#GI-TYPE-TAG-ARRAY:CAPS"><span class="type">GI_TYPE_TAG_ARRAY</span></a> or -1 will returned.</p>
+<a class="link" href="gi-Common-Types.html#GI-TYPE-TAG-ARRAY:CAPS"><span class="type">GI_TYPE_TAG_ARRAY</span></a> or -1 will returned.</p>
 <div class="refsect3">
 <a name="g-type-info-get-array-fixed-size.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -418,7 +350,7 @@ g_type_info_get_array_fixed_size (<em class="parameter"><code><a class="link" hr
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_type_info_is_zero_terminated (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *info</code></em>);</pre>
 <p>Obtain if the last element of the array is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. The type tag must be a
-<a class="link" href="gi-common-types.html#GI-TYPE-TAG-ARRAY:CAPS"><span class="type">GI_TYPE_TAG_ARRAY</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> will returned.</p>
+<a class="link" href="gi-Common-Types.html#GI-TYPE-TAG-ARRAY:CAPS"><span class="type">GI_TYPE_TAG_ARRAY</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> will returned.</p>
 <div class="refsect3">
 <a name="g-type-info-is-zero-terminated.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -442,9 +374,9 @@ g_type_info_is_zero_terminated (<em class="parameter"><code><a class="link" href
 <hr>
 <div class="refsect2">
 <a name="g-type-info-get-array-type"></a><h3>g_type_info_get_array_type ()</h3>
-<pre class="programlisting"><a class="link" href="gi-common-types.html#GIArrayType" title="enum GIArrayType"><span class="returnvalue">GIArrayType</span></a>
+<pre class="programlisting"><a class="link" href="gi-Common-Types.html#GIArrayType" title="enum GIArrayType"><span class="returnvalue">GIArrayType</span></a>
 g_type_info_get_array_type (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *info</code></em>);</pre>
-<p>Obtain the array type for this type. See <a class="link" href="gi-common-types.html#GIArrayType" title="enum GIArrayType"><span class="type">GIArrayType</span></a> for a list of
+<p>Obtain the array type for this type. See <a class="link" href="gi-Common-Types.html#GIArrayType" title="enum GIArrayType"><span class="type">GIArrayType</span></a> for a list of
 possible values. If the type tag of this type is not array, -1 will be
 returned.</p>
 <div class="refsect3">
diff --git a/docs/reference/html/gi-GITypelib-Internals.html b/docs/reference/html/gi-GITypelib-Internals.html
new file mode 100644 (file)
index 0000000..f72aec2
--- /dev/null
@@ -0,0 +1,3239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GITypelib Internals: libgirepository API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch03.html" title="Internals &amp; Typelib Format">
+<link rel="prev" href="ch03.html" title="Internals &amp; Typelib Format">
+<link rel="next" href="api-index-full.html" title="Index">
+<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gi-GITypelib-Internals.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gi-GITypelib-Internals"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gi-GITypelib-Internals.top_of_page"></a>GITypelib Internals</span></h2>
+<p>GITypelib Internals — Layout and accessors for typelib</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gi-GITypelib-Internals.stability-level"></a><h2>Stability Level</h2>
+<acronym title="The intention of a Stable interface is to enable arbitrary third parties to
+develop applications to these interfaces, release them, and have confidence that
+they will run on all minor releases of the product (after the one in which the
+interface was introduced, and within the same major release). Even at a major
+release, incompatible changes are expected to be rare, and to have strong
+justifications.
+"><span class="acronym">Stable</span></acronym>, unless otherwise indicated
+</div>
+<div class="refsect1">
+<a name="gi-GITypelib-Internals.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry" title="g_typelib_get_dir_entry ()">g_typelib_get_dir_entry</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-name" title="g_typelib_get_dir_entry_by_name ()">g_typelib_get_dir_entry_by_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-gtype-name" title="g_typelib_get_dir_entry_by_gtype_name ()">g_typelib_get_dir_entry_by_gtype_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-error-domain" title="g_typelib_get_dir_entry_by_error_domain ()">g_typelib_get_dir_entry_by_error_domain</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-matches-gtype-name-prefix" title="g_typelib_matches_gtype_name_prefix ()">g_typelib_matches_gtype_name_prefix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-check-sanity" title="g_typelib_check_sanity ()">g_typelib_check_sanity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-get-string" title="g_typelib_get_string()">g_typelib_get_string</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-error-quark" title="g_typelib_error_quark ()">g_typelib_error_quark</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gi-GITypelib-Internals.html#g-typelib-validate" title="g_typelib_validate ()">g_typelib_validate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gi-GITypelib-Internals.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC">G_IR_MAGIC</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#GTypelibBlobType" title="enum GTypelibBlobType">GTypelibBlobType</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#Header" title="Header">Header</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#SectionType" title="enum SectionType">SectionType</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#Section" title="Section">Section</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry">DirEntry</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags">SimpleTypeBlobFlags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob">SimpleTypeBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ArgBlob" title="ArgBlob">ArgBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#SignatureBlob" title="SignatureBlob">SignatureBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#CommonBlob" title="CommonBlob">CommonBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#FunctionBlob" title="FunctionBlob">FunctionBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#CallbackBlob" title="CallbackBlob">CallbackBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#InterfaceTypeBlob" title="InterfaceTypeBlob">InterfaceTypeBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ArrayTypeDimension" title="ArrayTypeDimension">ArrayTypeDimension</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ArrayTypeBlob" title="ArrayTypeBlob">ArrayTypeBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ParamTypeBlob" title="ParamTypeBlob">ParamTypeBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ErrorTypeBlob" title="ErrorTypeBlob">ErrorTypeBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ValueBlob" title="ValueBlob">ValueBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#FieldBlob" title="FieldBlob">FieldBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#RegisteredTypeBlob" title="RegisteredTypeBlob">RegisteredTypeBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#StructBlob" title="StructBlob">StructBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#UnionBlob" title="UnionBlob">UnionBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#EnumBlob" title="EnumBlob">EnumBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#PropertyBlob" title="PropertyBlob">PropertyBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#SignalBlob" title="SignalBlob">SignalBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#VFuncBlob" title="VFuncBlob">VFuncBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ObjectBlob" title="ObjectBlob">ObjectBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#InterfaceBlob" title="InterfaceBlob">InterfaceBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#ConstantBlob" title="ConstantBlob">ConstantBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#AttributeBlob" title="AttributeBlob">AttributeBlob</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#GITypelibError" title="enum GITypelibError">GITypelibError</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#G-TYPELIB-ERROR:CAPS" title="G_TYPELIB_ERROR">G_TYPELIB_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gi-GITypelib-Internals.html#GITypelibHashBuilder" title="GITypelibHashBuilder">GITypelibHashBuilder</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gi-GITypelib-Internals.description"></a><h2>Description</h2>
+<p>The "typelib" is a binary, readonly, memory-mappable database
+containing reflective information about a GObject library.
+What the typelib describes and the types used are the same for every
+platform so, apart the endianness of its scalar values, the typelib
+database must be considered architecture-independent.</p>
+<p>The format of GObject typelib is strongly influenced by the Mozilla XPCOM
+format.</p>
+<p>Some of the differences to XPCOM include:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>Type information is stored not quite as compactly (XPCOM stores it inline
+in function descriptions in variable-sized blobs of 1 to n bytes. We store
+16 bits of type information for each parameter, which is enough to encode
+simple types inline. Complex (e.g. recursive) types are stored out of line
+in a separate list of types.</p></li>
+<li class="listitem"><p>String and complex type data is stored outside of typelib entry blobs,
+references are stored as offsets relative to the start of the typelib.
+One possibility is to store the strings and types in a pools at the end
+of the typelib.</p></li>
+</ul></div>
+<p>The typelib has the following general format:</p>
+<p>  typelib ::= header, section-index, directory, blobs, attributes, attributedata</p>
+<p>  directory ::= list of entries</p>
+<p>  entry ::= blob type, name, namespace, offset
+  blob ::= function|callback|struct|boxed|enum|flags|object|interface|constant|union
+  attribute ::= offset, key, value
+  attributedata ::= string data for attributes</p>
+<p>Details</p>
+<p>We describe the fragments that make up the typelib in the form of C structs
+(although some fall short of being valid C structs since they contain
+multiple flexible arrays).</p>
+</div>
+<div class="refsect1">
+<a name="gi-GITypelib-Internals.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="g-typelib-get-dir-entry"></a><h3>g_typelib_get_dir_entry ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+g_typelib_get_dir_entry (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> index</code></em>);</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>typelib</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>index</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-get-dir-entry-by-name"></a><h3>g_typelib_get_dir_entry_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+g_typelib_get_dir_entry_by_name (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                                 <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry-by-name.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>typelib</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry-by-name.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-get-dir-entry-by-gtype-name"></a><h3>g_typelib_get_dir_entry_by_gtype_name ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+g_typelib_get_dir_entry_by_gtype_name (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gtype_name</code></em>);</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry-by-gtype-name.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>typelib</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>gtype_name</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry-by-gtype-name.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-get-dir-entry-by-error-domain"></a><h3>g_typelib_get_dir_entry_by_error_domain ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GITypelib-Internals.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+g_typelib_get_dir_entry_by_error_domain
+                               (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> error_domain</code></em>);</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry-by-error-domain.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>typelib</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error_domain</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-typelib-get-dir-entry-by-error-domain.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-matches-gtype-name-prefix"></a><h3>g_typelib_matches_gtype_name_prefix ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+g_typelib_matches_gtype_name_prefix (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gtype_name</code></em>);</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-matches-gtype-name-prefix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>typelib</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>gtype_name</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-typelib-matches-gtype-name-prefix.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-check-sanity"></a><h3>g_typelib_check_sanity ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+g_typelib_check_sanity (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>TODO</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-get-string"></a><h3>g_typelib_get_string()</h3>
+<pre class="programlisting">#define             g_typelib_get_string(typelib,offset)</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-get-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>typelib</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-typelib-get-string.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-error-quark"></a><h3>g_typelib_error_quark ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
+g_typelib_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-error-quark.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-typelib-validate"></a><h3>g_typelib_validate ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+g_typelib_validate (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="g-typelib-validate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>typelib</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="g-typelib-validate.returns"></a><h4>Returns</h4>
+<p> TODO</p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gi-GITypelib-Internals.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="G-IR-MAGIC:CAPS"></a><h3>G_IR_MAGIC</h3>
+<pre class="programlisting">#define G_IR_MAGIC "GOBJ\nMETADATA\r\n\032"
+</pre>
+<p>Identifying prefix for the typelib.  This was inspired by XPCOM,
+which in turn borrowed from PNG.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GTypelibBlobType"></a><h3>enum GTypelibBlobType</h3>
+<p>The integral value of this enumeration appears in each "Blob" component of
+a typelib to identify its type.</p>
+<div class="refsect3">
+<a name="GTypelibBlobType.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID:CAPS"></a>BLOB_TYPE_INVALID</p></td>
+<td class="enum_member_description">
+<p>Should not appear in code</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-FUNCTION:CAPS"></a>BLOB_TYPE_FUNCTION</p></td>
+<td class="enum_member_description">
+<p>A <a class="link" href="gi-GITypelib-Internals.html#FunctionBlob" title="FunctionBlob"><span class="type">FunctionBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-CALLBACK:CAPS"></a>BLOB_TYPE_CALLBACK</p></td>
+<td class="enum_member_description">
+<p>A <a class="link" href="gi-GITypelib-Internals.html#CallbackBlob" title="CallbackBlob"><span class="type">CallbackBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-STRUCT:CAPS"></a>BLOB_TYPE_STRUCT</p></td>
+<td class="enum_member_description">
+<p>A <a class="link" href="gi-GITypelib-Internals.html#StructBlob" title="StructBlob"><span class="type">StructBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-BOXED:CAPS"></a>BLOB_TYPE_BOXED</p></td>
+<td class="enum_member_description">
+<p>Can be either a <a class="link" href="gi-GITypelib-Internals.html#StructBlob" title="StructBlob"><span class="type">StructBlob</span></a> or <a class="link" href="gi-GITypelib-Internals.html#UnionBlob" title="UnionBlob"><span class="type">UnionBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-ENUM:CAPS"></a>BLOB_TYPE_ENUM</p></td>
+<td class="enum_member_description">
+<p>An <a class="link" href="gi-GITypelib-Internals.html#EnumBlob" title="EnumBlob"><span class="type">EnumBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-FLAGS:CAPS"></a>BLOB_TYPE_FLAGS</p></td>
+<td class="enum_member_description">
+<p>An <a class="link" href="gi-GITypelib-Internals.html#EnumBlob" title="EnumBlob"><span class="type">EnumBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-OBJECT:CAPS"></a>BLOB_TYPE_OBJECT</p></td>
+<td class="enum_member_description">
+<p>An <a class="link" href="gi-GITypelib-Internals.html#ObjectBlob" title="ObjectBlob"><span class="type">ObjectBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-INTERFACE:CAPS"></a>BLOB_TYPE_INTERFACE</p></td>
+<td class="enum_member_description">
+<p>An <a class="link" href="gi-GITypelib-Internals.html#InterfaceBlob" title="InterfaceBlob"><span class="type">InterfaceBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-CONSTANT:CAPS"></a>BLOB_TYPE_CONSTANT</p></td>
+<td class="enum_member_description">
+<p>A <a class="link" href="gi-GITypelib-Internals.html#ConstantBlob" title="ConstantBlob"><span class="type">ConstantBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID-0:CAPS"></a>BLOB_TYPE_INVALID_0</p></td>
+<td class="enum_member_description">
+<p>Deleted, used to be ErrorDomain.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BLOB-TYPE-UNION:CAPS"></a>BLOB_TYPE_UNION</p></td>
+<td class="enum_member_description">
+<p>A <a class="link" href="gi-GITypelib-Internals.html#UnionBlob" title="UnionBlob"><span class="type">UnionBlob</span></a></p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="Header"></a><h3>Header</h3>
+<pre class="programlisting">typedef struct {
+  gchar   magic[16];
+  guint8  major_version;
+  guint8  minor_version;
+  guint16 reserved;
+  guint16 n_entries;
+  guint16 n_local_entries;
+  guint32 directory;
+  guint32 n_attributes;
+  guint32 attributes;
+
+  guint32 dependencies;
+
+  guint32 size;
+  guint32 namespace;
+  guint32 nsversion;
+  guint32 shared_library;
+  guint32 c_prefix;
+
+  guint16 entry_blob_size;
+  guint16 function_blob_size;
+  guint16 callback_blob_size;
+  guint16 signal_blob_size;
+  guint16 vfunc_blob_size;
+  guint16 arg_blob_size;
+  guint16 property_blob_size;
+  guint16 field_blob_size;
+  guint16 value_blob_size;
+  guint16 attribute_blob_size;
+  guint16 constant_blob_size;
+  guint16 error_domain_blob_size;
+
+  guint16 signature_blob_size;
+  guint16 enum_blob_size;
+  guint16 struct_blob_size;
+  guint16 object_blob_size;
+  guint16 interface_blob_size;
+  guint16 union_blob_size;
+
+  guint32 sections;
+
+  guint16 padding[6];
+} Header;
+</pre>
+<p>The header structure appears exactly once at the beginning of a typelib.  It is a
+collection of meta-information, such as the number of entries and dependencies.</p>
+<div class="refsect3">
+<a name="Header.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> <em class="structfield"><code><a name="Header.magic"></a>magic</code></em>[16];</p></td>
+<td class="struct_member_description"><p>See <a class="link" href="gi-GITypelib-Internals.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC"><span class="type">G_IR_MAGIC</span></a>.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="Header.major-version"></a>major_version</code></em>;</p></td>
+<td class="struct_member_description"><p>The major version number of the typelib format. Major version
+number changes indicate incompatible changes to the tyeplib format.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="Header.minor-version"></a>minor_version</code></em>;</p></td>
+<td class="struct_member_description"><p>The minor version number of the typelib format. Minor version
+number changes indicate compatible changes and should still allow the
+typelib to be parsed by a parser designed for the same <em class="parameter"><code>major_version</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.reserved"></a>reserved</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.n-entries"></a>n_entries</code></em>;</p></td>
+<td class="struct_member_description"><p>The number of entries in the directory.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.n-local-entries"></a>n_local_entries</code></em>;</p></td>
+<td class="struct_member_description"><p>The number of entries referring to blobs in this typelib.
+The local entries must occur before the unresolved entries.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.directory"></a>directory</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the directory in the typelib.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.n-attributes"></a>n_attributes</code></em>;</p></td>
+<td class="struct_member_description"><p>Number of attribute blocks</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.attributes"></a>attributes</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the list of attributes in the typelib.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.dependencies"></a>dependencies</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of a single string, which is the list of immediate
+dependencies, separated by the '|' character.  The dependencies are
+required in order to avoid having programs consuming a typelib check for
+an "Unresolved" type return from every API call.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.size"></a>size</code></em>;</p></td>
+<td class="struct_member_description"><p>The size in bytes of the typelib.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.namespace"></a>namespace</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the namespace string in the typelib.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.nsversion"></a>nsversion</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the namespace version string in the typelib.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.shared-library"></a>shared_library</code></em>;</p></td>
+<td class="struct_member_description"><p>This field is the set of shared libraries associated with
+the typelib.  The entries are separated by the '|' (pipe) character.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.c-prefix"></a>c_prefix</code></em>;</p></td>
+<td class="struct_member_description"><p>The prefix for the function names of the library</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.entry-blob-size"></a>entry_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>The sizes of fixed-size blobs. Recording this information
+here allows to write parser which continue to work if the format is
+extended by adding new fields to the end of the fixed-size blobs.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.function-blob-size"></a>function_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.callback-blob-size"></a>callback_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.signal-blob-size"></a>signal_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.vfunc-blob-size"></a>vfunc_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.arg-blob-size"></a>arg_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.property-blob-size"></a>property_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.field-blob-size"></a>field_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.value-blob-size"></a>value_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.attribute-blob-size"></a>attribute_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.constant-blob-size"></a>constant_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.error-domain-blob-size"></a>error_domain_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.signature-blob-size"></a>signature_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.enum-blob-size"></a>enum_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.struct-blob-size"></a>struct_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.object-blob-size"></a>object_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.interface-blob-size"></a>interface_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>For variable-size blobs, the size of the struct up to
+the first flexible array member. Recording this information here allows
+to write parser which continue to work if the format is extended by
+adding new fields before the first flexible array member in
+variable-size blobs.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.union-blob-size"></a>union_blob_size</code></em>;</p></td>
+<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.sections"></a>sections</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of section blob array</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.padding"></a>padding</code></em>[6];</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SectionType"></a><h3>enum SectionType</h3>
+<p>TODO</p>
+<div class="refsect3">
+<a name="SectionType.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GI-SECTION-END:CAPS"></a>GI_SECTION_END</p></td>
+<td class="enum_member_description">
+<p>TODO</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GI-SECTION-DIRECTORY-INDEX:CAPS"></a>GI_SECTION_DIRECTORY_INDEX</p></td>
+<td class="enum_member_description">
+<p>TODO</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="Section"></a><h3>Section</h3>
+<pre class="programlisting">typedef struct {
+  guint32 id;
+  guint32 offset;
+} Section;
+</pre>
+<p>A section is a blob of data that's (at least theoretically) optional,
+and may or may not be present in the typelib.  Presently, just used
+for the directory index.  This allows a form of dynamic extensibility
+with different tradeoffs from the format minor version.</p>
+<div class="refsect3">
+<a name="Section.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Section.id"></a>id</code></em>;</p></td>
+<td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib-Internals.html#SectionType" title="enum SectionType"><span class="type">SectionType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Section.offset"></a>offset</code></em>;</p></td>
+<td class="struct_member_description"><p>Integer offset for this section</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="DirEntry"></a><h3>DirEntry</h3>
+<pre class="programlisting">typedef struct {
+  guint16 blob_type;
+
+  guint16 local    : 1;
+  guint16 reserved :15;
+  guint32 name;
+  guint32 offset;
+} DirEntry;
+</pre>
+<p>References to directory entries are stored as 1-based 16-bit indexes.</p>
+<p>All blobs pointed to by a directory entry start with the same layout for
+the first 8 bytes (the reserved flags may be used by some blob types)</p>
+<div class="refsect3">
+<a name="DirEntry.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="DirEntry.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib-Internals.html#GTypelibBlobType" title="enum GTypelibBlobType"><span class="type">GTypelibBlobType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="DirEntry.local"></a>local</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Whether this entry refers to a blob in this typelib.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="DirEntry.reserved"></a>reserved</code></em> :15;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="DirEntry.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the entry.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="DirEntry.offset"></a>offset</code></em>;</p></td>
+<td class="struct_member_description"><p>If is_local is set, this is the offset of the blob in the typelib.
+Otherwise, it is the offset of the namespace in which the blob has to be
+looked up by name.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SimpleTypeBlobFlags"></a><h3>SimpleTypeBlobFlags</h3>
+<pre class="programlisting">typedef struct {
+  guint reserved   : 8;
+  guint reserved2  :16;
+  guint pointer    : 1;
+  guint reserved3  : 2;
+  guint tag        : 5;
+} SimpleTypeBlobFlags;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="SimpleTypeBlobFlags.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved"></a>reserved</code></em> : 8;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved2"></a>reserved2</code></em> :16;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.pointer"></a>pointer</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved3"></a>reserved3</code></em> : 2;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.tag"></a>tag</code></em> : 5;</p></td>
+<td class="struct_member_description"><p>A <a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SimpleTypeBlob"></a><h3>SimpleTypeBlob</h3>
+<p>The SimpleTypeBlob is the general purpose "reference to a type" construct,
+used in method parameters, returns, callback definitions, fields, constants,
+etc. It's actually just a 32 bit integer which you can see from the union
+definition. This is for efficiency reasons, since there are so many
+references to types.</p>
+<p>SimpleTypeBlob is divided into two cases; first, if "reserved" and
+"reserved2", the type tag for a basic type is embedded in the "tag" bits.
+This allows e.g. GI_TYPE_TAG_UTF8, GI_TYPE_TAG_INT and the like to be
+embedded directly without taking up extra space.</p>
+<p>References to "interfaces" (objects, interfaces) are more complicated;
+In this case, the integer is actually an offset into the directory (see
+above).  Because the header is larger than 2^8=256 bits, all offsets will
+have one of the upper 24 bits set.</p>
+<div class="refsect3">
+<a name="SimpleTypeBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="union_members_name">
+<col class="union_members_description">
+<col width="200px" class="union_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="union_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags"><span class="type">SimpleTypeBlobFlags</span></a> <em class="structfield"><code><a name="SimpleTypeBlob.flags"></a>flags</code></em>;</p></td>
+<td class="union_member_description"><p>TODO</p></td>
+<td class="union_member_annotations"> </td>
+</tr>
+<tr>
+<td class="union_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SimpleTypeBlob.offset"></a>offset</code></em>;</p></td>
+<td class="union_member_description"><p>Offset relative to header-&gt;types that points to a TypeBlob.
+Unlike other offsets, this is in words (ie 32bit units) rather
+than bytes.</p></td>
+<td class="union_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ArgBlob"></a><h3>ArgBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint32        name;
+
+  guint          in                           : 1;
+  guint          out                          : 1;
+  guint          caller_allocates             : 1;
+  guint          nullable                     : 1;
+  guint          optional                     : 1;
+  guint          transfer_ownership           : 1;
+  guint          transfer_container_ownership : 1;
+  guint          return_value                 : 1;
+  guint          scope                        : 3;
+  guint          skip                         : 1;
+  guint          reserved                     :20;
+  gint8          closure;
+  gint8          destroy;
+
+  guint16        padding;
+
+  SimpleTypeBlob arg_type;
+} ArgBlob;
+</pre>
+<p>Types are specified by four bytes. If the three high bytes are zero,
+the low byte describes a basic type, otherwise the 32bit number is an
+offset which points to a TypeBlob.</p>
+<div class="refsect3">
+<a name="ArgBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ArgBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>A suggested name for the parameter.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.in"></a>in</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The parameter is an input to the function</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.out"></a>out</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The parameter is used to return an output of the function. Parameters
+can be both in and out. Out parameters implicitly add another level of
+indirection to the parameter type. Ie if the type is uint32 in an out
+parameter, the function actually takes an uint32*.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.caller-allocates"></a>caller_allocates</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The parameter is a pointer to a struct or object that
+will receive an output of the function.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.nullable"></a>nullable</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Only meaningful for types which are passed as pointers. For an
+in parameter, indicates if it is ok to pass NULL in. Gor an out
+parameter, indicates whether it may return NULL. Note that NULL is a
+valid GList and GSList value, thus allow_none will normally be set
+for parameters of these types.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.optional"></a>optional</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>For an out parameter, indicates that NULL may be passed in
+if the value is not needed.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.transfer-ownership"></a>transfer_ownership</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>For an in parameter, indicates that the function takes
+over ownership of the parameter value. For an out parameter, it indicates
+that the caller is responsible for freeing the return value.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.transfer-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>For container types, indicates that the
+ownership of the container, but not of its contents is transferred.
+This is typically the case for out parameters returning lists of
+statically allocated things.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.return-value"></a>return_value</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The parameter should be considered the return value of the
+function. Only out parameters can be marked as return value, and there
+can be at most one per function call. If an out parameter is marked as
+return value, the actual return value of the function should be either
+void or a boolean indicating the success of the call.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.scope"></a>scope</code></em> : 3;</p></td>
+<td class="struct_member_description"><p>A <a class="link" href="gi-GIArgInfo.html#GIScopeType" title="enum GIScopeType"><span class="type">GIScopeType</span></a>. If the parameter is of a callback type, this denotes
+the scope of the user_data and the callback function pointer itself
+(for languages that emit code at run-time).</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.skip"></a>skip</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Indicates that the parameter is only useful in C and should be skipped.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.reserved"></a>reserved</code></em> :20;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="ArgBlob.closure"></a>closure</code></em>;</p></td>
+<td class="struct_member_description"><p>Index of the closure (user_data) parameter associated with the
+callback, or -1.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="ArgBlob.destroy"></a>destroy</code></em>;</p></td>
+<td class="struct_member_description"><p>Index of the destroy notfication callback parameter associated
+with the callback, or -1.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArgBlob.padding"></a>padding</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ArgBlob.arg-type"></a>arg_type</code></em>;</p></td>
+<td class="struct_member_description"><p>Describes the type of the parameter. See details below.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SignatureBlob"></a><h3>SignatureBlob</h3>
+<pre class="programlisting">typedef struct {
+  SimpleTypeBlob return_type;
+
+  guint16        may_return_null              : 1;
+  guint16        caller_owns_return_value     : 1;
+  guint16        caller_owns_return_container : 1;
+  guint16        skip_return                  : 1;
+  guint16        instance_transfer_ownership  : 1;
+  guint16        throws                       : 1;
+  guint16        reserved                     :10;
+
+  guint16        n_arguments;
+
+  ArgBlob        arguments[];
+} SignatureBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="SignatureBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="SignatureBlob.return-type"></a>return_type</code></em>;</p></td>
+<td class="struct_member_description"><p>Describes the type of the return value. See details below.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.may-return-null"></a>may_return_null</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Only relevant for pointer types. Indicates whether the
+caller must expect NULL as a return value.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.caller-owns-return-value"></a>caller_owns_return_value</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If set, the caller is responsible for freeing
+the return value if it is no longer needed.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.caller-owns-return-container"></a>caller_owns_return_container</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>This flag is only relevant if the return type
+is a container type. If the flag is set, the caller is resonsible for
+freeing the container, but not its contents.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.skip-return"></a>skip_return</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Indicates that the return value is only useful in C and should
+be skipped.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.instance-transfer-ownership"></a>instance_transfer_ownership</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>When calling, the function assumes ownership of
+the instance parameter.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.throws"></a>throws</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Denotes the signature takes an additional <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> argument beyond
+the annotated arguments.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.reserved"></a>reserved</code></em> :10;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.n-arguments"></a>n_arguments</code></em>;</p></td>
+<td class="struct_member_description"><p>The number of arguments that this function expects, also the
+length of the array of ArgBlobs.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#ArgBlob" title="ArgBlob"><span class="type">ArgBlob</span></a> <em class="structfield"><code><a name="SignatureBlob.arguments"></a>arguments</code></em>[];</p></td>
+<td class="struct_member_description"><p>An array of ArgBlob for the arguments of the function.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CommonBlob"></a><h3>CommonBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16 blob_type;  /* 1 */
+
+  guint16 deprecated : 1;
+  guint16 reserved   :15;
+  guint32 name;
+} CommonBlob;
+</pre>
+<p>The <a class="link" href="gi-GITypelib-Internals.html#CommonBlob" title="CommonBlob"><span class="type">CommonBlob</span></a> is shared between <a class="link" href="gi-GITypelib-Internals.html#FunctionBlob" title="FunctionBlob"><span class="type">FunctionBlob</span></a>,
+<a class="link" href="gi-GITypelib-Internals.html#CallbackBlob" title="CallbackBlob"><span class="type">CallbackBlob</span></a>, <a class="link" href="gi-GITypelib-Internals.html#SignalBlob" title="SignalBlob"><span class="type">SignalBlob</span></a>.</p>
+<p>TODO</p>
+<div class="refsect3">
+<a name="CommonBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CommonBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib-Internals.html#GTypelibBlobType" title="enum GTypelibBlobType"><span class="type">GTypelibBlobType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CommonBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Whether the blob is deprecated.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CommonBlob.reserved"></a>reserved</code></em> :15;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="CommonBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the blob.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="FunctionBlob"></a><h3>FunctionBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16 blob_type;  /* 1 */
+
+  guint16 deprecated  : 1;
+  guint16 setter      : 1;
+  guint16 getter      : 1;
+  guint16 constructor : 1;
+  guint16 wraps_vfunc : 1;
+  guint16 throws      : 1;
+  guint16 index       :10;
+  /* Note the bits above need to match CommonBlob
+   * and are thus exhausted, extend things using
+   * the reserved block below. */
+
+  guint32 name;
+  guint32 symbol;
+  guint32 signature;
+
+  guint16 is_static   : 1;
+  guint16 reserved    : 15;
+  guint16 reserved2   : 16;
+} FunctionBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="FunctionBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p><a class="link" href="gi-GITypelib-Internals.html#BLOB-TYPE-FUNCTION:CAPS"><span class="type">BLOB_TYPE_FUNCTION</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The function is deprecated.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.setter"></a>setter</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The function is a setter for a property. Language bindings may
+prefer to not bind individual setters and rely on the generic
+<a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-set"><code class="function">g_object_set()</code></a>.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.getter"></a>getter</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The function is a getter for a property. Language bindings may
+prefer to not bind individual getters and rely on the generic
+<a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-get"><code class="function">g_object_get()</code></a>.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.constructor"></a>constructor</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The function acts as a constructor for the object it is
+contained in.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.wraps-vfunc"></a>wraps_vfunc</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The function is a simple wrapper for a virtual function.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.throws"></a>throws</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>This is now additionally stored in the <a class="link" href="gi-GITypelib-Internals.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a>. (deprecated)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.index"></a>index</code></em> :10;</p></td>
+<td class="struct_member_description"><p>Index of the property that this function is a setter or getter of
+in the array of properties of the containing interface, or index
+of the virtual function that this function wraps.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FunctionBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FunctionBlob.symbol"></a>symbol</code></em>;</p></td>
+<td class="struct_member_description"><p>The symbol which can be used to obtain the function pointer with
+<code class="function">dlsym()</code>.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FunctionBlob.signature"></a>signature</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and the
+return value type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.is-static"></a>is_static</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The function is a "static method"; in other words it's a pure
+function whose name is conceptually scoped to the object.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.reserved"></a>reserved</code></em> : 15;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.reserved2"></a>reserved2</code></em> : 16;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CallbackBlob"></a><h3>CallbackBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16 blob_type;  /* 2 */
+
+  guint16 deprecated : 1;
+  guint16 reserved   :15;
+  guint32 name;
+  guint32 signature;
+} CallbackBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="CallbackBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CallbackBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CallbackBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CallbackBlob.reserved"></a>reserved</code></em> :15;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="CallbackBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="CallbackBlob.signature"></a>signature</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the <a class="link" href="gi-GITypelib-Internals.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a> describing the parameter types and
+the return value type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="InterfaceTypeBlob"></a><h3>InterfaceTypeBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint8  pointer  :1;
+  guint8  reserved :2;
+  guint8  tag      :5;
+  guint8  reserved2;
+  guint16 interface;
+} InterfaceTypeBlob;
+</pre>
+<p>If the interface is an enum of flags type, is_pointer is 0, otherwise it is 1.</p>
+<div class="refsect3">
+<a name="InterfaceTypeBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
+<td class="struct_member_description"><p>Whether this type represents an indirection</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.tag"></a>tag</code></em> :5;</p></td>
+<td class="struct_member_description"><p>A <a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.interface"></a>interface</code></em>;</p></td>
+<td class="struct_member_description"><p>Index of the directory entry for the interface.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ArrayTypeDimension"></a><h3>ArrayTypeDimension</h3>
+<p>TODO</p>
+<div class="refsect3">
+<a name="ArrayTypeDimension.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="union_members_name">
+<col class="union_members_description">
+<col width="200px" class="union_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="union_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeDimension.length"></a>length</code></em>;</p></td>
+<td class="union_member_description"><p>TODO</p></td>
+<td class="union_member_annotations"> </td>
+</tr>
+<tr>
+<td class="union_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeDimension.size"></a>size</code></em>;</p></td>
+<td class="union_member_description"><p>TODO</p></td>
+<td class="union_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ArrayTypeBlob"></a><h3>ArrayTypeBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16 pointer         :1;
+  guint16 reserved        :2;
+  guint16 tag             :5;
+
+  guint16 zero_terminated :1;
+  guint16 has_length      :1;
+  guint16 has_size        :1;
+  guint16 array_type      :2;
+  guint16 reserved2       :3;
+
+  ArrayTypeDimension dimensions;
+
+  SimpleTypeBlob type;
+} ArrayTypeBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="ArrayTypeBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.tag"></a>tag</code></em> :5;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.zero-terminated"></a>zero_terminated</code></em> :1;</p></td>
+<td class="struct_member_description"><p>Indicates that the array must be terminated by a suitable
+<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> value.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.has-length"></a>has_length</code></em> :1;</p></td>
+<td class="struct_member_description"><p>Indicates that length points to a parameter specifying the
+length of the array. If both has_length and zero_terminated are set, the
+convention is to pass -1 for the length if the array is zero-terminated.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.has-size"></a>has_size</code></em> :1;</p></td>
+<td class="struct_member_description"><p>Indicates that size is the fixed size of the array.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.array-type"></a>array_type</code></em> :2;</p></td>
+<td class="struct_member_description"><p>Indicates whether this is a C array, GArray, GPtrArray, or
+GByteArray. If something other than a C array, the length and element
+size are implicit in the structure.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.reserved2"></a>reserved2</code></em> :3;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#ArrayTypeDimension" title="ArrayTypeDimension"><span class="type">ArrayTypeDimension</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.dimensions"></a>dimensions</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.type"></a>type</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ParamTypeBlob"></a><h3>ParamTypeBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint8        pointer  :1;
+  guint8        reserved :2;
+  guint8        tag      :5;
+
+  guint8        reserved2;
+  guint16       n_types;
+
+  SimpleTypeBlob type[];
+} ParamTypeBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="ParamTypeBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.tag"></a>tag</code></em> :5;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ParamTypeBlob.n-types"></a>n_types</code></em>;</p></td>
+<td class="struct_member_description"><p>The number of parameter types to follow.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ParamTypeBlob.type"></a>type</code></em>[];</p></td>
+<td class="struct_member_description"><p>Describes the type of the list elements.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ErrorTypeBlob"></a><h3>ErrorTypeBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint8  pointer  :1;
+  guint8  reserved :2;
+  guint8  tag      :5;
+
+  guint8  reserved2;
+
+  guint16 n_domains; /* Must be 0 */
+  guint16 domains[];
+} ErrorTypeBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="ErrorTypeBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.tag"></a>tag</code></em> :5;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.n-domains"></a>n_domains</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO: must be 0</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.domains"></a>domains</code></em>[];</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ValueBlob"></a><h3>ValueBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint32 deprecated : 1;
+  guint32 unsigned_value : 1;
+  guint32 reserved   :30;
+  guint32 name;
+  gint32 value;
+} ValueBlob;
+</pre>
+<p>Values commonly occur in enums and flags.</p>
+<div class="refsect3">
+<a name="ValueBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Whether this value is deprecated</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.unsigned-value"></a>unsigned_value</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>if set, value is a 32-bit unsigned integer cast to gint32</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.reserved"></a>reserved</code></em> :30;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>Name of blob</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="ValueBlob.value"></a>value</code></em>;</p></td>
+<td class="struct_member_description"><p>The numerical value</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="FieldBlob"></a><h3>FieldBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint32        name;
+
+  guint8         readable :1;
+  guint8         writable :1;
+  guint8         has_embedded_type :1;
+  guint8         reserved :5;
+  guint8         bits;
+
+  guint16        struct_offset;
+
+  guint32        reserved2;
+
+  SimpleTypeBlob type;
+} FieldBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="FieldBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FieldBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the field.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.readable"></a>readable</code></em> :1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.writable"></a>writable</code></em> :1;</p></td>
+<td class="struct_member_description"><p>How the field may be accessed.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.has-embedded-type"></a>has_embedded_type</code></em> :1;</p></td>
+<td class="struct_member_description"><p>An anonymous type follows the FieldBlob.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.reserved"></a>reserved</code></em> :5;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.bits"></a>bits</code></em>;</p></td>
+<td class="struct_member_description"><p>If this field is part of a bitfield, the number of bits which it
+uses, otherwise 0.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FieldBlob.struct-offset"></a>struct_offset</code></em>;</p></td>
+<td class="struct_member_description"><p>The offset of the field in the struct. The value 0xFFFF
+indicates that the struct offset is unknown.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FieldBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="FieldBlob.type"></a>type</code></em>;</p></td>
+<td class="struct_member_description"><p>The type of the field.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="RegisteredTypeBlob"></a><h3>RegisteredTypeBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16 blob_type;
+  guint16 deprecated   : 1;
+  guint16 unregistered : 1;
+  guint16 reserved :14;
+  guint32 name;
+
+  guint32 gtype_name;
+  guint32 gtype_init;
+} RegisteredTypeBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="RegisteredTypeBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.reserved"></a>reserved</code></em> :14;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name under which the type is registered with GType.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
+<td class="struct_member_description"><p>The symbol name of the get_type() function which registers the
+type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="StructBlob"></a><h3>StructBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16   blob_type;
+
+  guint16   deprecated   : 1;
+  guint16   unregistered : 1;
+  guint16   is_gtype_struct : 1;
+  guint16   alignment    : 6;
+  guint16   foreign      : 1;
+  guint16   reserved     : 6;
+
+  guint32   name;
+
+  guint32   gtype_name;
+  guint32   gtype_init;
+
+  guint32   size;
+
+  guint16   n_fields;
+  guint16   n_methods;
+
+  guint32   reserved2;
+  guint32   reserved3;
+} StructBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="StructBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p><a class="link" href="gi-GITypelib-Internals.html#BLOB-TYPE-STRUCT:CAPS"><span class="type">BLOB_TYPE_STRUCT</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Whether this structure is deprecated</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.is-gtype-struct"></a>is_gtype_struct</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Whether this structure is the class or interface layout
+for a GObject</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.alignment"></a>alignment</code></em> : 6;</p></td>
+<td class="struct_member_description"><p>The byte boundary that the struct is aligned to in memory</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.foreign"></a>foreign</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If the type is foreign, eg if it's expected to be overridden by
+a native language binding instead of relying of introspected bindings.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.reserved"></a>reserved</code></em> : 6;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
+<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
+<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.size"></a>size</code></em>;</p></td>
+<td class="struct_member_description"><p>The size of the struct in bytes.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.n-fields"></a>n_fields</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.n-methods"></a>n_methods</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.reserved3"></a>reserved3</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="UnionBlob"></a><h3>UnionBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16      blob_type;
+  guint16      deprecated    : 1;
+  guint16      unregistered  : 1;
+  guint16      discriminated : 1;
+  guint16      alignment     : 6;
+  guint16      reserved      : 7;
+  guint32      name;
+
+  guint32      gtype_name;
+  guint32      gtype_init;
+
+  guint32      size;
+
+  guint16      n_fields;
+  guint16      n_functions;
+
+  guint32      reserved2;
+  guint32      reserved3;
+
+  gint32       discriminator_offset;
+  SimpleTypeBlob discriminator_type;
+} UnionBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="UnionBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.discriminated"></a>discriminated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Is set if the union is discriminated</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.alignment"></a>alignment</code></em> : 6;</p></td>
+<td class="struct_member_description"><p>The byte boundary that the union is aligned to in memory</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.reserved"></a>reserved</code></em> : 7;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
+<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
+<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.size"></a>size</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.n-fields"></a>n_fields</code></em>;</p></td>
+<td class="struct_member_description"><p>Length of the arrays</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.n-functions"></a>n_functions</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.reserved3"></a>reserved3</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="UnionBlob.discriminator-offset"></a>discriminator_offset</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset from the beginning of the union where the
+discriminator of a discriminated union is located. The value 0xFFFF
+indicates that the discriminator offset is unknown.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="UnionBlob.discriminator-type"></a>discriminator_type</code></em>;</p></td>
+<td class="struct_member_description"><p>Type of the discriminator</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="EnumBlob"></a><h3>EnumBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16   blob_type;
+
+  guint16   deprecated   : 1;
+  guint16   unregistered : 1;
+  guint16   storage_type : 5;
+  guint16   reserved     : 9;
+
+  guint32   name;
+
+  guint32   gtype_name;
+  guint32   gtype_init;
+
+  guint16   n_values;
+  guint16   n_methods;
+
+  guint32   error_domain;
+
+  ValueBlob values[];
+} EnumBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="EnumBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.storage-type"></a>storage_type</code></em> : 5;</p></td>
+<td class="struct_member_description"><p>The tag of the type used for the enum in the C ABI
+(will be a signed or unsigned integral type)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.reserved"></a>reserved</code></em> : 9;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
+<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
+<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.n-values"></a>n_values</code></em>;</p></td>
+<td class="struct_member_description"><p>The length of the values array.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.n-methods"></a>n_methods</code></em>;</p></td>
+<td class="struct_member_description"><p>The length of the methods array.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.error-domain"></a>error_domain</code></em>;</p></td>
+<td class="struct_member_description"><p>String naming the <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> domain this enum is associated with</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#ValueBlob" title="ValueBlob"><span class="type">ValueBlob</span></a> <em class="structfield"><code><a name="EnumBlob.values"></a>values</code></em>[];</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="PropertyBlob"></a><h3>PropertyBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint32        name;
+
+  guint32        deprecated                   : 1;
+  guint32        readable                     : 1;
+  guint32        writable                     : 1;
+  guint32        construct                    : 1;
+  guint32        construct_only               : 1;
+  guint32        transfer_ownership           : 1;
+  guint32        transfer_container_ownership : 1;
+  guint32        reserved                     :25;
+
+  guint32        reserved2;
+
+  SimpleTypeBlob type;
+} PropertyBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="PropertyBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the property.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.readable"></a>readable</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.writable"></a>writable</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.construct"></a>construct</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.construct-only"></a>construct_only</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The ParamFlags used when registering the property.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.transfer-ownership"></a>transfer_ownership</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>When writing, the type containing the property takes
+ownership of the value. When reading, the returned value needs to be
+released by the caller.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.transfer-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>For container types indicates that the
+ownership of the container, but not of its contents, is transferred.
+This is typically the case when reading lists of statically allocated
+things.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.reserved"></a>reserved</code></em> :25;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="PropertyBlob.type"></a>type</code></em>;</p></td>
+<td class="struct_member_description"><p>Describes the type of the property.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="SignalBlob"></a><h3>SignalBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16 deprecated        : 1;
+  guint16 run_first         : 1;
+  guint16 run_last          : 1;
+  guint16 run_cleanup       : 1;
+  guint16 no_recurse        : 1;
+  guint16 detailed          : 1;
+  guint16 action            : 1;
+  guint16 no_hooks          : 1;
+  guint16 has_class_closure : 1;
+  guint16 true_stops_emit   : 1;
+  guint16 reserved          : 6;
+
+  guint16 class_closure;
+
+  guint32 name;
+
+  guint32 reserved2;
+
+  guint32 signature;
+} SignalBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="SignalBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.run-first"></a>run_first</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.run-last"></a>run_last</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.run-cleanup"></a>run_cleanup</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.no-recurse"></a>no_recurse</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.detailed"></a>detailed</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.action"></a>action</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.no-hooks"></a>no_hooks</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>The flags used when registering the signal.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.has-class-closure"></a>has_class_closure</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Set if the signal has a class closure.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.true-stops-emit"></a>true_stops_emit</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Whether the signal has true-stops-emit semantics</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.reserved"></a>reserved</code></em> : 6;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.class-closure"></a>class_closure</code></em>;</p></td>
+<td class="struct_member_description"><p>The index of the class closure in the list of virtual
+functions of the object or interface on which the signal is defined.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SignalBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the signal.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SignalBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SignalBlob.signature"></a>signature</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types
+and the return value type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="VFuncBlob"></a><h3>VFuncBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint32 name;
+
+  guint16 must_chain_up           : 1;
+  guint16 must_be_implemented     : 1;
+  guint16 must_not_be_implemented : 1;
+  guint16 class_closure           : 1;
+  guint16 throws                  : 1;
+  guint16 reserved                :11;
+  guint16 signal;
+
+  guint16 struct_offset;
+  guint16 invoker : 10; /* Number of bits matches @index in FunctionBlob */
+  guint16 reserved2 : 6;
+
+  guint32 reserved3;
+  guint32 signature;
+} VFuncBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="VFuncBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="VFuncBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the virtual function.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.must-chain-up"></a>must_chain_up</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If set, every implementation of this virtual function must
+chain up to the implementation of the parent class.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.must-be-implemented"></a>must_be_implemented</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If set, every derived class must override this virtual
+function.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.must-not-be-implemented"></a>must_not_be_implemented</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>If set, derived class must not override this
+virtual function.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.class-closure"></a>class_closure</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>Set if this virtual function is the class closure of a
+signal.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.throws"></a>throws</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>This is now additionally stored in the <a class="link" href="gi-GITypelib-Internals.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a>. (deprecated)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.reserved"></a>reserved</code></em> :11;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.signal"></a>signal</code></em>;</p></td>
+<td class="struct_member_description"><p>The index of the signal in the list of signals of the object or
+interface to which this virtual function belongs.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.struct-offset"></a>struct_offset</code></em>;</p></td>
+<td class="struct_member_description"><p>The offset of the function pointer in the class struct.
+The value 0xFFFF indicates that the struct offset is unknown.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.invoker"></a>invoker</code></em> : 10;</p></td>
+<td class="struct_member_description"><p>If a method invoker for this virtual exists, this is the offset
+in the class structure of the method. If no method is known, this value
+will be 0x3ff.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.reserved2"></a>reserved2</code></em> : 6;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="VFuncBlob.reserved3"></a>reserved3</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="VFuncBlob.signature"></a>signature</code></em>;</p></td>
+<td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and
+the return value type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ObjectBlob"></a><h3>ObjectBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16   blob_type;  /* 7 */
+  guint16   deprecated   : 1;
+  guint16   abstract     : 1;
+  guint16   fundamental  : 1;
+  guint16   reserved     :13;
+  guint32   name;
+
+  guint32   gtype_name;
+  guint32   gtype_init;
+
+  guint16   parent;
+  guint16   gtype_struct;
+
+  guint16   n_interfaces;
+  guint16   n_fields;
+  guint16   n_properties;
+  guint16   n_methods;
+  guint16   n_signals;
+  guint16   n_vfuncs;
+  guint16   n_constants;
+  guint16   n_field_callbacks;
+
+  guint32   ref_func;
+  guint32   unref_func;
+  guint32   set_value_func;
+  guint32   get_value_func;
+
+  guint32   reserved3;
+  guint32   reserved4;
+
+  guint16   interfaces[];
+} ObjectBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="ObjectBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p><a class="link" href="gi-GITypelib-Internals.html#BLOB-TYPE-OBJECT:CAPS"><span class="type">BLOB_TYPE_OBJECT</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.abstract"></a>abstract</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.fundamental"></a>fundamental</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>this object is not a GObject derived type, instead it's
+an additional fundamental type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.reserved"></a>reserved</code></em> :13;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
+<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
+<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.parent"></a>parent</code></em>;</p></td>
+<td class="struct_member_description"><p>The directory index of the parent type. This is only set for
+objects. If an object does not have a parent, it is zero.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.gtype-struct"></a>gtype_struct</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-interfaces"></a>n_interfaces</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-fields"></a>n_fields</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-properties"></a>n_properties</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-methods"></a>n_methods</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-signals"></a>n_signals</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-vfuncs"></a>n_vfuncs</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-constants"></a>n_constants</code></em>;</p></td>
+<td class="struct_member_description"><p>The lengths of the arrays.Up to 16bits of padding may be
+inserted between the arrays to ensure that they start on a 32bit
+boundary.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-field-callbacks"></a>n_field_callbacks</code></em>;</p></td>
+<td class="struct_member_description"><p>The number of n_fields which are also callbacks.
+This is used to calculate the fields section size in constant time.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.ref-func"></a>ref_func</code></em>;</p></td>
+<td class="struct_member_description"><p>String pointing to a function which can be called to increase
+the reference count for an instance of this object type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.unref-func"></a>unref_func</code></em>;</p></td>
+<td class="struct_member_description"><p>String pointing to a function which can be called to decrease
+the reference count for an instance of this object type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.set-value-func"></a>set_value_func</code></em>;</p></td>
+<td class="struct_member_description"><p>String pointing to a function which can be called to
+convert a pointer of this object to a GValue</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.get-value-func"></a>get_value_func</code></em>;</p></td>
+<td class="struct_member_description"><p>String pointing to a function which can be called to
+convert extract a pointer to this object from a GValue</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.reserved3"></a>reserved3</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.reserved4"></a>reserved4</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.interfaces"></a>interfaces</code></em>[];</p></td>
+<td class="struct_member_description"><p>An array of indices of directory entries for the implemented
+interfaces.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="InterfaceBlob"></a><h3>InterfaceBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16 blob_type;
+  guint16 deprecated   : 1;
+  guint16 reserved     :15;
+  guint32 name;
+
+  guint32 gtype_name;
+  guint32 gtype_init;
+  guint16 gtype_struct;
+
+  guint16 n_prerequisites;
+  guint16 n_properties;
+  guint16 n_methods;
+  guint16 n_signals;
+  guint16 n_vfuncs;
+  guint16 n_constants;
+
+  guint16 padding;
+
+  guint32 reserved2;
+  guint32 reserved3;
+
+  guint16 prerequisites[];
+} InterfaceBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="InterfaceBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.reserved"></a>reserved</code></em> :15;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.gtype-struct"></a>gtype_struct</code></em>;</p></td>
+<td class="struct_member_description"><p>Name of the interface "class" C structure</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-prerequisites"></a>n_prerequisites</code></em>;</p></td>
+<td class="struct_member_description"><p>Number of prerequisites</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-properties"></a>n_properties</code></em>;</p></td>
+<td class="struct_member_description"><p>Number of properties</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-methods"></a>n_methods</code></em>;</p></td>
+<td class="struct_member_description"><p>Number of methods</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-signals"></a>n_signals</code></em>;</p></td>
+<td class="struct_member_description"><p>Number of signals</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-vfuncs"></a>n_vfuncs</code></em>;</p></td>
+<td class="struct_member_description"><p>Number of virtual functions</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-constants"></a>n_constants</code></em>;</p></td>
+<td class="struct_member_description"><p>The lengths of the arrays. Up to 16bits of padding may be
+inserted between the arrays to ensure that they start on a 32bit
+boundary.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.padding"></a>padding</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.reserved3"></a>reserved3</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.prerequisites"></a>prerequisites</code></em>[];</p></td>
+<td class="struct_member_description"><p>An array of indices of directory entries for required
+interfaces.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ConstantBlob"></a><h3>ConstantBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint16        blob_type;
+  guint16        deprecated   : 1;
+  guint16        reserved     :15;
+  guint32        name;
+
+  SimpleTypeBlob type;
+
+  guint32        size;
+  guint32        offset;
+
+  guint32        reserved2;
+} ConstantBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="ConstantBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ConstantBlob.blob-type"></a>blob_type</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ConstantBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ConstantBlob.reserved"></a>reserved</code></em> :15;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>TODO</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gi-GITypelib-Internals.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ConstantBlob.type"></a>type</code></em>;</p></td>
+<td class="struct_member_description"><p>The type of the value. In most cases this should be a numeric type
+or string.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.size"></a>size</code></em>;</p></td>
+<td class="struct_member_description"><p>The size of the value in bytes.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.offset"></a>offset</code></em>;</p></td>
+<td class="struct_member_description"><p>The offset of the value in the typelib.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.reserved2"></a>reserved2</code></em>;</p></td>
+<td class="struct_member_description"><p>Reserved for future use.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="AttributeBlob"></a><h3>AttributeBlob</h3>
+<pre class="programlisting">typedef struct {
+  guint32 offset;
+  guint32 name;
+  guint32 value;
+} AttributeBlob;
+</pre>
+<p>TODO</p>
+<div class="refsect3">
+<a name="AttributeBlob.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="AttributeBlob.offset"></a>offset</code></em>;</p></td>
+<td class="struct_member_description"><p>The offset of the typelib entry to which this attribute refers.
+Attributes are kept sorted by offset, so that the attributes of an
+entry can be found by a binary search.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="AttributeBlob.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the attribute, a string.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="AttributeBlob.value"></a>value</code></em>;</p></td>
+<td class="struct_member_description"><p>The value of the attribute (also a string)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GITypelibError"></a><h3>enum GITypelibError</h3>
+<p>A error set while validating the <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
+<div class="refsect3">
+<a name="GITypelibError.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID:CAPS"></a>G_TYPELIB_ERROR_INVALID</p></td>
+<td class="enum_member_description">
+<p>the typelib is invalid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-HEADER:CAPS"></a>G_TYPELIB_ERROR_INVALID_HEADER</p></td>
+<td class="enum_member_description">
+<p>the typelib header is invalid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-DIRECTORY:CAPS"></a>G_TYPELIB_ERROR_INVALID_DIRECTORY</p></td>
+<td class="enum_member_description">
+<p>the typelib directory is invalid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-ENTRY:CAPS"></a>G_TYPELIB_ERROR_INVALID_ENTRY</p></td>
+<td class="enum_member_description">
+<p>a typelib entry is invalid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-BLOB:CAPS"></a>G_TYPELIB_ERROR_INVALID_BLOB</p></td>
+<td class="enum_member_description">
+<p>a typelib blob is invalid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="G-TYPELIB-ERROR:CAPS"></a><h3>G_TYPELIB_ERROR</h3>
+<pre class="programlisting">#define G_TYPELIB_ERROR (g_typelib_error_quark ())
+</pre>
+<p>TODO</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GITypelibHashBuilder"></a><h3>GITypelibHashBuilder</h3>
+<pre class="programlisting">typedef struct _GITypelibHashBuilder GITypelibHashBuilder;</pre>
+<p>TODO</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.28</div>
+</body>
+</html>
\ No newline at end of file
index c7f4c1c..79c52ec 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GITypelib: GObject Introspection Reference Manual</title>
+<title>GITypelib: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="gi-typelib.html" title="GITypelib">
-<link rel="prev" href="gi-gitypelib.html" title="gitypelib">
-<link rel="next" href="ch03.html" title="TODO">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="GIRepository.html" title="GIRepository">
+<link rel="next" href="gi-Version-Information.html" title="Version Information">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
                   <a href="#gi-GITypelib.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="gi-typelib.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-gitypelib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="GIRepository.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gi-Version-Information.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gi-GITypelib"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gi-GITypelib.top_of_page"></a>GITypelib</span></h2>
-<p>GITypelib — Layout and accessors for typelib</p>
+<p>GITypelib — TODO</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="gi-GITypelib.stability-level"></a><h2>Stability Level</h2>
-<acronym title="The intention of a Stable interface is to enable arbitrary third parties to
-develop applications to these interfaces, release them, and have confidence that
-they will run on all minor releases of the product (after the one in which the
-interface was introduced, and within the same major release). Even at a major
-release, incompatible changes are expected to be rare, and to have strong
-justifications.
-"><span class="acronym">Stable</span></acronym>, unless otherwise indicated
-</div>
-<div class="refsect1">
 <a name="gi-GITypelib.functions"></a><h2>Functions</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
@@ -51,42 +41,26 @@ justifications.
 <tbody>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry" title="g_typelib_get_dir_entry ()">g_typelib_get_dir_entry</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+<a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-name" title="g_typelib_get_dir_entry_by_name ()">g_typelib_get_dir_entry_by_name</a> <span class="c_punctuation">()</span>
+<a class="link" href="gi-GITypelib.html#g-typelib-new-from-memory" title="g_typelib_new_from_memory ()">g_typelib_new_from_memory</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+<a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-gtype-name" title="g_typelib_get_dir_entry_by_gtype_name ()">g_typelib_get_dir_entry_by_gtype_name</a> <span class="c_punctuation">()</span>
+<a class="link" href="gi-GITypelib.html#g-typelib-new-from-const-memory" title="g_typelib_new_from_const_memory ()">g_typelib_new_from_const_memory</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
+<a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-error-domain" title="g_typelib_get_dir_entry_by_error_domain ()">g_typelib_get_dir_entry_by_error_domain</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-matches-gtype-name-prefix" title="g_typelib_matches_gtype_name_prefix ()">g_typelib_matches_gtype_name_prefix</a> <span class="c_punctuation">()</span>
+<a class="link" href="gi-GITypelib.html#g-typelib-new-from-mapped-file" title="g_typelib_new_from_mapped_file ()">g_typelib_new_from_mapped_file</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
@@ -94,29 +68,22 @@ justifications.
 <span class="returnvalue">void</span>
 </td>
 <td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-check-sanity" title="g_typelib_check_sanity ()">g_typelib_check_sanity</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-get-string" title="g_typelib_get_string()">g_typelib_get_string</a><span class="c_punctuation">()</span>
+<a class="link" href="gi-GITypelib.html#g-typelib-free" title="g_typelib_free ()">g_typelib_free</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
+<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-error-quark" title="g_typelib_error_quark ()">g_typelib_error_quark</a> <span class="c_punctuation">()</span>
+<a class="link" href="gi-GITypelib.html#g-typelib-symbol" title="g_typelib_symbol ()">g_typelib_symbol</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">
-<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
-<a class="link" href="gi-GITypelib.html#g-typelib-validate" title="g_typelib_validate ()">g_typelib_validate</a> <span class="c_punctuation">()</span>
+<a class="link" href="gi-GITypelib.html#g-typelib-get-namespace" title="g_typelib_get_namespace ()">g_typelib_get_namespace</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tbody>
@@ -129,189 +96,31 @@ justifications.
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC">G_IR_MAGIC</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType">GTypelibBlobType</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#Header" title="Header">Header</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#SectionType" title="enum SectionType">SectionType</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#Section" title="Section">Section</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry">DirEntry</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags">SimpleTypeBlobFlags</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob">SimpleTypeBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ArgBlob" title="ArgBlob">ArgBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob">SignatureBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#CommonBlob" title="CommonBlob">CommonBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob">FunctionBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob">CallbackBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#InterfaceTypeBlob" title="InterfaceTypeBlob">InterfaceTypeBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ArrayTypeDimension" title="ArrayTypeDimension">ArrayTypeDimension</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ArrayTypeBlob" title="ArrayTypeBlob">ArrayTypeBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ParamTypeBlob" title="ParamTypeBlob">ParamTypeBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ErrorTypeBlob" title="ErrorTypeBlob">ErrorTypeBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ValueBlob" title="ValueBlob">ValueBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#FieldBlob" title="FieldBlob">FieldBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#RegisteredTypeBlob" title="RegisteredTypeBlob">RegisteredTypeBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob">StructBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob">UnionBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob">EnumBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#PropertyBlob" title="PropertyBlob">PropertyBlob</a></td>
-</tr>
-<tr>
+<tbody><tr>
 <td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#SignalBlob" title="SignalBlob">SignalBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#VFuncBlob" title="VFuncBlob">VFuncBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ObjectBlob" title="ObjectBlob">ObjectBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#InterfaceBlob" title="InterfaceBlob">InterfaceBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#ConstantBlob" title="ConstantBlob">ConstantBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#AttributeBlob" title="AttributeBlob">AttributeBlob</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#GITypelibError" title="enum GITypelibError">GITypelibError</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#G-TYPELIB-ERROR:CAPS" title="G_TYPELIB_ERROR">G_TYPELIB_ERROR</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-GITypelib.html#GITypelibHashBuilder" title="GITypelibHashBuilder">GITypelibHashBuilder</a></td>
-</tr>
-</tbody>
+<td class="function_name"><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib">GITypelib</a></td>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="gi-GITypelib.description"></a><h2>Description</h2>
-<p>The "typelib" is a binary, readonly, memory-mappable database
-containing reflective information about a GObject library.
-What the typelib describes and the types used are the same for every
-platform so, apart the endianness of its scalar values, the typelib
-database must be considered architecture-independent.</p>
-<p>The format of GObject typelib is strongly influenced by the Mozilla XPCOM
-format.</p>
-<p>Some of the differences to XPCOM include:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Type information is stored not quite as compactly (XPCOM stores it inline
-in function descriptions in variable-sized blobs of 1 to n bytes. We store
-16 bits of type information for each parameter, which is enough to encode
-simple types inline. Complex (e.g. recursive) types are stored out of line
-in a separate list of types.</p></li>
-<li class="listitem"><p>String and complex type data is stored outside of typelib entry blobs,
-references are stored as offsets relative to the start of the typelib.
-One possibility is to store the strings and types in a pools at the end
-of the typelib.</p></li>
-</ul></div>
-<p>The typelib has the following general format:</p>
-<p>  typelib ::= header, section-index, directory, blobs, attributes, attributedata</p>
-<p>  directory ::= list of entries</p>
-<p>  entry ::= blob type, name, namespace, offset
-  blob ::= function|callback|struct|boxed|enum|flags|object|interface|constant|union
-  attribute ::= offset, key, value
-  attributedata ::= string data for attributes</p>
-<p>Details</p>
-<p>We describe the fragments that make up the typelib in the form of C structs
-(although some fall short of being valid C structs since they contain
-multiple flexible arrays).</p>
+<p>TODO</p>
 </div>
 <div class="refsect1">
 <a name="gi-GITypelib.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="g-typelib-get-dir-entry"></a><h3>g_typelib_get_dir_entry ()</h3>
-<pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
-g_typelib_get_dir_entry (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
-                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> index</code></em>);</pre>
-<p>TODO</p>
+<a name="g-typelib-new-from-memory"></a><h3>g_typelib_new_from_memory ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+g_typelib_new_from_memory (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *memory</code></em>,
+                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>,
+                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>Creates a new <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> from a memory location.  The memory block
+pointed to by <em class="parameter"><code>typelib</code></em>
+ will be automatically <a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>d when the
+repository is destroyed.</p>
+<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="g-typelib-get-dir-entry.parameters"></a><h4>Parameters</h4>
+<a name="g-typelib-new-from-memory.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -320,32 +129,39 @@ g_typelib_get_dir_entry (<em class="parameter"><code><a class="link" href="gi-gi
 </colgroup>
 <tbody>
 <tr>
-<td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>memory</p></td>
+<td class="parameter_description"><p>address of memory chunk containing the typelib</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td class="parameter_name"><p>index</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>len</p></td>
+<td class="parameter_description"><p>length of memory chunk containing the typelib</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="g-typelib-get-dir-entry.returns"></a><h4>Returns</h4>
-<p> TODO</p>
+<a name="g-typelib-new-from-memory.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-typelib-get-dir-entry-by-name"></a><h3>g_typelib_get_dir_entry_by_name ()</h3>
-<pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
-g_typelib_get_dir_entry_by_name (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
-                                 <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
-<p>TODO</p>
+<a name="g-typelib-new-from-const-memory"></a><h3>g_typelib_new_from_const_memory ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+g_typelib_new_from_const_memory (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *memory</code></em>,
+                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>,
+                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>Creates a new <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> from a memory location.</p>
+<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="g-typelib-get-dir-entry-by-name.parameters"></a><h4>Parameters</h4>
+<a name="g-typelib-new-from-const-memory.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -354,32 +170,38 @@ g_typelib_get_dir_entry_by_name (<em class="parameter"><code><a class="link" hre
 </colgroup>
 <tbody>
 <tr>
-<td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>memory</p></td>
+<td class="parameter_description"><p>address of memory chunk containing the typelib</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>len</p></td>
+<td class="parameter_description"><p>length of memory chunk containing the typelib</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="g-typelib-get-dir-entry-by-name.returns"></a><h4>Returns</h4>
-<p> TODO</p>
+<a name="g-typelib-new-from-const-memory.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-typelib-get-dir-entry-by-gtype-name"></a><h3>g_typelib_get_dir_entry_by_gtype_name ()</h3>
-<pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
-g_typelib_get_dir_entry_by_gtype_name (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
-                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gtype_name</code></em>);</pre>
-<p>TODO</p>
+<a name="g-typelib-new-from-mapped-file"></a><h3>g_typelib_new_from_mapped_file ()</h3>
+<pre class="programlisting"><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
+g_typelib_new_from_mapped_file (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-File-Utilities.html#GMappedFile"><span class="type">GMappedFile</span></a> *mfile</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>Creates a new <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> from a <a href="/usr/share/gtk-doc/html/glib/glib-File-Utilities.html#GMappedFile"><span class="type">GMappedFile</span></a>.</p>
+<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="g-typelib-get-dir-entry-by-gtype-name.parameters"></a><h4>Parameters</h4>
+<a name="g-typelib-new-from-mapped-file.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -388,67 +210,55 @@ g_typelib_get_dir_entry_by_gtype_name (<em class="parameter"><code><a class="lin
 </colgroup>
 <tbody>
 <tr>
-<td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>mfile</p></td>
+<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-File-Utilities.html#GMappedFile"><span class="type">GMappedFile</span></a>, that will be free'd when the repository is destroyed</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td class="parameter_name"><p>gtype_name</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="g-typelib-get-dir-entry-by-gtype-name.returns"></a><h4>Returns</h4>
-<p> TODO</p>
+<a name="g-typelib-new-from-mapped-file.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-typelib-get-dir-entry-by-error-domain"></a><h3>g_typelib_get_dir_entry_by_error_domain ()</h3>
-<pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
-g_typelib_get_dir_entry_by_error_domain
-                               (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
-                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> error_domain</code></em>);</pre>
-<p>TODO</p>
+<a name="g-typelib-free"></a><h3>g_typelib_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+g_typelib_free (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>);</pre>
+<p>Free a <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a>.</p>
 <div class="refsect3">
-<a name="g-typelib-get-dir-entry-by-error-domain.parameters"></a><h4>Parameters</h4>
+<a name="g-typelib-free.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
 <col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
+<tbody><tr>
 <td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>TODO</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error_domain</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p></td>
 <td class="parameter_annotations"> </td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
-<div class="refsect3">
-<a name="g-typelib-get-dir-entry-by-error-domain.returns"></a><h4>Returns</h4>
-<p> TODO</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-typelib-matches-gtype-name-prefix"></a><h3>g_typelib_matches_gtype_name_prefix ()</h3>
+<a name="g-typelib-symbol"></a><h3>g_typelib_symbol ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-g_typelib_matches_gtype_name_prefix (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
-                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gtype_name</code></em>);</pre>
-<p>TODO</p>
+g_typelib_symbol (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
+                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *symbol_name</code></em>,
+                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *symbol</code></em>);</pre>
+<p>Loads a symbol from <a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a>.</p>
 <div class="refsect3">
-<a name="g-typelib-matches-gtype-name-prefix.parameters"></a><h4>Parameters</h4>
+<a name="g-typelib-symbol.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -458,103 +268,50 @@ g_typelib_matches_gtype_name_prefix (<em class="parameter"><code><a class="link"
 <tbody>
 <tr>
 <td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>TODO</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>gtype_name</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_description"><p>the typelib</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-typelib-matches-gtype-name-prefix.returns"></a><h4>Returns</h4>
-<p> TODO</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-check-sanity"></a><h3>g_typelib_check_sanity ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-g_typelib_check_sanity (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>TODO</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-get-string"></a><h3>g_typelib_get_string()</h3>
-<pre class="programlisting">#define             g_typelib_get_string(typelib,offset)</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="g-typelib-get-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
 <tr>
-<td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>symbol_name</p></td>
+<td class="parameter_description"><p>name of symbol to be loaded</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>TODO</p></td>
+<td class="parameter_name"><p>symbol</p></td>
+<td class="parameter_description"><p>returns a pointer to the symbol value</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="g-typelib-get-string.returns"></a><h4>Returns</h4>
-<p> TODO</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-error-quark"></a><h3>g_typelib_error_quark ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
-g_typelib_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="g-typelib-error-quark.returns"></a><h4>Returns</h4>
-<p> TODO</p>
+<a name="g-typelib-symbol.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> on success</p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-typelib-validate"></a><h3>g_typelib_validate ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-g_typelib_validate (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
-                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<a name="g-typelib-get-namespace"></a><h3>g_typelib_get_namespace ()</h3>
+<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+g_typelib_get_namespace (<em class="parameter"><code><a class="link" href="gi-GITypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>);</pre>
 <p>TODO</p>
 <div class="refsect3">
-<a name="g-typelib-validate.parameters"></a><h4>Parameters</h4>
+<a name="g-typelib-get-namespace.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
 <col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody>
-<tr>
+<tbody><tr>
 <td class="parameter_name"><p>typelib</p></td>
 <td class="parameter_description"><p>TODO</p></td>
 <td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>TODO</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="g-typelib-validate.returns"></a><h4>Returns</h4>
+<a name="g-typelib-get-namespace.returns"></a><h4>Returns</h4>
 <p> TODO</p>
 </div>
 </div>
@@ -562,2673 +319,10 @@ g_typelib_validate (<em class="parameter"><code><a class="link" href="gi-gitypel
 <div class="refsect1">
 <a name="gi-GITypelib.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="G-IR-MAGIC:CAPS"></a><h3>G_IR_MAGIC</h3>
-<pre class="programlisting">#define G_IR_MAGIC "GOBJ\nMETADATA\r\n\032"
+<a name="GITypelib"></a><h3>GITypelib</h3>
+<pre class="programlisting">typedef struct {
+} GITypelib;
 </pre>
-<p>Identifying prefix for the typelib.  This was inspired by XPCOM,
-which in turn borrowed from PNG.</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GTypelibBlobType"></a><h3>enum GTypelibBlobType</h3>
-<p>The integral value of this enumeration appears in each "Blob" component of
-a typelib to identify its type.</p>
-<div class="refsect3">
-<a name="GTypelibBlobType.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID:CAPS"></a>BLOB_TYPE_INVALID</p></td>
-<td class="enum_member_description">
-<p>Should not appear in code</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-FUNCTION:CAPS"></a>BLOB_TYPE_FUNCTION</p></td>
-<td class="enum_member_description">
-<p>A <a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob"><span class="type">FunctionBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-CALLBACK:CAPS"></a>BLOB_TYPE_CALLBACK</p></td>
-<td class="enum_member_description">
-<p>A <a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob"><span class="type">CallbackBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-STRUCT:CAPS"></a>BLOB_TYPE_STRUCT</p></td>
-<td class="enum_member_description">
-<p>A <a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob"><span class="type">StructBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-BOXED:CAPS"></a>BLOB_TYPE_BOXED</p></td>
-<td class="enum_member_description">
-<p>Can be either a <a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob"><span class="type">StructBlob</span></a> or <a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob"><span class="type">UnionBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-ENUM:CAPS"></a>BLOB_TYPE_ENUM</p></td>
-<td class="enum_member_description">
-<p>An <a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob"><span class="type">EnumBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-FLAGS:CAPS"></a>BLOB_TYPE_FLAGS</p></td>
-<td class="enum_member_description">
-<p>An <a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob"><span class="type">EnumBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-OBJECT:CAPS"></a>BLOB_TYPE_OBJECT</p></td>
-<td class="enum_member_description">
-<p>An <a class="link" href="gi-GITypelib.html#ObjectBlob" title="ObjectBlob"><span class="type">ObjectBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-INTERFACE:CAPS"></a>BLOB_TYPE_INTERFACE</p></td>
-<td class="enum_member_description">
-<p>An <a class="link" href="gi-GITypelib.html#InterfaceBlob" title="InterfaceBlob"><span class="type">InterfaceBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-CONSTANT:CAPS"></a>BLOB_TYPE_CONSTANT</p></td>
-<td class="enum_member_description">
-<p>A <a class="link" href="gi-GITypelib.html#ConstantBlob" title="ConstantBlob"><span class="type">ConstantBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID-0:CAPS"></a>BLOB_TYPE_INVALID_0</p></td>
-<td class="enum_member_description">
-<p>Deleted, used to be ErrorDomain.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="BLOB-TYPE-UNION:CAPS"></a>BLOB_TYPE_UNION</p></td>
-<td class="enum_member_description">
-<p>A <a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob"><span class="type">UnionBlob</span></a></p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="Header"></a><h3>Header</h3>
-<pre class="programlisting">typedef struct {
-  gchar   magic[16];
-  guint8  major_version;
-  guint8  minor_version;
-  guint16 reserved;
-  guint16 n_entries;
-  guint16 n_local_entries;
-  guint32 directory;
-  guint32 n_attributes;
-  guint32 attributes;
-
-  guint32 dependencies;
-
-  guint32 size;
-  guint32 namespace;
-  guint32 nsversion;
-  guint32 shared_library;
-  guint32 c_prefix;
-
-  guint16 entry_blob_size;
-  guint16 function_blob_size;
-  guint16 callback_blob_size;
-  guint16 signal_blob_size;
-  guint16 vfunc_blob_size;
-  guint16 arg_blob_size;
-  guint16 property_blob_size;
-  guint16 field_blob_size;
-  guint16 value_blob_size;
-  guint16 attribute_blob_size;
-  guint16 constant_blob_size;
-  guint16 error_domain_blob_size;
-
-  guint16 signature_blob_size;
-  guint16 enum_blob_size;
-  guint16 struct_blob_size;
-  guint16 object_blob_size;
-  guint16 interface_blob_size;
-  guint16 union_blob_size;
-
-  guint32 sections;
-
-  guint16 padding[6];
-} Header;
-</pre>
-<p>The header structure appears exactly once at the beginning of a typelib.  It is a
-collection of meta-information, such as the number of entries and dependencies.</p>
-<div class="refsect3">
-<a name="Header.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> <em class="structfield"><code><a name="Header.magic"></a>magic</code></em>[16];</p></td>
-<td class="struct_member_description"><p>See <a class="link" href="gi-GITypelib.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC"><span class="type">G_IR_MAGIC</span></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="Header.major-version"></a>major_version</code></em>;</p></td>
-<td class="struct_member_description"><p>The major version number of the typelib format. Major version
-number changes indicate incompatible changes to the tyeplib format.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="Header.minor-version"></a>minor_version</code></em>;</p></td>
-<td class="struct_member_description"><p>The minor version number of the typelib format. Minor version
-number changes indicate compatible changes and should still allow the
-typelib to be parsed by a parser designed for the same <em class="parameter"><code>major_version</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.reserved"></a>reserved</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.n-entries"></a>n_entries</code></em>;</p></td>
-<td class="struct_member_description"><p>The number of entries in the directory.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.n-local-entries"></a>n_local_entries</code></em>;</p></td>
-<td class="struct_member_description"><p>The number of entries referring to blobs in this typelib.
-The local entries must occur before the unresolved entries.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.directory"></a>directory</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the directory in the typelib.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.n-attributes"></a>n_attributes</code></em>;</p></td>
-<td class="struct_member_description"><p>Number of attribute blocks</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.attributes"></a>attributes</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the list of attributes in the typelib.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.dependencies"></a>dependencies</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of a single string, which is the list of immediate
-dependencies, separated by the '|' character.  The dependencies are
-required in order to avoid having programs consuming a typelib check for
-an "Unresolved" type return from every API call.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.size"></a>size</code></em>;</p></td>
-<td class="struct_member_description"><p>The size in bytes of the typelib.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.namespace"></a>namespace</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the namespace string in the typelib.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.nsversion"></a>nsversion</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the namespace version string in the typelib.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.shared-library"></a>shared_library</code></em>;</p></td>
-<td class="struct_member_description"><p>This field is the set of shared libraries associated with
-the typelib.  The entries are separated by the '|' (pipe) character.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.c-prefix"></a>c_prefix</code></em>;</p></td>
-<td class="struct_member_description"><p>The prefix for the function names of the library</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.entry-blob-size"></a>entry_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>The sizes of fixed-size blobs. Recording this information
-here allows to write parser which continue to work if the format is
-extended by adding new fields to the end of the fixed-size blobs.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.function-blob-size"></a>function_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.callback-blob-size"></a>callback_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.signal-blob-size"></a>signal_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.vfunc-blob-size"></a>vfunc_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.arg-blob-size"></a>arg_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.property-blob-size"></a>property_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.field-blob-size"></a>field_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.value-blob-size"></a>value_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.attribute-blob-size"></a>attribute_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.constant-blob-size"></a>constant_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.error-domain-blob-size"></a>error_domain_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.signature-blob-size"></a>signature_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.enum-blob-size"></a>enum_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.struct-blob-size"></a>struct_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.object-blob-size"></a>object_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.interface-blob-size"></a>interface_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>For variable-size blobs, the size of the struct up to
-the first flexible array member. Recording this information here allows
-to write parser which continue to work if the format is extended by
-adding new fields before the first flexible array member in
-variable-size blobs.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.union-blob-size"></a>union_blob_size</code></em>;</p></td>
-<td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Header.sections"></a>sections</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of section blob array</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="Header.padding"></a>padding</code></em>[6];</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="SectionType"></a><h3>enum SectionType</h3>
-<p>TODO</p>
-<div class="refsect3">
-<a name="SectionType.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="GI-SECTION-END:CAPS"></a>GI_SECTION_END</p></td>
-<td class="enum_member_description">
-<p>TODO</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GI-SECTION-DIRECTORY-INDEX:CAPS"></a>GI_SECTION_DIRECTORY_INDEX</p></td>
-<td class="enum_member_description">
-<p>TODO</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="Section"></a><h3>Section</h3>
-<pre class="programlisting">typedef struct {
-  guint32 id;
-  guint32 offset;
-} Section;
-</pre>
-<p>A section is a blob of data that's (at least theoretically) optional,
-and may or may not be present in the typelib.  Presently, just used
-for the directory index.  This allows a form of dynamic extensibility
-with different tradeoffs from the format minor version.</p>
-<div class="refsect3">
-<a name="Section.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Section.id"></a>id</code></em>;</p></td>
-<td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib.html#SectionType" title="enum SectionType"><span class="type">SectionType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="Section.offset"></a>offset</code></em>;</p></td>
-<td class="struct_member_description"><p>Integer offset for this section</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="DirEntry"></a><h3>DirEntry</h3>
-<pre class="programlisting">typedef struct {
-  guint16 blob_type;
-
-  guint16 local    : 1;
-  guint16 reserved :15;
-  guint32 name;
-  guint32 offset;
-} DirEntry;
-</pre>
-<p>References to directory entries are stored as 1-based 16-bit indexes.</p>
-<p>All blobs pointed to by a directory entry start with the same layout for
-the first 8 bytes (the reserved flags may be used by some blob types)</p>
-<div class="refsect3">
-<a name="DirEntry.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="DirEntry.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType"><span class="type">GTypelibBlobType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="DirEntry.local"></a>local</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Whether this entry refers to a blob in this typelib.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="DirEntry.reserved"></a>reserved</code></em> :15;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="DirEntry.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name of the entry.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="DirEntry.offset"></a>offset</code></em>;</p></td>
-<td class="struct_member_description"><p>If is_local is set, this is the offset of the blob in the typelib.
-Otherwise, it is the offset of the namespace in which the blob has to be
-looked up by name.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="SimpleTypeBlobFlags"></a><h3>SimpleTypeBlobFlags</h3>
-<pre class="programlisting">typedef struct {
-  guint reserved   : 8;
-  guint reserved2  :16;
-  guint pointer    : 1;
-  guint reserved3  : 2;
-  guint tag        : 5;
-} SimpleTypeBlobFlags;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="SimpleTypeBlobFlags.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved"></a>reserved</code></em> : 8;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved2"></a>reserved2</code></em> :16;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.pointer"></a>pointer</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved3"></a>reserved3</code></em> : 2;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="SimpleTypeBlobFlags.tag"></a>tag</code></em> : 5;</p></td>
-<td class="struct_member_description"><p>A <a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="SimpleTypeBlob"></a><h3>SimpleTypeBlob</h3>
-<p>The SimpleTypeBlob is the general purpose "reference to a type" construct,
-used in method parameters, returns, callback definitions, fields, constants,
-etc. It's actually just a 32 bit integer which you can see from the union
-definition. This is for efficiency reasons, since there are so many
-references to types.</p>
-<p>SimpleTypeBlob is divided into two cases; first, if "reserved" and
-"reserved2", the type tag for a basic type is embedded in the "tag" bits.
-This allows e.g. GI_TYPE_TAG_UTF8, GI_TYPE_TAG_INT and the like to be
-embedded directly without taking up extra space.</p>
-<p>References to "interfaces" (objects, interfaces) are more complicated;
-In this case, the integer is actually an offset into the directory (see
-above).  Because the header is larger than 2^8=256 bits, all offsets will
-have one of the upper 24 bits set.</p>
-<div class="refsect3">
-<a name="SimpleTypeBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="union_members_name">
-<col class="union_members_description">
-<col width="200px" class="union_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="union_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags"><span class="type">SimpleTypeBlobFlags</span></a> <em class="structfield"><code><a name="SimpleTypeBlob.flags"></a>flags</code></em>;</p></td>
-<td class="union_member_description"><p>TODO</p></td>
-<td class="union_member_annotations"> </td>
-</tr>
-<tr>
-<td class="union_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SimpleTypeBlob.offset"></a>offset</code></em>;</p></td>
-<td class="union_member_description"><p>Offset relative to header-&gt;types that points to a TypeBlob.
-Unlike other offsets, this is in words (ie 32bit units) rather
-than bytes.</p></td>
-<td class="union_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ArgBlob"></a><h3>ArgBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint32        name;
-
-  guint          in                           : 1;
-  guint          out                          : 1;
-  guint          caller_allocates             : 1;
-  guint          nullable                     : 1;
-  guint          optional                     : 1;
-  guint          transfer_ownership           : 1;
-  guint          transfer_container_ownership : 1;
-  guint          return_value                 : 1;
-  guint          scope                        : 3;
-  guint          skip                         : 1;
-  guint          reserved                     :20;
-  gint8          closure;
-  gint8          destroy;
-
-  guint16        padding;
-
-  SimpleTypeBlob arg_type;
-} ArgBlob;
-</pre>
-<p>Types are specified by four bytes. If the three high bytes are zero,
-the low byte describes a basic type, otherwise the 32bit number is an
-offset which points to a TypeBlob.</p>
-<div class="refsect3">
-<a name="ArgBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ArgBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>A suggested name for the parameter.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.in"></a>in</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The parameter is an input to the function</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.out"></a>out</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The parameter is used to return an output of the function. Parameters
-can be both in and out. Out parameters implicitly add another level of
-indirection to the parameter type. Ie if the type is uint32 in an out
-parameter, the function actually takes an uint32*.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.caller-allocates"></a>caller_allocates</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The parameter is a pointer to a struct or object that
-will receive an output of the function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.nullable"></a>nullable</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Only meaningful for types which are passed as pointers. For an
-in parameter, indicates if it is ok to pass NULL in. Gor an out
-parameter, indicates whether it may return NULL. Note that NULL is a
-valid GList and GSList value, thus allow_none will normally be set
-for parameters of these types.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.optional"></a>optional</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>For an out parameter, indicates that NULL may be passed in
-if the value is not needed.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.transfer-ownership"></a>transfer_ownership</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>For an in parameter, indicates that the function takes
-over ownership of the parameter value. For an out parameter, it indicates
-that the caller is responsible for freeing the return value.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.transfer-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>For container types, indicates that the
-ownership of the container, but not of its contents is transferred.
-This is typically the case for out parameters returning lists of
-statically allocated things.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.return-value"></a>return_value</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The parameter should be considered the return value of the
-function. Only out parameters can be marked as return value, and there
-can be at most one per function call. If an out parameter is marked as
-return value, the actual return value of the function should be either
-void or a boolean indicating the success of the call.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.scope"></a>scope</code></em> : 3;</p></td>
-<td class="struct_member_description"><p>A <a class="link" href="gi-GIArgInfo.html#GIScopeType" title="enum GIScopeType"><span class="type">GIScopeType</span></a>. If the parameter is of a callback type, this denotes
-the scope of the user_data and the callback function pointer itself
-(for languages that emit code at run-time).</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.skip"></a>skip</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Indicates that the parameter is only useful in C and should be skipped.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="ArgBlob.reserved"></a>reserved</code></em> :20;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="ArgBlob.closure"></a>closure</code></em>;</p></td>
-<td class="struct_member_description"><p>Index of the closure (user_data) parameter associated with the
-callback, or -1.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="ArgBlob.destroy"></a>destroy</code></em>;</p></td>
-<td class="struct_member_description"><p>Index of the destroy notfication callback parameter associated
-with the callback, or -1.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArgBlob.padding"></a>padding</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ArgBlob.arg-type"></a>arg_type</code></em>;</p></td>
-<td class="struct_member_description"><p>Describes the type of the parameter. See details below.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="SignatureBlob"></a><h3>SignatureBlob</h3>
-<pre class="programlisting">typedef struct {
-  SimpleTypeBlob return_type;
-
-  guint16        may_return_null              : 1;
-  guint16        caller_owns_return_value     : 1;
-  guint16        caller_owns_return_container : 1;
-  guint16        skip_return                  : 1;
-  guint16        instance_transfer_ownership  : 1;
-  guint16        throws                       : 1;
-  guint16        reserved                     :10;
-
-  guint16        n_arguments;
-
-  ArgBlob        arguments[];
-} SignatureBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="SignatureBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="SignatureBlob.return-type"></a>return_type</code></em>;</p></td>
-<td class="struct_member_description"><p>Describes the type of the return value. See details below.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.may-return-null"></a>may_return_null</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Only relevant for pointer types. Indicates whether the
-caller must expect NULL as a return value.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.caller-owns-return-value"></a>caller_owns_return_value</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If set, the caller is responsible for freeing
-the return value if it is no longer needed.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.caller-owns-return-container"></a>caller_owns_return_container</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>This flag is only relevant if the return type
-is a container type. If the flag is set, the caller is resonsible for
-freeing the container, but not its contents.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.skip-return"></a>skip_return</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Indicates that the return value is only useful in C and should
-be skipped.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.instance-transfer-ownership"></a>instance_transfer_ownership</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>When calling, the function assumes ownership of
-the instance parameter.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.throws"></a>throws</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Denotes the signature takes an additional <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> argument beyond
-the annotated arguments.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.reserved"></a>reserved</code></em> :10;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignatureBlob.n-arguments"></a>n_arguments</code></em>;</p></td>
-<td class="struct_member_description"><p>The number of arguments that this function expects, also the
-length of the array of ArgBlobs.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#ArgBlob" title="ArgBlob"><span class="type">ArgBlob</span></a> <em class="structfield"><code><a name="SignatureBlob.arguments"></a>arguments</code></em>[];</p></td>
-<td class="struct_member_description"><p>An array of ArgBlob for the arguments of the function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="CommonBlob"></a><h3>CommonBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16 blob_type;  /* 1 */
-
-  guint16 deprecated : 1;
-  guint16 reserved   :15;
-  guint32 name;
-} CommonBlob;
-</pre>
-<p>The <a class="link" href="gi-GITypelib.html#CommonBlob" title="CommonBlob"><span class="type">CommonBlob</span></a> is shared between <a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob"><span class="type">FunctionBlob</span></a>,
-<a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob"><span class="type">CallbackBlob</span></a>, <a class="link" href="gi-GITypelib.html#SignalBlob" title="SignalBlob"><span class="type">SignalBlob</span></a>.</p>
-<p>TODO</p>
-<div class="refsect3">
-<a name="CommonBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CommonBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType"><span class="type">GTypelibBlobType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CommonBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Whether the blob is deprecated.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CommonBlob.reserved"></a>reserved</code></em> :15;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="CommonBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name of the blob.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="FunctionBlob"></a><h3>FunctionBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16 blob_type;  /* 1 */
-
-  guint16 deprecated  : 1;
-  guint16 setter      : 1;
-  guint16 getter      : 1;
-  guint16 constructor : 1;
-  guint16 wraps_vfunc : 1;
-  guint16 throws      : 1;
-  guint16 index       :10;
-  /* Note the bits above need to match CommonBlob
-   * and are thus exhausted, extend things using
-   * the reserved block below. */
-
-  guint32 name;
-  guint32 symbol;
-  guint32 signature;
-
-  guint16 is_static   : 1;
-  guint16 reserved    : 15;
-  guint16 reserved2   : 16;
-} FunctionBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="FunctionBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gi-GITypelib.html#BLOB-TYPE-FUNCTION:CAPS"><span class="type">BLOB_TYPE_FUNCTION</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The function is deprecated.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.setter"></a>setter</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The function is a setter for a property. Language bindings may
-prefer to not bind individual setters and rely on the generic
-<a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-set"><code class="function">g_object_set()</code></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.getter"></a>getter</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The function is a getter for a property. Language bindings may
-prefer to not bind individual getters and rely on the generic
-<a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-get"><code class="function">g_object_get()</code></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.constructor"></a>constructor</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The function acts as a constructor for the object it is
-contained in.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.wraps-vfunc"></a>wraps_vfunc</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The function is a simple wrapper for a virtual function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.throws"></a>throws</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>This is now additionally stored in the <a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a>. </p></td>
-<td class="struct_member_annotations"><span class="annotation">[deprecated]</span></td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.index"></a>index</code></em> :10;</p></td>
-<td class="struct_member_description"><p>Index of the property that this function is a setter or getter of
-in the array of properties of the containing interface, or index
-of the virtual function that this function wraps.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FunctionBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FunctionBlob.symbol"></a>symbol</code></em>;</p></td>
-<td class="struct_member_description"><p>The symbol which can be used to obtain the function pointer with
-<code class="function">dlsym()</code>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FunctionBlob.signature"></a>signature</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and the
-return value type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.is-static"></a>is_static</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The function is a "static method"; in other words it's a pure
-function whose name is conceptually scoped to the object.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.reserved"></a>reserved</code></em> : 15;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FunctionBlob.reserved2"></a>reserved2</code></em> : 16;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="CallbackBlob"></a><h3>CallbackBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16 blob_type;  /* 2 */
-
-  guint16 deprecated : 1;
-  guint16 reserved   :15;
-  guint32 name;
-  guint32 signature;
-} CallbackBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="CallbackBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CallbackBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CallbackBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="CallbackBlob.reserved"></a>reserved</code></em> :15;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="CallbackBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="CallbackBlob.signature"></a>signature</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the <a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a> describing the parameter types and
-the return value type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="InterfaceTypeBlob"></a><h3>InterfaceTypeBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint8  pointer  :1;
-  guint8  reserved :2;
-  guint8  tag      :5;
-  guint8  reserved2;
-  guint16 interface;
-} InterfaceTypeBlob;
-</pre>
-<p>If the interface is an enum of flags type, is_pointer is 0, otherwise it is 1.</p>
-<div class="refsect3">
-<a name="InterfaceTypeBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
-<td class="struct_member_description"><p>Whether this type represents an indirection</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.tag"></a>tag</code></em> :5;</p></td>
-<td class="struct_member_description"><p>A <a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceTypeBlob.interface"></a>interface</code></em>;</p></td>
-<td class="struct_member_description"><p>Index of the directory entry for the interface.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ArrayTypeDimension"></a><h3>ArrayTypeDimension</h3>
-<p>TODO</p>
-<div class="refsect3">
-<a name="ArrayTypeDimension.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="union_members_name">
-<col class="union_members_description">
-<col width="200px" class="union_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="union_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeDimension.length"></a>length</code></em>;</p></td>
-<td class="union_member_description"><p>TODO</p></td>
-<td class="union_member_annotations"> </td>
-</tr>
-<tr>
-<td class="union_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeDimension.size"></a>size</code></em>;</p></td>
-<td class="union_member_description"><p>TODO</p></td>
-<td class="union_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ArrayTypeBlob"></a><h3>ArrayTypeBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16 pointer         :1;
-  guint16 reserved        :2;
-  guint16 tag             :5;
-
-  guint16 zero_terminated :1;
-  guint16 has_length      :1;
-  guint16 has_size        :1;
-  guint16 array_type      :2;
-  guint16 reserved2       :3;
-
-  ArrayTypeDimension dimensions;
-
-  SimpleTypeBlob type;
-} ArrayTypeBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="ArrayTypeBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.tag"></a>tag</code></em> :5;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.zero-terminated"></a>zero_terminated</code></em> :1;</p></td>
-<td class="struct_member_description"><p>Indicates that the array must be terminated by a suitable
-<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> value.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.has-length"></a>has_length</code></em> :1;</p></td>
-<td class="struct_member_description"><p>Indicates that length points to a parameter specifying the
-length of the array. If both has_length and zero_terminated are set, the
-convention is to pass -1 for the length if the array is zero-terminated.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.has-size"></a>has_size</code></em> :1;</p></td>
-<td class="struct_member_description"><p>Indicates that size is the fixed size of the array.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.array-type"></a>array_type</code></em> :2;</p></td>
-<td class="struct_member_description"><p>Indicates whether this is a C array, GArray, GPtrArray, or
-GByteArray. If something other than a C array, the length and element
-size are implicit in the structure.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.reserved2"></a>reserved2</code></em> :3;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#ArrayTypeDimension" title="ArrayTypeDimension"><span class="type">ArrayTypeDimension</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.dimensions"></a>dimensions</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ParamTypeBlob"></a><h3>ParamTypeBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint8        pointer  :1;
-  guint8        reserved :2;
-  guint8        tag      :5;
-
-  guint8        reserved2;
-  guint16       n_types;
-
-  SimpleTypeBlob type[];
-} ParamTypeBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="ParamTypeBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.tag"></a>tag</code></em> :5;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ParamTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ParamTypeBlob.n-types"></a>n_types</code></em>;</p></td>
-<td class="struct_member_description"><p>The number of parameter types to follow.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ParamTypeBlob.type"></a>type</code></em>[];</p></td>
-<td class="struct_member_description"><p>Describes the type of the list elements.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ErrorTypeBlob"></a><h3>ErrorTypeBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint8  pointer  :1;
-  guint8  reserved :2;
-  guint8  tag      :5;
-
-  guint8  reserved2;
-
-  guint16 n_domains; /* Must be 0 */
-  guint16 domains[];
-} ErrorTypeBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="ErrorTypeBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.tag"></a>tag</code></em> :5;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.n-domains"></a>n_domains</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO: must be 0</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ErrorTypeBlob.domains"></a>domains</code></em>[];</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ValueBlob"></a><h3>ValueBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint32 deprecated : 1;
-  guint32 unsigned_value : 1;
-  guint32 reserved   :30;
-  guint32 name;
-  gint32 value;
-} ValueBlob;
-</pre>
-<p>Values commonly occur in enums and flags.</p>
-<div class="refsect3">
-<a name="ValueBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Whether this value is deprecated</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.unsigned-value"></a>unsigned_value</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>if set, value is a 32-bit unsigned integer cast to gint32</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.reserved"></a>reserved</code></em> :30;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ValueBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>Name of blob</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="ValueBlob.value"></a>value</code></em>;</p></td>
-<td class="struct_member_description"><p>The numerical value</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="FieldBlob"></a><h3>FieldBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint32        name;
-
-  guint8         readable :1;
-  guint8         writable :1;
-  guint8         has_embedded_type :1;
-  guint8         reserved :5;
-  guint8         bits;
-
-  guint16        struct_offset;
-
-  guint32        reserved2;
-
-  SimpleTypeBlob type;
-} FieldBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="FieldBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FieldBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name of the field.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.readable"></a>readable</code></em> :1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.writable"></a>writable</code></em> :1;</p></td>
-<td class="struct_member_description"><p>How the field may be accessed.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.has-embedded-type"></a>has_embedded_type</code></em> :1;</p></td>
-<td class="struct_member_description"><p>An anonymous type follows the FieldBlob.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.reserved"></a>reserved</code></em> :5;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="FieldBlob.bits"></a>bits</code></em>;</p></td>
-<td class="struct_member_description"><p>If this field is part of a bitfield, the number of bits which it
-uses, otherwise 0.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="FieldBlob.struct-offset"></a>struct_offset</code></em>;</p></td>
-<td class="struct_member_description"><p>The offset of the field in the struct. The value 0xFFFF
-indicates that the struct offset is unknown.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="FieldBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="FieldBlob.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>The type of the field.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="RegisteredTypeBlob"></a><h3>RegisteredTypeBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16 blob_type;
-  guint16 deprecated   : 1;
-  guint16 unregistered : 1;
-  guint16 reserved :14;
-  guint32 name;
-
-  guint32 gtype_name;
-  guint32 gtype_init;
-} RegisteredTypeBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="RegisteredTypeBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.reserved"></a>reserved</code></em> :14;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name under which the type is registered with GType.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="RegisteredTypeBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
-<td class="struct_member_description"><p>The symbol name of the get_type() function which registers the
-type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="StructBlob"></a><h3>StructBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16   blob_type;
-
-  guint16   deprecated   : 1;
-  guint16   unregistered : 1;
-  guint16   is_gtype_struct : 1;
-  guint16   alignment    : 6;
-  guint16   foreign      : 1;
-  guint16   reserved     : 6;
-
-  guint32   name;
-
-  guint32   gtype_name;
-  guint32   gtype_init;
-
-  guint32   size;
-
-  guint16   n_fields;
-  guint16   n_methods;
-
-  guint32   reserved2;
-  guint32   reserved3;
-} StructBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="StructBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gi-GITypelib.html#BLOB-TYPE-STRUCT:CAPS"><span class="type">BLOB_TYPE_STRUCT</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Whether this structure is deprecated</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.is-gtype-struct"></a>is_gtype_struct</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Whether this structure is the class or interface layout
-for a GObject</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.alignment"></a>alignment</code></em> : 6;</p></td>
-<td class="struct_member_description"><p>The byte boundary that the struct is aligned to in memory</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.foreign"></a>foreign</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If the type is foreign, eg if it's expected to be overridden by
-a native language binding instead of relying of introspected bindings.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.reserved"></a>reserved</code></em> : 6;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
-<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
-<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.size"></a>size</code></em>;</p></td>
-<td class="struct_member_description"><p>The size of the struct in bytes.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.n-fields"></a>n_fields</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="StructBlob.n-methods"></a>n_methods</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="StructBlob.reserved3"></a>reserved3</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="UnionBlob"></a><h3>UnionBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16      blob_type;
-  guint16      deprecated    : 1;
-  guint16      unregistered  : 1;
-  guint16      discriminated : 1;
-  guint16      alignment     : 6;
-  guint16      reserved      : 7;
-  guint32      name;
-
-  guint32      gtype_name;
-  guint32      gtype_init;
-
-  guint32      size;
-
-  guint16      n_fields;
-  guint16      n_functions;
-
-  guint32      reserved2;
-  guint32      reserved3;
-
-  gint32       discriminator_offset;
-  SimpleTypeBlob discriminator_type;
-} UnionBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="UnionBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.discriminated"></a>discriminated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Is set if the union is discriminated</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.alignment"></a>alignment</code></em> : 6;</p></td>
-<td class="struct_member_description"><p>The byte boundary that the union is aligned to in memory</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.reserved"></a>reserved</code></em> : 7;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
-<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
-<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.size"></a>size</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.n-fields"></a>n_fields</code></em>;</p></td>
-<td class="struct_member_description"><p>Length of the arrays</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="UnionBlob.n-functions"></a>n_functions</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="UnionBlob.reserved3"></a>reserved3</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="UnionBlob.discriminator-offset"></a>discriminator_offset</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset from the beginning of the union where the
-discriminator of a discriminated union is located. The value 0xFFFF
-indicates that the discriminator offset is unknown.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="UnionBlob.discriminator-type"></a>discriminator_type</code></em>;</p></td>
-<td class="struct_member_description"><p>Type of the discriminator</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="EnumBlob"></a><h3>EnumBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16   blob_type;
-
-  guint16   deprecated   : 1;
-  guint16   unregistered : 1;
-  guint16   storage_type : 5;
-  guint16   reserved     : 9;
-
-  guint32   name;
-
-  guint32   gtype_name;
-  guint32   gtype_init;
-
-  guint16   n_values;
-  guint16   n_methods;
-
-  guint32   error_domain;
-
-  ValueBlob values[];
-} EnumBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="EnumBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.storage-type"></a>storage_type</code></em> : 5;</p></td>
-<td class="struct_member_description"><p>The tag of the type used for the enum in the C ABI
-(will be a signed or unsigned integral type)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.reserved"></a>reserved</code></em> : 9;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
-<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
-<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.n-values"></a>n_values</code></em>;</p></td>
-<td class="struct_member_description"><p>The length of the values array.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="EnumBlob.n-methods"></a>n_methods</code></em>;</p></td>
-<td class="struct_member_description"><p>The length of the methods array.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="EnumBlob.error-domain"></a>error_domain</code></em>;</p></td>
-<td class="struct_member_description"><p>String naming the <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> domain this enum is associated with</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#ValueBlob" title="ValueBlob"><span class="type">ValueBlob</span></a> <em class="structfield"><code><a name="EnumBlob.values"></a>values</code></em>[];</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="PropertyBlob"></a><h3>PropertyBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint32        name;
-
-  guint32        deprecated                   : 1;
-  guint32        readable                     : 1;
-  guint32        writable                     : 1;
-  guint32        construct                    : 1;
-  guint32        construct_only               : 1;
-  guint32        transfer_ownership           : 1;
-  guint32        transfer_container_ownership : 1;
-  guint32        reserved                     :25;
-
-  guint32        reserved2;
-
-  SimpleTypeBlob type;
-} PropertyBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="PropertyBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name of the property.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.readable"></a>readable</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.writable"></a>writable</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.construct"></a>construct</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.construct-only"></a>construct_only</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The ParamFlags used when registering the property.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.transfer-ownership"></a>transfer_ownership</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>When writing, the type containing the property takes
-ownership of the value. When reading, the returned value needs to be
-released by the caller.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.transfer-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>For container types indicates that the
-ownership of the container, but not of its contents, is transferred.
-This is typically the case when reading lists of statically allocated
-things.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.reserved"></a>reserved</code></em> :25;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="PropertyBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="PropertyBlob.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>Describes the type of the property.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="SignalBlob"></a><h3>SignalBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16 deprecated        : 1;
-  guint16 run_first         : 1;
-  guint16 run_last          : 1;
-  guint16 run_cleanup       : 1;
-  guint16 no_recurse        : 1;
-  guint16 detailed          : 1;
-  guint16 action            : 1;
-  guint16 no_hooks          : 1;
-  guint16 has_class_closure : 1;
-  guint16 true_stops_emit   : 1;
-  guint16 reserved          : 6;
-
-  guint16 class_closure;
-
-  guint32 name;
-
-  guint32 reserved2;
-
-  guint32 signature;
-} SignalBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="SignalBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.run-first"></a>run_first</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.run-last"></a>run_last</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.run-cleanup"></a>run_cleanup</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.no-recurse"></a>no_recurse</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.detailed"></a>detailed</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.action"></a>action</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.no-hooks"></a>no_hooks</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>The flags used when registering the signal.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.has-class-closure"></a>has_class_closure</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Set if the signal has a class closure.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.true-stops-emit"></a>true_stops_emit</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Whether the signal has true-stops-emit semantics</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.reserved"></a>reserved</code></em> : 6;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="SignalBlob.class-closure"></a>class_closure</code></em>;</p></td>
-<td class="struct_member_description"><p>The index of the class closure in the list of virtual
-functions of the object or interface on which the signal is defined.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SignalBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name of the signal.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SignalBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="SignalBlob.signature"></a>signature</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types
-and the return value type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="VFuncBlob"></a><h3>VFuncBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint32 name;
-
-  guint16 must_chain_up           : 1;
-  guint16 must_be_implemented     : 1;
-  guint16 must_not_be_implemented : 1;
-  guint16 class_closure           : 1;
-  guint16 throws                  : 1;
-  guint16 reserved                :11;
-  guint16 signal;
-
-  guint16 struct_offset;
-  guint16 invoker : 10; /* Number of bits matches @index in FunctionBlob */
-  guint16 reserved2 : 6;
-
-  guint32 reserved3;
-  guint32 signature;
-} VFuncBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="VFuncBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="VFuncBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name of the virtual function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.must-chain-up"></a>must_chain_up</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If set, every implementation of this virtual function must
-chain up to the implementation of the parent class.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.must-be-implemented"></a>must_be_implemented</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If set, every derived class must override this virtual
-function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.must-not-be-implemented"></a>must_not_be_implemented</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>If set, derived class must not override this
-virtual function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.class-closure"></a>class_closure</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>Set if this virtual function is the class closure of a
-signal.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.throws"></a>throws</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>This is now additionally stored in the <a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a>. </p></td>
-<td class="struct_member_annotations"><span class="annotation">[deprecated]</span></td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.reserved"></a>reserved</code></em> :11;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.signal"></a>signal</code></em>;</p></td>
-<td class="struct_member_description"><p>The index of the signal in the list of signals of the object or
-interface to which this virtual function belongs.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.struct-offset"></a>struct_offset</code></em>;</p></td>
-<td class="struct_member_description"><p>The offset of the function pointer in the class struct.
-The value 0xFFFF indicates that the struct offset is unknown.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.invoker"></a>invoker</code></em> : 10;</p></td>
-<td class="struct_member_description"><p>If a method invoker for this virtual exists, this is the offset
-in the class structure of the method. If no method is known, this value
-will be 0x3ff.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="VFuncBlob.reserved2"></a>reserved2</code></em> : 6;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="VFuncBlob.reserved3"></a>reserved3</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="VFuncBlob.signature"></a>signature</code></em>;</p></td>
-<td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and
-the return value type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ObjectBlob"></a><h3>ObjectBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16   blob_type;  /* 7 */
-  guint16   deprecated   : 1;
-  guint16   abstract     : 1;
-  guint16   fundamental  : 1;
-  guint16   reserved     :13;
-  guint32   name;
-
-  guint32   gtype_name;
-  guint32   gtype_init;
-
-  guint16   parent;
-  guint16   gtype_struct;
-
-  guint16   n_interfaces;
-  guint16   n_fields;
-  guint16   n_properties;
-  guint16   n_methods;
-  guint16   n_signals;
-  guint16   n_vfuncs;
-  guint16   n_constants;
-  guint16   n_field_callbacks;
-
-  guint32   ref_func;
-  guint32   unref_func;
-  guint32   set_value_func;
-  guint32   get_value_func;
-
-  guint32   reserved3;
-  guint32   reserved4;
-
-  guint16   interfaces[];
-} ObjectBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="ObjectBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gi-GITypelib.html#BLOB-TYPE-OBJECT:CAPS"><span class="type">BLOB_TYPE_OBJECT</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.abstract"></a>abstract</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.fundamental"></a>fundamental</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>this object is not a GObject derived type, instead it's
-an additional fundamental type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.reserved"></a>reserved</code></em> :13;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
-<td class="struct_member_description"><p>String name of the associated <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
-<td class="struct_member_description"><p>String naming the symbol which gets the runtime <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.parent"></a>parent</code></em>;</p></td>
-<td class="struct_member_description"><p>The directory index of the parent type. This is only set for
-objects. If an object does not have a parent, it is zero.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.gtype-struct"></a>gtype_struct</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-interfaces"></a>n_interfaces</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-fields"></a>n_fields</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-properties"></a>n_properties</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-methods"></a>n_methods</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-signals"></a>n_signals</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-vfuncs"></a>n_vfuncs</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-constants"></a>n_constants</code></em>;</p></td>
-<td class="struct_member_description"><p>The lengths of the arrays.Up to 16bits of padding may be
-inserted between the arrays to ensure that they start on a 32bit
-boundary.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.n-field-callbacks"></a>n_field_callbacks</code></em>;</p></td>
-<td class="struct_member_description"><p>The number of n_fields which are also callbacks.
-This is used to calculate the fields section size in constant time.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.ref-func"></a>ref_func</code></em>;</p></td>
-<td class="struct_member_description"><p>String pointing to a function which can be called to increase
-the reference count for an instance of this object type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.unref-func"></a>unref_func</code></em>;</p></td>
-<td class="struct_member_description"><p>String pointing to a function which can be called to decrease
-the reference count for an instance of this object type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.set-value-func"></a>set_value_func</code></em>;</p></td>
-<td class="struct_member_description"><p>String pointing to a function which can be called to
-convert a pointer of this object to a GValue</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.get-value-func"></a>get_value_func</code></em>;</p></td>
-<td class="struct_member_description"><p>String pointing to a function which can be called to
-convert extract a pointer to this object from a GValue</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.reserved3"></a>reserved3</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ObjectBlob.reserved4"></a>reserved4</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ObjectBlob.interfaces"></a>interfaces</code></em>[];</p></td>
-<td class="struct_member_description"><p>An array of indices of directory entries for the implemented
-interfaces.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="InterfaceBlob"></a><h3>InterfaceBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16 blob_type;
-  guint16 deprecated   : 1;
-  guint16 reserved     :15;
-  guint32 name;
-
-  guint32 gtype_name;
-  guint32 gtype_init;
-  guint16 gtype_struct;
-
-  guint16 n_prerequisites;
-  guint16 n_properties;
-  guint16 n_methods;
-  guint16 n_signals;
-  guint16 n_vfuncs;
-  guint16 n_constants;
-
-  guint16 padding;
-
-  guint32 reserved2;
-  guint32 reserved3;
-
-  guint16 prerequisites[];
-} InterfaceBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="InterfaceBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.reserved"></a>reserved</code></em> :15;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.gtype-struct"></a>gtype_struct</code></em>;</p></td>
-<td class="struct_member_description"><p>Name of the interface "class" C structure</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-prerequisites"></a>n_prerequisites</code></em>;</p></td>
-<td class="struct_member_description"><p>Number of prerequisites</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-properties"></a>n_properties</code></em>;</p></td>
-<td class="struct_member_description"><p>Number of properties</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-methods"></a>n_methods</code></em>;</p></td>
-<td class="struct_member_description"><p>Number of methods</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-signals"></a>n_signals</code></em>;</p></td>
-<td class="struct_member_description"><p>Number of signals</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-vfuncs"></a>n_vfuncs</code></em>;</p></td>
-<td class="struct_member_description"><p>Number of virtual functions</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.n-constants"></a>n_constants</code></em>;</p></td>
-<td class="struct_member_description"><p>The lengths of the arrays. Up to 16bits of padding may be
-inserted between the arrays to ensure that they start on a 32bit
-boundary.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.padding"></a>padding</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="InterfaceBlob.reserved3"></a>reserved3</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="InterfaceBlob.prerequisites"></a>prerequisites</code></em>[];</p></td>
-<td class="struct_member_description"><p>An array of indices of directory entries for required
-interfaces.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="ConstantBlob"></a><h3>ConstantBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint16        blob_type;
-  guint16        deprecated   : 1;
-  guint16        reserved     :15;
-  guint32        name;
-
-  SimpleTypeBlob type;
-
-  guint32        size;
-  guint32        offset;
-
-  guint32        reserved2;
-} ConstantBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="ConstantBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ConstantBlob.blob-type"></a>blob_type</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ConstantBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="ConstantBlob.reserved"></a>reserved</code></em> :15;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>TODO</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ConstantBlob.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>The type of the value. In most cases this should be a numeric type
-or string.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.size"></a>size</code></em>;</p></td>
-<td class="struct_member_description"><p>The size of the value in bytes.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.offset"></a>offset</code></em>;</p></td>
-<td class="struct_member_description"><p>The offset of the value in the typelib.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="ConstantBlob.reserved2"></a>reserved2</code></em>;</p></td>
-<td class="struct_member_description"><p>Reserved for future use.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="AttributeBlob"></a><h3>AttributeBlob</h3>
-<pre class="programlisting">typedef struct {
-  guint32 offset;
-  guint32 name;
-  guint32 value;
-} AttributeBlob;
-</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="AttributeBlob.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="AttributeBlob.offset"></a>offset</code></em>;</p></td>
-<td class="struct_member_description"><p>The offset of the typelib entry to which this attribute refers.
-Attributes are kept sorted by offset, so that the attributes of an
-entry can be found by a binary search.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="AttributeBlob.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>The name of the attribute, a string.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="AttributeBlob.value"></a>value</code></em>;</p></td>
-<td class="struct_member_description"><p>The value of the attribute (also a string)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GITypelibError"></a><h3>enum GITypelibError</h3>
-<p>A error set while validating the <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
-<div class="refsect3">
-<a name="GITypelibError.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID:CAPS"></a>G_TYPELIB_ERROR_INVALID</p></td>
-<td class="enum_member_description">
-<p>the typelib is invalid</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-HEADER:CAPS"></a>G_TYPELIB_ERROR_INVALID_HEADER</p></td>
-<td class="enum_member_description">
-<p>the typelib header is invalid</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-DIRECTORY:CAPS"></a>G_TYPELIB_ERROR_INVALID_DIRECTORY</p></td>
-<td class="enum_member_description">
-<p>the typelib directory is invalid</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-ENTRY:CAPS"></a>G_TYPELIB_ERROR_INVALID_ENTRY</p></td>
-<td class="enum_member_description">
-<p>a typelib entry is invalid</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-BLOB:CAPS"></a>G_TYPELIB_ERROR_INVALID_BLOB</p></td>
-<td class="enum_member_description">
-<p>a typelib blob is invalid</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="G-TYPELIB-ERROR:CAPS"></a><h3>G_TYPELIB_ERROR</h3>
-<pre class="programlisting">#define G_TYPELIB_ERROR (g_typelib_error_quark ())
-</pre>
-<p>TODO</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GITypelibHashBuilder"></a><h3>GITypelibHashBuilder</h3>
-<pre class="programlisting">typedef struct _GITypelibHashBuilder GITypelibHashBuilder;</pre>
 <p>TODO</p>
 </div>
 </div>
index 6064d79..de5ab58 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIUnionInfo: GObject Introspection Reference Manual</title>
+<title>GIUnionInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GIStructInfo.html" title="GIStructInfo">
 <link rel="next" href="gi-GIObjectInfo.html" title="GIObjectInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -152,7 +152,7 @@ fields is valid for specified instance.</p>
 <div class="refsect1">
 <a name="gi-giobjectinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
          +----GIUnionInfo
 </pre>
@@ -216,7 +216,7 @@ g_union_info_get_field (<em class="parameter"><code><a class="link" href="gi-GIU
 </div>
 <div class="refsect3">
 <a name="g-union-info-get-field.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -278,7 +278,7 @@ g_union_info_get_method (<em class="parameter"><code><a class="link" href="gi-GI
 </div>
 <div class="refsect3">
 <a name="g-union-info-get-method.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -358,7 +358,7 @@ g_union_info_get_discriminator_type (<em class="parameter"><code><a class="link"
 </div>
 <div class="refsect3">
 <a name="g-union-info-get-discriminator-type.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -396,7 +396,7 @@ constant.</p>
 </div>
 <div class="refsect3">
 <a name="g-union-info-get-discriminator.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -433,7 +433,7 @@ g_union_info_find_method (<em class="parameter"><code><a class="link" href="gi-G
 </div>
 <div class="refsect3">
 <a name="g-union-info-find-method.returns"></a><h4>Returns</h4>
-<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
+<p>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
 when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
index 202dbfa..150d318 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIVFuncInfo: GObject Introspection Reference Manual</title>
+<title>GIVFuncInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GISignalInfo.html" title="GISignalInfo">
 <link rel="next" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
@@ -116,7 +116,7 @@ either a <a class="link" href="gi-GIObjectInfo.html#GIObjectInfo" title="GIObjec
 <div class="refsect1">
 <a name="gi-givfuncinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----<a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
          +----<a class="link" href="gi-GIFunctionInfo.html" title="GIFunctionInfo">GIFunctionInfo</a>
          +----<a class="link" href="gi-GISignalInfo.html" title="GISignalInfo">GISignalInfo</a>
@@ -234,7 +234,7 @@ method will return it.  An invoker method is a C entry point.</p>
 <div class="refsect3">
 <a name="g-vfunc-info-get-invoker.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Free it with
-<a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
+<a class="link" href="GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> when done. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -287,11 +287,11 @@ is the implementation for <em class="parameter"><code>info</code></em>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 g_vfunc_info_invoke (<em class="parameter"><code><a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a> *info</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> implementor</code></em>,
-                     <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
+                     <em class="parameter"><code>const <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
                      <em class="parameter"><code><span class="type">int</span> n_in_args</code></em>,
-                     <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
+                     <em class="parameter"><code>const <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
                      <em class="parameter"><code><span class="type">int</span> n_out_args</code></em>,
-                     <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
+                     <em class="parameter"><code><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Invokes the function described in <em class="parameter"><code>info</code></em>
  with the given
@@ -319,7 +319,7 @@ argument lists.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>in_args</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each in
+<td class="parameter_description"><p>an array of <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each in
 parameter of <em class="parameter"><code>info</code></em>
 . If there are no in parameter, <em class="parameter"><code>in_args</code></em>
 can be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
@@ -333,7 +333,7 @@ array</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>out_args</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each out
+<td class="parameter_description"><p>an array of <a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a>s, one for each out
 parameter of <em class="parameter"><code>info</code></em>
 . If there are no out parameters, <em class="parameter"><code>out_args</code></em>
 may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
index 260ea58..b8918dd 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GIValueInfo: GObject Introspection Reference Manual</title>
+<title>GIValueInfo: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
 <link rel="prev" href="gi-GITypeInfo.html" title="GITypeInfo">
-<link rel="next" href="gi-typelib.html" title="GITypelib">
+<link rel="next" href="ch02.html" title="FFI Interface">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,7 +20,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gi-GITypeInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-typelib.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="ch02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gi-GIValueInfo"></a><div class="titlepage"></div>
@@ -50,7 +50,7 @@
 <div class="refsect1">
 <a name="gi-givalueinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
 <pre class="synopsis">
-  <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+  <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
    +----GIValueInfo
 </pre>
 </div>
diff --git a/docs/reference/html/gi-Version-Information.html b/docs/reference/html/gi-Version-Information.html
new file mode 100644 (file)
index 0000000..b0e80c1
--- /dev/null
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Version Information: libgirepository API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="index.html" title="libgirepository API Reference">
+<link rel="prev" href="gi-GITypelib.html" title="GITypelib">
+<link rel="next" href="gi-Common-Types.html" title="Common Types">
+<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gi-Version-Information.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="gi-GITypelib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gi-Common-Types.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gi-Version-Information"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gi-Version-Information.top_of_page"></a>Version Information</span></h2>
+<p>Version Information — macros and functions to check the girepository version</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gi-Version-Information.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gi-Version-Information.html#GI-CHECK-VERSION:CAPS" title="GI_CHECK_VERSION()">GI_CHECK_VERSION</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gi-Version-Information.html#gi-get-major-version" title="gi_get_major_version ()">gi_get_major_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gi-Version-Information.html#gi-get-minor-version" title="gi_get_minor_version ()">gi_get_minor_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gi-Version-Information.html#gi-get-micro-version" title="gi_get_micro_version ()">gi_get_micro_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gi-Version-Information.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gi-Version-Information.html#GI-MAJOR-VERSION:CAPS" title="GI_MAJOR_VERSION">GI_MAJOR_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gi-Version-Information.html#GI-MINOR-VERSION:CAPS" title="GI_MINOR_VERSION">GI_MINOR_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gi-Version-Information.html#GI-MICRO-VERSION:CAPS" title="GI_MICRO_VERSION">GI_MICRO_VERSION</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gi-Version-Information.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gi-Version-Information.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="GI-CHECK-VERSION:CAPS"></a><h3>GI_CHECK_VERSION()</h3>
+<pre class="programlisting">#define             GI_CHECK_VERSION(major,minor,micro)</pre>
+<p>Checks the version of the girepository library that is being compiled
+against.</p>
+<div class="refsect3">
+<a name="GI-CHECK-VERSION.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>major</p></td>
+<td class="parameter_description"><p>the major version to check for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>minor</p></td>
+<td class="parameter_description"><p>the minor version to check for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>micro</p></td>
+<td class="parameter_description"><p>the micro version to check for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="GI-CHECK-VERSION.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the version of the girepository header files
+is the same as or newer than the passed-in version.</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gi-get-major-version"></a><h3>gi_get_major_version ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gi_get_major_version (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the major version number of the girepository library.
+(e.g. in version 1.58.2 this is 1.)</p>
+<div class="refsect3">
+<a name="gi-get-major-version.returns"></a><h4>Returns</h4>
+<p> the major version number of the girepository library</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gi-get-minor-version"></a><h3>gi_get_minor_version ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gi_get_minor_version (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the minor version number of the girepository library.
+(e.g. in version 1.58.2 this is 58.)</p>
+<div class="refsect3">
+<a name="gi-get-minor-version.returns"></a><h4>Returns</h4>
+<p> the minor version number of the girepository library</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gi-get-micro-version"></a><h3>gi_get_micro_version ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gi_get_micro_version (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the micro version number of the girepository library.
+(e.g. in version 1.58.2 this is 2.)</p>
+<div class="refsect3">
+<a name="gi-get-micro-version.returns"></a><h4>Returns</h4>
+<p> the micro version number of the girepository library</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gi-Version-Information.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GI-MAJOR-VERSION:CAPS"></a><h3>GI_MAJOR_VERSION</h3>
+<pre class="programlisting">#define GI_MAJOR_VERSION 1
+</pre>
+<p>The major version number of the girepository library.</p>
+<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GI-MINOR-VERSION:CAPS"></a><h3>GI_MINOR_VERSION</h3>
+<pre class="programlisting">#define GI_MINOR_VERSION 59
+</pre>
+<p>The minor version number of the girepository library.</p>
+<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GI-MICRO-VERSION:CAPS"></a><h3>GI_MICRO_VERSION</h3>
+<pre class="programlisting">#define GI_MICRO_VERSION 1
+</pre>
+<p>The micro version number of the girepository library.</p>
+<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.28</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/html/gi-building.html b/docs/reference/html/gi-building.html
deleted file mode 100644 (file)
index 88afc4b..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Compiling the GObject Introspection package: GObject Introspection Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="overview.html" title="Part I. GObject-Introspection Overview">
-<link rel="prev" href="overview.html" title="Part I. GObject-Introspection Overview">
-<link rel="next" href="gi-programming.html" title="Writing introspected libraries">
-<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="overview.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="overview.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-programming.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gi-building"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle">Compiling the GObject Introspection package</span></h2>
-<p>Compiling the GObject Introspection Package — How to compile GObject Introspection itself</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="gi-buildtools"></a><h2>Building on UNIX</h2>
-<p>
-      On UNIX, GObject Introspection uses the standard GNU build system,
-      using <span class="application">autoconf</span> for package
-      configuration and resolving portability issues,
-      <span class="application">automake</span> for building makefiles
-      that comply with the GNU Coding Standards, and
-      <span class="application">libtool</span> for building shared
-      libraries on multiple platforms. The normal sequence for
-      compiling and installing the GObject Introspection package is thus:
-
-      </p>
-<div class="literallayout"><p><br>
-        <strong class="userinput"><code>./configure</code></strong><br>
-        <strong class="userinput"><code>make</code></strong><br>
-        <strong class="userinput"><code>make install</code></strong><br>
-      </p></div>
-<p>
-    </p>
-<p>
-      The standard options provided by <span class="application">GNU
-      autoconf</span> may be passed to the
-      <span class="command"><strong>configure</strong></span> script.  Please see the
-      <span class="application">autoconf</span> documentation or run
-      <span class="command"><strong>./configure --help</strong></span> for information about
-      the standard options.
-    </p>
-</div>
-<div class="refsect1">
-<a name="dependencies"></a><h2>Dependencies</h2>
-<p>
-      Before you can compile GObject Introspection, you need to have
-      various other tools and libraries installed on your
-      system. The tools needed during the build process (as
-      differentiated from the basic build tools mentioned
-      <a class="link" href="gi-building.html#gi-buildtools" title="Building on UNIX">before</a> are:
-    </p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-          <a class="ulink" href="http://www.freedesktop.org/software/pkgconfig/" target="_top">pkg-config</a>
-          is a tool for tracking the compilation flags needed for
-          libraries that are used by the GObjecct Introspection. (For each
-          library, a small <code class="literal">.pc</code> text file is
-          installed in a standard location that contains the compilation
-          flags needed for that library along with version number
-          information.)
-        </p></li>
-<li class="listitem"><p>
-          The GObject-Introspection makefiles will mostly work with different
-          versions of <span class="command"><strong>make</strong></span>, however, there tends to be a
-          few incompatibilities, so the GObject-Introspection team recommends
-          installing <a class="ulink" href="http://www.gnu.org/software/make" target="_top">GNU
-          make</a> if you don't already have it on your system
-          and using it. (It may be called <span class="command"><strong>gmake</strong></span>
-          rather than <span class="command"><strong>make</strong></span>.)
-        </p></li>
-</ul></div>
-<p>
-      GObject-Introspection depends on a number of libraries and tools
-      maintained under the umbrella of the GNOME project:
-    </p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-          The GLib library provides core non-graphical functionality
-          such as high level data types, Unicode manipulation, and
-          an object and type system to C programs. It is available
-          from the <a class="ulink" href="ftp.gnome.org/pub/gnome/sources/glib" target="_top">GNOME
-          FTP site</a> or
-          <a class="ulink" href="http://download.gnome.org/sources/glib/" target="_top">here</a>.
-        </p></li>
-<li class="listitem"><p>
-          TODO: GTK-Doc
-        </p></li>
-</ul></div>
-<div class="itemizedlist">
-<p class="title"><b>External dependencies</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-          Python
-        </p></li>
-<li class="listitem"><p>
-          GObject Introspection has an option dependency on the
-          <a class="ulink" href="TODO" target="_top">libffi</a> library. When available,
-          ...
-        </p></li>
-<li class="listitem">
-<p>
-        </p>
-<p>
-          <a class="ulink" href="http://www.cairographics.org" target="_top">Cairo</a>
-          is a graphics library that supports vector graphics and image
-          compositing. When available, GObject Introspection uses
-          Cairo in its unit tests.
-        </p>
-<p>
-        </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="refsect1">
-<a name="extra-configuration-options"></a><h2>Extra Configuration Options</h2>
-<p>
-      In addition to the normal options, the
-      <span class="command"><strong>configure</strong></span> script in the GObject Introspection
-      package supports these additional arguments:
-    </p>
-<p><b><code class="systemitem">--disable-Bsymbolic</code> and
-        <code class="systemitem">--enable-Bsymbolic</code>. </b>
-        By default, the GObject Introspection package uses the
-        -Bsymbolic-functions linker flag to avoid intra-library
-        PLT jumps. A side-effect of this is that it is no longer
-        possible to override internal uses of GObject Introspection
-        functions with <code class="envar">LD_PRELOAD</code>. Therefore, it may
-        make sense to turn this feature off in some situations.
-        The <code class="option">--disable-Bsymbolic</code> option allows
-        to do that.
-      </p>
-<p><b><code class="systemitem">--disable-gtk-doc</code> and
-        <code class="systemitem">--enable-gtk-doc</code>. </b>
-        By default the <span class="command"><strong>configure</strong></span> script will try
-        to auto-detect whether the
-        <span class="application">gtk-doc</span> package is installed.
-        If it is, then it will use it to extract and build the
-        documentation for the GObject Introspection package. These options
-        can be used to explicitly control whether
-        <span class="application">gtk-doc</span> should be
-        used or not. If it is not used, the distributed,
-        pre-generated HTML files will be installed instead of
-        building them on your machine.
-      </p>
-<p><b><code class="systemitem">--disable-doctool</code> and
-        <code class="systemitem">--enable-doctool</code>. </b>
-        TODO
-      </p>
-<p><b><code class="systemitem">--with-python</code>. </b>
-        Allows specifying the Python interpreter to use, either as an
-        absolute path, or as a program name. GObject Introspection can
-        be built with Python 2 (at least version 2.6) but does not yet
-        support Python 3.
-      </p>
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.28</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/reference/html/gi-gir-reference.html b/docs/reference/html/gi-gir-reference.html
deleted file mode 100644 (file)
index 263ae59..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>The GIR XML format: GObject Introspection Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch03.html" title="TODO">
-<link rel="prev" href="gi-girffi.html" title="girffi">
-<link rel="next" href="api-index-full.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-girffi.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gi-gir-reference"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gi-gir-reference.top_of_page"></a>The GIR XML format</span></h2>
-<p>The GIR XML format — The GIR XML format</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<p>
-    This chapter describes the GIR XML markup format. This describes exported C
-    API, including documentation. It may contain installation-specific data,
-    such as library filenames which may differ between platforms.
-  </p>
-<div class="refsect2">
-<a name="gi-gir-api-node"></a><h3>
-<span class="emphasis"><em>api</em></span> node</h3>
-
-    The root node of all GIR documents is the api node.
-
-    Possible children: <a class="link" href="gi-gir-reference.html#gi-gir-namespace" title="namespace node">namespace</a>.
-
-    <div class="example">
-<a name="id-1.4.4.3.4.3"></a><p class="title"><b>Example 4. A GIR fragment showing an api node</b></p>
-<div class="example-contents">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">&lt;</span>api version<span class="gtkdoc opt">=</span><span class="string">&quot;1.0&quot;</span><span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;</span><span class="keyword">namespace</span><span class="gtkdoc opt">/&gt;</span>
-<span class="gtkdoc opt">&lt;/</span>api<span class="gtkdoc opt">&gt;</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-</div>
-<br class="example-break">
-</div>
-<hr>
-<div class="refsect2">
-<a name="gi-gir-namespace"></a><h3>
-<span class="emphasis"><em>namespace</em></span> node</h3>
-
-    Parent node: api.
-    Possible children: callback,
-    <a class="link" href="gi-gir-reference.html#gi-gir-class" title="class node">class</a>,
-    <a class="link" href="gi-gir-reference.html#gi-gir-function" title="function node">function</a>.
-    <a class="link" href="gi-gir-reference.html#gi-gir-interface" title="interface node">interface</a>.
-
-    <div class="example">
-<a name="id-1.4.4.3.5.7"></a><p class="title"><b>Example 5. A GIR fragment showing an namespace node</b></p>
-<div class="example-contents">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">&lt;</span>api version<span class="gtkdoc opt">=</span><span class="string">&quot;1.0&quot;</span><span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;</span><span class="keyword">namespace</span><span class="gtkdoc opt">=</span><span class="string">&quot;Gtk&quot;</span><span class="gtkdoc opt">&gt;</span>
-     <span class="gtkdoc opt">&lt;</span><span class="gtkdoc kwc">class</span><span class="gtkdoc opt">/&gt;</span>
-     <span class="gtkdoc opt">&lt;</span>function<span class="gtkdoc opt">/&gt;</span>
-  <span class="gtkdoc opt">&lt;/</span><span class="keyword">namespace</span><span class="gtkdoc opt">&gt;</span>
-<span class="gtkdoc opt">&lt;/</span>api<span class="gtkdoc opt">&gt;</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-</div>
-<br class="example-break">
-</div>
-<hr>
-<div class="refsect2">
-<a name="gi-gir-class"></a><h3>
-<span class="emphasis"><em>class</em></span> node</h3>
-
-    Parent node: <a class="link" href="gi-gir-reference.html#gi-gir-namespace" title="namespace node">namespace</a>.
-    Possible children: <a class="link" href="gi-gir-reference.html#gi-gir-class" title="class node">constructor</a>,
-    field,
-    method,
-    property.
-    <div class="example">
-<a name="id-1.4.4.3.6.7"></a><p class="title"><b>Example 6. A GIR fragment showing an class node</b></p>
-<div class="example-contents">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">&lt;</span>api version<span class="gtkdoc opt">=</span><span class="string">&quot;1.0&quot;</span><span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;</span><span class="keyword">namespace</span><span class="gtkdoc opt">=</span><span class="string">&quot;Gtk&quot;</span><span class="gtkdoc opt">&gt;</span>
-    <span class="gtkdoc opt">&lt;</span><span class="gtkdoc kwc">class</span> name<span class="gtkdoc opt">=</span><span class="string">&quot;Widget&quot;</span><span class="gtkdoc opt">&gt;</span>
-       <span class="gtkdoc opt">&lt;</span>constructor<span class="gtkdoc opt">/&gt;</span>
-       <span class="gtkdoc opt">&lt;</span>field<span class="gtkdoc opt">/&gt;</span>
-       <span class="gtkdoc opt">&lt;</span>method<span class="gtkdoc opt">/&gt;</span>
-       <span class="gtkdoc opt">&lt;</span>property<span class="gtkdoc opt">/&gt;</span>
-    <span class="gtkdoc opt">&lt;</span><span class="gtkdoc kwc">class</span><span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;/</span><span class="keyword">namespace</span><span class="gtkdoc opt">&gt;</span>
-<span class="gtkdoc opt">&lt;/</span>api<span class="gtkdoc opt">&gt;</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-</div>
-<br class="example-break">
-</div>
-<hr>
-<div class="refsect2">
-<a name="gi-gir-interface"></a><h3>
-<span class="emphasis"><em>interface</em></span> node</h3>
-
-    Parent node: <a class="link" href="gi-gir-reference.html#gi-gir-namespace" title="namespace node">namespace</a>.
-    Possible children: field,
-    method,
-    property.
-    <div class="example">
-<a name="id-1.4.4.3.7.6"></a><p class="title"><b>Example 7. A GIR fragment showing an interface node</b></p>
-<div class="example-contents">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">&lt;</span>api version<span class="gtkdoc opt">=</span><span class="string">&quot;1.0&quot;</span><span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;</span><span class="keyword">namespace</span><span class="gtkdoc opt">=</span><span class="string">&quot;Gtk&quot;</span><span class="gtkdoc opt">&gt;</span>
-    <span class="gtkdoc opt">&lt;</span>interface name<span class="gtkdoc opt">=</span><span class="string">&quot;Buildable&quot;</span><span class="gtkdoc opt">&gt;</span>
-       <span class="gtkdoc opt">&lt;</span>field<span class="gtkdoc opt">/&gt;</span>
-       <span class="gtkdoc opt">&lt;</span>method<span class="gtkdoc opt">/&gt;</span>
-       <span class="gtkdoc opt">&lt;</span>property<span class="gtkdoc opt">/&gt;</span>
-    <span class="gtkdoc opt">&lt;</span>interface<span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;/</span><span class="keyword">namespace</span><span class="gtkdoc opt">&gt;</span>
-<span class="gtkdoc opt">&lt;/</span>api<span class="gtkdoc opt">&gt;</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-</div>
-<br class="example-break">
-</div>
-<hr>
-<div class="refsect2">
-<a name="gi-gir-function"></a><h3>
-<span class="emphasis"><em>function</em></span> node</h3>
-
-    Parent node: <a class="link" href="gi-gir-reference.html#gi-gir-namespace" title="namespace node">namespace</a>.
-    <div class="example">
-<a name="id-1.4.4.3.8.3"></a><p class="title"><b>Example 8. A GIR fragment showing an function node</b></p>
-<div class="example-contents">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">&lt;</span>api version<span class="gtkdoc opt">=</span><span class="string">&quot;1.0&quot;</span><span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;</span><span class="keyword">namespace</span><span class="gtkdoc opt">=</span><span class="string">&quot;Gtk&quot;</span><span class="gtkdoc opt">&gt;</span>
-    <span class="gtkdoc opt">&lt;</span>function name<span class="gtkdoc opt">=</span><span class="string">&quot;init&quot;</span><span class="gtkdoc opt">&gt;</span>
-    <span class="gtkdoc opt">&lt;/</span>function<span class="gtkdoc opt">&gt;</span>
-  <span class="gtkdoc opt">&lt;/</span><span class="keyword">namespace</span><span class="gtkdoc opt">&gt;</span>
-<span class="gtkdoc opt">&lt;/</span>api<span class="gtkdoc opt">&gt;</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-</div>
-<br class="example-break">
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.28</div>
-</body>
-</html>
\ No newline at end of file
index 3b82cac..ee4513c 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>girffi: GObject Introspection Reference Manual</title>
+<title>girffi: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch03.html" title="TODO">
-<link rel="prev" href="ch03.html" title="TODO">
-<link rel="next" href="gi-gir-reference.html" title="The GIR XML format">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch02.html" title="FFI Interface">
+<link rel="prev" href="ch02.html" title="FFI Interface">
+<link rel="next" href="ch03.html" title="Internals &amp; Typelib Format">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,9 +18,9 @@
                   <a href="#gi-girffi.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-gir-reference.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gi-girffi"></a><div class="titlepage"></div>
 <div class="refsect2">
 <a name="gi-type-tag-get-ffi-type"></a><h3>gi_type_tag_get_ffi_type ()</h3>
 <pre class="programlisting"><span class="returnvalue">ffi_type</span> *
-gi_type_tag_get_ffi_type (<em class="parameter"><code><a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a> type_tag</code></em>,
+gi_type_tag_get_ffi_type (<em class="parameter"><code><a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a> type_tag</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> is_pointer</code></em>);</pre>
 <p>TODO</p>
 <div class="refsect3">
@@ -198,7 +198,7 @@ gi_type_tag_get_ffi_type (<em class="parameter"><code><a class="link" href="gi-c
 <tbody>
 <tr>
 <td class="parameter_name"><p>type_tag</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
+<td class="parameter_description"><p>A <a class="link" href="gi-Common-Types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -249,7 +249,7 @@ g_type_info_get_ffi_type (<em class="parameter"><code><a class="link" href="gi-G
 <pre class="programlisting"><span class="returnvalue">void</span>
 gi_type_info_extract_ffi_return_value (<em class="parameter"><code><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a> *return_info</code></em>,
                                        <em class="parameter"><code><a class="link" href="gi-girffi.html#GIFFIReturnValue" title="GIFFIReturnValue"><span class="type">GIFFIReturnValue</span></a> *ffi_value</code></em>,
-                                       <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *arg</code></em>);</pre>
+                                       <em class="parameter"><code><a class="link" href="gi-Common-Types.html#GIArgument" title="GIArgument"><span class="type">GIArgument</span></a> *arg</code></em>);</pre>
 <p>Extract the correct bits from an ffi_arg return value into
 GIArgument: https://bugzilla.gnome.org/show_bug.cgi?id=665152</p>
 <p>Also see <span class="citerefentry"><span class="refentrytitle">ffi_call</span>(3)</span></p>
diff --git a/docs/reference/html/gi-gitypelib.html b/docs/reference/html/gi-gitypelib.html
deleted file mode 100644 (file)
index b3ee200..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gitypelib: GObject Introspection Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="gi-typelib.html" title="GITypelib">
-<link rel="prev" href="gi-typelib.html" title="GITypelib">
-<link rel="next" href="gi-GITypelib.html" title="GITypelib">
-<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#gi-gitypelib.description" class="shortcut">Description</a></span>
-</td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="gi-typelib.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-typelib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-GITypelib.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gi-gitypelib"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gi-gitypelib.top_of_page"></a>gitypelib</span></h2>
-<p>gitypelib — TODO</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="gi-gitypelib.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="functions_return">
-<col class="functions_name">
-</colgroup>
-<tbody>
-<tr>
-<td class="function_type">
-<a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gi-gitypelib.html#g-typelib-new-from-memory" title="g_typelib_new_from_memory ()">g_typelib_new_from_memory</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gi-gitypelib.html#g-typelib-new-from-const-memory" title="g_typelib_new_from_const_memory ()">g_typelib_new_from_const_memory</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gi-gitypelib.html#g-typelib-new-from-mapped-file" title="g_typelib_new_from_mapped_file ()">g_typelib_new_from_mapped_file</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gi-gitypelib.html#g-typelib-free" title="g_typelib_free ()">g_typelib_free</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gi-gitypelib.html#g-typelib-symbol" title="g_typelib_symbol ()">g_typelib_symbol</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gi-gitypelib.html#g-typelib-get-namespace" title="g_typelib_get_namespace ()">g_typelib_get_namespace</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="gi-gitypelib.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="name">
-<col class="description">
-</colgroup>
-<tbody><tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib">GITypelib</a></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="gi-gitypelib.description"></a><h2>Description</h2>
-<p>TODO</p>
-</div>
-<div class="refsect1">
-<a name="gi-gitypelib.functions_details"></a><h2>Functions</h2>
-<div class="refsect2">
-<a name="g-typelib-new-from-memory"></a><h3>g_typelib_new_from_memory ()</h3>
-<pre class="programlisting"><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
-g_typelib_new_from_memory (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *memory</code></em>,
-                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>,
-                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Creates a new <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> from a memory location.  The memory block
-pointed to by <em class="parameter"><code>typelib</code></em>
- will be automatically <a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>d when the
-repository is destroyed.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="g-typelib-new-from-memory.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>memory</p></td>
-<td class="parameter_description"><p>address of memory chunk containing the typelib</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>length of memory chunk containing the typelib</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-typelib-new-from-memory.returns"></a><h4>Returns</h4>
-<p> the new <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-new-from-const-memory"></a><h3>g_typelib_new_from_const_memory ()</h3>
-<pre class="programlisting"><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
-g_typelib_new_from_const_memory (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *memory</code></em>,
-                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>,
-                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Creates a new <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> from a memory location.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="g-typelib-new-from-const-memory.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>memory</p></td>
-<td class="parameter_description"><p>address of memory chunk containing the typelib</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>length of memory chunk containing the typelib</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-typelib-new-from-const-memory.returns"></a><h4>Returns</h4>
-<p> the new <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-new-from-mapped-file"></a><h3>g_typelib_new_from_mapped_file ()</h3>
-<pre class="programlisting"><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *
-g_typelib_new_from_mapped_file (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-File-Utilities.html#GMappedFile"><span class="type">GMappedFile</span></a> *mfile</code></em>,
-                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Creates a new <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> from a <a href="/usr/share/gtk-doc/html/glib/glib-File-Utilities.html#GMappedFile"><span class="type">GMappedFile</span></a>.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="g-typelib-new-from-mapped-file.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>mfile</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-File-Utilities.html#GMappedFile"><span class="type">GMappedFile</span></a>, that will be free'd when the repository is destroyed</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-typelib-new-from-mapped-file.returns"></a><h4>Returns</h4>
-<p> the new <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-free"></a><h3>g_typelib_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-g_typelib_free (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>);</pre>
-<p>Free a <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a>.</p>
-<div class="refsect3">
-<a name="g-typelib-free.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-symbol"></a><h3>g_typelib_symbol ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-g_typelib_symbol (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
-                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *symbol_name</code></em>,
-                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *symbol</code></em>);</pre>
-<p>Loads a symbol from <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a>.</p>
-<div class="refsect3">
-<a name="g-typelib-symbol.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>the typelib</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>symbol_name</p></td>
-<td class="parameter_description"><p>name of symbol to be loaded</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>symbol</p></td>
-<td class="parameter_description"><p>returns a pointer to the symbol value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-typelib-symbol.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> on success</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-typelib-get-namespace"></a><h3>g_typelib_get_namespace ()</h3>
-<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-g_typelib_get_namespace (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>);</pre>
-<p>TODO</p>
-<div class="refsect3">
-<a name="g-typelib-get-namespace.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>typelib</p></td>
-<td class="parameter_description"><p>TODO</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="g-typelib-get-namespace.returns"></a><h4>Returns</h4>
-<p> TODO</p>
-</div>
-</div>
-</div>
-<div class="refsect1">
-<a name="gi-gitypelib.other_details"></a><h2>Types and Values</h2>
-<div class="refsect2">
-<a name="GITypelib"></a><h3>GITypelib</h3>
-<pre class="programlisting">typedef struct {
-} GITypelib;
-</pre>
-<p>TODO</p>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.28</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/reference/html/gi-programming.html b/docs/reference/html/gi-programming.html
deleted file mode 100644 (file)
index fd1fd72..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Writing introspected libraries: GObject Introspection Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="overview.html" title="Part I. GObject-Introspection Overview">
-<link rel="prev" href="gi-building.html" title="Compiling the GObject Introspection package">
-<link rel="next" href="gi.html" title="Part II. API Reference">
-<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="overview.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gi-building.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gi-programming"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle">Writing introspected libraries</span></h2>
-<p>Writing introspected libraries — General considerations when writing introspected libraries</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="id-1.3.4.3"></a><h2>TODO</h2>
-<p>
-      ...
-    </p>
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.28</div>
-</body>
-</html>
\ No newline at end of file
index 89e88a3..32e26e1 100644 (file)
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Struct hierarchy: GObject Introspection Reference Manual</title>
+<title>Struct hierarchy: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="ch01.html" title="GIRepository">
-<link rel="prev" href="GIRepository.html" title="GIRepository">
-<link rel="next" href="gi-common-types.html" title="common types">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="up" href="ch01.html" title="GIBaseInfo">
+<link rel="prev" href="ch01.html" title="GIBaseInfo">
+<link rel="next" href="GIBaseInfo.html" title="GIBaseInfo">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="GIRepository.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-common-types.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GIBaseInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gi-struct-hierarchy"></a><div class="titlepage"></div>
 <div class="refsynopsisdiv">
 <a name="gi-struct-hierarchy.synopsis"></a><h2>Synopsis</h2>
 <pre class="synopsis">
-* <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
+* <a class="link" href="GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
   * <a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
     * <a class="link" href="gi-GIFunctionInfo.html" title="GIFunctionInfo">GIFunctionInfo</a>
+    * <a class="link" href="gi-GICallbackInfo.html" title="GICallbackInfo">GICallbackInfo</a>
     * <a class="link" href="gi-GISignalInfo.html" title="GISignalInfo">GISignalInfo</a>
     * <a class="link" href="gi-GIVFuncInfo.html" title="GIVFuncInfo">GIVFuncInfo</a>
   * <a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
     * <a class="link" href="gi-GIEnumInfo.html" title="GIEnumInfo">GIEnumInfo</a>
-    * <a class="link" href="gi-GIInterfaceInfo.html" title="GIInterfaceInfo">GIInterfaceInfo</a>
-    * <a class="link" href="gi-GIObjectInfo.html" title="GIObjectInfo">GIObjectInfo</a>
     * <a class="link" href="gi-GIStructInfo.html" title="GIStructInfo">GIStructInfo</a>
     * <a class="link" href="gi-GIUnionInfo.html" title="GIUnionInfo">GIUnionInfo</a>
+    * <a class="link" href="gi-GIObjectInfo.html" title="GIObjectInfo">GIObjectInfo</a>
+    * <a class="link" href="gi-GIInterfaceInfo.html" title="GIInterfaceInfo">GIInterfaceInfo</a>
   * <a class="link" href="gi-GIArgInfo.html" title="GIArgInfo">GIArgInfo</a>
   * <a class="link" href="gi-GIConstantInfo.html" title="GIConstantInfo">GIConstantInfo</a>
   * <a class="link" href="gi-GIFieldInfo.html" title="GIFieldInfo">GIFieldInfo</a>
   * <a class="link" href="gi-GIPropertyInfo.html" title="GIPropertyInfo">GIPropertyInfo</a>
   * <a class="link" href="gi-GITypeInfo.html" title="GITypeInfo">GITypeInfo</a>
+  * <a class="link" href="gi-GIValueInfo.html" title="GIValueInfo">GIValueInfo</a>
 </pre>
 </div>
 </div>
index f7bd0b2..083be2d 100644 (file)
@@ -1,50 +1,47 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
-<book xmlns="http://www.devhelp.net/book" title="GObject Introspection Reference Manual" link="index.html" author="" name="gi" version="2" language="c">
+<book xmlns="http://www.devhelp.net/book" title="libgirepository API Reference" link="index.html" author="" name="gi" version="2" language="c">
   <chapters>
-    <sub name="GObject-Introspection Overview" link="overview.html">
-      <sub name="Compiling the GObject Introspection package" link="gi-building.html"/>
-      <sub name="Writing introspected libraries" link="gi-programming.html"/>
+    <sub name="GIRepository" link="GIRepository.html"/>
+    <sub name="GITypelib" link="gi-GITypelib.html"/>
+    <sub name="Version Information" link="gi-Version-Information.html"/>
+    <sub name="Common Types" link="gi-Common-Types.html"/>
+    <sub name="GIBaseInfo" link="ch01.html">
+      <sub name="Struct hierarchy" link="gi-struct-hierarchy.html"/>
+      <sub name="GIBaseInfo" link="GIBaseInfo.html"/>
+      <sub name="GICallableInfo" link="gi-GICallableInfo.html"/>
+      <sub name="GIFunctionInfo" link="gi-GIFunctionInfo.html"/>
+      <sub name="GICallbackInfo" link="gi-GICallbackInfo.html"/>
+      <sub name="GISignalInfo" link="gi-GISignalInfo.html"/>
+      <sub name="GIVFuncInfo" link="gi-GIVFuncInfo.html"/>
+      <sub name="GIRegisteredTypeInfo" link="gi-GIRegisteredTypeInfo.html"/>
+      <sub name="GIEnumInfo" link="gi-GIEnumInfo.html"/>
+      <sub name="GIStructInfo" link="gi-GIStructInfo.html"/>
+      <sub name="GIUnionInfo" link="gi-GIUnionInfo.html"/>
+      <sub name="GIObjectInfo" link="gi-GIObjectInfo.html"/>
+      <sub name="GIInterfaceInfo" link="gi-GIInterfaceInfo.html"/>
+      <sub name="GIArgInfo" link="gi-GIArgInfo.html"/>
+      <sub name="GIConstantInfo" link="gi-GIConstantInfo.html"/>
+      <sub name="GIFieldInfo" link="gi-GIFieldInfo.html"/>
+      <sub name="GIPropertyInfo" link="gi-GIPropertyInfo.html"/>
+      <sub name="GITypeInfo" link="gi-GITypeInfo.html"/>
+      <sub name="GIValueInfo" link="gi-GIValueInfo.html"/>
     </sub>
-    <sub name="API Reference" link="gi.html">
-      <sub name="GIRepository" link="ch01.html">
-        <sub name="GIRepository" link="GIRepository.html"/>
-        <sub name="Struct hierarchy" link="gi-struct-hierarchy.html"/>
-        <sub name="common types" link="gi-common-types.html"/>
-        <sub name="GIBaseInfo" link="gi-GIBaseInfo.html"/>
-        <sub name="GICallableInfo" link="gi-GICallableInfo.html"/>
-        <sub name="GIFunctionInfo" link="gi-GIFunctionInfo.html"/>
-        <sub name="GICallbackInfo" link="gi-GICallbackInfo.html"/>
-        <sub name="GISignalInfo" link="gi-GISignalInfo.html"/>
-        <sub name="GIVFuncInfo" link="gi-GIVFuncInfo.html"/>
-        <sub name="GIRegisteredTypeInfo" link="gi-GIRegisteredTypeInfo.html"/>
-        <sub name="GIEnumInfo" link="gi-GIEnumInfo.html"/>
-        <sub name="GIStructInfo" link="gi-GIStructInfo.html"/>
-        <sub name="GIUnionInfo" link="gi-GIUnionInfo.html"/>
-        <sub name="GIObjectInfo" link="gi-GIObjectInfo.html"/>
-        <sub name="GIInterfaceInfo" link="gi-GIInterfaceInfo.html"/>
-        <sub name="GIArgInfo" link="gi-GIArgInfo.html"/>
-        <sub name="GIConstantInfo" link="gi-GIConstantInfo.html"/>
-        <sub name="GIFieldInfo" link="gi-GIFieldInfo.html"/>
-        <sub name="GIPropertyInfo" link="gi-GIPropertyInfo.html"/>
-        <sub name="GITypeInfo" link="gi-GITypeInfo.html"/>
-        <sub name="GIValueInfo" link="gi-GIValueInfo.html"/>
-      </sub>
-      <sub name="GITypelib" link="gi-typelib.html">
-        <sub name="gitypelib" link="gi-gitypelib.html"/>
-        <sub name="GITypelib" link="gi-GITypelib.html"/>
-      </sub>
-      <sub name="TODO" link="ch03.html">
-        <sub name="girffi" link="gi-girffi.html"/>
-        <sub name="The GIR XML format" link="gi-gir-reference.html"/>
-      </sub>
+    <sub name="FFI Interface" link="ch02.html">
+      <sub name="girffi" link="gi-girffi.html"/>
+    </sub>
+    <sub name="Internals &amp; Typelib Format" link="ch03.html">
+      <sub name="GITypelib Internals" link="gi-GITypelib-Internals.html"/>
     </sub>
     <sub name="Index" link="api-index-full.html"/>
     <sub name="Index of deprecated symbols" link="api-index-deprecated.html"/>
-    <sub name="Index of new symbols in 1.29.0" link="api-index-1-29-0.html"/>
-    <sub name="Index of new symbols in 1.29.17" link="api-index-1-29-17.html"/>
-    <sub name="Index of new symbols in 1.30.1" link="api-index-1-30-1.html"/>
+    <sub name="Index of new symbols in 1.30" link="api-index-1-30.html"/>
+    <sub name="Index of new symbols in 1.32" link="api-index-1-32.html"/>
     <sub name="Index of new symbols in 1.34" link="api-index-1-34.html"/>
-    <sub name="Index of new symbols in 1.35.8" link="api-index-1-35-8.html"/>
+    <sub name="Index of new symbols in 1.36" link="api-index-1-36.html"/>
+    <sub name="Index of new symbols in 1.42" link="api-index-1-42.html"/>
+    <sub name="Index of new symbols in 1.44" link="api-index-1-44.html"/>
+    <sub name="Index of new symbols in 1.46" link="api-index-1-46.html"/>
+    <sub name="Index of new symbols in 1.60" link="api-index-1-60.html"/>
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
@@ -56,7 +53,7 @@
     <keyword type="function" name="g_irepository_get_info ()" link="GIRepository.html#g-irepository-get-info"/>
     <keyword type="function" name="g_irepository_get_option_group ()" link="GIRepository.html#g-irepository-get-option-group"/>
     <keyword type="function" name="g_irepository_enumerate_versions ()" link="GIRepository.html#g-irepository-enumerate-versions"/>
-    <keyword type="function" name="g_irepository_prepend_library_path ()" link="GIRepository.html#g-irepository-prepend-library-path" since="1.35.8"/>
+    <keyword type="function" name="g_irepository_prepend_library_path ()" link="GIRepository.html#g-irepository-prepend-library-path" since="1.36"/>
     <keyword type="function" name="g_irepository_prepend_search_path ()" link="GIRepository.html#g-irepository-prepend-search-path"/>
     <keyword type="function" name="g_irepository_get_search_path ()" link="GIRepository.html#g-irepository-get-search-path"/>
     <keyword type="function" name="g_irepository_load_typelib ()" link="GIRepository.html#g-irepository-load-typelib"/>
@@ -68,7 +65,7 @@
     <keyword type="function" name="g_irepository_get_shared_library ()" link="GIRepository.html#g-irepository-get-shared-library"/>
     <keyword type="function" name="g_irepository_get_version ()" link="GIRepository.html#g-irepository-get-version"/>
     <keyword type="function" name="g_irepository_find_by_gtype ()" link="GIRepository.html#g-irepository-find-by-gtype"/>
-    <keyword type="function" name="g_irepository_find_by_error_domain ()" link="GIRepository.html#g-irepository-find-by-error-domain" since="1.29.17"/>
+    <keyword type="function" name="g_irepository_find_by_error_domain ()" link="GIRepository.html#g-irepository-find-by-error-domain" since="1.30"/>
     <keyword type="function" name="g_irepository_find_by_name ()" link="GIRepository.html#g-irepository-find-by-name"/>
     <keyword type="function" name="g_irepository_dump ()" link="GIRepository.html#g-irepository-dump"/>
     <keyword type="function" name="gi_cclosure_marshal_generic ()" link="GIRepository.html#gi-cclosure-marshal-generic"/>
     <keyword type="enum" name="enum GIRepositoryLoadFlags" link="GIRepository.html#GIRepositoryLoadFlags"/>
     <keyword type="macro" name="G_IREPOSITORY_ERROR" link="GIRepository.html#G-IREPOSITORY-ERROR:CAPS"/>
     <keyword type="enum" name="enum GIRepositoryError" link="GIRepository.html#GIRepositoryError"/>
-    <keyword type="macro" name="G_TYPE_TAG_IS_BASIC()" link="gi-common-types.html#G-TYPE-TAG-IS-BASIC:CAPS"/>
-    <keyword type="union" name="GIArgument" link="gi-common-types.html#GIArgument"/>
-    <keyword type="struct" name="GIUnresolvedInfo" link="gi-common-types.html#GIUnresolvedInfo"/>
-    <keyword type="enum" name="enum GITypeTag" link="gi-common-types.html#GITypeTag"/>
-    <keyword type="enum" name="enum GIArrayType" link="gi-common-types.html#GIArrayType"/>
-    <keyword type="macro" name="GI_TYPE_TAG_N_TYPES" link="gi-common-types.html#GI-TYPE-TAG-N-TYPES:CAPS"/>
-    <keyword type="function" name="g_info_new ()" link="gi-GIBaseInfo.html#g-info-new"/>
-    <keyword type="function" name="g_base_info_ref ()" link="gi-GIBaseInfo.html#g-base-info-ref"/>
-    <keyword type="function" name="g_base_info_unref ()" link="gi-GIBaseInfo.html#g-base-info-unref"/>
-    <keyword type="function" name="g_base_info_equal ()" link="gi-GIBaseInfo.html#g-base-info-equal"/>
-    <keyword type="function" name="g_base_info_get_type ()" link="gi-GIBaseInfo.html#g-base-info-get-type"/>
-    <keyword type="function" name="g_base_info_get_typelib ()" link="gi-GIBaseInfo.html#g-base-info-get-typelib"/>
-    <keyword type="function" name="g_base_info_get_namespace ()" link="gi-GIBaseInfo.html#g-base-info-get-namespace"/>
-    <keyword type="function" name="g_base_info_get_name ()" link="gi-GIBaseInfo.html#g-base-info-get-name"/>
-    <keyword type="function" name="g_base_info_get_attribute ()" link="gi-GIBaseInfo.html#g-base-info-get-attribute"/>
-    <keyword type="function" name="g_base_info_iterate_attributes ()" link="gi-GIBaseInfo.html#g-base-info-iterate-attributes"/>
-    <keyword type="function" name="g_base_info_get_container ()" link="gi-GIBaseInfo.html#g-base-info-get-container"/>
-    <keyword type="function" name="g_base_info_is_deprecated ()" link="gi-GIBaseInfo.html#g-base-info-is-deprecated"/>
-    <keyword type="enum" name="enum GIInfoType" link="gi-GIBaseInfo.html#GIInfoType"/>
-    <keyword type="struct" name="GIAttributeIter" link="gi-GIBaseInfo.html#GIAttributeIter"/>
+    <keyword type="function" name="g_typelib_new_from_memory ()" link="gi-GITypelib.html#g-typelib-new-from-memory"/>
+    <keyword type="function" name="g_typelib_new_from_const_memory ()" link="gi-GITypelib.html#g-typelib-new-from-const-memory"/>
+    <keyword type="function" name="g_typelib_new_from_mapped_file ()" link="gi-GITypelib.html#g-typelib-new-from-mapped-file"/>
+    <keyword type="function" name="g_typelib_free ()" link="gi-GITypelib.html#g-typelib-free"/>
+    <keyword type="function" name="g_typelib_symbol ()" link="gi-GITypelib.html#g-typelib-symbol"/>
+    <keyword type="function" name="g_typelib_get_namespace ()" link="gi-GITypelib.html#g-typelib-get-namespace"/>
+    <keyword type="struct" name="GITypelib" link="gi-GITypelib.html#GITypelib"/>
+    <keyword type="macro" name="GI_CHECK_VERSION()" link="gi-Version-Information.html#GI-CHECK-VERSION:CAPS" since="1.60"/>
+    <keyword type="function" name="gi_get_major_version ()" link="gi-Version-Information.html#gi-get-major-version" since="1.60"/>
+    <keyword type="function" name="gi_get_minor_version ()" link="gi-Version-Information.html#gi-get-minor-version" since="1.60"/>
+    <keyword type="function" name="gi_get_micro_version ()" link="gi-Version-Information.html#gi-get-micro-version" since="1.60"/>
+    <keyword type="macro" name="GI_MAJOR_VERSION" link="gi-Version-Information.html#GI-MAJOR-VERSION:CAPS" since="1.60"/>
+    <keyword type="macro" name="GI_MINOR_VERSION" link="gi-Version-Information.html#GI-MINOR-VERSION:CAPS" since="1.60"/>
+    <keyword type="macro" name="GI_MICRO_VERSION" link="gi-Version-Information.html#GI-MICRO-VERSION:CAPS" since="1.60"/>
+    <keyword type="macro" name="G_TYPE_TAG_IS_BASIC()" link="gi-Common-Types.html#G-TYPE-TAG-IS-BASIC:CAPS"/>
+    <keyword type="function" name="g_type_tag_to_string ()" link="gi-Common-Types.html#g-type-tag-to-string"/>
+    <keyword type="union" name="GIArgument" link="gi-Common-Types.html#GIArgument"/>
+    <keyword type="enum" name="enum GITypeTag" link="gi-Common-Types.html#GITypeTag"/>
+    <keyword type="enum" name="enum GIArrayType" link="gi-Common-Types.html#GIArrayType"/>
+    <keyword type="macro" name="GI_TYPE_TAG_N_TYPES" link="gi-Common-Types.html#GI-TYPE-TAG-N-TYPES:CAPS"/>
+    <keyword type="function" name="g_info_new ()" link="GIBaseInfo.html#g-info-new"/>
+    <keyword type="function" name="g_base_info_ref ()" link="GIBaseInfo.html#g-base-info-ref"/>
+    <keyword type="function" name="g_base_info_unref ()" link="GIBaseInfo.html#g-base-info-unref"/>
+    <keyword type="function" name="g_base_info_equal ()" link="GIBaseInfo.html#g-base-info-equal"/>
+    <keyword type="function" name="g_base_info_get_type ()" link="GIBaseInfo.html#g-base-info-get-type"/>
+    <keyword type="function" name="g_base_info_get_typelib ()" link="GIBaseInfo.html#g-base-info-get-typelib"/>
+    <keyword type="function" name="g_base_info_get_namespace ()" link="GIBaseInfo.html#g-base-info-get-namespace"/>
+    <keyword type="function" name="g_base_info_get_name ()" link="GIBaseInfo.html#g-base-info-get-name"/>
+    <keyword type="function" name="g_base_info_get_attribute ()" link="GIBaseInfo.html#g-base-info-get-attribute"/>
+    <keyword type="function" name="g_base_info_iterate_attributes ()" link="GIBaseInfo.html#g-base-info-iterate-attributes"/>
+    <keyword type="function" name="g_base_info_get_container ()" link="GIBaseInfo.html#g-base-info-get-container"/>
+    <keyword type="function" name="g_base_info_is_deprecated ()" link="GIBaseInfo.html#g-base-info-is-deprecated"/>
+    <keyword type="function" name="g_info_type_to_string ()" link="GIBaseInfo.html#g-info-type-to-string"/>
+    <keyword type="struct" name="GIBaseInfo" link="GIBaseInfo.html#GIBaseInfo-struct"/>
+    <keyword type="enum" name="enum GIInfoType" link="GIBaseInfo.html#GIInfoType"/>
+    <keyword type="struct" name="GIAttributeIter" link="GIBaseInfo.html#GIAttributeIter"/>
     <keyword type="macro" name="GI_IS_CALLABLE_INFO()" link="gi-GICallableInfo.html#GI-IS-CALLABLE-INFO:CAPS"/>
     <keyword type="function" name="g_callable_info_can_throw_gerror ()" link="gi-GICallableInfo.html#g-callable-info-can-throw-gerror" since="1.34"/>
     <keyword type="function" name="g_callable_info_get_n_args ()" link="gi-GICallableInfo.html#g-callable-info-get-n-args"/>
     <keyword type="function" name="g_callable_info_get_arg ()" link="gi-GICallableInfo.html#g-callable-info-get-arg"/>
     <keyword type="function" name="g_callable_info_get_caller_owns ()" link="gi-GICallableInfo.html#g-callable-info-get-caller-owns"/>
+    <keyword type="function" name="g_callable_info_get_instance_ownership_transfer ()" link="gi-GICallableInfo.html#g-callable-info-get-instance-ownership-transfer" since="1.42"/>
     <keyword type="function" name="g_callable_info_get_return_attribute ()" link="gi-GICallableInfo.html#g-callable-info-get-return-attribute"/>
     <keyword type="function" name="g_callable_info_get_return_type ()" link="gi-GICallableInfo.html#g-callable-info-get-return-type"/>
     <keyword type="function" name="g_callable_info_invoke ()" link="gi-GICallableInfo.html#g-callable-info-invoke"/>
     <keyword type="macro" name="GI_IS_VALUE_INFO()" link="gi-GIEnumInfo.html#GI-IS-VALUE-INFO:CAPS"/>
     <keyword type="function" name="g_enum_info_get_n_values ()" link="gi-GIEnumInfo.html#g-enum-info-get-n-values"/>
     <keyword type="function" name="g_enum_info_get_value ()" link="gi-GIEnumInfo.html#g-enum-info-get-value"/>
-    <keyword type="function" name="g_enum_info_get_n_methods ()" link="gi-GIEnumInfo.html#g-enum-info-get-n-methods" since="1.29.17"/>
-    <keyword type="function" name="g_enum_info_get_method ()" link="gi-GIEnumInfo.html#g-enum-info-get-method" since="1.29.17"/>
+    <keyword type="function" name="g_enum_info_get_n_methods ()" link="gi-GIEnumInfo.html#g-enum-info-get-n-methods" since="1.30"/>
+    <keyword type="function" name="g_enum_info_get_method ()" link="gi-GIEnumInfo.html#g-enum-info-get-method" since="1.30"/>
     <keyword type="function" name="g_enum_info_get_storage_type ()" link="gi-GIEnumInfo.html#g-enum-info-get-storage-type"/>
-    <keyword type="function" name="g_enum_info_get_error_domain ()" link="gi-GIEnumInfo.html#g-enum-info-get-error-domain" since="1.29.17"/>
+    <keyword type="function" name="g_enum_info_get_error_domain ()" link="gi-GIEnumInfo.html#g-enum-info-get-error-domain" since="1.30"/>
     <keyword type="function" name="g_value_info_get_value ()" link="gi-GIEnumInfo.html#g-value-info-get-value"/>
     <keyword type="typedef" name="GIEnumInfo" link="gi-GIEnumInfo.html#GIEnumInfo"/>
     <keyword type="macro" name="GI_IS_STRUCT_INFO()" link="gi-GIStructInfo.html#GI-IS-STRUCT-INFO:CAPS"/>
+    <keyword type="function" name="g_struct_info_find_field ()" link="gi-GIStructInfo.html#g-struct-info-find-field" since="1.46"/>
     <keyword type="function" name="g_struct_info_get_alignment ()" link="gi-GIStructInfo.html#g-struct-info-get-alignment"/>
     <keyword type="function" name="g_struct_info_get_size ()" link="gi-GIStructInfo.html#g-struct-info-get-size"/>
     <keyword type="function" name="g_struct_info_is_gtype_struct ()" link="gi-GIStructInfo.html#g-struct-info-is-gtype-struct"/>
     <keyword type="function" name="g_arg_info_is_caller_allocates ()" link="gi-GIArgInfo.html#g-arg-info-is-caller-allocates"/>
     <keyword type="function" name="g_arg_info_is_optional ()" link="gi-GIArgInfo.html#g-arg-info-is-optional"/>
     <keyword type="function" name="g_arg_info_is_return_value ()" link="gi-GIArgInfo.html#g-arg-info-is-return-value"/>
-    <keyword type="function" name="g_arg_info_is_skip ()" link="gi-GIArgInfo.html#g-arg-info-is-skip" since="1.29.0"/>
+    <keyword type="function" name="g_arg_info_is_skip ()" link="gi-GIArgInfo.html#g-arg-info-is-skip" since="1.30"/>
     <keyword type="typedef" name="GIArgInfo" link="gi-GIArgInfo.html#GIArgInfo"/>
     <keyword type="enum" name="enum GIDirection" link="gi-GIArgInfo.html#GIDirection"/>
     <keyword type="enum" name="enum GIScopeType" link="gi-GIArgInfo.html#GIScopeType"/>
     <keyword type="enum" name="enum GITransfer" link="gi-GIArgInfo.html#GITransfer"/>
     <keyword type="macro" name="GI_IS_CONSTANT_INFO()" link="gi-GIConstantInfo.html#GI-IS-CONSTANT-INFO:CAPS"/>
-    <keyword type="function" name="g_constant_info_free_value ()" link="gi-GIConstantInfo.html#g-constant-info-free-value" since="1.30.1"/>
+    <keyword type="function" name="g_constant_info_free_value ()" link="gi-GIConstantInfo.html#g-constant-info-free-value" since="1.32"/>
     <keyword type="function" name="g_constant_info_get_type ()" link="gi-GIConstantInfo.html#g-constant-info-get-type"/>
     <keyword type="function" name="g_constant_info_get_value ()" link="gi-GIConstantInfo.html#g-constant-info-get-value"/>
     <keyword type="typedef" name="GIConstantInfo" link="gi-GIConstantInfo.html#GIConstantInfo"/>
     <keyword type="function" name="g_property_info_get_type ()" link="gi-GIPropertyInfo.html#g-property-info-get-type"/>
     <keyword type="typedef" name="GIPropertyInfo" link="gi-GIPropertyInfo.html#GIPropertyInfo"/>
     <keyword type="macro" name="GI_IS_TYPE_INFO()" link="gi-GITypeInfo.html#GI-IS-TYPE-INFO:CAPS"/>
-    <keyword type="function" name="g_type_tag_to_string ()" link="gi-GITypeInfo.html#g-type-tag-to-string"/>
-    <keyword type="function" name="g_info_type_to_string ()" link="gi-GITypeInfo.html#g-info-type-to-string"/>
     <keyword type="function" name="g_type_info_is_pointer ()" link="gi-GITypeInfo.html#g-type-info-is-pointer"/>
     <keyword type="function" name="g_type_info_get_tag ()" link="gi-GITypeInfo.html#g-type-info-get-tag"/>
     <keyword type="function" name="g_type_info_get_param_type ()" link="gi-GITypeInfo.html#g-type-info-get-param-type"/>
     <keyword type="function" name="g_type_info_get_array_type ()" link="gi-GITypeInfo.html#g-type-info-get-array-type"/>
     <keyword type="typedef" name="GITypeInfo" link="gi-GITypeInfo.html#GITypeInfo"/>
     <keyword type="typedef" name="GIValueInfo" link="gi-GIValueInfo.html#GIValueInfo"/>
-    <keyword type="function" name="g_typelib_new_from_memory ()" link="gi-gitypelib.html#g-typelib-new-from-memory"/>
-    <keyword type="function" name="g_typelib_new_from_const_memory ()" link="gi-gitypelib.html#g-typelib-new-from-const-memory"/>
-    <keyword type="function" name="g_typelib_new_from_mapped_file ()" link="gi-gitypelib.html#g-typelib-new-from-mapped-file"/>
-    <keyword type="function" name="g_typelib_free ()" link="gi-gitypelib.html#g-typelib-free"/>
-    <keyword type="function" name="g_typelib_symbol ()" link="gi-gitypelib.html#g-typelib-symbol"/>
-    <keyword type="function" name="g_typelib_get_namespace ()" link="gi-gitypelib.html#g-typelib-get-namespace"/>
-    <keyword type="struct" name="GITypelib" link="gi-gitypelib.html#GITypelib"/>
-    <keyword type="function" name="g_typelib_get_dir_entry ()" link="gi-GITypelib.html#g-typelib-get-dir-entry"/>
-    <keyword type="function" name="g_typelib_get_dir_entry_by_name ()" link="gi-GITypelib.html#g-typelib-get-dir-entry-by-name"/>
-    <keyword type="function" name="g_typelib_get_dir_entry_by_gtype_name ()" link="gi-GITypelib.html#g-typelib-get-dir-entry-by-gtype-name"/>
-    <keyword type="function" name="g_typelib_get_dir_entry_by_error_domain ()" link="gi-GITypelib.html#g-typelib-get-dir-entry-by-error-domain"/>
-    <keyword type="function" name="g_typelib_matches_gtype_name_prefix ()" link="gi-GITypelib.html#g-typelib-matches-gtype-name-prefix"/>
-    <keyword type="function" name="g_typelib_check_sanity ()" link="gi-GITypelib.html#g-typelib-check-sanity"/>
-    <keyword type="macro" name="g_typelib_get_string()" link="gi-GITypelib.html#g-typelib-get-string"/>
-    <keyword type="function" name="g_typelib_error_quark ()" link="gi-GITypelib.html#g-typelib-error-quark"/>
-    <keyword type="function" name="g_typelib_validate ()" link="gi-GITypelib.html#g-typelib-validate"/>
-    <keyword type="macro" name="G_IR_MAGIC" link="gi-GITypelib.html#G-IR-MAGIC:CAPS"/>
-    <keyword type="enum" name="enum GTypelibBlobType" link="gi-GITypelib.html#GTypelibBlobType"/>
-    <keyword type="struct" name="Header" link="gi-GITypelib.html#Header"/>
-    <keyword type="enum" name="enum SectionType" link="gi-GITypelib.html#SectionType"/>
-    <keyword type="struct" name="Section" link="gi-GITypelib.html#Section"/>
-    <keyword type="struct" name="DirEntry" link="gi-GITypelib.html#DirEntry"/>
-    <keyword type="struct" name="SimpleTypeBlobFlags" link="gi-GITypelib.html#SimpleTypeBlobFlags"/>
-    <keyword type="union" name="SimpleTypeBlob" link="gi-GITypelib.html#SimpleTypeBlob"/>
-    <keyword type="struct" name="ArgBlob" link="gi-GITypelib.html#ArgBlob"/>
-    <keyword type="struct" name="SignatureBlob" link="gi-GITypelib.html#SignatureBlob"/>
-    <keyword type="struct" name="CommonBlob" link="gi-GITypelib.html#CommonBlob"/>
-    <keyword type="struct" name="FunctionBlob" link="gi-GITypelib.html#FunctionBlob"/>
-    <keyword type="struct" name="CallbackBlob" link="gi-GITypelib.html#CallbackBlob"/>
-    <keyword type="struct" name="InterfaceTypeBlob" link="gi-GITypelib.html#InterfaceTypeBlob"/>
-    <keyword type="union" name="ArrayTypeDimension" link="gi-GITypelib.html#ArrayTypeDimension"/>
-    <keyword type="struct" name="ArrayTypeBlob" link="gi-GITypelib.html#ArrayTypeBlob"/>
-    <keyword type="struct" name="ParamTypeBlob" link="gi-GITypelib.html#ParamTypeBlob"/>
-    <keyword type="struct" name="ErrorTypeBlob" link="gi-GITypelib.html#ErrorTypeBlob"/>
-    <keyword type="struct" name="ValueBlob" link="gi-GITypelib.html#ValueBlob"/>
-    <keyword type="struct" name="FieldBlob" link="gi-GITypelib.html#FieldBlob"/>
-    <keyword type="struct" name="RegisteredTypeBlob" link="gi-GITypelib.html#RegisteredTypeBlob"/>
-    <keyword type="struct" name="StructBlob" link="gi-GITypelib.html#StructBlob"/>
-    <keyword type="struct" name="UnionBlob" link="gi-GITypelib.html#UnionBlob"/>
-    <keyword type="struct" name="EnumBlob" link="gi-GITypelib.html#EnumBlob"/>
-    <keyword type="struct" name="PropertyBlob" link="gi-GITypelib.html#PropertyBlob"/>
-    <keyword type="struct" name="SignalBlob" link="gi-GITypelib.html#SignalBlob"/>
-    <keyword type="struct" name="VFuncBlob" link="gi-GITypelib.html#VFuncBlob"/>
-    <keyword type="struct" name="ObjectBlob" link="gi-GITypelib.html#ObjectBlob"/>
-    <keyword type="struct" name="InterfaceBlob" link="gi-GITypelib.html#InterfaceBlob"/>
-    <keyword type="struct" name="ConstantBlob" link="gi-GITypelib.html#ConstantBlob"/>
-    <keyword type="struct" name="AttributeBlob" link="gi-GITypelib.html#AttributeBlob"/>
-    <keyword type="enum" name="enum GITypelibError" link="gi-GITypelib.html#GITypelibError"/>
-    <keyword type="macro" name="G_TYPELIB_ERROR" link="gi-GITypelib.html#G-TYPELIB-ERROR:CAPS"/>
-    <keyword type="struct" name="GITypelibHashBuilder" link="gi-GITypelib.html#GITypelibHashBuilder"/>
     <keyword type="function" name="GIFFIClosureCallback ()" link="gi-girffi.html#GIFFIClosureCallback"/>
     <keyword type="function" name="gi_type_tag_get_ffi_type ()" link="gi-girffi.html#gi-type-tag-get-ffi-type"/>
     <keyword type="function" name="g_type_info_get_ffi_type ()" link="gi-girffi.html#g-type-info-get-ffi-type"/>
     <keyword type="function" name="g_callable_info_free_closure ()" link="gi-girffi.html#g-callable-info-free-closure"/>
     <keyword type="struct" name="struct GIFunctionInvoker" link="gi-girffi.html#GIFunctionInvoker"/>
     <keyword type="typedef" name="GIFFIReturnValue" link="gi-girffi.html#GIFFIReturnValue"/>
+    <keyword type="function" name="g_typelib_get_dir_entry ()" link="gi-GITypelib-Internals.html#g-typelib-get-dir-entry"/>
+    <keyword type="function" name="g_typelib_get_dir_entry_by_name ()" link="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-name"/>
+    <keyword type="function" name="g_typelib_get_dir_entry_by_gtype_name ()" link="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-gtype-name"/>
+    <keyword type="function" name="g_typelib_get_dir_entry_by_error_domain ()" link="gi-GITypelib-Internals.html#g-typelib-get-dir-entry-by-error-domain"/>
+    <keyword type="function" name="g_typelib_matches_gtype_name_prefix ()" link="gi-GITypelib-Internals.html#g-typelib-matches-gtype-name-prefix"/>
+    <keyword type="function" name="g_typelib_check_sanity ()" link="gi-GITypelib-Internals.html#g-typelib-check-sanity"/>
+    <keyword type="macro" name="g_typelib_get_string()" link="gi-GITypelib-Internals.html#g-typelib-get-string"/>
+    <keyword type="function" name="g_typelib_error_quark ()" link="gi-GITypelib-Internals.html#g-typelib-error-quark"/>
+    <keyword type="function" name="g_typelib_validate ()" link="gi-GITypelib-Internals.html#g-typelib-validate"/>
+    <keyword type="macro" name="G_IR_MAGIC" link="gi-GITypelib-Internals.html#G-IR-MAGIC:CAPS"/>
+    <keyword type="enum" name="enum GTypelibBlobType" link="gi-GITypelib-Internals.html#GTypelibBlobType"/>
+    <keyword type="struct" name="Header" link="gi-GITypelib-Internals.html#Header"/>
+    <keyword type="enum" name="enum SectionType" link="gi-GITypelib-Internals.html#SectionType"/>
+    <keyword type="struct" name="Section" link="gi-GITypelib-Internals.html#Section"/>
+    <keyword type="struct" name="DirEntry" link="gi-GITypelib-Internals.html#DirEntry"/>
+    <keyword type="struct" name="SimpleTypeBlobFlags" link="gi-GITypelib-Internals.html#SimpleTypeBlobFlags"/>
+    <keyword type="union" name="SimpleTypeBlob" link="gi-GITypelib-Internals.html#SimpleTypeBlob"/>
+    <keyword type="struct" name="ArgBlob" link="gi-GITypelib-Internals.html#ArgBlob"/>
+    <keyword type="struct" name="SignatureBlob" link="gi-GITypelib-Internals.html#SignatureBlob"/>
+    <keyword type="struct" name="CommonBlob" link="gi-GITypelib-Internals.html#CommonBlob"/>
+    <keyword type="struct" name="FunctionBlob" link="gi-GITypelib-Internals.html#FunctionBlob"/>
+    <keyword type="struct" name="CallbackBlob" link="gi-GITypelib-Internals.html#CallbackBlob"/>
+    <keyword type="struct" name="InterfaceTypeBlob" link="gi-GITypelib-Internals.html#InterfaceTypeBlob"/>
+    <keyword type="union" name="ArrayTypeDimension" link="gi-GITypelib-Internals.html#ArrayTypeDimension"/>
+    <keyword type="struct" name="ArrayTypeBlob" link="gi-GITypelib-Internals.html#ArrayTypeBlob"/>
+    <keyword type="struct" name="ParamTypeBlob" link="gi-GITypelib-Internals.html#ParamTypeBlob"/>
+    <keyword type="struct" name="ErrorTypeBlob" link="gi-GITypelib-Internals.html#ErrorTypeBlob"/>
+    <keyword type="struct" name="ValueBlob" link="gi-GITypelib-Internals.html#ValueBlob"/>
+    <keyword type="struct" name="FieldBlob" link="gi-GITypelib-Internals.html#FieldBlob"/>
+    <keyword type="struct" name="RegisteredTypeBlob" link="gi-GITypelib-Internals.html#RegisteredTypeBlob"/>
+    <keyword type="struct" name="StructBlob" link="gi-GITypelib-Internals.html#StructBlob"/>
+    <keyword type="struct" name="UnionBlob" link="gi-GITypelib-Internals.html#UnionBlob"/>
+    <keyword type="struct" name="EnumBlob" link="gi-GITypelib-Internals.html#EnumBlob"/>
+    <keyword type="struct" name="PropertyBlob" link="gi-GITypelib-Internals.html#PropertyBlob"/>
+    <keyword type="struct" name="SignalBlob" link="gi-GITypelib-Internals.html#SignalBlob"/>
+    <keyword type="struct" name="VFuncBlob" link="gi-GITypelib-Internals.html#VFuncBlob"/>
+    <keyword type="struct" name="ObjectBlob" link="gi-GITypelib-Internals.html#ObjectBlob"/>
+    <keyword type="struct" name="InterfaceBlob" link="gi-GITypelib-Internals.html#InterfaceBlob"/>
+    <keyword type="struct" name="ConstantBlob" link="gi-GITypelib-Internals.html#ConstantBlob"/>
+    <keyword type="struct" name="AttributeBlob" link="gi-GITypelib-Internals.html#AttributeBlob"/>
+    <keyword type="enum" name="enum GITypelibError" link="gi-GITypelib-Internals.html#GITypelibError"/>
+    <keyword type="macro" name="G_TYPELIB_ERROR" link="gi-GITypelib-Internals.html#G-TYPELIB-ERROR:CAPS"/>
+    <keyword type="struct" name="GITypelibHashBuilder" link="gi-GITypelib-Internals.html#GITypelibHashBuilder"/>
     <keyword type="constant" name="G_IREPOSITORY_LOAD_FLAG_LAZY" link="GIRepository.html#G-IREPOSITORY-LOAD-FLAG-LAZY:CAPS"/>
     <keyword type="constant" name="G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND" link="GIRepository.html#G-IREPOSITORY-ERROR-TYPELIB-NOT-FOUND:CAPS"/>
     <keyword type="constant" name="G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH" link="GIRepository.html#G-IREPOSITORY-ERROR-NAMESPACE-MISMATCH:CAPS"/>
     <keyword type="constant" name="G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT" link="GIRepository.html#G-IREPOSITORY-ERROR-NAMESPACE-VERSION-CONFLICT:CAPS"/>
     <keyword type="constant" name="G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND" link="GIRepository.html#G-IREPOSITORY-ERROR-LIBRARY-NOT-FOUND:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_VOID" link="gi-common-types.html#GI-TYPE-TAG-VOID:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_BOOLEAN" link="gi-common-types.html#GI-TYPE-TAG-BOOLEAN:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_INT8" link="gi-common-types.html#GI-TYPE-TAG-INT8:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_UINT8" link="gi-common-types.html#GI-TYPE-TAG-UINT8:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_INT16" link="gi-common-types.html#GI-TYPE-TAG-INT16:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_UINT16" link="gi-common-types.html#GI-TYPE-TAG-UINT16:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_INT32" link="gi-common-types.html#GI-TYPE-TAG-INT32:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_UINT32" link="gi-common-types.html#GI-TYPE-TAG-UINT32:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_INT64" link="gi-common-types.html#GI-TYPE-TAG-INT64:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_UINT64" link="gi-common-types.html#GI-TYPE-TAG-UINT64:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_FLOAT" link="gi-common-types.html#GI-TYPE-TAG-FLOAT:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_DOUBLE" link="gi-common-types.html#GI-TYPE-TAG-DOUBLE:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_GTYPE" link="gi-common-types.html#GI-TYPE-TAG-GTYPE:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_UTF8" link="gi-common-types.html#GI-TYPE-TAG-UTF8:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_FILENAME" link="gi-common-types.html#GI-TYPE-TAG-FILENAME:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_ARRAY" link="gi-common-types.html#GI-TYPE-TAG-ARRAY:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_INTERFACE" link="gi-common-types.html#GI-TYPE-TAG-INTERFACE:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_GLIST" link="gi-common-types.html#GI-TYPE-TAG-GLIST:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_GSLIST" link="gi-common-types.html#GI-TYPE-TAG-GSLIST:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_GHASH" link="gi-common-types.html#GI-TYPE-TAG-GHASH:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_ERROR" link="gi-common-types.html#GI-TYPE-TAG-ERROR:CAPS"/>
-    <keyword type="constant" name="GI_TYPE_TAG_UNICHAR" link="gi-common-types.html#GI-TYPE-TAG-UNICHAR:CAPS"/>
-    <keyword type="constant" name="GI_ARRAY_TYPE_C" link="gi-common-types.html#GI-ARRAY-TYPE-C:CAPS"/>
-    <keyword type="constant" name="GI_ARRAY_TYPE_ARRAY" link="gi-common-types.html#GI-ARRAY-TYPE-ARRAY:CAPS"/>
-    <keyword type="constant" name="GI_ARRAY_TYPE_PTR_ARRAY" link="gi-common-types.html#GI-ARRAY-TYPE-PTR-ARRAY:CAPS"/>
-    <keyword type="constant" name="GI_ARRAY_TYPE_BYTE_ARRAY" link="gi-common-types.html#GI-ARRAY-TYPE-BYTE-ARRAY:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_INVALID" link="gi-GIBaseInfo.html#GI-INFO-TYPE-INVALID:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_FUNCTION" link="gi-GIBaseInfo.html#GI-INFO-TYPE-FUNCTION:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_CALLBACK" link="gi-GIBaseInfo.html#GI-INFO-TYPE-CALLBACK:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_STRUCT" link="gi-GIBaseInfo.html#GI-INFO-TYPE-STRUCT:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_BOXED" link="gi-GIBaseInfo.html#GI-INFO-TYPE-BOXED:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_ENUM" link="gi-GIBaseInfo.html#GI-INFO-TYPE-ENUM:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_FLAGS" link="gi-GIBaseInfo.html#GI-INFO-TYPE-FLAGS:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_OBJECT" link="gi-GIBaseInfo.html#GI-INFO-TYPE-OBJECT:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_INTERFACE" link="gi-GIBaseInfo.html#GI-INFO-TYPE-INTERFACE:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_CONSTANT" link="gi-GIBaseInfo.html#GI-INFO-TYPE-CONSTANT:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_INVALID_0" link="gi-GIBaseInfo.html#GI-INFO-TYPE-INVALID-0:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_UNION" link="gi-GIBaseInfo.html#GI-INFO-TYPE-UNION:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_VALUE" link="gi-GIBaseInfo.html#GI-INFO-TYPE-VALUE:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_SIGNAL" link="gi-GIBaseInfo.html#GI-INFO-TYPE-SIGNAL:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_VFUNC" link="gi-GIBaseInfo.html#GI-INFO-TYPE-VFUNC:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_PROPERTY" link="gi-GIBaseInfo.html#GI-INFO-TYPE-PROPERTY:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_FIELD" link="gi-GIBaseInfo.html#GI-INFO-TYPE-FIELD:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_ARG" link="gi-GIBaseInfo.html#GI-INFO-TYPE-ARG:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_TYPE" link="gi-GIBaseInfo.html#GI-INFO-TYPE-TYPE:CAPS"/>
-    <keyword type="constant" name="GI_INFO_TYPE_UNRESOLVED" link="gi-GIBaseInfo.html#GI-INFO-TYPE-UNRESOLVED:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_VOID" link="gi-Common-Types.html#GI-TYPE-TAG-VOID:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_BOOLEAN" link="gi-Common-Types.html#GI-TYPE-TAG-BOOLEAN:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_INT8" link="gi-Common-Types.html#GI-TYPE-TAG-INT8:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_UINT8" link="gi-Common-Types.html#GI-TYPE-TAG-UINT8:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_INT16" link="gi-Common-Types.html#GI-TYPE-TAG-INT16:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_UINT16" link="gi-Common-Types.html#GI-TYPE-TAG-UINT16:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_INT32" link="gi-Common-Types.html#GI-TYPE-TAG-INT32:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_UINT32" link="gi-Common-Types.html#GI-TYPE-TAG-UINT32:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_INT64" link="gi-Common-Types.html#GI-TYPE-TAG-INT64:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_UINT64" link="gi-Common-Types.html#GI-TYPE-TAG-UINT64:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_FLOAT" link="gi-Common-Types.html#GI-TYPE-TAG-FLOAT:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_DOUBLE" link="gi-Common-Types.html#GI-TYPE-TAG-DOUBLE:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_GTYPE" link="gi-Common-Types.html#GI-TYPE-TAG-GTYPE:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_UTF8" link="gi-Common-Types.html#GI-TYPE-TAG-UTF8:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_FILENAME" link="gi-Common-Types.html#GI-TYPE-TAG-FILENAME:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_ARRAY" link="gi-Common-Types.html#GI-TYPE-TAG-ARRAY:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_INTERFACE" link="gi-Common-Types.html#GI-TYPE-TAG-INTERFACE:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_GLIST" link="gi-Common-Types.html#GI-TYPE-TAG-GLIST:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_GSLIST" link="gi-Common-Types.html#GI-TYPE-TAG-GSLIST:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_GHASH" link="gi-Common-Types.html#GI-TYPE-TAG-GHASH:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_ERROR" link="gi-Common-Types.html#GI-TYPE-TAG-ERROR:CAPS"/>
+    <keyword type="constant" name="GI_TYPE_TAG_UNICHAR" link="gi-Common-Types.html#GI-TYPE-TAG-UNICHAR:CAPS"/>
+    <keyword type="constant" name="GI_ARRAY_TYPE_C" link="gi-Common-Types.html#GI-ARRAY-TYPE-C:CAPS"/>
+    <keyword type="constant" name="GI_ARRAY_TYPE_ARRAY" link="gi-Common-Types.html#GI-ARRAY-TYPE-ARRAY:CAPS"/>
+    <keyword type="constant" name="GI_ARRAY_TYPE_PTR_ARRAY" link="gi-Common-Types.html#GI-ARRAY-TYPE-PTR-ARRAY:CAPS"/>
+    <keyword type="constant" name="GI_ARRAY_TYPE_BYTE_ARRAY" link="gi-Common-Types.html#GI-ARRAY-TYPE-BYTE-ARRAY:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_INVALID" link="GIBaseInfo.html#GI-INFO-TYPE-INVALID:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_FUNCTION" link="GIBaseInfo.html#GI-INFO-TYPE-FUNCTION:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_CALLBACK" link="GIBaseInfo.html#GI-INFO-TYPE-CALLBACK:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_STRUCT" link="GIBaseInfo.html#GI-INFO-TYPE-STRUCT:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_BOXED" link="GIBaseInfo.html#GI-INFO-TYPE-BOXED:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_ENUM" link="GIBaseInfo.html#GI-INFO-TYPE-ENUM:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_FLAGS" link="GIBaseInfo.html#GI-INFO-TYPE-FLAGS:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_OBJECT" link="GIBaseInfo.html#GI-INFO-TYPE-OBJECT:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_INTERFACE" link="GIBaseInfo.html#GI-INFO-TYPE-INTERFACE:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_CONSTANT" link="GIBaseInfo.html#GI-INFO-TYPE-CONSTANT:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_INVALID_0" link="GIBaseInfo.html#GI-INFO-TYPE-INVALID-0:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_UNION" link="GIBaseInfo.html#GI-INFO-TYPE-UNION:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_VALUE" link="GIBaseInfo.html#GI-INFO-TYPE-VALUE:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_SIGNAL" link="GIBaseInfo.html#GI-INFO-TYPE-SIGNAL:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_VFUNC" link="GIBaseInfo.html#GI-INFO-TYPE-VFUNC:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_PROPERTY" link="GIBaseInfo.html#GI-INFO-TYPE-PROPERTY:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_FIELD" link="GIBaseInfo.html#GI-INFO-TYPE-FIELD:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_ARG" link="GIBaseInfo.html#GI-INFO-TYPE-ARG:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_TYPE" link="GIBaseInfo.html#GI-INFO-TYPE-TYPE:CAPS"/>
+    <keyword type="constant" name="GI_INFO_TYPE_UNRESOLVED" link="GIBaseInfo.html#GI-INFO-TYPE-UNRESOLVED:CAPS"/>
     <keyword type="constant" name="GI_FUNCTION_IS_METHOD" link="gi-GIFunctionInfo.html#GI-FUNCTION-IS-METHOD:CAPS"/>
     <keyword type="constant" name="GI_FUNCTION_IS_CONSTRUCTOR" link="gi-GIFunctionInfo.html#GI-FUNCTION-IS-CONSTRUCTOR:CAPS"/>
     <keyword type="constant" name="GI_FUNCTION_IS_GETTER" link="gi-GIFunctionInfo.html#GI-FUNCTION-IS-GETTER:CAPS"/>
     <keyword type="constant" name="GI_TRANSFER_EVERYTHING" link="gi-GIArgInfo.html#GI-TRANSFER-EVERYTHING:CAPS"/>
     <keyword type="constant" name="GI_FIELD_IS_READABLE" link="gi-GIFieldInfo.html#GI-FIELD-IS-READABLE:CAPS"/>
     <keyword type="constant" name="GI_FIELD_IS_WRITABLE" link="gi-GIFieldInfo.html#GI-FIELD-IS-WRITABLE:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_INVALID" link="gi-GITypelib.html#BLOB-TYPE-INVALID:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_FUNCTION" link="gi-GITypelib.html#BLOB-TYPE-FUNCTION:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_CALLBACK" link="gi-GITypelib.html#BLOB-TYPE-CALLBACK:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_STRUCT" link="gi-GITypelib.html#BLOB-TYPE-STRUCT:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_BOXED" link="gi-GITypelib.html#BLOB-TYPE-BOXED:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_ENUM" link="gi-GITypelib.html#BLOB-TYPE-ENUM:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_FLAGS" link="gi-GITypelib.html#BLOB-TYPE-FLAGS:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_OBJECT" link="gi-GITypelib.html#BLOB-TYPE-OBJECT:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_INTERFACE" link="gi-GITypelib.html#BLOB-TYPE-INTERFACE:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_CONSTANT" link="gi-GITypelib.html#BLOB-TYPE-CONSTANT:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_INVALID_0" link="gi-GITypelib.html#BLOB-TYPE-INVALID-0:CAPS"/>
-    <keyword type="constant" name="BLOB_TYPE_UNION" link="gi-GITypelib.html#BLOB-TYPE-UNION:CAPS"/>
-    <keyword type="constant" name="GI_SECTION_END" link="gi-GITypelib.html#GI-SECTION-END:CAPS"/>
-    <keyword type="constant" name="GI_SECTION_DIRECTORY_INDEX" link="gi-GITypelib.html#GI-SECTION-DIRECTORY-INDEX:CAPS"/>
-    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID" link="gi-GITypelib.html#G-TYPELIB-ERROR-INVALID:CAPS"/>
-    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_HEADER" link="gi-GITypelib.html#G-TYPELIB-ERROR-INVALID-HEADER:CAPS"/>
-    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_DIRECTORY" link="gi-GITypelib.html#G-TYPELIB-ERROR-INVALID-DIRECTORY:CAPS"/>
-    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_ENTRY" link="gi-GITypelib.html#G-TYPELIB-ERROR-INVALID-ENTRY:CAPS"/>
-    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_BLOB" link="gi-GITypelib.html#G-TYPELIB-ERROR-INVALID-BLOB:CAPS"/>
-    <keyword type="member" name="Header.magic" link="gi-GITypelib.html#Header.magic"/>
-    <keyword type="member" name="Header.major-version" link="gi-GITypelib.html#Header.major-version"/>
-    <keyword type="member" name="Header.minor-version" link="gi-GITypelib.html#Header.minor-version"/>
-    <keyword type="member" name="Header.reserved" link="gi-GITypelib.html#Header.reserved"/>
-    <keyword type="member" name="Header.n-entries" link="gi-GITypelib.html#Header.n-entries"/>
-    <keyword type="member" name="Header.n-local-entries" link="gi-GITypelib.html#Header.n-local-entries"/>
-    <keyword type="member" name="Header.directory" link="gi-GITypelib.html#Header.directory"/>
-    <keyword type="member" name="Header.n-attributes" link="gi-GITypelib.html#Header.n-attributes"/>
-    <keyword type="member" name="Header.attributes" link="gi-GITypelib.html#Header.attributes"/>
-    <keyword type="member" name="Header.dependencies" link="gi-GITypelib.html#Header.dependencies"/>
-    <keyword type="member" name="Header.size" link="gi-GITypelib.html#Header.size"/>
-    <keyword type="member" name="Header.namespace" link="gi-GITypelib.html#Header.namespace"/>
-    <keyword type="member" name="Header.nsversion" link="gi-GITypelib.html#Header.nsversion"/>
-    <keyword type="member" name="Header.shared-library" link="gi-GITypelib.html#Header.shared-library"/>
-    <keyword type="member" name="Header.c-prefix" link="gi-GITypelib.html#Header.c-prefix"/>
-    <keyword type="member" name="Header.entry-blob-size" link="gi-GITypelib.html#Header.entry-blob-size"/>
-    <keyword type="member" name="Header.function-blob-size" link="gi-GITypelib.html#Header.function-blob-size"/>
-    <keyword type="member" name="Header.callback-blob-size" link="gi-GITypelib.html#Header.callback-blob-size"/>
-    <keyword type="member" name="Header.signal-blob-size" link="gi-GITypelib.html#Header.signal-blob-size"/>
-    <keyword type="member" name="Header.vfunc-blob-size" link="gi-GITypelib.html#Header.vfunc-blob-size"/>
-    <keyword type="member" name="Header.arg-blob-size" link="gi-GITypelib.html#Header.arg-blob-size"/>
-    <keyword type="member" name="Header.property-blob-size" link="gi-GITypelib.html#Header.property-blob-size"/>
-    <keyword type="member" name="Header.field-blob-size" link="gi-GITypelib.html#Header.field-blob-size"/>
-    <keyword type="member" name="Header.value-blob-size" link="gi-GITypelib.html#Header.value-blob-size"/>
-    <keyword type="member" name="Header.attribute-blob-size" link="gi-GITypelib.html#Header.attribute-blob-size"/>
-    <keyword type="member" name="Header.constant-blob-size" link="gi-GITypelib.html#Header.constant-blob-size"/>
-    <keyword type="member" name="Header.error-domain-blob-size" link="gi-GITypelib.html#Header.error-domain-blob-size"/>
-    <keyword type="member" name="Header.signature-blob-size" link="gi-GITypelib.html#Header.signature-blob-size"/>
-    <keyword type="member" name="Header.enum-blob-size" link="gi-GITypelib.html#Header.enum-blob-size"/>
-    <keyword type="member" name="Header.struct-blob-size" link="gi-GITypelib.html#Header.struct-blob-size"/>
-    <keyword type="member" name="Header.object-blob-size" link="gi-GITypelib.html#Header.object-blob-size"/>
-    <keyword type="member" name="Header.interface-blob-size" link="gi-GITypelib.html#Header.interface-blob-size"/>
-    <keyword type="member" name="Header.union-blob-size" link="gi-GITypelib.html#Header.union-blob-size"/>
-    <keyword type="member" name="Header.sections" link="gi-GITypelib.html#Header.sections"/>
-    <keyword type="member" name="Header.padding" link="gi-GITypelib.html#Header.padding"/>
-    <keyword type="member" name="Section.id" link="gi-GITypelib.html#Section.id"/>
-    <keyword type="member" name="Section.offset" link="gi-GITypelib.html#Section.offset"/>
-    <keyword type="member" name="DirEntry.blob-type" link="gi-GITypelib.html#DirEntry.blob-type"/>
-    <keyword type="member" name="DirEntry.local" link="gi-GITypelib.html#DirEntry.local"/>
-    <keyword type="member" name="DirEntry.reserved" link="gi-GITypelib.html#DirEntry.reserved"/>
-    <keyword type="member" name="DirEntry.name" link="gi-GITypelib.html#DirEntry.name"/>
-    <keyword type="member" name="DirEntry.offset" link="gi-GITypelib.html#DirEntry.offset"/>
-    <keyword type="member" name="SimpleTypeBlobFlags.reserved" link="gi-GITypelib.html#SimpleTypeBlobFlags.reserved"/>
-    <keyword type="member" name="SimpleTypeBlobFlags.reserved2" link="gi-GITypelib.html#SimpleTypeBlobFlags.reserved2"/>
-    <keyword type="member" name="SimpleTypeBlobFlags.pointer" link="gi-GITypelib.html#SimpleTypeBlobFlags.pointer"/>
-    <keyword type="member" name="SimpleTypeBlobFlags.reserved3" link="gi-GITypelib.html#SimpleTypeBlobFlags.reserved3"/>
-    <keyword type="member" name="SimpleTypeBlobFlags.tag" link="gi-GITypelib.html#SimpleTypeBlobFlags.tag"/>
-    <keyword type="member" name="ArgBlob.name" link="gi-GITypelib.html#ArgBlob.name"/>
-    <keyword type="member" name="ArgBlob.in" link="gi-GITypelib.html#ArgBlob.in"/>
-    <keyword type="member" name="ArgBlob.out" link="gi-GITypelib.html#ArgBlob.out"/>
-    <keyword type="member" name="ArgBlob.caller-allocates" link="gi-GITypelib.html#ArgBlob.caller-allocates"/>
-    <keyword type="member" name="ArgBlob.nullable" link="gi-GITypelib.html#ArgBlob.nullable"/>
-    <keyword type="member" name="ArgBlob.optional" link="gi-GITypelib.html#ArgBlob.optional"/>
-    <keyword type="member" name="ArgBlob.transfer-ownership" link="gi-GITypelib.html#ArgBlob.transfer-ownership"/>
-    <keyword type="member" name="ArgBlob.transfer-container-ownership" link="gi-GITypelib.html#ArgBlob.transfer-container-ownership"/>
-    <keyword type="member" name="ArgBlob.return-value" link="gi-GITypelib.html#ArgBlob.return-value"/>
-    <keyword type="member" name="ArgBlob.scope" link="gi-GITypelib.html#ArgBlob.scope"/>
-    <keyword type="member" name="ArgBlob.skip" link="gi-GITypelib.html#ArgBlob.skip"/>
-    <keyword type="member" name="ArgBlob.reserved" link="gi-GITypelib.html#ArgBlob.reserved"/>
-    <keyword type="member" name="ArgBlob.closure" link="gi-GITypelib.html#ArgBlob.closure"/>
-    <keyword type="member" name="ArgBlob.destroy" link="gi-GITypelib.html#ArgBlob.destroy"/>
-    <keyword type="member" name="ArgBlob.padding" link="gi-GITypelib.html#ArgBlob.padding"/>
-    <keyword type="member" name="ArgBlob.arg-type" link="gi-GITypelib.html#ArgBlob.arg-type"/>
-    <keyword type="member" name="SignatureBlob.return-type" link="gi-GITypelib.html#SignatureBlob.return-type"/>
-    <keyword type="member" name="SignatureBlob.may-return-null" link="gi-GITypelib.html#SignatureBlob.may-return-null"/>
-    <keyword type="member" name="SignatureBlob.caller-owns-return-value" link="gi-GITypelib.html#SignatureBlob.caller-owns-return-value"/>
-    <keyword type="member" name="SignatureBlob.caller-owns-return-container" link="gi-GITypelib.html#SignatureBlob.caller-owns-return-container"/>
-    <keyword type="member" name="SignatureBlob.skip-return" link="gi-GITypelib.html#SignatureBlob.skip-return"/>
-    <keyword type="member" name="SignatureBlob.instance-transfer-ownership" link="gi-GITypelib.html#SignatureBlob.instance-transfer-ownership"/>
-    <keyword type="member" name="SignatureBlob.throws" link="gi-GITypelib.html#SignatureBlob.throws"/>
-    <keyword type="member" name="SignatureBlob.reserved" link="gi-GITypelib.html#SignatureBlob.reserved"/>
-    <keyword type="member" name="SignatureBlob.n-arguments" link="gi-GITypelib.html#SignatureBlob.n-arguments"/>
-    <keyword type="member" name="SignatureBlob.arguments" link="gi-GITypelib.html#SignatureBlob.arguments"/>
-    <keyword type="member" name="CommonBlob.blob-type" link="gi-GITypelib.html#CommonBlob.blob-type"/>
-    <keyword type="member" name="CommonBlob.deprecated" link="gi-GITypelib.html#CommonBlob.deprecated"/>
-    <keyword type="member" name="CommonBlob.reserved" link="gi-GITypelib.html#CommonBlob.reserved"/>
-    <keyword type="member" name="CommonBlob.name" link="gi-GITypelib.html#CommonBlob.name"/>
-    <keyword type="member" name="FunctionBlob.blob-type" link="gi-GITypelib.html#FunctionBlob.blob-type"/>
-    <keyword type="member" name="FunctionBlob.deprecated" link="gi-GITypelib.html#FunctionBlob.deprecated"/>
-    <keyword type="member" name="FunctionBlob.setter" link="gi-GITypelib.html#FunctionBlob.setter"/>
-    <keyword type="member" name="FunctionBlob.getter" link="gi-GITypelib.html#FunctionBlob.getter"/>
-    <keyword type="member" name="FunctionBlob.constructor" link="gi-GITypelib.html#FunctionBlob.constructor"/>
-    <keyword type="member" name="FunctionBlob.wraps-vfunc" link="gi-GITypelib.html#FunctionBlob.wraps-vfunc"/>
-    <keyword type="member" name="FunctionBlob.throws" link="gi-GITypelib.html#FunctionBlob.throws"/>
-    <keyword type="member" name="FunctionBlob.index" link="gi-GITypelib.html#FunctionBlob.index"/>
-    <keyword type="member" name="FunctionBlob.name" link="gi-GITypelib.html#FunctionBlob.name"/>
-    <keyword type="member" name="FunctionBlob.symbol" link="gi-GITypelib.html#FunctionBlob.symbol"/>
-    <keyword type="member" name="FunctionBlob.signature" link="gi-GITypelib.html#FunctionBlob.signature"/>
-    <keyword type="member" name="FunctionBlob.is-static" link="gi-GITypelib.html#FunctionBlob.is-static"/>
-    <keyword type="member" name="FunctionBlob.reserved" link="gi-GITypelib.html#FunctionBlob.reserved"/>
-    <keyword type="member" name="FunctionBlob.reserved2" link="gi-GITypelib.html#FunctionBlob.reserved2"/>
-    <keyword type="member" name="CallbackBlob.blob-type" link="gi-GITypelib.html#CallbackBlob.blob-type"/>
-    <keyword type="member" name="CallbackBlob.deprecated" link="gi-GITypelib.html#CallbackBlob.deprecated"/>
-    <keyword type="member" name="CallbackBlob.reserved" link="gi-GITypelib.html#CallbackBlob.reserved"/>
-    <keyword type="member" name="CallbackBlob.name" link="gi-GITypelib.html#CallbackBlob.name"/>
-    <keyword type="member" name="CallbackBlob.signature" link="gi-GITypelib.html#CallbackBlob.signature"/>
-    <keyword type="member" name="InterfaceTypeBlob.pointer" link="gi-GITypelib.html#InterfaceTypeBlob.pointer"/>
-    <keyword type="member" name="InterfaceTypeBlob.reserved" link="gi-GITypelib.html#InterfaceTypeBlob.reserved"/>
-    <keyword type="member" name="InterfaceTypeBlob.tag" link="gi-GITypelib.html#InterfaceTypeBlob.tag"/>
-    <keyword type="member" name="InterfaceTypeBlob.reserved2" link="gi-GITypelib.html#InterfaceTypeBlob.reserved2"/>
-    <keyword type="member" name="InterfaceTypeBlob.interface" link="gi-GITypelib.html#InterfaceTypeBlob.interface"/>
-    <keyword type="member" name="ArrayTypeBlob.pointer" link="gi-GITypelib.html#ArrayTypeBlob.pointer"/>
-    <keyword type="member" name="ArrayTypeBlob.reserved" link="gi-GITypelib.html#ArrayTypeBlob.reserved"/>
-    <keyword type="member" name="ArrayTypeBlob.tag" link="gi-GITypelib.html#ArrayTypeBlob.tag"/>
-    <keyword type="member" name="ArrayTypeBlob.zero-terminated" link="gi-GITypelib.html#ArrayTypeBlob.zero-terminated"/>
-    <keyword type="member" name="ArrayTypeBlob.has-length" link="gi-GITypelib.html#ArrayTypeBlob.has-length"/>
-    <keyword type="member" name="ArrayTypeBlob.has-size" link="gi-GITypelib.html#ArrayTypeBlob.has-size"/>
-    <keyword type="member" name="ArrayTypeBlob.array-type" link="gi-GITypelib.html#ArrayTypeBlob.array-type"/>
-    <keyword type="member" name="ArrayTypeBlob.reserved2" link="gi-GITypelib.html#ArrayTypeBlob.reserved2"/>
-    <keyword type="member" name="ArrayTypeBlob.dimensions" link="gi-GITypelib.html#ArrayTypeBlob.dimensions"/>
-    <keyword type="member" name="ArrayTypeBlob.type" link="gi-GITypelib.html#ArrayTypeBlob.type"/>
-    <keyword type="member" name="ParamTypeBlob.pointer" link="gi-GITypelib.html#ParamTypeBlob.pointer"/>
-    <keyword type="member" name="ParamTypeBlob.reserved" link="gi-GITypelib.html#ParamTypeBlob.reserved"/>
-    <keyword type="member" name="ParamTypeBlob.tag" link="gi-GITypelib.html#ParamTypeBlob.tag"/>
-    <keyword type="member" name="ParamTypeBlob.reserved2" link="gi-GITypelib.html#ParamTypeBlob.reserved2"/>
-    <keyword type="member" name="ParamTypeBlob.n-types" link="gi-GITypelib.html#ParamTypeBlob.n-types"/>
-    <keyword type="member" name="ParamTypeBlob.type" link="gi-GITypelib.html#ParamTypeBlob.type"/>
-    <keyword type="member" name="ErrorTypeBlob.pointer" link="gi-GITypelib.html#ErrorTypeBlob.pointer"/>
-    <keyword type="member" name="ErrorTypeBlob.reserved" link="gi-GITypelib.html#ErrorTypeBlob.reserved"/>
-    <keyword type="member" name="ErrorTypeBlob.tag" link="gi-GITypelib.html#ErrorTypeBlob.tag"/>
-    <keyword type="member" name="ErrorTypeBlob.reserved2" link="gi-GITypelib.html#ErrorTypeBlob.reserved2"/>
-    <keyword type="member" name="ErrorTypeBlob.n-domains" link="gi-GITypelib.html#ErrorTypeBlob.n-domains"/>
-    <keyword type="member" name="ErrorTypeBlob.domains" link="gi-GITypelib.html#ErrorTypeBlob.domains"/>
-    <keyword type="member" name="ValueBlob.deprecated" link="gi-GITypelib.html#ValueBlob.deprecated"/>
-    <keyword type="member" name="ValueBlob.unsigned-value" link="gi-GITypelib.html#ValueBlob.unsigned-value"/>
-    <keyword type="member" name="ValueBlob.reserved" link="gi-GITypelib.html#ValueBlob.reserved"/>
-    <keyword type="member" name="ValueBlob.name" link="gi-GITypelib.html#ValueBlob.name"/>
-    <keyword type="member" name="ValueBlob.value" link="gi-GITypelib.html#ValueBlob.value"/>
-    <keyword type="member" name="FieldBlob.name" link="gi-GITypelib.html#FieldBlob.name"/>
-    <keyword type="member" name="FieldBlob.readable" link="gi-GITypelib.html#FieldBlob.readable"/>
-    <keyword type="member" name="FieldBlob.writable" link="gi-GITypelib.html#FieldBlob.writable"/>
-    <keyword type="member" name="FieldBlob.has-embedded-type" link="gi-GITypelib.html#FieldBlob.has-embedded-type"/>
-    <keyword type="member" name="FieldBlob.reserved" link="gi-GITypelib.html#FieldBlob.reserved"/>
-    <keyword type="member" name="FieldBlob.bits" link="gi-GITypelib.html#FieldBlob.bits"/>
-    <keyword type="member" name="FieldBlob.struct-offset" link="gi-GITypelib.html#FieldBlob.struct-offset"/>
-    <keyword type="member" name="FieldBlob.reserved2" link="gi-GITypelib.html#FieldBlob.reserved2"/>
-    <keyword type="member" name="FieldBlob.type" link="gi-GITypelib.html#FieldBlob.type"/>
-    <keyword type="member" name="RegisteredTypeBlob.blob-type" link="gi-GITypelib.html#RegisteredTypeBlob.blob-type"/>
-    <keyword type="member" name="RegisteredTypeBlob.deprecated" link="gi-GITypelib.html#RegisteredTypeBlob.deprecated"/>
-    <keyword type="member" name="RegisteredTypeBlob.unregistered" link="gi-GITypelib.html#RegisteredTypeBlob.unregistered"/>
-    <keyword type="member" name="RegisteredTypeBlob.reserved" link="gi-GITypelib.html#RegisteredTypeBlob.reserved"/>
-    <keyword type="member" name="RegisteredTypeBlob.name" link="gi-GITypelib.html#RegisteredTypeBlob.name"/>
-    <keyword type="member" name="RegisteredTypeBlob.gtype-name" link="gi-GITypelib.html#RegisteredTypeBlob.gtype-name"/>
-    <keyword type="member" name="RegisteredTypeBlob.gtype-init" link="gi-GITypelib.html#RegisteredTypeBlob.gtype-init"/>
-    <keyword type="member" name="StructBlob.blob-type" link="gi-GITypelib.html#StructBlob.blob-type"/>
-    <keyword type="member" name="StructBlob.deprecated" link="gi-GITypelib.html#StructBlob.deprecated"/>
-    <keyword type="member" name="StructBlob.unregistered" link="gi-GITypelib.html#StructBlob.unregistered"/>
-    <keyword type="member" name="StructBlob.is-gtype-struct" link="gi-GITypelib.html#StructBlob.is-gtype-struct"/>
-    <keyword type="member" name="StructBlob.alignment" link="gi-GITypelib.html#StructBlob.alignment"/>
-    <keyword type="member" name="StructBlob.foreign" link="gi-GITypelib.html#StructBlob.foreign"/>
-    <keyword type="member" name="StructBlob.reserved" link="gi-GITypelib.html#StructBlob.reserved"/>
-    <keyword type="member" name="StructBlob.name" link="gi-GITypelib.html#StructBlob.name"/>
-    <keyword type="member" name="StructBlob.gtype-name" link="gi-GITypelib.html#StructBlob.gtype-name"/>
-    <keyword type="member" name="StructBlob.gtype-init" link="gi-GITypelib.html#StructBlob.gtype-init"/>
-    <keyword type="member" name="StructBlob.size" link="gi-GITypelib.html#StructBlob.size"/>
-    <keyword type="member" name="StructBlob.n-fields" link="gi-GITypelib.html#StructBlob.n-fields"/>
-    <keyword type="member" name="StructBlob.n-methods" link="gi-GITypelib.html#StructBlob.n-methods"/>
-    <keyword type="member" name="StructBlob.reserved2" link="gi-GITypelib.html#StructBlob.reserved2"/>
-    <keyword type="member" name="StructBlob.reserved3" link="gi-GITypelib.html#StructBlob.reserved3"/>
-    <keyword type="member" name="UnionBlob.blob-type" link="gi-GITypelib.html#UnionBlob.blob-type"/>
-    <keyword type="member" name="UnionBlob.deprecated" link="gi-GITypelib.html#UnionBlob.deprecated"/>
-    <keyword type="member" name="UnionBlob.unregistered" link="gi-GITypelib.html#UnionBlob.unregistered"/>
-    <keyword type="member" name="UnionBlob.discriminated" link="gi-GITypelib.html#UnionBlob.discriminated"/>
-    <keyword type="member" name="UnionBlob.alignment" link="gi-GITypelib.html#UnionBlob.alignment"/>
-    <keyword type="member" name="UnionBlob.reserved" link="gi-GITypelib.html#UnionBlob.reserved"/>
-    <keyword type="member" name="UnionBlob.name" link="gi-GITypelib.html#UnionBlob.name"/>
-    <keyword type="member" name="UnionBlob.gtype-name" link="gi-GITypelib.html#UnionBlob.gtype-name"/>
-    <keyword type="member" name="UnionBlob.gtype-init" link="gi-GITypelib.html#UnionBlob.gtype-init"/>
-    <keyword type="member" name="UnionBlob.size" link="gi-GITypelib.html#UnionBlob.size"/>
-    <keyword type="member" name="UnionBlob.n-fields" link="gi-GITypelib.html#UnionBlob.n-fields"/>
-    <keyword type="member" name="UnionBlob.n-functions" link="gi-GITypelib.html#UnionBlob.n-functions"/>
-    <keyword type="member" name="UnionBlob.reserved2" link="gi-GITypelib.html#UnionBlob.reserved2"/>
-    <keyword type="member" name="UnionBlob.reserved3" link="gi-GITypelib.html#UnionBlob.reserved3"/>
-    <keyword type="member" name="UnionBlob.discriminator-offset" link="gi-GITypelib.html#UnionBlob.discriminator-offset"/>
-    <keyword type="member" name="UnionBlob.discriminator-type" link="gi-GITypelib.html#UnionBlob.discriminator-type"/>
-    <keyword type="member" name="EnumBlob.blob-type" link="gi-GITypelib.html#EnumBlob.blob-type"/>
-    <keyword type="member" name="EnumBlob.deprecated" link="gi-GITypelib.html#EnumBlob.deprecated"/>
-    <keyword type="member" name="EnumBlob.unregistered" link="gi-GITypelib.html#EnumBlob.unregistered"/>
-    <keyword type="member" name="EnumBlob.storage-type" link="gi-GITypelib.html#EnumBlob.storage-type"/>
-    <keyword type="member" name="EnumBlob.reserved" link="gi-GITypelib.html#EnumBlob.reserved"/>
-    <keyword type="member" name="EnumBlob.name" link="gi-GITypelib.html#EnumBlob.name"/>
-    <keyword type="member" name="EnumBlob.gtype-name" link="gi-GITypelib.html#EnumBlob.gtype-name"/>
-    <keyword type="member" name="EnumBlob.gtype-init" link="gi-GITypelib.html#EnumBlob.gtype-init"/>
-    <keyword type="member" name="EnumBlob.n-values" link="gi-GITypelib.html#EnumBlob.n-values"/>
-    <keyword type="member" name="EnumBlob.n-methods" link="gi-GITypelib.html#EnumBlob.n-methods"/>
-    <keyword type="member" name="EnumBlob.error-domain" link="gi-GITypelib.html#EnumBlob.error-domain"/>
-    <keyword type="member" name="EnumBlob.values" link="gi-GITypelib.html#EnumBlob.values"/>
-    <keyword type="member" name="PropertyBlob.name" link="gi-GITypelib.html#PropertyBlob.name"/>
-    <keyword type="member" name="PropertyBlob.deprecated" link="gi-GITypelib.html#PropertyBlob.deprecated"/>
-    <keyword type="member" name="PropertyBlob.readable" link="gi-GITypelib.html#PropertyBlob.readable"/>
-    <keyword type="member" name="PropertyBlob.writable" link="gi-GITypelib.html#PropertyBlob.writable"/>
-    <keyword type="member" name="PropertyBlob.construct" link="gi-GITypelib.html#PropertyBlob.construct"/>
-    <keyword type="member" name="PropertyBlob.construct-only" link="gi-GITypelib.html#PropertyBlob.construct-only"/>
-    <keyword type="member" name="PropertyBlob.transfer-ownership" link="gi-GITypelib.html#PropertyBlob.transfer-ownership"/>
-    <keyword type="member" name="PropertyBlob.transfer-container-ownership" link="gi-GITypelib.html#PropertyBlob.transfer-container-ownership"/>
-    <keyword type="member" name="PropertyBlob.reserved" link="gi-GITypelib.html#PropertyBlob.reserved"/>
-    <keyword type="member" name="PropertyBlob.reserved2" link="gi-GITypelib.html#PropertyBlob.reserved2"/>
-    <keyword type="member" name="PropertyBlob.type" link="gi-GITypelib.html#PropertyBlob.type"/>
-    <keyword type="member" name="SignalBlob.deprecated" link="gi-GITypelib.html#SignalBlob.deprecated"/>
-    <keyword type="member" name="SignalBlob.run-first" link="gi-GITypelib.html#SignalBlob.run-first"/>
-    <keyword type="member" name="SignalBlob.run-last" link="gi-GITypelib.html#SignalBlob.run-last"/>
-    <keyword type="member" name="SignalBlob.run-cleanup" link="gi-GITypelib.html#SignalBlob.run-cleanup"/>
-    <keyword type="member" name="SignalBlob.no-recurse" link="gi-GITypelib.html#SignalBlob.no-recurse"/>
-    <keyword type="member" name="SignalBlob.detailed" link="gi-GITypelib.html#SignalBlob.detailed"/>
-    <keyword type="member" name="SignalBlob.action" link="gi-GITypelib.html#SignalBlob.action"/>
-    <keyword type="member" name="SignalBlob.no-hooks" link="gi-GITypelib.html#SignalBlob.no-hooks"/>
-    <keyword type="member" name="SignalBlob.has-class-closure" link="gi-GITypelib.html#SignalBlob.has-class-closure"/>
-    <keyword type="member" name="SignalBlob.true-stops-emit" link="gi-GITypelib.html#SignalBlob.true-stops-emit"/>
-    <keyword type="member" name="SignalBlob.reserved" link="gi-GITypelib.html#SignalBlob.reserved"/>
-    <keyword type="member" name="SignalBlob.class-closure" link="gi-GITypelib.html#SignalBlob.class-closure"/>
-    <keyword type="member" name="SignalBlob.name" link="gi-GITypelib.html#SignalBlob.name"/>
-    <keyword type="member" name="SignalBlob.reserved2" link="gi-GITypelib.html#SignalBlob.reserved2"/>
-    <keyword type="member" name="SignalBlob.signature" link="gi-GITypelib.html#SignalBlob.signature"/>
-    <keyword type="member" name="VFuncBlob.name" link="gi-GITypelib.html#VFuncBlob.name"/>
-    <keyword type="member" name="VFuncBlob.must-chain-up" link="gi-GITypelib.html#VFuncBlob.must-chain-up"/>
-    <keyword type="member" name="VFuncBlob.must-be-implemented" link="gi-GITypelib.html#VFuncBlob.must-be-implemented"/>
-    <keyword type="member" name="VFuncBlob.must-not-be-implemented" link="gi-GITypelib.html#VFuncBlob.must-not-be-implemented"/>
-    <keyword type="member" name="VFuncBlob.class-closure" link="gi-GITypelib.html#VFuncBlob.class-closure"/>
-    <keyword type="member" name="VFuncBlob.throws" link="gi-GITypelib.html#VFuncBlob.throws"/>
-    <keyword type="member" name="VFuncBlob.reserved" link="gi-GITypelib.html#VFuncBlob.reserved"/>
-    <keyword type="member" name="VFuncBlob.signal" link="gi-GITypelib.html#VFuncBlob.signal"/>
-    <keyword type="member" name="VFuncBlob.struct-offset" link="gi-GITypelib.html#VFuncBlob.struct-offset"/>
-    <keyword type="member" name="VFuncBlob.invoker" link="gi-GITypelib.html#VFuncBlob.invoker"/>
-    <keyword type="member" name="VFuncBlob.reserved2" link="gi-GITypelib.html#VFuncBlob.reserved2"/>
-    <keyword type="member" name="VFuncBlob.reserved3" link="gi-GITypelib.html#VFuncBlob.reserved3"/>
-    <keyword type="member" name="VFuncBlob.signature" link="gi-GITypelib.html#VFuncBlob.signature"/>
-    <keyword type="member" name="ObjectBlob.blob-type" link="gi-GITypelib.html#ObjectBlob.blob-type"/>
-    <keyword type="member" name="ObjectBlob.deprecated" link="gi-GITypelib.html#ObjectBlob.deprecated"/>
-    <keyword type="member" name="ObjectBlob.abstract" link="gi-GITypelib.html#ObjectBlob.abstract"/>
-    <keyword type="member" name="ObjectBlob.fundamental" link="gi-GITypelib.html#ObjectBlob.fundamental"/>
-    <keyword type="member" name="ObjectBlob.reserved" link="gi-GITypelib.html#ObjectBlob.reserved"/>
-    <keyword type="member" name="ObjectBlob.name" link="gi-GITypelib.html#ObjectBlob.name"/>
-    <keyword type="member" name="ObjectBlob.gtype-name" link="gi-GITypelib.html#ObjectBlob.gtype-name"/>
-    <keyword type="member" name="ObjectBlob.gtype-init" link="gi-GITypelib.html#ObjectBlob.gtype-init"/>
-    <keyword type="member" name="ObjectBlob.parent" link="gi-GITypelib.html#ObjectBlob.parent"/>
-    <keyword type="member" name="ObjectBlob.gtype-struct" link="gi-GITypelib.html#ObjectBlob.gtype-struct"/>
-    <keyword type="member" name="ObjectBlob.n-interfaces" link="gi-GITypelib.html#ObjectBlob.n-interfaces"/>
-    <keyword type="member" name="ObjectBlob.n-fields" link="gi-GITypelib.html#ObjectBlob.n-fields"/>
-    <keyword type="member" name="ObjectBlob.n-properties" link="gi-GITypelib.html#ObjectBlob.n-properties"/>
-    <keyword type="member" name="ObjectBlob.n-methods" link="gi-GITypelib.html#ObjectBlob.n-methods"/>
-    <keyword type="member" name="ObjectBlob.n-signals" link="gi-GITypelib.html#ObjectBlob.n-signals"/>
-    <keyword type="member" name="ObjectBlob.n-vfuncs" link="gi-GITypelib.html#ObjectBlob.n-vfuncs"/>
-    <keyword type="member" name="ObjectBlob.n-constants" link="gi-GITypelib.html#ObjectBlob.n-constants"/>
-    <keyword type="member" name="ObjectBlob.n-field-callbacks" link="gi-GITypelib.html#ObjectBlob.n-field-callbacks"/>
-    <keyword type="member" name="ObjectBlob.ref-func" link="gi-GITypelib.html#ObjectBlob.ref-func"/>
-    <keyword type="member" name="ObjectBlob.unref-func" link="gi-GITypelib.html#ObjectBlob.unref-func"/>
-    <keyword type="member" name="ObjectBlob.set-value-func" link="gi-GITypelib.html#ObjectBlob.set-value-func"/>
-    <keyword type="member" name="ObjectBlob.get-value-func" link="gi-GITypelib.html#ObjectBlob.get-value-func"/>
-    <keyword type="member" name="ObjectBlob.reserved3" link="gi-GITypelib.html#ObjectBlob.reserved3"/>
-    <keyword type="member" name="ObjectBlob.reserved4" link="gi-GITypelib.html#ObjectBlob.reserved4"/>
-    <keyword type="member" name="ObjectBlob.interfaces" link="gi-GITypelib.html#ObjectBlob.interfaces"/>
-    <keyword type="member" name="InterfaceBlob.blob-type" link="gi-GITypelib.html#InterfaceBlob.blob-type"/>
-    <keyword type="member" name="InterfaceBlob.deprecated" link="gi-GITypelib.html#InterfaceBlob.deprecated"/>
-    <keyword type="member" name="InterfaceBlob.reserved" link="gi-GITypelib.html#InterfaceBlob.reserved"/>
-    <keyword type="member" name="InterfaceBlob.name" link="gi-GITypelib.html#InterfaceBlob.name"/>
-    <keyword type="member" name="InterfaceBlob.gtype-name" link="gi-GITypelib.html#InterfaceBlob.gtype-name"/>
-    <keyword type="member" name="InterfaceBlob.gtype-init" link="gi-GITypelib.html#InterfaceBlob.gtype-init"/>
-    <keyword type="member" name="InterfaceBlob.gtype-struct" link="gi-GITypelib.html#InterfaceBlob.gtype-struct"/>
-    <keyword type="member" name="InterfaceBlob.n-prerequisites" link="gi-GITypelib.html#InterfaceBlob.n-prerequisites"/>
-    <keyword type="member" name="InterfaceBlob.n-properties" link="gi-GITypelib.html#InterfaceBlob.n-properties"/>
-    <keyword type="member" name="InterfaceBlob.n-methods" link="gi-GITypelib.html#InterfaceBlob.n-methods"/>
-    <keyword type="member" name="InterfaceBlob.n-signals" link="gi-GITypelib.html#InterfaceBlob.n-signals"/>
-    <keyword type="member" name="InterfaceBlob.n-vfuncs" link="gi-GITypelib.html#InterfaceBlob.n-vfuncs"/>
-    <keyword type="member" name="InterfaceBlob.n-constants" link="gi-GITypelib.html#InterfaceBlob.n-constants"/>
-    <keyword type="member" name="InterfaceBlob.padding" link="gi-GITypelib.html#InterfaceBlob.padding"/>
-    <keyword type="member" name="InterfaceBlob.reserved2" link="gi-GITypelib.html#InterfaceBlob.reserved2"/>
-    <keyword type="member" name="InterfaceBlob.reserved3" link="gi-GITypelib.html#InterfaceBlob.reserved3"/>
-    <keyword type="member" name="InterfaceBlob.prerequisites" link="gi-GITypelib.html#InterfaceBlob.prerequisites"/>
-    <keyword type="member" name="ConstantBlob.blob-type" link="gi-GITypelib.html#ConstantBlob.blob-type"/>
-    <keyword type="member" name="ConstantBlob.deprecated" link="gi-GITypelib.html#ConstantBlob.deprecated"/>
-    <keyword type="member" name="ConstantBlob.reserved" link="gi-GITypelib.html#ConstantBlob.reserved"/>
-    <keyword type="member" name="ConstantBlob.name" link="gi-GITypelib.html#ConstantBlob.name"/>
-    <keyword type="member" name="ConstantBlob.type" link="gi-GITypelib.html#ConstantBlob.type"/>
-    <keyword type="member" name="ConstantBlob.size" link="gi-GITypelib.html#ConstantBlob.size"/>
-    <keyword type="member" name="ConstantBlob.offset" link="gi-GITypelib.html#ConstantBlob.offset"/>
-    <keyword type="member" name="ConstantBlob.reserved2" link="gi-GITypelib.html#ConstantBlob.reserved2"/>
-    <keyword type="member" name="AttributeBlob.offset" link="gi-GITypelib.html#AttributeBlob.offset"/>
-    <keyword type="member" name="AttributeBlob.name" link="gi-GITypelib.html#AttributeBlob.name"/>
-    <keyword type="member" name="AttributeBlob.value" link="gi-GITypelib.html#AttributeBlob.value"/>
+    <keyword type="constant" name="BLOB_TYPE_INVALID" link="gi-GITypelib-Internals.html#BLOB-TYPE-INVALID:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_FUNCTION" link="gi-GITypelib-Internals.html#BLOB-TYPE-FUNCTION:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_CALLBACK" link="gi-GITypelib-Internals.html#BLOB-TYPE-CALLBACK:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_STRUCT" link="gi-GITypelib-Internals.html#BLOB-TYPE-STRUCT:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_BOXED" link="gi-GITypelib-Internals.html#BLOB-TYPE-BOXED:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_ENUM" link="gi-GITypelib-Internals.html#BLOB-TYPE-ENUM:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_FLAGS" link="gi-GITypelib-Internals.html#BLOB-TYPE-FLAGS:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_OBJECT" link="gi-GITypelib-Internals.html#BLOB-TYPE-OBJECT:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_INTERFACE" link="gi-GITypelib-Internals.html#BLOB-TYPE-INTERFACE:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_CONSTANT" link="gi-GITypelib-Internals.html#BLOB-TYPE-CONSTANT:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_INVALID_0" link="gi-GITypelib-Internals.html#BLOB-TYPE-INVALID-0:CAPS"/>
+    <keyword type="constant" name="BLOB_TYPE_UNION" link="gi-GITypelib-Internals.html#BLOB-TYPE-UNION:CAPS"/>
+    <keyword type="constant" name="GI_SECTION_END" link="gi-GITypelib-Internals.html#GI-SECTION-END:CAPS"/>
+    <keyword type="constant" name="GI_SECTION_DIRECTORY_INDEX" link="gi-GITypelib-Internals.html#GI-SECTION-DIRECTORY-INDEX:CAPS"/>
+    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID" link="gi-GITypelib-Internals.html#G-TYPELIB-ERROR-INVALID:CAPS"/>
+    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_HEADER" link="gi-GITypelib-Internals.html#G-TYPELIB-ERROR-INVALID-HEADER:CAPS"/>
+    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_DIRECTORY" link="gi-GITypelib-Internals.html#G-TYPELIB-ERROR-INVALID-DIRECTORY:CAPS"/>
+    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_ENTRY" link="gi-GITypelib-Internals.html#G-TYPELIB-ERROR-INVALID-ENTRY:CAPS"/>
+    <keyword type="constant" name="G_TYPELIB_ERROR_INVALID_BLOB" link="gi-GITypelib-Internals.html#G-TYPELIB-ERROR-INVALID-BLOB:CAPS"/>
     <keyword type="member" name="GIFunctionInvoker.cif" link="gi-girffi.html#GIFunctionInvoker.cif"/>
     <keyword type="member" name="GIFunctionInvoker.native-address" link="gi-girffi.html#GIFunctionInvoker.native-address"/>
+    <keyword type="member" name="Header.magic" link="gi-GITypelib-Internals.html#Header.magic"/>
+    <keyword type="member" name="Header.major-version" link="gi-GITypelib-Internals.html#Header.major-version"/>
+    <keyword type="member" name="Header.minor-version" link="gi-GITypelib-Internals.html#Header.minor-version"/>
+    <keyword type="member" name="Header.reserved" link="gi-GITypelib-Internals.html#Header.reserved"/>
+    <keyword type="member" name="Header.n-entries" link="gi-GITypelib-Internals.html#Header.n-entries"/>
+    <keyword type="member" name="Header.n-local-entries" link="gi-GITypelib-Internals.html#Header.n-local-entries"/>
+    <keyword type="member" name="Header.directory" link="gi-GITypelib-Internals.html#Header.directory"/>
+    <keyword type="member" name="Header.n-attributes" link="gi-GITypelib-Internals.html#Header.n-attributes"/>
+    <keyword type="member" name="Header.attributes" link="gi-GITypelib-Internals.html#Header.attributes"/>
+    <keyword type="member" name="Header.dependencies" link="gi-GITypelib-Internals.html#Header.dependencies"/>
+    <keyword type="member" name="Header.size" link="gi-GITypelib-Internals.html#Header.size"/>
+    <keyword type="member" name="Header.namespace" link="gi-GITypelib-Internals.html#Header.namespace"/>
+    <keyword type="member" name="Header.nsversion" link="gi-GITypelib-Internals.html#Header.nsversion"/>
+    <keyword type="member" name="Header.shared-library" link="gi-GITypelib-Internals.html#Header.shared-library"/>
+    <keyword type="member" name="Header.c-prefix" link="gi-GITypelib-Internals.html#Header.c-prefix"/>
+    <keyword type="member" name="Header.entry-blob-size" link="gi-GITypelib-Internals.html#Header.entry-blob-size"/>
+    <keyword type="member" name="Header.function-blob-size" link="gi-GITypelib-Internals.html#Header.function-blob-size"/>
+    <keyword type="member" name="Header.callback-blob-size" link="gi-GITypelib-Internals.html#Header.callback-blob-size"/>
+    <keyword type="member" name="Header.signal-blob-size" link="gi-GITypelib-Internals.html#Header.signal-blob-size"/>
+    <keyword type="member" name="Header.vfunc-blob-size" link="gi-GITypelib-Internals.html#Header.vfunc-blob-size"/>
+    <keyword type="member" name="Header.arg-blob-size" link="gi-GITypelib-Internals.html#Header.arg-blob-size"/>
+    <keyword type="member" name="Header.property-blob-size" link="gi-GITypelib-Internals.html#Header.property-blob-size"/>
+    <keyword type="member" name="Header.field-blob-size" link="gi-GITypelib-Internals.html#Header.field-blob-size"/>
+    <keyword type="member" name="Header.value-blob-size" link="gi-GITypelib-Internals.html#Header.value-blob-size"/>
+    <keyword type="member" name="Header.attribute-blob-size" link="gi-GITypelib-Internals.html#Header.attribute-blob-size"/>
+    <keyword type="member" name="Header.constant-blob-size" link="gi-GITypelib-Internals.html#Header.constant-blob-size"/>
+    <keyword type="member" name="Header.error-domain-blob-size" link="gi-GITypelib-Internals.html#Header.error-domain-blob-size"/>
+    <keyword type="member" name="Header.signature-blob-size" link="gi-GITypelib-Internals.html#Header.signature-blob-size"/>
+    <keyword type="member" name="Header.enum-blob-size" link="gi-GITypelib-Internals.html#Header.enum-blob-size"/>
+    <keyword type="member" name="Header.struct-blob-size" link="gi-GITypelib-Internals.html#Header.struct-blob-size"/>
+    <keyword type="member" name="Header.object-blob-size" link="gi-GITypelib-Internals.html#Header.object-blob-size"/>
+    <keyword type="member" name="Header.interface-blob-size" link="gi-GITypelib-Internals.html#Header.interface-blob-size"/>
+    <keyword type="member" name="Header.union-blob-size" link="gi-GITypelib-Internals.html#Header.union-blob-size"/>
+    <keyword type="member" name="Header.sections" link="gi-GITypelib-Internals.html#Header.sections"/>
+    <keyword type="member" name="Header.padding" link="gi-GITypelib-Internals.html#Header.padding"/>
+    <keyword type="member" name="Section.id" link="gi-GITypelib-Internals.html#Section.id"/>
+    <keyword type="member" name="Section.offset" link="gi-GITypelib-Internals.html#Section.offset"/>
+    <keyword type="member" name="DirEntry.blob-type" link="gi-GITypelib-Internals.html#DirEntry.blob-type"/>
+    <keyword type="member" name="DirEntry.local" link="gi-GITypelib-Internals.html#DirEntry.local"/>
+    <keyword type="member" name="DirEntry.reserved" link="gi-GITypelib-Internals.html#DirEntry.reserved"/>
+    <keyword type="member" name="DirEntry.name" link="gi-GITypelib-Internals.html#DirEntry.name"/>
+    <keyword type="member" name="DirEntry.offset" link="gi-GITypelib-Internals.html#DirEntry.offset"/>
+    <keyword type="member" name="SimpleTypeBlobFlags.reserved" link="gi-GITypelib-Internals.html#SimpleTypeBlobFlags.reserved"/>
+    <keyword type="member" name="SimpleTypeBlobFlags.reserved2" link="gi-GITypelib-Internals.html#SimpleTypeBlobFlags.reserved2"/>
+    <keyword type="member" name="SimpleTypeBlobFlags.pointer" link="gi-GITypelib-Internals.html#SimpleTypeBlobFlags.pointer"/>
+    <keyword type="member" name="SimpleTypeBlobFlags.reserved3" link="gi-GITypelib-Internals.html#SimpleTypeBlobFlags.reserved3"/>
+    <keyword type="member" name="SimpleTypeBlobFlags.tag" link="gi-GITypelib-Internals.html#SimpleTypeBlobFlags.tag"/>
+    <keyword type="member" name="ArgBlob.name" link="gi-GITypelib-Internals.html#ArgBlob.name"/>
+    <keyword type="member" name="ArgBlob.in" link="gi-GITypelib-Internals.html#ArgBlob.in"/>
+    <keyword type="member" name="ArgBlob.out" link="gi-GITypelib-Internals.html#ArgBlob.out"/>
+    <keyword type="member" name="ArgBlob.caller-allocates" link="gi-GITypelib-Internals.html#ArgBlob.caller-allocates"/>
+    <keyword type="member" name="ArgBlob.nullable" link="gi-GITypelib-Internals.html#ArgBlob.nullable"/>
+    <keyword type="member" name="ArgBlob.optional" link="gi-GITypelib-Internals.html#ArgBlob.optional"/>
+    <keyword type="member" name="ArgBlob.transfer-ownership" link="gi-GITypelib-Internals.html#ArgBlob.transfer-ownership"/>
+    <keyword type="member" name="ArgBlob.transfer-container-ownership" link="gi-GITypelib-Internals.html#ArgBlob.transfer-container-ownership"/>
+    <keyword type="member" name="ArgBlob.return-value" link="gi-GITypelib-Internals.html#ArgBlob.return-value"/>
+    <keyword type="member" name="ArgBlob.scope" link="gi-GITypelib-Internals.html#ArgBlob.scope"/>
+    <keyword type="member" name="ArgBlob.skip" link="gi-GITypelib-Internals.html#ArgBlob.skip"/>
+    <keyword type="member" name="ArgBlob.reserved" link="gi-GITypelib-Internals.html#ArgBlob.reserved"/>
+    <keyword type="member" name="ArgBlob.closure" link="gi-GITypelib-Internals.html#ArgBlob.closure"/>
+    <keyword type="member" name="ArgBlob.destroy" link="gi-GITypelib-Internals.html#ArgBlob.destroy"/>
+    <keyword type="member" name="ArgBlob.padding" link="gi-GITypelib-Internals.html#ArgBlob.padding"/>
+    <keyword type="member" name="ArgBlob.arg-type" link="gi-GITypelib-Internals.html#ArgBlob.arg-type"/>
+    <keyword type="member" name="SignatureBlob.return-type" link="gi-GITypelib-Internals.html#SignatureBlob.return-type"/>
+    <keyword type="member" name="SignatureBlob.may-return-null" link="gi-GITypelib-Internals.html#SignatureBlob.may-return-null"/>
+    <keyword type="member" name="SignatureBlob.caller-owns-return-value" link="gi-GITypelib-Internals.html#SignatureBlob.caller-owns-return-value"/>
+    <keyword type="member" name="SignatureBlob.caller-owns-return-container" link="gi-GITypelib-Internals.html#SignatureBlob.caller-owns-return-container"/>
+    <keyword type="member" name="SignatureBlob.skip-return" link="gi-GITypelib-Internals.html#SignatureBlob.skip-return"/>
+    <keyword type="member" name="SignatureBlob.instance-transfer-ownership" link="gi-GITypelib-Internals.html#SignatureBlob.instance-transfer-ownership"/>
+    <keyword type="member" name="SignatureBlob.throws" link="gi-GITypelib-Internals.html#SignatureBlob.throws"/>
+    <keyword type="member" name="SignatureBlob.reserved" link="gi-GITypelib-Internals.html#SignatureBlob.reserved"/>
+    <keyword type="member" name="SignatureBlob.n-arguments" link="gi-GITypelib-Internals.html#SignatureBlob.n-arguments"/>
+    <keyword type="member" name="SignatureBlob.arguments" link="gi-GITypelib-Internals.html#SignatureBlob.arguments"/>
+    <keyword type="member" name="CommonBlob.blob-type" link="gi-GITypelib-Internals.html#CommonBlob.blob-type"/>
+    <keyword type="member" name="CommonBlob.deprecated" link="gi-GITypelib-Internals.html#CommonBlob.deprecated"/>
+    <keyword type="member" name="CommonBlob.reserved" link="gi-GITypelib-Internals.html#CommonBlob.reserved"/>
+    <keyword type="member" name="CommonBlob.name" link="gi-GITypelib-Internals.html#CommonBlob.name"/>
+    <keyword type="member" name="FunctionBlob.blob-type" link="gi-GITypelib-Internals.html#FunctionBlob.blob-type"/>
+    <keyword type="member" name="FunctionBlob.deprecated" link="gi-GITypelib-Internals.html#FunctionBlob.deprecated"/>
+    <keyword type="member" name="FunctionBlob.setter" link="gi-GITypelib-Internals.html#FunctionBlob.setter"/>
+    <keyword type="member" name="FunctionBlob.getter" link="gi-GITypelib-Internals.html#FunctionBlob.getter"/>
+    <keyword type="member" name="FunctionBlob.constructor" link="gi-GITypelib-Internals.html#FunctionBlob.constructor"/>
+    <keyword type="member" name="FunctionBlob.wraps-vfunc" link="gi-GITypelib-Internals.html#FunctionBlob.wraps-vfunc"/>
+    <keyword type="member" name="FunctionBlob.throws" link="gi-GITypelib-Internals.html#FunctionBlob.throws"/>
+    <keyword type="member" name="FunctionBlob.index" link="gi-GITypelib-Internals.html#FunctionBlob.index"/>
+    <keyword type="member" name="FunctionBlob.name" link="gi-GITypelib-Internals.html#FunctionBlob.name"/>
+    <keyword type="member" name="FunctionBlob.symbol" link="gi-GITypelib-Internals.html#FunctionBlob.symbol"/>
+    <keyword type="member" name="FunctionBlob.signature" link="gi-GITypelib-Internals.html#FunctionBlob.signature"/>
+    <keyword type="member" name="FunctionBlob.is-static" link="gi-GITypelib-Internals.html#FunctionBlob.is-static"/>
+    <keyword type="member" name="FunctionBlob.reserved" link="gi-GITypelib-Internals.html#FunctionBlob.reserved"/>
+    <keyword type="member" name="FunctionBlob.reserved2" link="gi-GITypelib-Internals.html#FunctionBlob.reserved2"/>
+    <keyword type="member" name="CallbackBlob.blob-type" link="gi-GITypelib-Internals.html#CallbackBlob.blob-type"/>
+    <keyword type="member" name="CallbackBlob.deprecated" link="gi-GITypelib-Internals.html#CallbackBlob.deprecated"/>
+    <keyword type="member" name="CallbackBlob.reserved" link="gi-GITypelib-Internals.html#CallbackBlob.reserved"/>
+    <keyword type="member" name="CallbackBlob.name" link="gi-GITypelib-Internals.html#CallbackBlob.name"/>
+    <keyword type="member" name="CallbackBlob.signature" link="gi-GITypelib-Internals.html#CallbackBlob.signature"/>
+    <keyword type="member" name="InterfaceTypeBlob.pointer" link="gi-GITypelib-Internals.html#InterfaceTypeBlob.pointer"/>
+    <keyword type="member" name="InterfaceTypeBlob.reserved" link="gi-GITypelib-Internals.html#InterfaceTypeBlob.reserved"/>
+    <keyword type="member" name="InterfaceTypeBlob.tag" link="gi-GITypelib-Internals.html#InterfaceTypeBlob.tag"/>
+    <keyword type="member" name="InterfaceTypeBlob.reserved2" link="gi-GITypelib-Internals.html#InterfaceTypeBlob.reserved2"/>
+    <keyword type="member" name="InterfaceTypeBlob.interface" link="gi-GITypelib-Internals.html#InterfaceTypeBlob.interface"/>
+    <keyword type="member" name="ArrayTypeBlob.pointer" link="gi-GITypelib-Internals.html#ArrayTypeBlob.pointer"/>
+    <keyword type="member" name="ArrayTypeBlob.reserved" link="gi-GITypelib-Internals.html#ArrayTypeBlob.reserved"/>
+    <keyword type="member" name="ArrayTypeBlob.tag" link="gi-GITypelib-Internals.html#ArrayTypeBlob.tag"/>
+    <keyword type="member" name="ArrayTypeBlob.zero-terminated" link="gi-GITypelib-Internals.html#ArrayTypeBlob.zero-terminated"/>
+    <keyword type="member" name="ArrayTypeBlob.has-length" link="gi-GITypelib-Internals.html#ArrayTypeBlob.has-length"/>
+    <keyword type="member" name="ArrayTypeBlob.has-size" link="gi-GITypelib-Internals.html#ArrayTypeBlob.has-size"/>
+    <keyword type="member" name="ArrayTypeBlob.array-type" link="gi-GITypelib-Internals.html#ArrayTypeBlob.array-type"/>
+    <keyword type="member" name="ArrayTypeBlob.reserved2" link="gi-GITypelib-Internals.html#ArrayTypeBlob.reserved2"/>
+    <keyword type="member" name="ArrayTypeBlob.dimensions" link="gi-GITypelib-Internals.html#ArrayTypeBlob.dimensions"/>
+    <keyword type="member" name="ArrayTypeBlob.type" link="gi-GITypelib-Internals.html#ArrayTypeBlob.type"/>
+    <keyword type="member" name="ParamTypeBlob.pointer" link="gi-GITypelib-Internals.html#ParamTypeBlob.pointer"/>
+    <keyword type="member" name="ParamTypeBlob.reserved" link="gi-GITypelib-Internals.html#ParamTypeBlob.reserved"/>
+    <keyword type="member" name="ParamTypeBlob.tag" link="gi-GITypelib-Internals.html#ParamTypeBlob.tag"/>
+    <keyword type="member" name="ParamTypeBlob.reserved2" link="gi-GITypelib-Internals.html#ParamTypeBlob.reserved2"/>
+    <keyword type="member" name="ParamTypeBlob.n-types" link="gi-GITypelib-Internals.html#ParamTypeBlob.n-types"/>
+    <keyword type="member" name="ParamTypeBlob.type" link="gi-GITypelib-Internals.html#ParamTypeBlob.type"/>
+    <keyword type="member" name="ErrorTypeBlob.pointer" link="gi-GITypelib-Internals.html#ErrorTypeBlob.pointer"/>
+    <keyword type="member" name="ErrorTypeBlob.reserved" link="gi-GITypelib-Internals.html#ErrorTypeBlob.reserved"/>
+    <keyword type="member" name="ErrorTypeBlob.tag" link="gi-GITypelib-Internals.html#ErrorTypeBlob.tag"/>
+    <keyword type="member" name="ErrorTypeBlob.reserved2" link="gi-GITypelib-Internals.html#ErrorTypeBlob.reserved2"/>
+    <keyword type="member" name="ErrorTypeBlob.n-domains" link="gi-GITypelib-Internals.html#ErrorTypeBlob.n-domains"/>
+    <keyword type="member" name="ErrorTypeBlob.domains" link="gi-GITypelib-Internals.html#ErrorTypeBlob.domains"/>
+    <keyword type="member" name="ValueBlob.deprecated" link="gi-GITypelib-Internals.html#ValueBlob.deprecated"/>
+    <keyword type="member" name="ValueBlob.unsigned-value" link="gi-GITypelib-Internals.html#ValueBlob.unsigned-value"/>
+    <keyword type="member" name="ValueBlob.reserved" link="gi-GITypelib-Internals.html#ValueBlob.reserved"/>
+    <keyword type="member" name="ValueBlob.name" link="gi-GITypelib-Internals.html#ValueBlob.name"/>
+    <keyword type="member" name="ValueBlob.value" link="gi-GITypelib-Internals.html#ValueBlob.value"/>
+    <keyword type="member" name="FieldBlob.name" link="gi-GITypelib-Internals.html#FieldBlob.name"/>
+    <keyword type="member" name="FieldBlob.readable" link="gi-GITypelib-Internals.html#FieldBlob.readable"/>
+    <keyword type="member" name="FieldBlob.writable" link="gi-GITypelib-Internals.html#FieldBlob.writable"/>
+    <keyword type="member" name="FieldBlob.has-embedded-type" link="gi-GITypelib-Internals.html#FieldBlob.has-embedded-type"/>
+    <keyword type="member" name="FieldBlob.reserved" link="gi-GITypelib-Internals.html#FieldBlob.reserved"/>
+    <keyword type="member" name="FieldBlob.bits" link="gi-GITypelib-Internals.html#FieldBlob.bits"/>
+    <keyword type="member" name="FieldBlob.struct-offset" link="gi-GITypelib-Internals.html#FieldBlob.struct-offset"/>
+    <keyword type="member" name="FieldBlob.reserved2" link="gi-GITypelib-Internals.html#FieldBlob.reserved2"/>
+    <keyword type="member" name="FieldBlob.type" link="gi-GITypelib-Internals.html#FieldBlob.type"/>
+    <keyword type="member" name="RegisteredTypeBlob.blob-type" link="gi-GITypelib-Internals.html#RegisteredTypeBlob.blob-type"/>
+    <keyword type="member" name="RegisteredTypeBlob.deprecated" link="gi-GITypelib-Internals.html#RegisteredTypeBlob.deprecated"/>
+    <keyword type="member" name="RegisteredTypeBlob.unregistered" link="gi-GITypelib-Internals.html#RegisteredTypeBlob.unregistered"/>
+    <keyword type="member" name="RegisteredTypeBlob.reserved" link="gi-GITypelib-Internals.html#RegisteredTypeBlob.reserved"/>
+    <keyword type="member" name="RegisteredTypeBlob.name" link="gi-GITypelib-Internals.html#RegisteredTypeBlob.name"/>
+    <keyword type="member" name="RegisteredTypeBlob.gtype-name" link="gi-GITypelib-Internals.html#RegisteredTypeBlob.gtype-name"/>
+    <keyword type="member" name="RegisteredTypeBlob.gtype-init" link="gi-GITypelib-Internals.html#RegisteredTypeBlob.gtype-init"/>
+    <keyword type="member" name="StructBlob.blob-type" link="gi-GITypelib-Internals.html#StructBlob.blob-type"/>
+    <keyword type="member" name="StructBlob.deprecated" link="gi-GITypelib-Internals.html#StructBlob.deprecated"/>
+    <keyword type="member" name="StructBlob.unregistered" link="gi-GITypelib-Internals.html#StructBlob.unregistered"/>
+    <keyword type="member" name="StructBlob.is-gtype-struct" link="gi-GITypelib-Internals.html#StructBlob.is-gtype-struct"/>
+    <keyword type="member" name="StructBlob.alignment" link="gi-GITypelib-Internals.html#StructBlob.alignment"/>
+    <keyword type="member" name="StructBlob.foreign" link="gi-GITypelib-Internals.html#StructBlob.foreign"/>
+    <keyword type="member" name="StructBlob.reserved" link="gi-GITypelib-Internals.html#StructBlob.reserved"/>
+    <keyword type="member" name="StructBlob.name" link="gi-GITypelib-Internals.html#StructBlob.name"/>
+    <keyword type="member" name="StructBlob.gtype-name" link="gi-GITypelib-Internals.html#StructBlob.gtype-name"/>
+    <keyword type="member" name="StructBlob.gtype-init" link="gi-GITypelib-Internals.html#StructBlob.gtype-init"/>
+    <keyword type="member" name="StructBlob.size" link="gi-GITypelib-Internals.html#StructBlob.size"/>
+    <keyword type="member" name="StructBlob.n-fields" link="gi-GITypelib-Internals.html#StructBlob.n-fields"/>
+    <keyword type="member" name="StructBlob.n-methods" link="gi-GITypelib-Internals.html#StructBlob.n-methods"/>
+    <keyword type="member" name="StructBlob.reserved2" link="gi-GITypelib-Internals.html#StructBlob.reserved2"/>
+    <keyword type="member" name="StructBlob.reserved3" link="gi-GITypelib-Internals.html#StructBlob.reserved3"/>
+    <keyword type="member" name="UnionBlob.blob-type" link="gi-GITypelib-Internals.html#UnionBlob.blob-type"/>
+    <keyword type="member" name="UnionBlob.deprecated" link="gi-GITypelib-Internals.html#UnionBlob.deprecated"/>
+    <keyword type="member" name="UnionBlob.unregistered" link="gi-GITypelib-Internals.html#UnionBlob.unregistered"/>
+    <keyword type="member" name="UnionBlob.discriminated" link="gi-GITypelib-Internals.html#UnionBlob.discriminated"/>
+    <keyword type="member" name="UnionBlob.alignment" link="gi-GITypelib-Internals.html#UnionBlob.alignment"/>
+    <keyword type="member" name="UnionBlob.reserved" link="gi-GITypelib-Internals.html#UnionBlob.reserved"/>
+    <keyword type="member" name="UnionBlob.name" link="gi-GITypelib-Internals.html#UnionBlob.name"/>
+    <keyword type="member" name="UnionBlob.gtype-name" link="gi-GITypelib-Internals.html#UnionBlob.gtype-name"/>
+    <keyword type="member" name="UnionBlob.gtype-init" link="gi-GITypelib-Internals.html#UnionBlob.gtype-init"/>
+    <keyword type="member" name="UnionBlob.size" link="gi-GITypelib-Internals.html#UnionBlob.size"/>
+    <keyword type="member" name="UnionBlob.n-fields" link="gi-GITypelib-Internals.html#UnionBlob.n-fields"/>
+    <keyword type="member" name="UnionBlob.n-functions" link="gi-GITypelib-Internals.html#UnionBlob.n-functions"/>
+    <keyword type="member" name="UnionBlob.reserved2" link="gi-GITypelib-Internals.html#UnionBlob.reserved2"/>
+    <keyword type="member" name="UnionBlob.reserved3" link="gi-GITypelib-Internals.html#UnionBlob.reserved3"/>
+    <keyword type="member" name="UnionBlob.discriminator-offset" link="gi-GITypelib-Internals.html#UnionBlob.discriminator-offset"/>
+    <keyword type="member" name="UnionBlob.discriminator-type" link="gi-GITypelib-Internals.html#UnionBlob.discriminator-type"/>
+    <keyword type="member" name="EnumBlob.blob-type" link="gi-GITypelib-Internals.html#EnumBlob.blob-type"/>
+    <keyword type="member" name="EnumBlob.deprecated" link="gi-GITypelib-Internals.html#EnumBlob.deprecated"/>
+    <keyword type="member" name="EnumBlob.unregistered" link="gi-GITypelib-Internals.html#EnumBlob.unregistered"/>
+    <keyword type="member" name="EnumBlob.storage-type" link="gi-GITypelib-Internals.html#EnumBlob.storage-type"/>
+    <keyword type="member" name="EnumBlob.reserved" link="gi-GITypelib-Internals.html#EnumBlob.reserved"/>
+    <keyword type="member" name="EnumBlob.name" link="gi-GITypelib-Internals.html#EnumBlob.name"/>
+    <keyword type="member" name="EnumBlob.gtype-name" link="gi-GITypelib-Internals.html#EnumBlob.gtype-name"/>
+    <keyword type="member" name="EnumBlob.gtype-init" link="gi-GITypelib-Internals.html#EnumBlob.gtype-init"/>
+    <keyword type="member" name="EnumBlob.n-values" link="gi-GITypelib-Internals.html#EnumBlob.n-values"/>
+    <keyword type="member" name="EnumBlob.n-methods" link="gi-GITypelib-Internals.html#EnumBlob.n-methods"/>
+    <keyword type="member" name="EnumBlob.error-domain" link="gi-GITypelib-Internals.html#EnumBlob.error-domain"/>
+    <keyword type="member" name="EnumBlob.values" link="gi-GITypelib-Internals.html#EnumBlob.values"/>
+    <keyword type="member" name="PropertyBlob.name" link="gi-GITypelib-Internals.html#PropertyBlob.name"/>
+    <keyword type="member" name="PropertyBlob.deprecated" link="gi-GITypelib-Internals.html#PropertyBlob.deprecated"/>
+    <keyword type="member" name="PropertyBlob.readable" link="gi-GITypelib-Internals.html#PropertyBlob.readable"/>
+    <keyword type="member" name="PropertyBlob.writable" link="gi-GITypelib-Internals.html#PropertyBlob.writable"/>
+    <keyword type="member" name="PropertyBlob.construct" link="gi-GITypelib-Internals.html#PropertyBlob.construct"/>
+    <keyword type="member" name="PropertyBlob.construct-only" link="gi-GITypelib-Internals.html#PropertyBlob.construct-only"/>
+    <keyword type="member" name="PropertyBlob.transfer-ownership" link="gi-GITypelib-Internals.html#PropertyBlob.transfer-ownership"/>
+    <keyword type="member" name="PropertyBlob.transfer-container-ownership" link="gi-GITypelib-Internals.html#PropertyBlob.transfer-container-ownership"/>
+    <keyword type="member" name="PropertyBlob.reserved" link="gi-GITypelib-Internals.html#PropertyBlob.reserved"/>
+    <keyword type="member" name="PropertyBlob.reserved2" link="gi-GITypelib-Internals.html#PropertyBlob.reserved2"/>
+    <keyword type="member" name="PropertyBlob.type" link="gi-GITypelib-Internals.html#PropertyBlob.type"/>
+    <keyword type="member" name="SignalBlob.deprecated" link="gi-GITypelib-Internals.html#SignalBlob.deprecated"/>
+    <keyword type="member" name="SignalBlob.run-first" link="gi-GITypelib-Internals.html#SignalBlob.run-first"/>
+    <keyword type="member" name="SignalBlob.run-last" link="gi-GITypelib-Internals.html#SignalBlob.run-last"/>
+    <keyword type="member" name="SignalBlob.run-cleanup" link="gi-GITypelib-Internals.html#SignalBlob.run-cleanup"/>
+    <keyword type="member" name="SignalBlob.no-recurse" link="gi-GITypelib-Internals.html#SignalBlob.no-recurse"/>
+    <keyword type="member" name="SignalBlob.detailed" link="gi-GITypelib-Internals.html#SignalBlob.detailed"/>
+    <keyword type="member" name="SignalBlob.action" link="gi-GITypelib-Internals.html#SignalBlob.action"/>
+    <keyword type="member" name="SignalBlob.no-hooks" link="gi-GITypelib-Internals.html#SignalBlob.no-hooks"/>
+    <keyword type="member" name="SignalBlob.has-class-closure" link="gi-GITypelib-Internals.html#SignalBlob.has-class-closure"/>
+    <keyword type="member" name="SignalBlob.true-stops-emit" link="gi-GITypelib-Internals.html#SignalBlob.true-stops-emit"/>
+    <keyword type="member" name="SignalBlob.reserved" link="gi-GITypelib-Internals.html#SignalBlob.reserved"/>
+    <keyword type="member" name="SignalBlob.class-closure" link="gi-GITypelib-Internals.html#SignalBlob.class-closure"/>
+    <keyword type="member" name="SignalBlob.name" link="gi-GITypelib-Internals.html#SignalBlob.name"/>
+    <keyword type="member" name="SignalBlob.reserved2" link="gi-GITypelib-Internals.html#SignalBlob.reserved2"/>
+    <keyword type="member" name="SignalBlob.signature" link="gi-GITypelib-Internals.html#SignalBlob.signature"/>
+    <keyword type="member" name="VFuncBlob.name" link="gi-GITypelib-Internals.html#VFuncBlob.name"/>
+    <keyword type="member" name="VFuncBlob.must-chain-up" link="gi-GITypelib-Internals.html#VFuncBlob.must-chain-up"/>
+    <keyword type="member" name="VFuncBlob.must-be-implemented" link="gi-GITypelib-Internals.html#VFuncBlob.must-be-implemented"/>
+    <keyword type="member" name="VFuncBlob.must-not-be-implemented" link="gi-GITypelib-Internals.html#VFuncBlob.must-not-be-implemented"/>
+    <keyword type="member" name="VFuncBlob.class-closure" link="gi-GITypelib-Internals.html#VFuncBlob.class-closure"/>
+    <keyword type="member" name="VFuncBlob.throws" link="gi-GITypelib-Internals.html#VFuncBlob.throws"/>
+    <keyword type="member" name="VFuncBlob.reserved" link="gi-GITypelib-Internals.html#VFuncBlob.reserved"/>
+    <keyword type="member" name="VFuncBlob.signal" link="gi-GITypelib-Internals.html#VFuncBlob.signal"/>
+    <keyword type="member" name="VFuncBlob.struct-offset" link="gi-GITypelib-Internals.html#VFuncBlob.struct-offset"/>
+    <keyword type="member" name="VFuncBlob.invoker" link="gi-GITypelib-Internals.html#VFuncBlob.invoker"/>
+    <keyword type="member" name="VFuncBlob.reserved2" link="gi-GITypelib-Internals.html#VFuncBlob.reserved2"/>
+    <keyword type="member" name="VFuncBlob.reserved3" link="gi-GITypelib-Internals.html#VFuncBlob.reserved3"/>
+    <keyword type="member" name="VFuncBlob.signature" link="gi-GITypelib-Internals.html#VFuncBlob.signature"/>
+    <keyword type="member" name="ObjectBlob.blob-type" link="gi-GITypelib-Internals.html#ObjectBlob.blob-type"/>
+    <keyword type="member" name="ObjectBlob.deprecated" link="gi-GITypelib-Internals.html#ObjectBlob.deprecated"/>
+    <keyword type="member" name="ObjectBlob.abstract" link="gi-GITypelib-Internals.html#ObjectBlob.abstract"/>
+    <keyword type="member" name="ObjectBlob.fundamental" link="gi-GITypelib-Internals.html#ObjectBlob.fundamental"/>
+    <keyword type="member" name="ObjectBlob.reserved" link="gi-GITypelib-Internals.html#ObjectBlob.reserved"/>
+    <keyword type="member" name="ObjectBlob.name" link="gi-GITypelib-Internals.html#ObjectBlob.name"/>
+    <keyword type="member" name="ObjectBlob.gtype-name" link="gi-GITypelib-Internals.html#ObjectBlob.gtype-name"/>
+    <keyword type="member" name="ObjectBlob.gtype-init" link="gi-GITypelib-Internals.html#ObjectBlob.gtype-init"/>
+    <keyword type="member" name="ObjectBlob.parent" link="gi-GITypelib-Internals.html#ObjectBlob.parent"/>
+    <keyword type="member" name="ObjectBlob.gtype-struct" link="gi-GITypelib-Internals.html#ObjectBlob.gtype-struct"/>
+    <keyword type="member" name="ObjectBlob.n-interfaces" link="gi-GITypelib-Internals.html#ObjectBlob.n-interfaces"/>
+    <keyword type="member" name="ObjectBlob.n-fields" link="gi-GITypelib-Internals.html#ObjectBlob.n-fields"/>
+    <keyword type="member" name="ObjectBlob.n-properties" link="gi-GITypelib-Internals.html#ObjectBlob.n-properties"/>
+    <keyword type="member" name="ObjectBlob.n-methods" link="gi-GITypelib-Internals.html#ObjectBlob.n-methods"/>
+    <keyword type="member" name="ObjectBlob.n-signals" link="gi-GITypelib-Internals.html#ObjectBlob.n-signals"/>
+    <keyword type="member" name="ObjectBlob.n-vfuncs" link="gi-GITypelib-Internals.html#ObjectBlob.n-vfuncs"/>
+    <keyword type="member" name="ObjectBlob.n-constants" link="gi-GITypelib-Internals.html#ObjectBlob.n-constants"/>
+    <keyword type="member" name="ObjectBlob.n-field-callbacks" link="gi-GITypelib-Internals.html#ObjectBlob.n-field-callbacks"/>
+    <keyword type="member" name="ObjectBlob.ref-func" link="gi-GITypelib-Internals.html#ObjectBlob.ref-func"/>
+    <keyword type="member" name="ObjectBlob.unref-func" link="gi-GITypelib-Internals.html#ObjectBlob.unref-func"/>
+    <keyword type="member" name="ObjectBlob.set-value-func" link="gi-GITypelib-Internals.html#ObjectBlob.set-value-func"/>
+    <keyword type="member" name="ObjectBlob.get-value-func" link="gi-GITypelib-Internals.html#ObjectBlob.get-value-func"/>
+    <keyword type="member" name="ObjectBlob.reserved3" link="gi-GITypelib-Internals.html#ObjectBlob.reserved3"/>
+    <keyword type="member" name="ObjectBlob.reserved4" link="gi-GITypelib-Internals.html#ObjectBlob.reserved4"/>
+    <keyword type="member" name="ObjectBlob.interfaces" link="gi-GITypelib-Internals.html#ObjectBlob.interfaces"/>
+    <keyword type="member" name="InterfaceBlob.blob-type" link="gi-GITypelib-Internals.html#InterfaceBlob.blob-type"/>
+    <keyword type="member" name="InterfaceBlob.deprecated" link="gi-GITypelib-Internals.html#InterfaceBlob.deprecated"/>
+    <keyword type="member" name="InterfaceBlob.reserved" link="gi-GITypelib-Internals.html#InterfaceBlob.reserved"/>
+    <keyword type="member" name="InterfaceBlob.name" link="gi-GITypelib-Internals.html#InterfaceBlob.name"/>
+    <keyword type="member" name="InterfaceBlob.gtype-name" link="gi-GITypelib-Internals.html#InterfaceBlob.gtype-name"/>
+    <keyword type="member" name="InterfaceBlob.gtype-init" link="gi-GITypelib-Internals.html#InterfaceBlob.gtype-init"/>
+    <keyword type="member" name="InterfaceBlob.gtype-struct" link="gi-GITypelib-Internals.html#InterfaceBlob.gtype-struct"/>
+    <keyword type="member" name="InterfaceBlob.n-prerequisites" link="gi-GITypelib-Internals.html#InterfaceBlob.n-prerequisites"/>
+    <keyword type="member" name="InterfaceBlob.n-properties" link="gi-GITypelib-Internals.html#InterfaceBlob.n-properties"/>
+    <keyword type="member" name="InterfaceBlob.n-methods" link="gi-GITypelib-Internals.html#InterfaceBlob.n-methods"/>
+    <keyword type="member" name="InterfaceBlob.n-signals" link="gi-GITypelib-Internals.html#InterfaceBlob.n-signals"/>
+    <keyword type="member" name="InterfaceBlob.n-vfuncs" link="gi-GITypelib-Internals.html#InterfaceBlob.n-vfuncs"/>
+    <keyword type="member" name="InterfaceBlob.n-constants" link="gi-GITypelib-Internals.html#InterfaceBlob.n-constants"/>
+    <keyword type="member" name="InterfaceBlob.padding" link="gi-GITypelib-Internals.html#InterfaceBlob.padding"/>
+    <keyword type="member" name="InterfaceBlob.reserved2" link="gi-GITypelib-Internals.html#InterfaceBlob.reserved2"/>
+    <keyword type="member" name="InterfaceBlob.reserved3" link="gi-GITypelib-Internals.html#InterfaceBlob.reserved3"/>
+    <keyword type="member" name="InterfaceBlob.prerequisites" link="gi-GITypelib-Internals.html#InterfaceBlob.prerequisites"/>
+    <keyword type="member" name="ConstantBlob.blob-type" link="gi-GITypelib-Internals.html#ConstantBlob.blob-type"/>
+    <keyword type="member" name="ConstantBlob.deprecated" link="gi-GITypelib-Internals.html#ConstantBlob.deprecated"/>
+    <keyword type="member" name="ConstantBlob.reserved" link="gi-GITypelib-Internals.html#ConstantBlob.reserved"/>
+    <keyword type="member" name="ConstantBlob.name" link="gi-GITypelib-Internals.html#ConstantBlob.name"/>
+    <keyword type="member" name="ConstantBlob.type" link="gi-GITypelib-Internals.html#ConstantBlob.type"/>
+    <keyword type="member" name="ConstantBlob.size" link="gi-GITypelib-Internals.html#ConstantBlob.size"/>
+    <keyword type="member" name="ConstantBlob.offset" link="gi-GITypelib-Internals.html#ConstantBlob.offset"/>
+    <keyword type="member" name="ConstantBlob.reserved2" link="gi-GITypelib-Internals.html#ConstantBlob.reserved2"/>
+    <keyword type="member" name="AttributeBlob.offset" link="gi-GITypelib-Internals.html#AttributeBlob.offset"/>
+    <keyword type="member" name="AttributeBlob.name" link="gi-GITypelib-Internals.html#AttributeBlob.name"/>
+    <keyword type="member" name="AttributeBlob.value" link="gi-GITypelib-Internals.html#AttributeBlob.value"/>
   </functions>
 </book>
diff --git a/docs/reference/html/gi.html b/docs/reference/html/gi.html
deleted file mode 100644 (file)
index a352760..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part II. API Reference: GObject Introspection Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="gi-programming.html" title="Writing introspected libraries">
-<link rel="next" href="ch01.html" title="GIRepository">
-<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="gi-programming.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch01.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="part">
-<div class="titlepage"><div><div><h1 class="title">
-<a name="gi"></a>Part II. API Reference</h1></div></div></div>
-<div class="toc">
-<p><b>Table of Contents</b></p>
-<dl class="toc">
-<dt><span class="chapter"><a href="ch01.html">GIRepository</a></span></dt>
-<dd><dl>
-<dt>
-<span class="refentrytitle"><a href="GIRepository.html">GIRepository</a></span><span class="refpurpose"> — GObject Introspection repository manager</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-struct-hierarchy.html">Struct hierarchy</a></span><span class="refpurpose"> — Struct hierarchy description for GIBaseInfo and all its sub structs</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-common-types.html">common types</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIBaseInfo.html">GIBaseInfo</a></span><span class="refpurpose"> — Base struct for all GITypelib structs</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GICallableInfo.html">GICallableInfo</a></span><span class="refpurpose"> — Struct representing a callable</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIFunctionInfo.html">GIFunctionInfo</a></span><span class="refpurpose"> — Struct representing a function</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GICallbackInfo.html">GICallbackInfo</a></span><span class="refpurpose"> — Struct representing a callback</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GISignalInfo.html">GISignalInfo</a></span><span class="refpurpose"> — Struct representing a signal</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIVFuncInfo.html">GIVFuncInfo</a></span><span class="refpurpose"> — Struct representing a virtual function</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIRegisteredTypeInfo.html">GIRegisteredTypeInfo</a></span><span class="refpurpose"> — Struct representing a struct with a GType</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIEnumInfo.html">GIEnumInfo</a></span><span class="refpurpose"> — Structs representing an enumeration and its values</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIStructInfo.html">GIStructInfo</a></span><span class="refpurpose"> — Struct representing a C structure</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIUnionInfo.html">GIUnionInfo</a></span><span class="refpurpose"> — Struct representing a union.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIObjectInfo.html">GIObjectInfo</a></span><span class="refpurpose"> — Struct representing a GObject</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIInterfaceInfo.html">GIInterfaceInfo</a></span><span class="refpurpose"> — Struct representing a GInterface</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIArgInfo.html">GIArgInfo</a></span><span class="refpurpose"> — Struct representing an argument</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIConstantInfo.html">GIConstantInfo</a></span><span class="refpurpose"> — Struct representing a constant</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIFieldInfo.html">GIFieldInfo</a></span><span class="refpurpose"> — Struct representing a struct or union field</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIPropertyInfo.html">GIPropertyInfo</a></span><span class="refpurpose"> — Struct representing a property</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GITypeInfo.html">GITypeInfo</a></span><span class="refpurpose"> — Struct representing a type</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GIValueInfo.html">GIValueInfo</a></span><span class="refpurpose"> — Struct representing a value</span>
-</dt>
-</dl></dd>
-<dt><span class="chapter"><a href="gi-typelib.html">GITypelib</a></span></dt>
-<dd><dl>
-<dt>
-<span class="refentrytitle"><a href="gi-gitypelib.html">gitypelib</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GITypelib.html">GITypelib</a></span><span class="refpurpose"> — Layout and accessors for typelib</span>
-</dt>
-</dl></dd>
-<dt><span class="chapter"><a href="ch03.html">TODO</a></span></dt>
-<dd><dl>
-<dt>
-<span class="refentrytitle"><a href="gi-girffi.html">girffi</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-gir-reference.html">The GIR XML format</a></span><span class="refpurpose"> — The GIR XML format</span>
-</dt>
-</dl></dd>
-</dl>
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.28</div>
-</body>
-</html>
\ No newline at end of file
index 729da86..55430e2 100644 (file)
@@ -2,10 +2,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GObject Introspection Reference Manual: GObject Introspection Reference Manual</title>
+<title>libgirepository API Reference: libgirepository API Reference</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="next" href="overview.html" title="Part I. GObject-Introspection Overview">
+<link rel="home" href="index.html" title="libgirepository API Reference">
+<link rel="next" href="GIRepository.html" title="GIRepository">
 <meta name="generator" content="GTK-Doc V1.28 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <div lang="en" class="book">
 <div class="titlepage">
 <div>
-<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GObject Introspection Reference Manual</p></th></tr></table></div>
-<div><p class="releaseinfo">
-      This document is for GObject Introspection version 1.58.3
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libgirepository API Reference</p></th></tr></table></div>
+<div>
+<p class="releaseinfo">
+      This document is for libgirepository version 1.59.1
 .
       The latest version of this documentation can be found on-line at
-      <a class="ulink" href="http://developer.gnome.org/gi/unstable/" target="_top">http://developer.gnome.org/gi/unstable/</a>.
-    </p></div>
+      <a class="ulink" href="https://developer.gnome.org/gi/unstable/" target="_top">https://developer.gnome.org/gi/unstable/</a>.
+      </p>
+<p>
+        For more information on how to build libgirepository, for how to build
+        bindings with it and for information on GObject Introspection in
+        general see
+        <a class="ulink" href="https://gi.readthedocs.io" target="_top">https://gi.readthedocs.io</a>.
+      </p>
+<p class="releaseinfo">
+    </p>
+</div>
 </div>
 <hr>
 </div>
 <div class="toc"><dl class="toc">
-<dt><span class="part"><a href="overview.html">I. GObject-Introspection Overview</a></span></dt>
-<dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gi-building.html">Compiling the GObject Introspection package</a></span><span class="refpurpose"> — How to compile GObject Introspection itself</span>
+<span class="refentrytitle"><a href="GIRepository.html">GIRepository</a></span><span class="refpurpose"> — GObject Introspection repository manager</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gi-programming.html">Writing introspected libraries</a></span><span class="refpurpose"> — General considerations when writing introspected libraries</span>
+<span class="refentrytitle"><a href="gi-GITypelib.html">GITypelib</a></span><span class="refpurpose"> — TODO</span>
 </dt>
-</dl></dd>
-<dt><span class="part"><a href="gi.html">II. API Reference</a></span></dt>
-<dd><dl>
-<dt><span class="chapter"><a href="ch01.html">GIRepository</a></span></dt>
-<dd><dl>
 <dt>
-<span class="refentrytitle"><a href="GIRepository.html">GIRepository</a></span><span class="refpurpose"> — GObject Introspection repository manager</span>
+<span class="refentrytitle"><a href="gi-Version-Information.html">Version Information</a></span><span class="refpurpose"> — macros and functions to check the girepository version</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gi-struct-hierarchy.html">Struct hierarchy</a></span><span class="refpurpose"> — Struct hierarchy description for GIBaseInfo and all its sub structs</span>
+<span class="refentrytitle"><a href="gi-Common-Types.html">Common Types</a></span><span class="refpurpose"> — TODO</span>
 </dt>
+<dt><span class="chapter"><a href="ch01.html">GIBaseInfo</a></span></dt>
+<dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gi-common-types.html">common types</a></span><span class="refpurpose"> — TODO</span>
+<span class="refentrytitle"><a href="gi-struct-hierarchy.html">Struct hierarchy</a></span><span class="refpurpose"> — Struct hierarchy description for GIBaseInfo and all its sub structs</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gi-GIBaseInfo.html">GIBaseInfo</a></span><span class="refpurpose"> — Base struct for all GITypelib structs</span>
+<span class="refentrytitle"><a href="GIBaseInfo.html">GIBaseInfo</a></span><span class="refpurpose"> — Base struct for all GITypelib structs</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gi-GICallableInfo.html">GICallableInfo</a></span><span class="refpurpose"> — Struct representing a callable</span>
 <span class="refentrytitle"><a href="gi-GIValueInfo.html">GIValueInfo</a></span><span class="refpurpose"> — Struct representing a value</span>
 </dt>
 </dl></dd>
-<dt><span class="chapter"><a href="gi-typelib.html">GITypelib</a></span></dt>
-<dd><dl>
-<dt>
-<span class="refentrytitle"><a href="gi-gitypelib.html">gitypelib</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-GITypelib.html">GITypelib</a></span><span class="refpurpose"> — Layout and accessors for typelib</span>
-</dt>
-</dl></dd>
-<dt><span class="chapter"><a href="ch03.html">TODO</a></span></dt>
-<dd><dl>
-<dt>
+<dt><span class="chapter"><a href="ch02.html">FFI Interface</a></span></dt>
+<dd><dl><dt>
 <span class="refentrytitle"><a href="gi-girffi.html">girffi</a></span><span class="refpurpose"> — TODO</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-gir-reference.html">The GIR XML format</a></span><span class="refpurpose"> — The GIR XML format</span>
-</dt>
-</dl></dd>
-</dl></dd>
+</dt></dl></dd>
+<dt><span class="chapter"><a href="ch03.html">Internals &amp; Typelib Format</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="gi-GITypelib-Internals.html">GITypelib Internals</a></span><span class="refpurpose"> — Layout and accessors for typelib</span>
+</dt></dl></dd>
 <dt><span class="index"><a href="api-index-full.html">Index</a></span></dt>
 <dt><span class="index"><a href="api-index-deprecated.html">Index of deprecated symbols</a></span></dt>
-<dt><span class="index"><a href="api-index-1-29-0.html">Index of new symbols in 1.29.0</a></span></dt>
-<dt><span class="index"><a href="api-index-1-29-17.html">Index of new symbols in 1.29.17</a></span></dt>
-<dt><span class="index"><a href="api-index-1-30-1.html">Index of new symbols in 1.30.1</a></span></dt>
+<dt><span class="index"><a href="api-index-1-30.html">Index of new symbols in 1.30</a></span></dt>
+<dt><span class="index"><a href="api-index-1-32.html">Index of new symbols in 1.32</a></span></dt>
 <dt><span class="index"><a href="api-index-1-34.html">Index of new symbols in 1.34</a></span></dt>
-<dt><span class="index"><a href="api-index-1-35-8.html">Index of new symbols in 1.35.8</a></span></dt>
+<dt><span class="index"><a href="api-index-1-36.html">Index of new symbols in 1.36</a></span></dt>
+<dt><span class="index"><a href="api-index-1-42.html">Index of new symbols in 1.42</a></span></dt>
+<dt><span class="index"><a href="api-index-1-44.html">Index of new symbols in 1.44</a></span></dt>
+<dt><span class="index"><a href="api-index-1-46.html">Index of new symbols in 1.46</a></span></dt>
+<dt><span class="index"><a href="api-index-1-60.html">Index of new symbols in 1.60</a></span></dt>
 <dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
 </dl></div>
 </div>
diff --git a/docs/reference/html/overview.html b/docs/reference/html/overview.html
deleted file mode 100644 (file)
index 0572cdf..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part I. GObject-Introspection Overview: GObject Introspection Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="up" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="prev" href="index.html" title="GObject Introspection Reference Manual">
-<link rel="next" href="gi-building.html" title="Compiling the GObject Introspection package">
-<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gi-building.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="part">
-<div class="titlepage"><div><div><h1 class="title">
-<a name="overview"></a>Part I. GObject-Introspection Overview</h1></div></div></div>
-<div class="toc">
-<p><b>Table of Contents</b></p>
-<dl class="toc">
-<dt>
-<span class="refentrytitle"><a href="gi-building.html">Compiling the GObject Introspection package</a></span><span class="refpurpose"> — How to compile GObject Introspection itself</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gi-programming.html">Writing introspected libraries</a></span><span class="refpurpose"> — General considerations when writing introspected libraries</span>
-</dt>
-</dl>
-</div>
-<p>
-      GObject-Introspection is striving to provide a middleware layer between
-      (GObject based) C libraries and language bindings. The primary goal of
-      this project is to minimize duplicated effort in language binding
-      projects by providing shared metadata files on bound C libraries.
-      Language bindings can read these metadata files at runtime to learn
-      how to interface with a bound C library.
-    </p>
-<p>
-      The GObject-Introspection package contains of a few different parts:
-      </p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>The GIR XML format - an XML format describing the exported C API including documentation</p></li>
-<li class="listitem"><p>The GTypelib format - a binary format optimized for fast disk access and low memory usage</p></li>
-<li class="listitem"><p>g-ir-scanner - parses C source code and gtk-doc comments and generates GIR XML files</p></li>
-<li class="listitem"><p>g-ir-compiler - compiles GIR XML files into typelibs</p></li>
-<li class="listitem"><p>libgirepository - library to access typelib from C</p></li>
-</ul></div>
-<p>
-    </p>
-<p>The following illustration shows how the different components fit together:</p>
-<img src="overview.png">
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.28</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/reference/html/overview.png b/docs/reference/html/overview.png
deleted file mode 100644 (file)
index b4a12bd..0000000
Binary files a/docs/reference/html/overview.png and /dev/null differ
diff --git a/docs/reference/images/overview.png b/docs/reference/images/overview.png
deleted file mode 100644 (file)
index b4a12bd..0000000
Binary files a/docs/reference/images/overview.png and /dev/null differ
index b617311..3d2a556 100644 (file)
@@ -22,11 +22,7 @@ gnome.gtkdoc('gi',
   main_xml: 'gi-docs.xml',
   dependencies: girepo_dep,
   src_dir: 'girepository',
-  html_assets: 'images/overview.png',
   content_files: [
-    'overview-building.xml',
-    'overview-programming.xml',
-    'gi-gir-reference.xml',
     'gi-struct-hierarchy.xml',
   ],
   scan_args: [
diff --git a/docs/reference/overview-building.xml b/docs/reference/overview-building.xml
deleted file mode 100644 (file)
index 7c843ce..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-]>
-<refentry id="gi-building">
-  <refmeta>
-    <refentrytitle>Compiling the GObject Introspection package</refentrytitle>
-  </refmeta>
-
-  <refnamediv>
-    <refname>Compiling the GObject Introspection Package</refname>
-    <refpurpose>How to compile GObject Introspection itself</refpurpose>
-  </refnamediv>
-
-  <refsect1 id="gi-buildtools">
-    <title>Building on UNIX</title>
-    <para>
-      On UNIX, GObject Introspection uses the standard GNU build system,
-      using <application>autoconf</application> for package
-      configuration and resolving portability issues,
-      <application>automake</application> for building makefiles
-      that comply with the GNU Coding Standards, and
-      <application>libtool</application> for building shared
-      libraries on multiple platforms. The normal sequence for
-      compiling and installing the GObject Introspection package is thus:
-
-      <literallayout>
-        <userinput>./configure</userinput>
-        <userinput>make</userinput>
-        <userinput>make install</userinput>
-      </literallayout>
-    </para>
-
-    <para>
-      The standard options provided by <application>GNU
-      autoconf</application> may be passed to the
-      <command>configure</command> script.  Please see the
-      <application>autoconf</application> documentation or run
-      <command>./configure --help</command> for information about
-      the standard options.
-    </para>
-  </refsect1>
-
-  <refsect1 id="dependencies">
-    <title>Dependencies</title>
-    <para>
-      Before you can compile GObject Introspection, you need to have
-      various other tools and libraries installed on your
-      system. The tools needed during the build process (as
-      differentiated from the basic build tools mentioned
-      <link linkend="gi-buildtools">before</link> are:
-    </para>
-    <itemizedlist>
-      <listitem>
-        <para>
-          <ulink url="http://www.freedesktop.org/software/pkgconfig/">pkg-config</ulink>
-          is a tool for tracking the compilation flags needed for
-          libraries that are used by the GObjecct Introspection. (For each
-          library, a small <literal>.pc</literal> text file is
-          installed in a standard location that contains the compilation
-          flags needed for that library along with version number
-          information.)
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          The GObject-Introspection makefiles will mostly work with different
-          versions of <command>make</command>, however, there tends to be a
-          few incompatibilities, so the GObject-Introspection team recommends
-          installing <ulink url="http://www.gnu.org/software/make">GNU
-          make</ulink> if you don't already have it on your system
-          and using it. (It may be called <command>gmake</command>
-          rather than <command>make</command>.)
-        </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-      GObject-Introspection depends on a number of libraries and tools
-      maintained under the umbrella of the GNOME project:
-    </para>
-    <itemizedlist>
-      <listitem>
-        <para>
-          The GLib library provides core non-graphical functionality
-          such as high level data types, Unicode manipulation, and
-          an object and type system to C programs. It is available
-          from the <ulink url="ftp.gnome.org/pub/gnome/sources/glib">GNOME
-          FTP site</ulink> or
-          <ulink url="http://download.gnome.org/sources/glib/">here</ulink>.
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          TODO: GTK-Doc
-        </para>
-      </listitem>
-    </itemizedlist>
-    <itemizedlist>
-      <title>External dependencies</title>
-      <listitem>
-        <para>
-          Python
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          GObject Introspection has an option dependency on the
-          <ulink url="TODO">libffi</ulink> library. When available,
-          ...
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-        <para>
-          <ulink url="http://www.cairographics.org">Cairo</ulink>
-          is a graphics library that supports vector graphics and image
-          compositing. When available, GObject Introspection uses
-          Cairo in its unit tests.
-        </para>
-        </para>
-      </listitem>
-    </itemizedlist>
-  </refsect1>
-
-  <refsect1 id="extra-configuration-options">
-    <title>Extra Configuration Options</title>
-
-    <para>
-      In addition to the normal options, the
-      <command>configure</command> script in the GObject Introspection
-      package supports these additional arguments:
-    </para>
-
-    <formalpara>
-      <title><systemitem>--disable-Bsymbolic</systemitem> and
-        <systemitem>--enable-Bsymbolic</systemitem></title>
-
-      <para>
-        By default, the GObject Introspection package uses the
-        -Bsymbolic-functions linker flag to avoid intra-library
-        PLT jumps. A side-effect of this is that it is no longer
-        possible to override internal uses of GObject Introspection
-        functions with <envar>LD_PRELOAD</envar>. Therefore, it may
-        make sense to turn this feature off in some situations.
-        The <option>--disable-Bsymbolic</option> option allows
-        to do that.
-      </para>
-    </formalpara>
-
-    <formalpara>
-      <title><systemitem>--disable-gtk-doc</systemitem> and
-        <systemitem>--enable-gtk-doc</systemitem></title>
-
-      <para>
-        By default the <command>configure</command> script will try
-        to auto-detect whether the
-        <application>gtk-doc</application> package is installed.
-        If it is, then it will use it to extract and build the
-        documentation for the GObject Introspection package. These options
-        can be used to explicitly control whether
-        <application>gtk-doc</application> should be
-        used or not. If it is not used, the distributed,
-        pre-generated HTML files will be installed instead of
-        building them on your machine.
-      </para>
-    </formalpara>
-
-    <formalpara>
-      <title><systemitem>--disable-doctool</systemitem> and
-        <systemitem>--enable-doctool</systemitem></title>
-
-      <para>
-        TODO
-      </para>
-    </formalpara>
-
-    <formalpara>
-      <title><systemitem>--with-python</systemitem></title>
-
-      <para>
-        Allows specifying the Python interpreter to use, either as an
-        absolute path, or as a program name. GObject Introspection can
-        be built with Python 2 (at least version 2.6) but does not yet
-        support Python 3.
-      </para>
-    </formalpara>
-  </refsect1>
-
-</refentry>
diff --git a/docs/reference/overview-programming.xml b/docs/reference/overview-programming.xml
deleted file mode 100644 (file)
index 6511d4b..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-]>
-<refentry id="gi-programming">
-  <refmeta>
-    <refentrytitle>Writing introspected libraries</refentrytitle>
-  </refmeta>
-
-  <refnamediv>
-    <refname>Writing introspected libraries</refname>
-    <refpurpose>General considerations when writing introspected libraries</refpurpose>
-  </refnamediv>
-
-  <refsect1>
-    <title>TODO</title>
-    <para>
-      ...
-    </para>
-  </refsect1>
-
-</refentry>
index 766c0cd..87a9db7 100644 (file)
 
 
 /**
+ * GApplication::name-lost:
+ * @application: the application
+ *
+ * The ::name-lost signal is emitted only on the registered primary instance
+ * when a new instance has taken over. This can only happen if the application
+ * is using the %G_APPLICATION_ALLOW_REPLACEMENT flag.
+ *
+ * The default handler for this signal calls g_application_quit().
+ *
+ * Returns: %TRUE if the signal has been handled
+ * Since: 2.60
+ */
+
+
+/**
  * GApplication::open:
  * @application: the application
  * @files: (array length=n_files) (element-type GFile): an array of #GFiles
  *     If this function returns %TRUE, registration will proceed; otherwise
  *     registration will abort. Since: 2.34
  * @dbus_unregister: invoked locally during unregistration, if the application
- *     is using its D-Bus backend. Use this to undo anything done by the
- *     @dbus_register vfunc. Since: 2.34
+ *     is using its D-Bus backend. Use this to undo anything done by
+ *     the @dbus_register vfunc. Since: 2.34
  * @handle_local_options: invoked locally after the parsing of the commandline
  *  options has occurred. Since: 2.40
+ * @name_lost: invoked when another instance is taking over the name. Since: 2.60
  *
  * Virtual function table for #GApplication.
  *
  * g_dtls_connection_set_rehandshake_mode().
  *
  * Since: 2.48
+ * Deprecated: 2.60.: Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 
 
  * GMountOperation:is-tcrypt-hidden-volume:
  *
  * Whether the device to be unlocked is a TCRYPT hidden volume.
- * See https://www.veracrypt.fr/en/Hidden%20Volume.html.
+ * See [the VeraCrypt documentation](https://www.veracrypt.fr/en/Hidden%20Volume.html).
  *
  * Since: 2.58
  */
  * In this context, a system volume is a volume with a bootloader
  * and operating system installed. This is only supported for Windows
  * operating systems. For further documentation, see
- * https://www.veracrypt.fr/en/System%20Encryption.html.
+ * [the VeraCrypt documentation](https://www.veracrypt.fr/en/System%20Encryption.html).
  *
  * Since: 2.58
  */
  * GMountOperation:pim:
  *
  * The VeraCrypt PIM value, when unlocking a VeraCrypt volume. See
- * https://www.veracrypt.fr/en/Personal%20Iterations%20Multiplier%20(PIM).html.
+ * [the VeraCrypt documentation](https://www.veracrypt.fr/en/Personal%20Iterations%20Multiplier%20(PIM).html).
  *
  * Since: 2.58
  */
  * well-known name, the property cache is flushed when the name owner
  * vanishes and reloaded when a name owner appears.
  *
- * If a #GDBusProxy is used for a well-known name, the owner of the
- * name is tracked and can be read from
+ * The unique name owner of the proxy's name is tracked and can be read from
  * #GDBusProxy:g-name-owner. Connect to the #GObject::notify signal to
  * get notified of changes. Additionally, only signals and property
  * changes emitted from the current name owner are considered and
  * then attempt to connect to that host, handling the possibility of
  * multiple IP addresses and multiple address families.
  *
- * See #GSocketConnectable for and example of using the connectable
+ * See #GSocketConnectable for an example of using the connectable
  * interface.
  */
 
  * address families.
  *
  * See #GSrvTarget for more information about SRV records, and see
- * #GSocketConnectable for and example of using the connectable
+ * #GSocketConnectable for an example of using the connectable
  * interface.
  */
 
  * fixed-size.
  *
  * #GSeekable on fixed-sized streams is approximately the same as POSIX
- * lseek() on a block device (for example: attmepting to seek past the
+ * lseek() on a block device (for example: attempting to seek past the
  * end of the device is an error).  Fixed streams typically cannot be
  * truncated.
  *
  *       <default>(20,30)</default>
  *     </key>
  *
+ *     <key name="empty-string" type="s">
+ *       <default>""</default>
+ *       <summary>Empty strings have to be provided in GVariant form</summary>
+ *     </key>
+ *
  *   </schema>
  * </schemalist>
  * ]|
  * from a certificate or key store. It is an abstract base class which
  * TLS library specific subtypes override.
  *
+ * A #GTlsDatabase may be accessed from multiple threads by the TLS backend.
+ * All implementations are required to be fully thread-safe.
+ *
  * Most common client applications will not directly interact with
  * #GTlsDatabase. It is used internally by #GTlsConnection.
  *
  * for credentials.
  *
  * The callback will be fired when the operation has resolved (either
- * with success or failure), and a #GAsyncReady structure will be
+ * with success or failure), and a #GAsyncResult instance will be
  * passed to the callback.  That callback should then call
  * g_volume_mount_finish() with the #GVolume instance and the
- * #GAsyncReady data to see if the operation was completed
+ * #GAsyncResult data to see if the operation was completed
  * successfully.  If an @error is present when g_volume_mount_finish()
  * is called, then it will be filled with any error information.
  *
  * [thread-default-context aware][g-main-context-push-thread-default],
  * and so should not be used other than from the main thread, with no
  * thread-default-context active.
+ *
+ * In order to receive updates about volumes and mounts monitored through GVFS,
+ * a main loop must be running.
  */
 
 
  * @uri: the uri to show
  * @context: (nullable): an optional #GAppLaunchContext
  * @cancellable: (nullable): a #GCancellable
- * @callback: (nullable): a #GASyncReadyCallback to call when the request is done
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the request is done
  * @user_data: (nullable): data to pass to @callback
  *
  * Async version of g_app_info_launch_default_for_uri().
  *
  * See also g_cancellable_make_pollfd().
  *
- * Returns: A valid file descriptor. %-1 if the file descriptor
+ * Returns: A valid file descriptor. `-1` if the file descriptor
  * is not supported, or on errors.
  */
 
  *
  * Reads an unsigned 8-bit/1-byte value from @stream.
  *
- * Returns: an unsigned 8-bit/1-byte value read from the @stream or %0
+ * Returns: an unsigned 8-bit/1-byte value read from the @stream or `0`
  * if an error occurred.
  */
 
  * In order to get the correct byte order for this read operation,
  * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
  *
- * Returns: a signed 16-bit/2-byte value read from @stream or %0 if
+ * Returns: a signed 16-bit/2-byte value read from @stream or `0` if
  * an error occurred.
  */
 
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
  *
- * Returns: a signed 32-bit/4-byte value read from the @stream or %0 if
+ * Returns: a signed 32-bit/4-byte value read from the @stream or `0` if
  * an error occurred.
  */
 
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
  *
- * Returns: a signed 64-bit/8-byte value read from @stream or %0 if
+ * Returns: a signed 64-bit/8-byte value read from @stream or `0` if
  * an error occurred.
  */
 
  * In order to get the correct byte order for this read operation,
  * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
  *
- * Returns: an unsigned 16-bit/2-byte value read from the @stream or %0 if
+ * Returns: an unsigned 16-bit/2-byte value read from the @stream or `0` if
  * an error occurred.
  */
 
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
  *
- * Returns: an unsigned 32-bit/4-byte value read from the @stream or %0 if
+ * Returns: an unsigned 32-bit/4-byte value read from the @stream or `0` if
  * an error occurred.
  */
 
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
  *
- * Returns: an unsigned 64-bit/8-byte read from @stream or %0 if
+ * Returns: an unsigned 64-bit/8-byte read from @stream or `0` if
  * an error occurred.
  */
 
  * bus. This can also be used to figure out if @connection is a
  * message bus connection.
  *
- * Returns: the unique name or %NULL if @connection is not a message
+ * Returns: (nullable): the unique name or %NULL if @connection is not a message
  *     bus connection. Do not free this string, it is owned by
  *     @connection.
  * Since: 2.26
  * signal is unsubscribed from, and may be called after @connection
  * has been destroyed.)
  *
+ * The returned subscription identifier is an opaque value which is guaranteed
+ * to never be zero.
+ *
+ * This function can never fail.
+ *
  * Returns: a subscription identifier that can be used with g_dbus_connection_signal_unsubscribe()
  * Since: 2.26
  */
  * match rules for signals. Connect to the #GDBusProxy::g-signal signal
  * to handle signals from the remote object.
  *
+ * If both %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES and
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS are set, this constructor is
+ * guaranteed to complete immediately without blocking.
+ *
  * If @name is a well-known name and the
  * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
  * flags aren't set and no name owner currently exists, the message bus
  * match rules for signals. Connect to the #GDBusProxy::g-signal signal
  * to handle signals from the remote object.
  *
+ * If both %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES and
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS are set, this constructor is
+ * guaranteed to return immediately without blocking.
+ *
  * If @name is a well-known name and the
  * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
  * flags aren't set and no name owner currently exists, the message bus
 
 
 /**
+ * g_desktop_app_info_get_string_list:
+ * @info: a #GDesktopAppInfo
+ * @key: the key to look up
+ * @length: (out) (optional): return location for the number of returned strings, or %NULL
+ *
+ * Looks up a string list value in the keyfile backing @info.
+ *
+ * The @key is looked up in the "Desktop Entry" group.
+ *
+ * Returns: (array zero-terminated=1 length=length) (element-type utf8) (transfer full):
+ *  a %NULL-terminated string array or %NULL if the specified
+ *  key cannot be found. The array should be freed with g_strfreev().
+ * Since: 2.60.0
+ */
+
+
+/**
  * g_desktop_app_info_has_key:
  * @info: a #GDesktopAppInfo
  * @key: the key to look up
  * Likewise, on the server side, although a handshake is necessary at
  * the beginning of the communication, you do not need to call this
  * function explicitly unless you want clearer error reporting.
- * However, you may call g_dtls_connection_handshake() later on to
- * renegotiate parameters (encryption methods, etc) with the client.
+ *
+ * If TLS 1.2 or older is in use, you may call
+ * g_dtls_connection_handshake() after the initial handshake to
+ * rehandshake; however, this usage is deprecated because rehandshaking
+ * is no longer part of the TLS protocol in TLS 1.3. Accordingly, the
+ * behavior of calling this function after the initial handshake is now
+ * undefined, except it is guaranteed to be reasonable and
+ * nondestructive so as to preserve compatibility with code written for
+ * older versions of GLib.
  *
  * #GDtlsConnection::accept_certificate may be emitted during the
  * handshake.
  * software.
  *
  * Since: 2.48
+ * Deprecated: 2.60.: Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 
 
 
 
 /**
+ * g_resolver_lookup_by_name_with_flags:
+ * @resolver: a #GResolver
+ * @hostname: the hostname to look up
+ * @flags: extra #GResolverNameLookupFlags for the lookup
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: (nullable): return location for a #GError, or %NULL
+ *
+ * This differs from g_resolver_lookup_by_name() in that you can modify
+ * the lookup behavior with @flags. For example this can be used to limit
+ * results with #G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY.
+ *
+ * Returns: (element-type GInetAddress) (transfer full): a non-empty #GList
+ * of #GInetAddress, or %NULL on error. You
+ * must unref each of the addresses and free the list when you are
+ * done with it. (You can use g_resolver_free_addresses() to do this.)
+ * Since: 2.60
+ */
+
+
+/**
+ * g_resolver_lookup_by_name_with_flags_async:
+ * @resolver: a #GResolver
+ * @hostname: the hostname to look up the address of
+ * @flags: extra #GResolverNameLookupFlags for the lookup
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
+ *
+ * Begins asynchronously resolving @hostname to determine its
+ * associated IP address(es), and eventually calls @callback, which
+ * must call g_resolver_lookup_by_name_with_flags_finish() to get the result.
+ * See g_resolver_lookup_by_name() for more details.
+ *
+ * Since: 2.60
+ */
+
+
+/**
+ * g_resolver_lookup_by_name_with_flags_finish:
+ * @resolver: a #GResolver
+ * @result: the result passed to your #GAsyncReadyCallback
+ * @error: return location for a #GError, or %NULL
+ *
+ * Retrieves the result of a call to
+ * g_resolver_lookup_by_name_with_flags_async().
+ *
+ * If the DNS resolution failed, @error (if non-%NULL) will be set to
+ * a value from #GResolverError. If the operation was cancelled,
+ * @error will be set to %G_IO_ERROR_CANCELLED.
+ *
+ * Returns: (element-type GInetAddress) (transfer full): a #GList
+ * of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
+ * for more details.
+ * Since: 2.60
+ */
+
+
+/**
  * g_resolver_lookup_records:
  * @resolver: a #GResolver
  * @rrname: the DNS name to lookup the record for
  * The list is exactly the list of strings for which it is not an error
  * to call g_settings_get_child().
  *
- * For GSettings objects that are lists, this value can change at any
- * time. Note that there is a race condition here: you may
- * request a child after listing it only for it to have been destroyed
- * in the meantime.  For this reason, g_settings_get_child() may return
- * %NULL even for a child that was listed by this function.
- *
- * For GSettings objects that are not lists, you should probably not be
- * calling this function from "normal" code (since you should already
- * know what children are in your schema).  This function may still be
- * useful there for introspection reasons, however.
+ * There is little reason to call this function from "normal" code, since
+ * you should already know what children are in your schema. This function
+ * may still be useful there for introspection reasons, however.
  *
  * You should free the return value with g_strfreev() when you are done
  * with it.
  * Asynchronously retrieves the next #GSocketAddress from @enumerator
  * and then calls @callback, which must call
  * g_socket_address_enumerator_next_finish() to get the result.
+ *
+ * It is an error to call this multiple times before the previous callback has finished.
  */
 
 
 
 
 /**
+ * g_tls_backend_set_default_database:
+ * @backend: the #GTlsBackend
+ * @database: (nullable): the #GTlsDatabase
+ *
+ * Set the default #GTlsDatabase used to verify TLS connections
+ *
+ * Any subsequent call to g_tls_backend_get_default_database() will return
+ * the database set in this call.  Existing databases and connections are not
+ * modified.
+ *
+ * Setting a %NULL default database will reset to using the system default
+ * database as if g_tls_backend_set_default_database() had never been called.
+ *
+ * Since: 2.60
+ */
+
+
+/**
  * g_tls_backend_supports_dtls:
  * @backend: the #GTlsBackend
  *
  *
  * Returns: @conn's rehandshaking mode
  * Since: 2.28
+ * Deprecated: 2.60.: Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 
 
  * Likewise, on the server side, although a handshake is necessary at
  * the beginning of the communication, you do not need to call this
  * function explicitly unless you want clearer error reporting.
- * However, you may call g_tls_connection_handshake() later on to
- * rehandshake, if TLS 1.2 or older is in use. With TLS 1.3, the
- * behavior is undefined but guaranteed to be reasonable and
- * nondestructive, so most older code should be expected to continue to
- * work without changes.
+ *
+ * If TLS 1.2 or older is in use, you may call
+ * g_tls_connection_handshake() after the initial handshake to
+ * rehandshake; however, this usage is deprecated because rehandshaking
+ * is no longer part of the TLS protocol in TLS 1.3. Accordingly, the
+ * behavior of calling this function after the initial handshake is now
+ * undefined, except it is guaranteed to be reasonable and
+ * nondestructive so as to preserve compatibility with code written for
+ * older versions of GLib.
  *
  * #GTlsConnection::accept_certificate may be emitted during the
  * handshake.
  * software.
  *
  * Since: 2.28
+ * Deprecated: 2.60.: Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 
 
  *
  * Lookup the issuer of @certificate in the database.
  *
- * The %issuer property
+ * The #GTlsCertificate:issuer property
  * of @certificate is not modified, and the two certificates are not hooked
  * into a chain.
  *
 
 
 /**
+ * g_unix_mount_get_root_path:
+ * @mount_entry: a #GUnixMountEntry.
+ *
+ * Gets the root of the mount within the filesystem. This is useful e.g. for
+ * mounts created by bind operation, or btrfs subvolumes.
+ *
+ * For example, the root path is equal to "/" for mount created by
+ * "mount /dev/sda1 /mnt/foo" and "/bar" for
+ * "mount --bind /mnt/foo/bar /mnt/bar".
+ *
+ * Returns: (nullable): a string containing the root, or %NULL if not supported.
+ * Since: 2.60
+ */
+
+
+/**
  * g_unix_mount_guess_can_eject:
  * @mount_entry: a #GUnixMountEntry
  *
index 4614983..c70f274 100644 (file)
 
 
 /**
+ * G_GNUC_FALLTHROUGH:
+ *
+ * Expands to the GNU C fallthrough statement attribute if the compiler is gcc.
+ * This allows declaring case statement to explicitly fall through in switch
+ * statements. To enable this feature, use -Wimplicit-fallthrough during
+ * compilation.
+ *
+ * Put the attribute right before the case statement you want to fall through
+ * to.
+ *
+ * See the GNU C documentation for more details.
+ *
+ * Since: 2.60
+ */
+
+
+/**
  * G_GNUC_FORMAT:
  * @arg_idx: the index of the argument
  *
 
 
 /**
+ * G_GNUC_STRFTIME:
+ * @format_idx: the index of the argument corresponding to
+ *     the format string (the arguments are numbered from 1)
+ *
+ * Expands to the GNU C strftime format function attribute if the compiler
+ * is gcc. This is used for declaring functions which take a format argument
+ * which is passed to strftime() or an API implementing its formats. It allows
+ * the compiler check the format passed to the function.
+ *
+ * See the
+ * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-3288)
+ * for details.
+ *
+ * Since: 2.60
+ */
+
+
+/**
  * G_GNUC_UNUSED:
  *
  * Expands to the GNU C unused function attribute if the compiler is gcc.
 
 
 /**
+ * SECTION:warnings
+ * @title: Warnings and Assertions
+ * @short_description: warnings and assertions to use in runtime code
+ *
+ * GLib defines several warning functions and assertions which can be used to
+ * warn of programmer errors when calling functions, and print error messages
+ * from command line programs.
+ *
+ * The g_return_if_fail(), g_return_val_if_fail(), g_return_if_reached() and
+ * g_return_val_if_reached() macros are intended as pre-condition assertions, to
+ * be used at the top of a public function to check that the function’s
+ * arguments are acceptable. Any failure of such a pre-condition assertion is
+ * considered a programming error on the part of the caller of the public API,
+ * and the program is considered to be in an undefined state afterwards. They
+ * are similar to the libc assert() function, but provide more context on
+ * failures.
+ *
+ * For example:
+ * |[<!-- language="C" -->
+ * gboolean
+ * g_dtls_connection_shutdown (GDtlsConnection  *conn,
+ *                             gboolean          shutdown_read,
+ *                             gboolean          shutdown_write,
+ *                             GCancellable     *cancellable,
+ *                             GError          **error)
+ * {
+ *   // local variable declarations
+ *
+ *   g_return_val_if_fail (G_IS_DTLS_CONNECTION (conn), FALSE);
+ *   g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
+ *   g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ *
+ *   // function body
+ *
+ *   return return_val;
+ * }
+ * ]|
+ *
+ * g_print(), g_printerr() and g_set_print_handler() are intended to be used for
+ * output from command line applications, since they output to standard output
+ * and standard error by default — whereas functions like g_message() and
+ * g_log() may be redirected to special purpose message windows, files, or the
+ * system journal.
+ */
+
+
+/**
  * SECTION:windows
  * @title: Windows Compatibility Functions
  * @short_description: UNIX emulation on Windows
  * @free_segment: if %TRUE the actual element data is freed as well
  *
  * Frees the memory allocated for the #GArray. If @free_segment is
- * %TRUE it frees the memory block holding the elements as well and
- * also each element if @array has a @element_free_func set. Pass
+ * %TRUE it frees the memory block holding the elements as well. Pass
  * %FALSE if you want to free the #GArray wrapper but preserve the
- * underlying array for use elsewhere. If the reference count of @array
- * is greater than one, the #GArray wrapper is preserved but the size
- * of @array will be set to zero.
+ * underlying array for use elsewhere. If the reference count of
+ * @array is greater than one, the #GArray wrapper is preserved but
+ * the size of  @array will be set to zero.
  *
- * If array elements contain dynamically-allocated memory, they should
- * be freed separately.
+ * If array contents point to dynamically-allocated memory, they should
+ * be freed separately if @free_seg is %TRUE and no @clear_func
+ * function has been set for @array.
  *
  * This function is not thread-safe. If using a #GArray from multiple
  * threads, use only the atomic g_array_ref() and g_array_unref()
  * @base that is within inclusive bounds limited by @min and @max. If
  * this is true, then the converted number is stored in @out_num. An
  * empty string is not a valid input. A string with leading or
- * trailing whitespace is also an invalid input.
+ * trailing whitespace is also an invalid input. A string with a leading sign
+ * (`-` or `+`) is not a valid input for the unsigned parser.
  *
  * @base can be between 2 and 36 inclusive. Hexadecimal numbers must
  * not be prefixed with "0x" or "0X". Such a problem does not exist
  * changing the current locale, since that would not be
  * thread-safe.
  *
+ * Note that input with a leading minus sign (`-`) is accepted, and will return
+ * the negation of the parsed number, unless that would overflow a #guint64.
+ * Critically, this means you cannot assume that a short fixed length input will
+ * never result in a low return value, as the input could have a leading `-`.
+ *
  * This function is typically used when reading configuration
  * files or other non-user input that should be locale independent.
  * To handle input from the user you should normally use the
 
 /**
  * g_assertion_message_expr: (skip)
- * @domain: (nullable):
- * @file:
- * @line:
- * @func:
- * @expr: (nullable):
+ * @domain: (nullable): log domain
+ * @file: file containing the assertion
+ * @line: line number of the assertion
+ * @func: function containing the assertion
+ * @expr: (nullable): expression which failed
+ *
+ * Internal function used to print messages from the public g_assert() and
+ * g_assert_not_reached() macros.
  */
 
 
  * g_atomic_ref_count_init:
  * @arc: the address of an atomic reference count variable
  *
- * Atomically initializes a reference count variable.
+ * Initializes a reference count variable.
  *
  * Since: 2.58
  */
  *
  * g_get_language_names() returns g_get_language_names_with_category("LC_MESSAGES").
  *
- * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of strings owned by GLib
- *    that must not be modified or freed.
+ * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of strings owned by
+ *    the thread g_get_language_names_with_category was called from.
+ *    It must not be modified or freed. It must be copied if planned to be used in another thread.
  * Since: 2.58
  */
 
  * @group_name. If both @key and @group_name are %NULL, then
  * @comment will be read from above the first group in the file.
  *
- * Note that the returned string includes the '#' comment markers.
+ * Note that the returned string does not include the '#' comment markers,
+ * but does include any whitespace after them (on each line). It includes
+ * the line breaks between lines, but does not include the final line break.
  *
  * Returns: a comment that should be freed with g_free()
  * Since: 2.6
  * g_path_get_dirname:
  * @file_name: (type filename): the name of the file
  *
- * Gets the directory components of a file name.
+ * Gets the directory components of a file name. For example, the directory
+ * component of `/usr/bin/test` is `/usr/bin`. The directory component of `/`
+ * is `/`.
  *
  * If the file name has no directory components "." is returned.
  * The returned string should be freed when no longer needed.
 
 /**
  * g_return_if_fail_warning: (skip)
- * @log_domain: (nullable):
- * @pretty_function:
- * @expression: (nullable):
+ * @log_domain: (nullable): log domain
+ * @pretty_function: function containing the assertion
+ * @expression: (nullable): expression which failed
+ *
+ * Internal function used to print messages from the public g_return_if_fail()
+ * and g_return_val_if_fail() macros.
  */
 
 
  * on how to handle memory management of @data.
  *
  * Typically, you won't use this function. Instead use functions specific
- * to the type of source you are using.
+ * to the type of source you are using, such as g_idle_add() or g_timeout_add().
+ *
+ * It is safe to call this function multiple times on a source which has already
+ * been attached to a context. The changes will take effect for the next time
+ * the source is dispatched after this call returns.
  */
 
 
  * an initial reference count on @callback_data, and thus
  * @callback_funcs->unref will eventually be called once more
  * than @callback_funcs->ref.
+ *
+ * It is safe to call this function multiple times on a source which has already
+ * been attached to a context. The changes will take effect for the next time
+ * the source is dispatched after this call returns.
  */
 
 
 
 
 /**
+ * g_utf8_validate_len:
+ * @str: (array length=max_len) (element-type guint8): a pointer to character data
+ * @max_len: max bytes to validate
+ * @end: (out) (optional) (transfer none): return location for end of valid data
+ *
+ * Validates UTF-8 encoded text.
+ *
+ * As with g_utf8_validate(), but @max_len must be set, and hence this function
+ * will always return %FALSE if any of the bytes of @str are nul.
+ *
+ * Returns: %TRUE if the text was valid UTF-8
+ * Since: 2.60
+ */
+
+
+/**
  * g_utime:
  * @filename: (type filename): a pathname in the GLib file name encoding
  *     (UTF-8 on Windows)
  *
  * A reference is taken on @bytes.
  *
+ * The data in @bytes must be aligned appropriately for the @type being loaded.
+ * Otherwise this function will internally create a copy of the memory (since
+ * GLib 2.60) or (in older versions) fail and exit the process.
+ *
  * Returns: (transfer none): a new #GVariant with a floating reference
  * Since: 2.36
  */
  * needed.  The exact time of this call is unspecified and might even be
  * before this function returns.
  *
+ * Note: @data must be backed by memory that is aligned appropriately for the
+ * @type being loaded. Otherwise this function will internally create a copy of
+ * the memory (since GLib 2.60) or (in older versions) fail and exit the
+ * process.
+ *
  * Returns: (transfer none): a new floating #GVariant of type @type
  * Since: 2.24
  */
 
 /**
  * g_warn_message: (skip)
- * @domain: (nullable):
- * @file:
- * @line:
- * @func:
- * @warnexpr: (nullable):
+ * @domain: (nullable): log domain
+ * @file: file containing the warning
+ * @line: line number of the warning
+ * @func: function containing the warning
+ * @warnexpr: (nullable): expression which failed
+ *
+ * Internal function used to print messages from the public g_warn_if_reached()
+ * and g_warn_if_fail() macros.
  */
 
 
index 89091e1..079a624 100644 (file)
 
 /**
  * g_cclosure_marshal_BOOLEAN__FLAGS:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: a #GValue which can store the returned #gboolean
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding instance and arg1
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with handlers that
- * take a flags type as an argument and return a boolean.  If you have
- * such a signal, you will probably also need to use an accumulator,
- * such as g_signal_accumulator_true_handled().
+ * A marshaller for a #GCClosure with a callback of type
+ * `gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)` where the #gint parameter
+ * denotes a flags type.
  */
 
 
 
 /**
  * g_cclosure_marshal_BOOL__FLAGS:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
  *
- * An old alias for g_cclosure_marshal_BOOLEAN__FLAGS().
+ * Another name for g_cclosure_marshal_BOOLEAN__FLAGS().
  */
 
 
 /**
  * g_cclosure_marshal_STRING__OBJECT_POINTER:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: a #GValue, which can store the returned string
+ * @n_param_values: 3
+ * @param_values: a #GValue array holding instance, arg1 and arg2
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with handlers that
- * take a #GObject and a pointer and produce a string.  It is highly
- * unlikely that your signal handler fits this description.
+ * A marshaller for a #GCClosure with a callback of type
+ * `gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__BOOLEAN:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gboolean parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * boolean argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__BOXED:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #GBoxed* parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * argument which is any boxed pointer type.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__CHAR:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gchar parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * character argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gchar arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__DOUBLE:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gdouble parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with one
- * double-precision floating point argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__ENUM:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the enumeration parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * argument with an enumerated type.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gint arg1, gpointer user_data)` where the #gint parameter denotes an enumeration type..
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__FLAGS:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the flags parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * argument with a flags types.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gint arg1, gpointer user_data)` where the #gint parameter denotes a flags type.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__FLOAT:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gfloat parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with one
- * single-precision floating point argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__INT:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gint parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * integer argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gint arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__LONG:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #glong parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with with a single
- * long integer argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, glong arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__OBJECT:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #GObject* parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * #GObject argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, GObject *arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__PARAM:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #GParamSpec* parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * argument of type #GParamSpec.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__POINTER:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
- *
- * A #GClosureMarshal function for use with signals with a single raw
- * pointer argument type.
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gpointer parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * If it is possible, it is better to use one of the more specific
- * functions such as g_cclosure_marshal_VOID__OBJECT() or
- * g_cclosure_marshal_VOID__OBJECT().
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__STRING:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gchar* parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single string
- * argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__UCHAR:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #guchar parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * unsigned character argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, guchar arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__UINT:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #guint parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with with a single
- * unsigned integer argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, guint arg1, gpointer user_data)`.
  */
 
 
 /**
  * g_cclosure_marshal_VOID__UINT_POINTER:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 3
+ * @param_values: a #GValue array holding instance, arg1 and arg2
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a unsigned int
- * and a pointer as arguments.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__ULONG:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #gulong parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with a single
- * unsigned long integer argument.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gulong arg1, gpointer user_data)`.
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__VARIANT:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 2
+ * @param_values: a #GValue array holding the instance and the #GVariant* parameter
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
+ *
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, GVariant *arg1, gpointer user_data)`.
  *
- * A #GClosureMarshal function for use with signals with a single
- * #GVariant argument.
+ * Since: 2.26
  */
 
 
 
 /**
  * g_cclosure_marshal_VOID__VOID:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
+ * @closure: the #GClosure to which the marshaller belongs
+ * @return_value: ignored
+ * @n_param_values: 1
+ * @param_values: a #GValue array holding only the instance
+ * @invocation_hint: the invocation hint given as the last argument
+ *  to g_closure_invoke()
+ * @marshal_data: additional data specified when registering the marshaller
  *
- * A #GClosureMarshal function for use with signals with no arguments.
+ * A marshaller for a #GCClosure with a callback of type
+ * `void (*callback) (gpointer instance, gpointer user_data)`.
  */
 
 
  * Creates a new closure which invokes @callback_func with @user_data as
  * the last parameter.
  *
+ * @destroy_data will be called as a finalize notifier on the #GClosure.
+ *
  * Returns: (transfer none): a floating reference to a new #GCClosure
  */
 
  * Creates a new closure which invokes @callback_func with @user_data as
  * the first parameter.
  *
+ * @destroy_data will be called as a finalize notifier on the #GClosure.
+ *
  * Returns: (transfer none): a floating reference to a new #GCClosure
  */
 
 
 /**
  * g_closure_invalidate:
- * @closure: GClosure to invalidate
+ * @closure: #GClosure to invalidate
  *
  * Sets a flag on the closure to indicate that its calling
  * environment has become invalid, and thus causes any future
 
 /**
  * g_object_watch_closure:
- * @object: GObject restricting lifetime of @closure
- * @closure: GClosure to watch
+ * @object: #GObject restricting lifetime of @closure
+ * @closure: #GClosure to watch
  *
  * This function essentially limits the life time of the @closure to
  * the life time of the object. That is, when the object is finalized,
index e018b4a..0c50fc8 100644 (file)
@@ -34,7 +34,6 @@ gir_files = [
 ]
 
 typelibdir = join_paths(get_option('libdir'), 'girepository-1.0')
-girdir = join_paths(get_option('datadir'), 'gir-1.0')
 install_data(gir_files, install_dir: girdir)
 
 scanner_command = [
@@ -221,7 +220,7 @@ endif
 
 foreach h : gobject_headers
   hstr = '@0@'.format(h)
-  if not hstr.endswith('autocleanups.h') and not hstr.endswith('glib-types.h')
+  if not hstr.endswith('autocleanups.h') and not hstr.endswith('glib-types.h') and not hstr.endswith('gvaluecollector.h')
     gobject_files += h
   endif
 endforeach
@@ -388,6 +387,7 @@ gir_files += custom_target('gir-gio',
 girepository_command = scanner_command + [
   '--identifier-prefix=GI',
   '--symbol-prefix=g',
+  '--symbol-prefix=gi',
   '--c-include=girepository.h',
   '--namespace=GIRepository',
   '--nsversion=2.0',
@@ -411,14 +411,16 @@ gir_files += custom_target('gir-girepository',
     '--include-uninstalled=' + gobject_gir.full_path(),
     '--cflags-begin'] + glib_includes + [
     '-I' + meson.current_source_dir() + '/../girepository',
+    '-I' + meson.current_build_dir() + '/../girepository',
     '-DGI_COMPILATION',
     '--cflags-end',
     '@INPUT@',
   ]
 )
 
+typelibs = []
 foreach gir : gir_files
-  custom_target('generate-typelib-@0@'.format(gir).underscorify(),
+  typelibs += custom_target('generate-typelib-@0@'.format(gir).underscorify(),
     input: gir,
     output: '@BASENAME@.typelib',
     depends: [gobject_gir, ],
index a4798c4..b032b82 100644 (file)
@@ -26,7 +26,7 @@
 
 /**
  * SECTION:gicommontypes
- * @title: common types
+ * @title: Common Types
  * @short_description: TODO
  *
  * TODO
index 6bc53c4..381c383 100644 (file)
@@ -41,7 +41,7 @@
  * <refsect1 id="gi-giarginfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GIArgInfo
  * </synopsis>
  * </refsect1>
@@ -179,7 +179,7 @@ g_arg_info_may_be_null (GIArgInfo *info)
  * Obtain if an argument is only useful in C.
  *
  * Returns: %TRUE if argument is only useful in C.
- * Since: 1.29.0
+ * Since: 1.30
  */
 gboolean
 g_arg_info_is_skip (GIArgInfo *info)
index ced7674..e47d539 100644 (file)
@@ -377,6 +377,7 @@ g_base_info_get_name (GIBaseInfo *info)
       }
       break;
     case GI_INFO_TYPE_TYPE:
+      return NULL;
     default: ;
       g_assert_not_reached ();
       /* unnamed */
index 52471df..f8f7191 100644 (file)
 G_BEGIN_DECLS
 
 /**
- * GIBaseInfoStub:
- *
- * TODO
- */
-struct _GIBaseInfoStub {
-  /* <private> */
-  gint32 dummy1;
-  gint32 dummy2;
-  gpointer dummy3;
-  gpointer dummy4;
-  gpointer dummy5;
-  guint32  dummy6;
-  guint32  dummy7;
-  gpointer padding[4];
-};
-
-/**
  * GIAttributeIter:
  *
  * An opaque structure used to iterate over attributes
index e9a426e..3048e16 100644 (file)
@@ -48,7 +48,7 @@
  * <refsect1 id="gi-gicallableinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GICallableInfo
  *          +----<link linkend="gi-GIFunctionInfo">GIFunctionInfo</link>
  *          +----<link linkend="gi-GISignalInfo">GISignalInfo</link>
@@ -297,6 +297,7 @@ g_callable_info_get_caller_owns (GICallableInfo *info)
  * Obtains the ownership transfer for the instance argument.
  * #GITransfer contains a list of possible transfer values.
  *
+ * Since: 1.42
  * Returns: the transfer mode of the instance argument
  */
 GITransfer
index d44646e..c18a9d3 100644 (file)
@@ -41,7 +41,7 @@
  * <refsect1 id="gi-giconstantinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GIConstantInfo
  * </synopsis>
  * </refsect1>
@@ -78,7 +78,7 @@ g_constant_info_get_type (GIConstantInfo *info)
  *
  * Free the value returned from g_constant_info_get_value().
  *
- * Since: 1.30.1
+ * Since: 1.32
  */
 void
 g_constant_info_free_value (GIConstantInfo *info,
index 42930b2..2dc4b16 100644 (file)
@@ -40,7 +40,7 @@
  * <refsect1 id="gi-gienuminfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
  *          +----GIEnumInfo
  * </synopsis>
@@ -78,7 +78,7 @@ g_enum_info_get_n_values (GIEnumInfo *info)
  *
  * Returns: (transfer none): the string form of the error domain associated
  * with this enum, or %NULL.
- * Since: 1.29.17
+ * Since: 1.30
  */
 const gchar *
 g_enum_info_get_error_domain (GIEnumInfo *info)
@@ -132,7 +132,7 @@ g_enum_info_get_value (GIEnumInfo *info,
  * Obtain the number of methods that this enum type has.
  *
  * Returns: number of methods
- * Since: 1.29.17
+ * Since: 1.30
  */
 gint
 g_enum_info_get_n_methods (GIEnumInfo *info)
@@ -157,7 +157,7 @@ g_enum_info_get_n_methods (GIEnumInfo *info)
  *
  * Returns: (transfer full): the #GIFunctionInfo. Free the struct by calling
  * g_base_info_unref() when done.
- * Since: 1.29.17
+ * Since: 1.30
  */
 GIFunctionInfo *
 g_enum_info_get_method (GIEnumInfo *info,
index 4d07304..0a20bdb 100644 (file)
@@ -44,7 +44,7 @@
  * <refsect1 id="gi-gifieldinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GIFieldInfo
  * </synopsis>
  * </refsect1>
@@ -109,7 +109,7 @@ g_field_info_get_size (GIFieldInfo *info)
  * g_field_info_get_offset:
  * @info: a #GIFieldInfo
  *
- * Obtain the offset in bits of the field member, this is relative
+ * Obtain the offset in bytes of the field member, this is relative
  * to the beginning of the struct or union.
  *
  * Returns: the field offset
index b572024..366850d 100644 (file)
@@ -45,7 +45,7 @@
  * <refsect1 id="gi-gifunctioninfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GICallableInfo">GICallableInfo</link>
  *          +----GIFunctionInfo
  *          +----<link linkend="gi-GISignalInfo">GISignalInfo</link>
index d60729c..203113b 100644 (file)
@@ -41,7 +41,7 @@
  * <refsect1 id="gi-giinterfaceinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
  *          +----GIInterfaceInfo
  * </synopsis>
index 0991b80..efb9ad7 100644 (file)
@@ -42,7 +42,7 @@
  * <refsect1 id="gi-giobjectinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
  *          +----GIObjectInfo
  * </synopsis>
@@ -700,7 +700,7 @@ g_object_info_find_vfunc (GIObjectInfo *info,
 /**
  * g_object_info_find_vfunc_using_interfaces:
  * @info: a #GIObjectInfo
- * @name: name of method to obtain
+ * @name: name of vfunc to obtain
  * @implementor: (out) (transfer full): The implementor of the interface
  *
  * Locate a virtual function slot with name @name, searching both the object
@@ -713,7 +713,7 @@ g_object_info_find_vfunc (GIObjectInfo *info,
  * Note that this function does *not* search parent classes; you will have
  * to chain up if that's desired.
  *
- * Returns: (transfer full): the #GIFunctionInfo. Free the struct by calling
+ * Returns: (transfer full): the #GIVFuncInfo. Free the struct by calling
  * g_base_info_unref() when done.
  */
 GIVFuncInfo *
index 338f360..e58d460 100644 (file)
@@ -39,7 +39,7 @@
  * <refsect1 id="gi-gipropertyinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GIPropertyInfo
  * </synopsis>
  * </refsect1>
index 1555c45..411b9b9 100644 (file)
@@ -47,7 +47,7 @@
  * <refsect1 id="gi-giregisteredtypeinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GIRegisteredTypeInfo
  *          +----<link linkend="gi-GIEnumInfo">GIEnumInfo</link>
  *          +----<link linkend="gi-GIInterfaceInfo">GIInterfaceInfo</link>
index c1fa3d3..8bc49eb 100644 (file)
@@ -220,7 +220,7 @@ g_irepository_prepend_search_path (const char *directory)
  * g_irepository_get_search_path:
  *
  * Returns the current search path #GIRepository will use when loading
- * typelib files. The list is internal to #GIRespository and should not
+ * typelib files. The list is internal to #GIRepository and should not
  * be freed, nor should its string elements.
  *
  * Returns: (element-type filename) (transfer none): #GSList of strings
@@ -900,7 +900,7 @@ find_by_error_domain_foreach (gpointer key,
  *
  * Returns: (transfer full): #GIEnumInfo representing metadata about @domain's
  * enum type, or %NULL
- * Since: 1.29.17
+ * Since: 1.30
  */
 GIEnumInfo *
 g_irepository_find_by_error_domain (GIRepository *repository,
index e3ed837..3934ab3 100644 (file)
@@ -47,6 +47,7 @@
 #include <giunioninfo.h>
 #include <giversionmacros.h>
 #include <givfuncinfo.h>
+#include <giversion.h>
 
 G_BEGIN_DECLS
 
index 97e62a5..d545d31 100644 (file)
@@ -2828,7 +2828,7 @@ start_element_handler (GMarkupParseContext *context,
       if (start_discriminator (context, element_name,
                               attribute_names, attribute_values,
                               ctx, error))
-       goto out;
+    goto out;
       if (strcmp ("doc", element_name) == 0 || strcmp ("doc-deprecated", element_name) == 0 ||
           strcmp ("doc-stability", element_name) == 0 || strcmp ("doc-version", element_name) == 0)
         {
@@ -3068,6 +3068,13 @@ start_element_handler (GMarkupParseContext *context,
        goto out;
       break;
 
+    case 's':
+      if (strcmp ("source-position", element_name) == 0)
+      {
+          state_switch (ctx, STATE_PASSTHROUGH);
+          goto out;
+      }
+      break;
     case 'u':
       if (start_union (context, element_name,
                       attribute_names, attribute_values,
index e72890d..5f8fa88 100644 (file)
@@ -42,7 +42,7 @@
  * <refsect1 id="gi-gisignalinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GICallableInfo">GICallableInfo</link>
  *          +----<link linkend="gi-GIFunctionInfo">GIFunctionInfo</link>
  *          +----GISignalInfo
index bd77746..7db417f 100644 (file)
@@ -42,7 +42,7 @@
  * <refsect1 id="gi-giobjectinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
  *          +----GIStructInfo
  * </synopsis>
@@ -123,6 +123,7 @@ g_struct_info_get_field (GIStructInfo *info,
  *
  * Obtain the type information for field named @name.
  *
+ * Since: 1.46
  * Returns: (transfer full): the #GIFieldInfo or %NULL if not found,
  * free it with g_base_info_unref() when done.
  */
index 4a60d5b..6e70fea 100644 (file)
@@ -48,7 +48,7 @@ GI_AVAILABLE_IN_ALL
 GIFieldInfo *    g_struct_info_get_field       (GIStructInfo *info,
                                                gint          n);
 
-GI_AVAILABLE_IN_ALL
+GI_AVAILABLE_IN_1_46
 GIFieldInfo *    g_struct_info_find_field      (GIStructInfo *info,
                                                const gchar  *name);
 
index 8b2e3ec..1434b2f 100644 (file)
@@ -46,7 +46,7 @@
  * <refsect1 id="gi-gitypeinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GITypeInfo
  * </synopsis>
  * </refsect1>
index 281192e..28b177d 100644 (file)
@@ -31,7 +31,7 @@ G_BEGIN_DECLS
 
 /**
  * SECTION:gitypelib-internal
- * @title: GITypelib
+ * @title: GITypelib Internals
  * @short_description: Layout and accessors for typelib
  * @stability: Stable
  *
@@ -528,7 +528,7 @@ typedef struct {
  * @constructor: The function acts as a constructor for the object it is
  *   contained in.
  * @wraps_vfunc: The function is a simple wrapper for a virtual function.
- * @throws: (deprecated): This is now additionally stored in the #SignatureBlob.
+ * @throws: This is now additionally stored in the #SignatureBlob. (deprecated)
  * @index: Index of the property that this function is a setter or getter of
  *   in the array of properties of the containing interface, or index
  *   of the virtual function that this function wraps.
@@ -996,7 +996,7 @@ typedef struct {
  *   virtual function.
  * @class_closure: Set if this virtual function is the class closure of a
  *   signal.
- * @throws: (deprecated): This is now additionally stored in the #SignatureBlob.
+ * @throws: This is now additionally stored in the #SignatureBlob. (deprecated)
  * @reserved: Reserved for future use.
  * @signal: The index of the signal in the list of signals of the object or
  *   interface to which this virtual function belongs.
index dbc7261..de11748 100644 (file)
@@ -2235,7 +2235,7 @@ static GSList *library_paths;
  * path (ie. LD_LIBRARY_PATH and DT_RPATH in ELF systems).
  * See the documentation of your dynamic linker for full details.
  *
- * Since: 1.35.8
+ * Since: 1.36
  */
 void
 g_irepository_prepend_library_path (const char *directory)
index 7d0a665..e6f46bc 100644 (file)
@@ -35,7 +35,7 @@ G_BEGIN_DECLS
 
 /**
  * SECTION:gitypelib
- * @title: gitypelib
+ * @title: GITypelib
  * @short_description: TODO
  *
  * TODO
index b96ae0b..3389752 100644 (file)
 
 G_BEGIN_DECLS
 
-#ifndef __GTK_DOC_IGNORE__
-typedef struct _GIBaseInfoStub GIBaseInfo;
-#endif
+typedef struct _GIBaseInfoStub {
+  /* <private> */
+  gint32 dummy1;
+  gint32 dummy2;
+  gpointer dummy3;
+  gpointer dummy4;
+  gpointer dummy5;
+  guint32  dummy6;
+  guint32  dummy7;
+  gpointer padding[4];
+} GIBaseInfo;
 
 /**
  * GICallableInfo:
@@ -60,7 +68,7 @@ typedef GIBaseInfo GIFunctionInfo;
  * <refsect1 id="gi-gicallbackinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GICallableInfo">GICallableInfo</link>
  *          +----GIFunctionInfo
  *          +----<link linkend="gi-GISignalInfo">GISignalInfo</link>
@@ -135,7 +143,7 @@ typedef GIBaseInfo GIConstantInfo;
  * <refsect1 id="gi-givalueinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----GIValueInfo
  * </synopsis>
  * </refsect1>
index 9a7f861..7bc81aa 100644 (file)
@@ -42,7 +42,7 @@
  * <refsect1 id="gi-giobjectinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
  *          +----GIUnionInfo
  * </synopsis>
diff --git a/girepository/giversion.c b/girepository/giversion.c
new file mode 100644 (file)
index 0000000..927190f
--- /dev/null
@@ -0,0 +1,114 @@
+/* Copyright (C) 2018 Christoph Reiter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <girepository.h>
+
+/**
+ * SECTION:giversion
+ * @Title: Version Information
+ * @Short_description: macros and functions to check the girepository version
+ */
+
+/**
+ * GI_MAJOR_VERSION:
+ *
+ * The major version number of the girepository library.
+ *
+ * Since: 1.60
+ */
+
+/**
+ * GI_MINOR_VERSION:
+ *
+ * The minor version number of the girepository library.
+ *
+ * Since: 1.60
+ */
+
+/**
+ * GI_MICRO_VERSION:
+ *
+ * The micro version number of the girepository library.
+ *
+ * Since: 1.60
+ */
+
+/**
+ * GI_CHECK_VERSION:
+ * @major: the major version to check for
+ * @minor: the minor version to check for
+ * @micro: the micro version to check for
+ *
+ * Checks the version of the girepository library that is being compiled
+ * against.
+ *
+ * Returns: %TRUE if the version of the girepository header files
+ * is the same as or newer than the passed-in version.
+ *
+ * Since: 1.60
+ */
+
+/**
+ * gi_get_major_version:
+ *
+ * Returns the major version number of the girepository library.
+ * (e.g. in version 1.58.2 this is 1.)
+ *
+ * Returns: the major version number of the girepository library
+ *
+ * Since: 1.60
+ */
+guint
+gi_get_major_version (void)
+{
+  return GI_MAJOR_VERSION;
+}
+
+/**
+ * gi_get_minor_version:
+ *
+ * Returns the minor version number of the girepository library.
+ * (e.g. in version 1.58.2 this is 58.)
+ *
+ * Returns: the minor version number of the girepository library
+ *
+ * Since: 1.60
+ */
+guint
+gi_get_minor_version (void)
+{
+  return GI_MINOR_VERSION;
+}
+
+/**
+ * gi_get_micro_version:
+ *
+ * Returns the micro version number of the girepository library.
+ * (e.g. in version 1.58.2 this is 2.)
+ *
+ * Returns: the micro version number of the girepository library
+ *
+ * Since: 1.60
+ */
+guint
+gi_get_micro_version (void)
+{
+  return GI_MICRO_VERSION;
+}
diff --git a/girepository/giversion.h b/girepository/giversion.h
new file mode 100644 (file)
index 0000000..3010bf3
--- /dev/null
@@ -0,0 +1,47 @@
+/* Copyright (C) 2018 Christoph Reiter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GIVERISON_H__
+#define __GIVERISON_H__
+
+#if !defined (__GIREPOSITORY_H_INSIDE__) && !defined (GI_COMPILATION)
+#error "Only <girepository.h> can be included directly."
+#endif
+
+G_BEGIN_DECLS
+
+#define GI_MAJOR_VERSION 1
+#define GI_MINOR_VERSION 59
+#define GI_MICRO_VERSION 1
+
+#define GI_CHECK_VERSION(major,minor,micro) \
+    (GI_MAJOR_VERSION > (major) || \
+     (GI_MAJOR_VERSION == (major) && GI_MINOR_VERSION > (minor)) || \
+     (GI_MAJOR_VERSION == (major) && GI_MINOR_VERSION == (minor) && \
+      GI_MICRO_VERSION >= (micro)))
+
+GI_AVAILABLE_IN_1_60
+guint gi_get_major_version (void) G_GNUC_CONST;
+GI_AVAILABLE_IN_1_60
+guint gi_get_minor_version (void) G_GNUC_CONST;
+GI_AVAILABLE_IN_1_60
+guint gi_get_micro_version (void) G_GNUC_CONST;
+
+G_END_DECLS
+
+#endif  /* __GIVERISON_H__ */
diff --git a/girepository/giversion.h.in b/girepository/giversion.h.in
new file mode 100644 (file)
index 0000000..177d33d
--- /dev/null
@@ -0,0 +1,47 @@
+/* Copyright (C) 2018 Christoph Reiter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GIVERISON_H__
+#define __GIVERISON_H__
+
+#if !defined (__GIREPOSITORY_H_INSIDE__) && !defined (GI_COMPILATION)
+#error "Only <girepository.h> can be included directly."
+#endif
+
+G_BEGIN_DECLS
+
+#define GI_MAJOR_VERSION @GI_MAJOR_VERSION@
+#define GI_MINOR_VERSION @GI_MINOR_VERSION@
+#define GI_MICRO_VERSION @GI_MICRO_VERSION@
+
+#define GI_CHECK_VERSION(major,minor,micro) \
+    (GI_MAJOR_VERSION > (major) || \
+     (GI_MAJOR_VERSION == (major) && GI_MINOR_VERSION > (minor)) || \
+     (GI_MAJOR_VERSION == (major) && GI_MINOR_VERSION == (minor) && \
+      GI_MICRO_VERSION >= (micro)))
+
+GI_AVAILABLE_IN_1_60
+guint gi_get_major_version (void) G_GNUC_CONST;
+GI_AVAILABLE_IN_1_60
+guint gi_get_minor_version (void) G_GNUC_CONST;
+GI_AVAILABLE_IN_1_60
+guint gi_get_micro_version (void) G_GNUC_CONST;
+
+G_END_DECLS
+
+#endif  /* __GIVERISON_H__ */
index 3c2faf4..c32e5bb 100644 (file)
 # define GI_AVAILABLE_IN_1_44                 _GI_EXTERN
 #endif
 
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_46
+# define GI_DEPRECATED_IN_1_46                GLIB_DEPRECATED
+# define GI_DEPRECATED_IN_1_46_FOR(f)         GLIB_DEPRECATED_FOR(f)
+#else
+# define GI_DEPRECATED_IN_1_46                _GI_EXTERN
+# define GI_DEPRECATED_IN_1_46_FOR(f)         _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_46
+# define GI_AVAILABLE_IN_1_46                 GLIB_UNAVAILABLE(2, 46)
+#else
+# define GI_AVAILABLE_IN_1_46                 _GI_EXTERN
+#endif
+
+#if defined(GLIB_VERSION_2_60) && GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60
+# define GI_AVAILABLE_IN_1_60                 GLIB_UNAVAILABLE(2, 60)
+#else
+# define GI_AVAILABLE_IN_1_60                 _GI_EXTERN
+#endif
+
 #endif /* __GIVERSIONMACROS_H__ */
index f20bfb0..13ab654 100644 (file)
@@ -41,7 +41,7 @@
  * <refsect1 id="gi-givfuncinfo.struct-hierarchy" role="struct_hierarchy">
  * <title role="struct_hierarchy.title">Struct hierarchy</title>
  * <synopsis>
- *   <link linkend="gi-GIBaseInfo">GIBaseInfo</link>
+ *   <link linkend="GIBaseInfo">GIBaseInfo</link>
  *    +----<link linkend="gi-GICallableInfo">GICallableInfo</link>
  *          +----<link linkend="gi-GIFunctionInfo">GIFunctionInfo</link>
  *          +----<link linkend="gi-GISignalInfo">GISignalInfo</link>
index 6a8c5b5..cc8d842 100644 (file)
@@ -36,6 +36,12 @@ girepo_internals_dep = declare_dependency(
   include_directories: include_directories('.'),
 )
 
+gi_version_h = configure_file(
+  configuration: config,
+  input: 'giversion.h.in',
+  output: 'giversion.h',
+)
+
 girepo_headers = [
   'giarginfo.h',
   'gibaseinfo.h',
@@ -58,6 +64,7 @@ girepo_headers = [
   'giunioninfo.h',
   'giversionmacros.h',
   'givfuncinfo.h',
+  gi_version_h,
 ]
 
 girepo_sources = [
@@ -81,6 +88,7 @@ girepo_sources = [
   'gitypeinfo.c',
   'gitypelib.c',
   'giunioninfo.c',
+  'giversion.c',
   'givfuncinfo.c',
 ]
 
@@ -102,6 +110,7 @@ girepo_gir_sources = files(
   'gistructinfo.c',
   'gitypeinfo.c',
   'giunioninfo.c',
+  'giversion.c',
   'givfuncinfo.c',
   'giarginfo.h',
   'gibaseinfo.h',
@@ -122,7 +131,8 @@ girepo_gir_sources = files(
   'gitypes.h',
   'giunioninfo.h',
   'givfuncinfo.h',
-)
+) + [gi_version_h]
+
 
 install_headers(girepo_headers, subdir: 'gobject-introspection-1.0')
 
index 391d36b..79c537e 100644 (file)
@@ -17,7 +17,6 @@
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 #
-from __future__ import absolute_import
 import os
 builddir = os.environ.get('UNINSTALLED_INTROSPECTION_BUILDDIR')
 if builddir is not None:
index ab1a574..e464b48 100644 (file)
@@ -1 +1 @@
-__version__ = '1.58.3'
+__version__ = '1.59.1'
index eef0f03..1f29a82 100644 (file)
 # 02110-1301, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import sys
 import optparse
 import codecs
@@ -38,15 +33,11 @@ from giscanner.scannermain import (get_preprocessor_option_group,
 @contextmanager
 def encode_stdout(encoding):
     """Force stdout into a specific encoding."""
-    # Python 2 does not encode stdout writes so wrap it with 'encoding' encoded writer.
     # Python 3 uses a io.TextIOBase wrapped stdout with the system default encoding.
     # Re-wrap the underlying buffer with a new writer with the given 'encoding'.
     # See: https://docs.python.org/3/library/sys.html#sys.stdout
     old_stdout = sys.stdout
-    if sys.version_info.major < 3:
-        binary_stdout = sys.stdout
-    else:
-        binary_stdout = sys.stdout.buffer
+    binary_stdout = sys.stdout.buffer
 
     sys.stdout = codecs.getwriter(encoding)(binary_stdout)
     yield
@@ -80,7 +71,7 @@ def annotation_main(args):
     if options.packages:
         process_packages(options, options.packages)
 
-    ss = create_source_scanner(options, args)
+    ss, _ = create_source_scanner(options, args)
 
     if options.extract:
         parser = GtkDocCommentBlockParser()
index 1b82b35..9ab629b 100644 (file)
@@ -106,12 +106,6 @@ Refer to the `GTK-Doc manual`_ for more detailed usage information.
         http://developer.gnome.org/gtk-doc-manual/1.18/documenting.html.en
 '''
 
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import re
 import operator
index 75daa45..2daccdf 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import copy
 import operator
 from itertools import chain
@@ -31,6 +26,7 @@ from collections import OrderedDict
 
 from . import message
 
+from .sourcescanner import CTYPE_TYPEDEF, CSYMBOL_TYPE_TYPEDEF
 from .message import Position
 from .utils import to_underscores
 
@@ -565,6 +561,7 @@ properties."""
         self.deprecated = None
         self.deprecated_doc = None
         self.doc = None
+        self.doc_position = None
 
 
 class Node(Annotated):
@@ -632,9 +629,23 @@ GIName.  It's possible for nodes to contain or point to other nodes."""
     def add_file_position(self, position):
         self.file_positions.add(position)
 
+    def get_main_position(self):
+        if not self.file_positions:
+            return None
+
+        res = None
+        for position in self.file_positions:
+            if position.is_typedef:
+                res = position
+            else:
+                return position
+
+        return res
+
     def add_symbol_reference(self, symbol):
         if symbol.source_filename:
-            self.add_file_position(Position(symbol.source_filename, symbol.line))
+            self.add_file_position(Position(symbol.source_filename, symbol.line,
+                is_typedef=symbol.type in (CTYPE_TYPEDEF, CSYMBOL_TYPE_TYPEDEF)))
 
     def walk(self, callback, chain):
         res = callback(self, chain)
index 58b3193..e98b52f 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import errno
 import glob
 import hashlib
@@ -30,11 +25,7 @@ import os
 import shutil
 import sys
 import tempfile
-
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
+import pickle
 
 import giscanner
 
@@ -178,7 +169,7 @@ class CacheStore(object):
             return None
         try:
             data = pickle.load(fd)
-        except (AttributeError, EOFError, ValueError, pickle.BadPickleGet):
+        except Exception:
             # Broken cache entry, remove it
             self._remove_filename(store_filename)
             data = None
index d327c58..5db0453 100644 (file)
@@ -271,10 +271,6 @@ class CCompiler(object):
             args.append('dumpbin.exe')
             args.append('-symbols')
 
-            # Work around the attempt to resolve m.lib on Python 2.x
-            if sys.version_info.major < 3:
-                libraries[:] = [lib for lib in libraries if lib != 'm']
-
         # When we are not using Visual C++ (i.e. we are using GCC)...
         else:
             libtool = utils.get_libtool_command(options)
index 0d4a8d8..ce07aaa 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import with_statement
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 from contextlib import contextmanager
 
 from . import ast
index 5efcf1f..6ef1de4 100644 (file)
 # 02110-1301, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import argparse
 
index dae2ca9..15e6843 100644 (file)
 # 02110-1301, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import re
 import sys
@@ -34,6 +29,7 @@ import tempfile
 from xml.sax import saxutils
 from mako.lookup import TemplateLookup
 import markdown
+from markdown.extensions.headerid import HeaderIdExtension
 
 from . import ast, xmlwriter
 from .utils import to_underscores
@@ -65,18 +61,6 @@ language_mimes = {
 }
 
 
-def get_headerid_ext():
-    try:
-        from markdown.extensions.headerid import HeaderIdExtension
-    except ImportError:
-        # markdown 3.x
-        from markdown.extensions.toc import TocExtension
-        return TocExtension(toc_depth=0)
-    else:
-        # markdown 2.x
-        return HeaderIdExtension(forceid=False)
-
-
 def make_page_id(node, recursive=False):
     if isinstance(node, ast.Namespace):
         if recursive:
@@ -1186,7 +1170,7 @@ class DevDocsFormatterGjs(DocFormatterGjs):
             'markdown.extensions.fenced_code',
             'markdown.extensions.nl2br',
             'markdown.extensions.attr_list',
-            get_headerid_ext(),
+            HeaderIdExtension(forceid=False)
         ])
 
     def format_function_name(self, func):
@@ -1274,7 +1258,7 @@ class DevDocsFormatterGjs(DocFormatterGjs):
             'markdown.extensions.fenced_code',
             'markdown.extensions.nl2br',
             'markdown.extensions.attr_list',
-            get_headerid_ext(),
+            HeaderIdExtension(forceid=False)
         ])
 
     def format_in_parameters(self, node):
index 2c668f5..2b851a5 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import sys
 import shlex
index cd9d94d..1730fee 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import sys
 import tempfile
index 6841b6c..3bc4a6f 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 
 from collections import OrderedDict
@@ -30,6 +25,7 @@ from xml.etree.cElementTree import parse
 
 from . import ast
 from .girwriter import COMPATIBLE_GIR_VERSION
+from .message import Position
 
 CORE_NS = "http://www.gtk.org/introspection/core/1.0"
 C_NS = "http://www.gtk.org/introspection/c/1.0"
@@ -189,6 +185,9 @@ class GIRParser(object):
         if doc is not None:
             if doc.text:
                 obj.doc = doc.text
+                obj.doc_position = Position(doc.attrib['filename'],
+                                            doc.attrib['line'],
+                                            doc.attrib.get('column', None))
         version = node.attrib.get('version')
         if version:
             obj.version = version
@@ -219,6 +218,20 @@ class GIRParser(object):
                 attributes_[name] = value
             obj.attributes = attributes_
 
+        if hasattr(obj, 'add_file_position'):
+            positions = sorted(node.findall(_corens('source-position')),
+                               key=lambda x: (x.attrib['filename'],
+                                              int(x.attrib['line'])))
+            for position in positions:
+                if 'column' in position.attrib:
+                    column = int(position.attrib['column'])
+                else:
+                    column = None
+
+                obj.add_file_position(Position(position.attrib['filename'],
+                                               int(position.attrib['line']),
+                                               column))
+
     def _parse_object_interface(self, node):
         parent = node.attrib.get('parent')
         if parent:
index 4bef1ea..91875a2 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import with_statement
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+import os
 
 from . import ast
 from .xmlwriter import XMLWriter
@@ -35,12 +31,13 @@ COMPATIBLE_GIR_VERSION = '1.2'
 
 class GIRWriter(XMLWriter):
 
-    def __init__(self, namespace):
+    def __init__(self, namespace, sources_roots=[]):
         super(GIRWriter, self).__init__()
         self.write_comment(
             'This file was automatically generated from C sources - DO NOT EDIT!\n'
             'To affect the contents of this file, edit the original C definitions,\n'
             'and/or use gtk-doc annotations. ')
+        self.sources_roots = sources_roots
         self._write_repository(namespace)
 
     def _write_repository(self, namespace):
@@ -121,13 +118,34 @@ class GIRWriter(XMLWriter):
         if node.version:
             attrs.append(('version', node.version))
 
+    def _get_relative_path(self, filename):
+        res = filename
+        for root in self.sources_roots:
+            relpath = ''
+            try:
+                relpath = os.path.relpath(filename, root)
+
+            # We might be on different drives on Windows, so relpath() won't work
+            except ValueError:
+                relpath = filename
+
+            if len(relpath) < len(res):
+                res = relpath
+
+        return res
+
     def _write_generic(self, node):
         for key, value in node.attributes.items():
             self.write_tag('attribute', [('name', key), ('value', value)])
 
         if hasattr(node, 'doc') and node.doc:
-            self.write_tag('doc', [('xml:space', 'preserve')],
-                           node.doc)
+            attrs = [('xml:space', 'preserve'),
+                    ('filename', self._get_relative_path(node.doc_position.filename)),
+                    ('line', str(node.doc_position.line))]
+            if node.doc_position.column:
+                attrs.append(('column', str(node.doc_position.column)))
+
+            self.write_tag('doc', attrs, node.doc)
 
         if hasattr(node, 'version_doc') and node.version_doc:
             self.write_tag('doc-version', [('xml:space', 'preserve')],
@@ -141,6 +159,14 @@ class GIRWriter(XMLWriter):
             self.write_tag('doc-stability', [('xml:space', 'preserve')],
                            node.stability_doc)
 
+        filepos = getattr(node, 'get_main_position', lambda: None)()
+        if filepos is not None:
+            position = [('filename', self._get_relative_path(filepos.filename)),
+                        ('line', str(filepos.line))]
+            if filepos.column:
+                position.append(('column', str(filepos.column)))
+            self.write_tag('source-position', position)
+
     def _append_node_generic(self, node, attrs):
         if node.skip or not node.introspectable:
             attrs.append(('introspectable', '0'))
index c37357b..43f8bde 100644 (file)
 #include <Python.h>
 #include "sourcescanner.h"
 
-#ifdef _WIN32
-#include <fcntl.h>
-#include <io.h>
-#define WIN32_LEAN_AND_MEAN
-#define STRICT
-#include <windows.h>
-#endif
-
 #include <glib-object.h>
 
 #ifndef Py_TYPE
@@ -89,7 +81,7 @@ typedef struct {
 
 NEW_CLASS (PyGISourceSymbol, "SourceSymbol", GISourceSymbol, 10);
 NEW_CLASS (PyGISourceType, "SourceType", GISourceType, 9);
-NEW_CLASS (PyGISourceScanner, "SourceScanner", GISourceScanner, 8);
+NEW_CLASS (PyGISourceScanner, "SourceScanner", GISourceScanner, 9);
 
 
 /* Symbol */
@@ -441,104 +433,12 @@ static PyObject *
 pygi_source_scanner_parse_file (PyGISourceScanner *self,
                                PyObject          *args)
 {
-  int fd;
-  FILE *fp;
+  char *filename;
 
-  if (!PyArg_ParseTuple (args, "i:SourceScanner.parse_file", &fd))
+  if (!PyArg_ParseTuple (args, "s:SourceScanner.parse_file", &filename))
     return NULL;
 
-#ifdef _WIN32
-  /* The file descriptor passed to us is from the C library Python
-   * uses. That is msvcr71.dll for Python 2.5 and msvcr90.dll for
-   * Python 2.6, 2.7, 3.2 etc; and msvcr100.dll for Python 3.3 and 3.4.
-   * Python 3.5 and later is built with Visual Studio 2015, which uses
-   * the universal CRT, so we need to deal with urtbase.dll here instead.
-   * This code, at least if compiled with mingw, uses
-   * msvcrt.dll, so we cannot use the file descriptor directly. So
-   * perform appropriate magic.
-   */
-
-  /* If we are using the following combinations,
-   * we can use the file descriptors directly
-   * (Not if a build using WDK is used):
-   * Python 2.6.x/2.7.x with Visual C++ 2008
-   * Python 3.1.x/3.2.x with Visual C++ 2008
-   * Python 3.3.x/3.4.x with Visual C++ 2010
-   */
-
-  /* XXX: Somehow we cannot use the FD directly on Python 3.5+ even when
-   *      using Visual Studio 2015, so we currently need to use _get_osfhandle() when
-   *      in all cases on Python 3.5+
-   */
-
-#if (defined(_MSC_VER) && !defined(USE_WIN_DDK))
-#if (PY_MAJOR_VERSION==2 && PY_MINOR_VERSION>=6 && (_MSC_VER >= 1500 && _MSC_VER < 1600))
-#define MSVC_USE_FD_DIRECTLY 1
-#elif (PY_MAJOR_VERSION==3 && PY_MINOR_VERSION<=2 && (_MSC_VER >= 1500 && _MSC_VER < 1600))
-#define MSVC_USE_FD_DIRECTLY 1
-#elif (PY_MAJOR_VERSION==3 && PY_MINOR_VERSION<=4 && (_MSC_VER >= 1600 && _MSC_VER < 1700))
-#define MSVC_USE_FD_DIRECTLY 1
-#endif
-#endif
-
-#if !defined(MSVC_USE_FD_DIRECTLY) && !defined(__MINGW64_VERSION_MAJOR)
-  {
-#if defined(PY_MAJOR_VERSION) && PY_MAJOR_VERSION==2 && PY_MINOR_VERSION==5
-#define PYTHON_MSVCRXX_DLL "msvcr71.dll"
-#elif defined(PY_MAJOR_VERSION) && PY_MAJOR_VERSION==2 && PY_MINOR_VERSION==7
-#define PYTHON_MSVCRXX_DLL "msvcr90.dll"
-#elif defined(PY_MAJOR_VERSION) && PY_MAJOR_VERSION==3 && PY_MINOR_VERSION<=2
-#define PYTHON_MSVCRXX_DLL "msvcr90.dll"
-#elif defined(PY_MAJOR_VERSION) && PY_MAJOR_VERSION==3 &&  PY_MINOR_VERSION<=4
-#define PYTHON_MSVCRXX_DLL "msvcr100.dll"
-#elif defined(PY_MAJOR_VERSION) && PY_MAJOR_VERSION==3 && PY_MINOR_VERSION>=5
-#define PYTHON_MSVCRXX_DLL "ucrtbase.dll"
-#else
-#error This Python version not handled
-#endif
-    HMODULE msvcrxx;
-    intptr_t (*p__get_osfhandle) (int);
-    HANDLE handle;
-
-    msvcrxx = GetModuleHandle (PYTHON_MSVCRXX_DLL);
-    if (!msvcrxx)
-    {
-      g_print ("No " PYTHON_MSVCRXX_DLL " loaded.\n");
-      return NULL;
-    }
-
-    p__get_osfhandle = (intptr_t (*) (int)) GetProcAddress (msvcrxx, "_get_osfhandle");
-    if (!p__get_osfhandle)
-    {
-      g_print ("No _get_osfhandle found in " PYTHON_MSVCRXX_DLL ".\n");
-      return NULL;
-    }
-
-    handle = (HANDLE) p__get_osfhandle (fd);
-    if (!p__get_osfhandle)
-    {
-      g_print ("Could not get OS handle from " PYTHON_MSVCRXX_DLL " fd.\n");
-      return NULL;
-    }
-
-    fd = _open_osfhandle ((intptr_t) handle, _O_RDONLY);
-    if (fd == -1)
-    {
-      g_print ("Could not open C fd from OS handle.\n");
-      return NULL;
-    }
-  }
-#endif
-#endif
-
-  fp = fdopen (fd, "r");
-  if (!fp)
-    {
-      PyErr_SetFromErrno (PyExc_OSError);
-      return NULL;
-    }
-
-  if (!gi_source_scanner_parse_file (self->scanner, fp))
+  if (!gi_source_scanner_parse_file (self->scanner, filename))
     {
       g_print ("Something went wrong during parsing.\n");
       return NULL;
@@ -589,37 +489,54 @@ pygi_source_scanner_set_macro_scan (PyGISourceScanner *self,
 static PyObject *
 pygi_source_scanner_get_symbols (PyGISourceScanner *self, G_GNUC_UNUSED PyObject *unused)
 {
-  GSList *l, *symbols;
+  GPtrArray *symbols;
   PyObject *list;
-  int i = 0;
+  guint i = 0;
 
   symbols = gi_source_scanner_get_symbols (self->scanner);
-  list = PyList_New (g_slist_length (symbols));
+  list = PyList_New (symbols->len);
 
-  for (l = symbols; l; l = l->next)
+  for (i = 0; i != symbols->len; ++i)
     {
-      PyObject *item = pygi_source_symbol_new (l->data);
-      PyList_SetItem (list, i++, item);
+      PyObject *item = pygi_source_symbol_new (g_ptr_array_index (symbols, i));
+      PyList_SetItem (list, i, item);
+    }
+
+  return list;
+}
+
+static PyObject *
+pygi_source_scanner_get_errors (PyGISourceScanner *self, G_GNUC_UNUSED PyObject *unused)
+{
+  GPtrArray *errors;
+  PyObject *list;
+  guint i = 0;
+
+  errors = gi_source_scanner_get_errors (self->scanner);
+  list = PyList_New (errors->len);
+
+  for (i = 0; i != errors->len; ++i)
+    {
+      PyObject *item = PyUnicode_FromString (g_ptr_array_index (errors, i));
+      PyList_SetItem (list, i, item);
     }
 
-  g_slist_free (symbols);
-  Py_INCREF (list);
   return list;
 }
 
 static PyObject *
 pygi_source_scanner_get_comments (PyGISourceScanner *self, G_GNUC_UNUSED PyObject *unused)
 {
-  GSList *l, *comments;
+  GPtrArray *comments;
   PyObject *list;
-  int i = 0;
+  guint i = 0;
 
   comments = gi_source_scanner_get_comments (self->scanner);
-  list = PyList_New (g_slist_length (comments));
+  list = PyList_New (comments->len);
 
-  for (l = comments; l; l = l->next)
+  for (i = 0; i != comments->len; ++i)
     {
-      GISourceComment *comment = l->data;
+      GISourceComment *comment = g_ptr_array_index (comments, i);
       PyObject *comment_obj;
       PyObject *filename_obj;
       PyObject *item;
@@ -651,18 +568,17 @@ pygi_source_scanner_get_comments (PyGISourceScanner *self, G_GNUC_UNUSED PyObjec
         }
 
       item = Py_BuildValue ("(OOi)", comment_obj, filename_obj, comment->line);
-      PyList_SetItem (list, i++, item);
+      PyList_SetItem (list, i, item);
 
       Py_DECREF (comment_obj);
       Py_DECREF (filename_obj);
     }
 
-  g_slist_free (comments);
-  Py_INCREF (list);
   return list;
 }
 
 static const PyMethodDef _PyGISourceScanner_methods[] = {
+  { "get_errors", (PyCFunction) pygi_source_scanner_get_errors, METH_NOARGS },
   { "get_comments", (PyCFunction) pygi_source_scanner_get_comments, METH_NOARGS },
   { "get_symbols", (PyCFunction) pygi_source_scanner_get_symbols, METH_NOARGS },
   { "append_filename", (PyCFunction) pygi_source_scanner_append_filename, METH_VARARGS },
index 072494b..e2056b4 100644 (file)
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 #
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
 
 from . import ast
 from . import message
index 0135bb8..c850103 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import imp
 import os
 import sys
index 2103e54..b67dcb7 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import re
 
 from . import ast
@@ -236,6 +231,7 @@ class MainTransformer(object):
             block = self._blocks.get(section_name)
             if block and block.description:
                 node.doc = block.description
+                node.doc_position = block.position
         if isinstance(node, (ast.Class, ast.Interface)):
             for prop in node.properties:
                 self._apply_annotations_property(node, prop)
@@ -693,6 +689,7 @@ class MainTransformer(object):
 
         if tag and tag.description:
             node.doc = tag.description
+            node.doc_position = tag.position
 
         if ANN_SKIP in annotations:
             node.skip = True
@@ -710,6 +707,7 @@ class MainTransformer(object):
 
         if block.description:
             node.doc = block.description
+            node.doc_position = block.position
 
         since_tag = block.tags.get(TAG_SINCE)
         if since_tag is not None:
@@ -859,6 +857,7 @@ class MainTransformer(object):
         if type_annotation:
             field.type = self._transformer.create_type_from_user_string(type_annotation[0])
         field.doc = tag.description
+        field.doc_position = tag.position
         try:
             self._adjust_container_type(parent, field, tag.annotations)
         except AttributeError as ex:
@@ -936,6 +935,7 @@ class MainTransformer(object):
             param = block.params.get(m.symbol, None)
             if param and param.description:
                 m.doc = param.description
+                m.doc_position = param.position
 
     def _pass_read_annotations2(self, node, chain):
         if isinstance(node, ast.Function):
index 0237789..f693af6 100644 (file)
 # 02110-1301, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import sys
 import operator
@@ -42,12 +37,13 @@ class Position(object):
     want to inform about.
     """
 
-    __slots__ = ('filename', 'line', 'column')
+    __slots__ = ('filename', 'line', 'column', 'is_typedef')
 
-    def __init__(self, filename=None, line=None, column=None):
+    def __init__(self, filename=None, line=None, column=None, is_typedef=False):
         self.filename = filename
         self.line = line
         self.column = column
+        self.is_typedef = is_typedef
 
     def _compare(self, other, op):
         return op((self.filename, self.line, self.column),
@@ -80,11 +76,8 @@ class Position(object):
                                         self.column or -1)
 
     def format(self, cwd):
-        filename = os.path.realpath(self.filename)
-        cwd = os.path.realpath(cwd)
-        common_prefix = os.path.commonprefix((filename, cwd))
-        if common_prefix:
-            filename = os.path.relpath(filename, common_prefix)
+        filename = os.path.relpath(os.path.realpath(self.filename),
+                                   os.path.realpath(cwd))
 
         if self.column is not None:
             return '%s:%d:%d' % (filename, self.line, self.column)
index 610ff69..323e47c 100644 (file)
@@ -351,8 +351,8 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 171
-#define YY_END_OF_BUFFER 172
+#define YY_NUM_RULES 170
+#define YY_END_OF_BUFFER 171
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -360,136 +360,135 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_acclist[1135] =
+static const flex_int16_t yy_acclist[1128] =
     {   0,
-      172,  170,  171,    3,  170,  171,    1,  171,   45,  170,
-      171,  170,  171,   20,  170,  171,   40,  170,  171,   42,
-      170,  171,  170,  171,   29,  170,  171,   30,  170,  171,
-       38,  170,  171,   36,  170,  171,   69,  170,  171,   37,
-      170,  171,   35,  170,  171,   39,  170,  171,  163,  170,
-      171,  163,  170,  171,   32,  170,  171,   31,  170,  171,
-       47,  170,  171,   46,  170,  171,   48,  170,  171,   34,
-      170,  171,  110,  160,  170,  171,  110,  160,  170,  171,
-      110,  160,  170,  171,  110,  160,  170,  171,  110,  160,
-      170,  171,   25,  170,  171,  170,  171,   27,  170,  171,
-
-       41,  170,  171,  110,  160,  170,  171,  110,  160,  170,
-      171,  110,  160,  170,  171,  110,  160,  170,  171,  110,
-      160,  170,  171,  110,  160,  170,  171,  110,  160,  170,
-      171,  110,  160,  170,  171,  110,  160,  170,  171,  110,
-      160,  170,  171,  110,  160,  170,  171,  110,  160,  170,
-      171,  110,  160,  170,  171,  110,  160,  170,  171,  110,
-      160,  170,  171,  110,  160,  170,  171,   21,  170,  171,
-       43,  170,  171,   23,  170,  171,   44,  170,  171,    3,
-        1,   62,  168,   53,   24,   65,   55,  166,   51,   67,
-       49,   68,   50,   70,  164,    4,    6,   52,  164,  162,
-
-      163,  163,  163,  163,   28,   22,   26,   57,   63,   61,
-       64,   58,  110,  160,  110,  160,  110,  160,  110,  160,
-        2,   54,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  119,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  134,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,   56,   66,   33,  164,    6,  162,
-
-      163,  162,  163,  165,  163,  163,  163,  161,   59,   60,
-      110,  160,  110,  160,  169,  167,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  111,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  132,  160,  110,  160,  110,  160,
-      110,  136,  160,  110,  160,  110,  160,  110,  160,  110,
-
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  164,
-      162,  163,  162,  163,  162,  163,  165,  163,  161,  161,
-      110,  160,  110,  160,  110,  160,  106,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  112,  160,   97,  110,  160,  110,
-
-      160,  110,  114,  160,  110,  115,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  121,  160,  110,  122,
-      160,  110,  160,  110,  160,  110,  160,  110,  133,  160,
-      110,  160,  110,  142,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  108,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  157,  160,  110,  160,  110,
-      160,   18,   13,  162,  163,  161,  161,  161,  107,  110,
-      160,  110,  160,  110,  160,   96,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,   74,  110,
-
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  103,  110,  160,  110,  113,  160,  110,  116,  160,
-      110,  160,  110,  160,  110,  160,  110,  160,  109,  110,
-      160,  110,  124,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  146,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      155,  160,  110,  160,  110,  160,  110,  159,  160,   15,
-      161,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  120,  160,  110,  123,
-      160,  110,  135,  160,  110,  160,  110,  160,  110,  145,
-      160,  110,  147,  160,  110,  150,  160,  110,  151,  160,
-      110,  152,  160,  110,  153,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,   14,   16,    5,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-
-      160,  110,  160,  110,  160,  110,  160,   75,  110,  160,
-      110,  160,   99,  110,  160,   78,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,  110,  137,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  118,  160,
-      110,  160,  110,  160,  110,  160,  110,  154,  160,  110,
-      160,  110,  160,   12,  110,  160,  110,  160,  110,  160,
-      110,  125,  160,  110,  126,  160,  110,  127,  160,   83,
-      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
-      110,  160,  110,  160,  110,  160,   81,  110,  160,  110,
-
-      141,  160,  110,  160,   87,  110,  160,  110,  160,  110,
-      148,  160,  110,  160,   93,  110,  160,  110,  160,  110,
-      160,  110,  117,  160,  110,  143,  160,  110,  144,  160,
-      110,  160,  110,  156,  160,  110,  158,  160,    8,   11,
-       19,   17,  110,  160,  110,  160,  110,  128,  160,  110,
-      129,  160,  110,  130,  160,   86,  110,  160,  110,  160,
-       84,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,   82,  110,  160,  110,  160,
-      110,  160,  102,  110,  160,  110,  160,  110,  140,  160,
-      110,  160,  110,  160,    7,    8,  110,  160,  110,  160,
-
-      110,  131,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,   80,  110,  160,  110,  139,  160,   88,
-      110,  160,  110,  149,  160,   92,  110,  160,  110,  160,
-       94,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,   77,  110,  160,  110,  160,  110,  160,
-      110,  138,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,  110,  160,  110,  160,  110,  160,   89,
-      110,  160,   95,  110,  160,   90,  110,  160,  110,  160,
-      110,  160,  110,  160,   91,  110,  160,   76,  110,  160,
-      101,   79,  110,  160,  110,  160,  110,  160,  110,  160,
-
-       71,  110,  160,  110,  160,  110,  160,  110,  160,  110,
-      160,  110,  160,   72,  104,  110,  160,  110,  160,   85,
-      110,  160,  105,  110,  160,   73,    9,    9,   12,   10,
-       10,   11,  100,   98
+      171,  169,  170,    3,  169,  170,    1,  170,   45,  169,
+      170,  169,  170,   20,  169,  170,   40,  169,  170,   42,
+      169,  170,  169,  170,   29,  169,  170,   30,  169,  170,
+       38,  169,  170,   36,  169,  170,   69,  169,  170,   37,
+      169,  170,   35,  169,  170,   39,  169,  170,  162,  169,
+      170,  162,  169,  170,   32,  169,  170,   31,  169,  170,
+       47,  169,  170,   46,  169,  170,   48,  169,  170,   34,
+      169,  170,  109,  159,  169,  170,  109,  159,  169,  170,
+      109,  159,  169,  170,  109,  159,  169,  170,  109,  159,
+      169,  170,   25,  169,  170,  169,  170,   27,  169,  170,
+
+       41,  169,  170,  109,  159,  169,  170,  109,  159,  169,
+      170,  109,  159,  169,  170,  109,  159,  169,  170,  109,
+      159,  169,  170,  109,  159,  169,  170,  109,  159,  169,
+      170,  109,  159,  169,  170,  109,  159,  169,  170,  109,
+      159,  169,  170,  109,  159,  169,  170,  109,  159,  169,
+      170,  109,  159,  169,  170,  109,  159,  169,  170,  109,
+      159,  169,  170,  109,  159,  169,  170,   21,  169,  170,
+       43,  169,  170,   23,  169,  170,   44,  169,  170,    3,
+        1,   62,  167,   53,   24,   65,   55,  165,   51,   67,
+       49,   68,   50,   70,  163,    4,    6,   52,  163,  161,
+
+      162,  162,  162,  162,   28,   22,   26,   57,   63,   61,
+       64,   58,  109,  159,  109,  159,  109,  159,  109,  159,
+        2,   54,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  118,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  133,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,   56,   66,   33,  163,    6,  161,  162,  161,
+
+      162,  164,  162,  162,  162,  160,   59,   60,  109,  159,
+      109,  159,  168,  166,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  110,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      131,  159,  109,  159,  109,  159,  109,  135,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  163,  161,  162,  161,  162,
+      161,  162,  164,  162,  160,  160,  109,  159,  109,  159,
+      109,  159,  105,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      111,  159,  109,  159,  109,  113,  159,  109,  114,  159,
+
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  120,
+      159,  109,  121,  159,  109,  159,  109,  159,  109,  159,
+      109,  132,  159,  109,  159,  109,  141,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  107,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  156,  159,
+      109,  159,  109,  159,   18,   13,  161,  162,  160,  160,
+      160,  106,  109,  159,  109,  159,  109,  159,   96,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,   74,  109,  159,  109,  159,  109,  159,  109,  159,
+
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  102,  109,  159,  109,  112,  159,
+      109,  115,  159,  109,  159,  109,  159,  109,  159,  109,
+      159,  108,  109,  159,  109,  123,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  145,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  154,  159,  109,  159,  109,  159,  109,
+      158,  159,   15,  160,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  119,
+      159,  109,  122,  159,  109,  134,  159,  109,  159,  109,
+      159,  109,  144,  159,  109,  146,  159,  109,  149,  159,
+      109,  150,  159,  109,  151,  159,  109,  152,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,   14,   16,    5,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+
+       75,  109,  159,  109,  159,   98,  109,  159,   78,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
+      136,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  117,  159,  109,  159,  109,  159,  109,  159,  109,
+      153,  159,  109,  159,  109,  159,   12,  109,  159,  109,
+      159,  109,  159,  109,  124,  159,  109,  125,  159,  109,
+      126,  159,   83,  109,  159,  109,  159,  109,  159,  109,
+      159,  109,  159,  109,  159,  109,  159,  109,  159,   81,
+      109,  159,  109,  140,  159,  109,  159,   87,  109,  159,
+
+      109,  159,  109,  147,  159,  109,  159,   93,  109,  159,
+      109,  159,  109,  159,  109,  116,  159,  109,  142,  159,
+      109,  143,  159,  109,  159,  109,  155,  159,  109,  157,
+      159,    8,   11,   19,   17,  109,  159,  109,  159,  109,
+      127,  159,  109,  128,  159,  109,  129,  159,   86,  109,
+      159,  109,  159,   84,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,   82,  109,
+      159,  109,  159,  109,  159,  101,  109,  159,  109,  159,
+      109,  139,  159,  109,  159,  109,  159,    7,    8,  109,
+      159,  109,  159,  109,  130,  159,  109,  159,  109,  159,
+
+      109,  159,  109,  159,  109,  159,   80,  109,  159,  109,
+      138,  159,   88,  109,  159,  109,  148,  159,   92,  109,
+      159,  109,  159,   94,  109,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,   77,  109,  159,  109,
+      159,  109,  159,  109,  137,  159,  109,  159,  109,  159,
+      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
+      109,  159,   89,  109,  159,   95,  109,  159,   90,  109,
+      159,  109,  159,  109,  159,  109,  159,   91,  109,  159,
+       76,  109,  159,  100,   79,  109,  159,  109,  159,  109,
+      159,  109,  159,   71,  109,  159,  109,  159,  109,  159,
+
+      109,  159,  109,  159,  109,  159,   72,  103,  109,  159,
+      109,  159,   85,  109,  159,  104,  109,  159,   73,    9,
+        9,   12,   10,   10,   11,   99,   97
     } ;
 
-static const flex_int16_t yy_accept[749] =
+static const flex_int16_t yy_accept[746] =
     {   0,
         1,    1,    1,    2,    4,    7,    9,   12,   14,   17,
        20,   23,   25,   28,   31,   34,   37,   40,   43,   46,
@@ -504,75 +503,75 @@ static const flex_int16_t yy_accept[749] =
 
       211,  212,  213,  215,  217,  219,  219,  219,  221,  222,
       223,  225,  227,  229,  231,  233,  235,  237,  239,  241,
-      243,  245,  247,  249,  252,  254,  256,  258,  260,  262,
-      264,  266,  269,  271,  273,  275,  277,  279,  281,  283,
-      285,  287,  289,  291,  293,  295,  296,  297,  297,  297,
-      297,  297,  297,  297,  297,  298,  298,  299,  299,  299,
-      300,  302,  304,  304,  305,  306,  307,  308,  309,  310,
-      311,  313,  315,  315,  316,  316,  316,  317,  317,  319,
+      243,  245,  247,  250,  252,  254,  256,  258,  260,  262,
+      264,  267,  269,  271,  273,  275,  277,  279,  281,  283,
+      285,  287,  289,  291,  293,  294,  295,  295,  295,  295,
+      295,  295,  295,  295,  296,  296,  297,  297,  297,  298,
+      300,  302,  302,  303,  304,  305,  306,  307,  308,  309,
+      311,  313,  313,  314,  314,  314,  315,  315,  317,  319,
       321,  323,  325,  327,  329,  331,  333,  335,  337,  339,
-      341,  343,  345,  347,  349,  351,  353,  355,  358,  360,
+      341,  343,  345,  347,  349,  351,  353,  356,  358,  360,
 
       362,  364,  366,  368,  370,  372,  374,  376,  378,  380,
-      382,  384,  387,  389,  391,  394,  396,  398,  400,  402,
+      383,  385,  387,  390,  392,  394,  396,  398,  400,  402,
       404,  406,  408,  410,  412,  414,  416,  418,  420,  422,
-      424,  426,  428,  430,  430,  430,  430,  430,  430,  430,
-      430,  430,  430,  430,  430,  431,  431,  433,  435,  437,
-      438,  439,  440,  441,  443,  445,  447,  450,  452,  454,
+      424,  426,  426,  426,  426,  426,  426,  426,  426,  426,
+      426,  426,  426,  427,  427,  429,  431,  433,  434,  435,
+      436,  437,  439,  441,  443,  446,  448,  450,  452,  454,
       456,  458,  460,  462,  464,  466,  468,  470,  472,  474,
-      476,  478,  480,  482,  484,  486,  488,  490,  492,  494,
-      497,  500,  502,  505,  508,  510,  512,  514,  516,  519,
-      522,  524,  526,  528,  531,  533,  536,  538,  540,  542,
-
-      544,  546,  548,  550,  552,  554,  556,  559,  561,  563,
-      565,  568,  570,  572,  572,  573,  573,  573,  573,  573,
-      573,  574,  574,  574,  574,  574,  574,  576,  577,  578,
-      579,  582,  584,  586,  589,  591,  593,  595,  597,  599,
-      602,  604,  606,  608,  610,  612,  614,  616,  618,  620,
-      622,  624,  626,  628,  630,  632,  635,  638,  641,  643,
-      645,  647,  649,  652,  655,  657,  659,  661,  663,  666,
-      668,  670,  672,  674,  676,  678,  680,  683,  685,  687,
-      690,  690,  690,  690,  691,  691,  691,  691,  691,  691,
-      691,  691,  692,  694,  696,  698,  700,  702,  704,  706,
-
-      708,  708,  710,  712,  714,  716,  718,  720,  722,  724,
-      726,  728,  730,  732,  734,  736,  738,  740,  742,  744,
-      746,  749,  752,  755,  757,  759,  762,  765,  768,  771,
-      774,  777,  779,  781,  783,  785,  785,  785,  786,  786,
-      787,  787,  787,  787,  787,  787,  788,  790,  792,  794,
-      796,  798,  800,  802,  804,  806,  808,  808,  811,  813,
-      816,  819,  821,  823,  825,  827,  830,  832,  834,  836,
-      838,  840,  842,  844,  846,  848,  851,  853,  855,  857,
-      860,  862,  864,  864,  864,  864,  864,  865,  865,  865,
-      865,  865,  865,  867,  869,  871,  874,  877,  880,  883,
-
-      885,  887,  889,  891,  891,  891,  893,  895,  897,  900,
-      903,  905,  908,  910,  913,  915,  918,  920,  922,  925,
-      928,  931,  933,  933,  936,  939,  940,  940,  940,  940,
-      940,  940,  941,  941,  941,  942,  942,  943,  945,  947,
-      950,  953,  956,  959,  961,  964,  966,  966,  966,  966,
-      968,  970,  972,  974,  976,  979,  981,  983,  986,  988,
-      991,  993,  995,  995,  996,  997,  997,  997,  997,  997,
-      999, 1001, 1004, 1006, 1008, 1008, 1008, 1008, 1010, 1012,
-     1014, 1017, 1020, 1023, 1026, 1029, 1031, 1034, 1036, 1036,
-     1036, 1036, 1036, 1036, 1038, 1040, 1042, 1044, 1044, 1044,
-
-     1044, 1047, 1047, 1047, 1049, 1051, 1054, 1056, 1058, 1058,
-     1058, 1058, 1058, 1058, 1060, 1062, 1064, 1066, 1066, 1066,
-     1066, 1068, 1068, 1068, 1068, 1070, 1073, 1076, 1079, 1079,
-     1079, 1079, 1079, 1079, 1081, 1083, 1085, 1088, 1088, 1088,
-     1088, 1091, 1092, 1092, 1095, 1095, 1095, 1095, 1095, 1095,
-     1097, 1099, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
-     1102, 1102, 1104, 1106, 1108, 1108, 1108, 1108, 1108, 1108,
-     1108, 1108, 1108, 1110, 1112, 1114, 1114, 1115, 1115, 1115,
-     1115, 1115, 1115, 1115, 1118, 1120, 1123, 1123, 1123, 1123,
-     1123, 1123, 1123, 1123, 1126, 1126, 1126, 1126, 1126, 1126,
-
-     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,
-     1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
-     1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
-     1131, 1131, 1131, 1133, 1133, 1133, 1133, 1134, 1134, 1134,
-     1134, 1134, 1134, 1134, 1134, 1134, 1135, 1135
+      476,  478,  480,  482,  484,  486,  488,  490,  493,  495,
+      498,  501,  503,  505,  507,  509,  512,  515,  517,  519,
+      521,  524,  526,  529,  531,  533,  535,  537,  539,  541,
+
+      543,  545,  547,  549,  552,  554,  556,  558,  561,  563,
+      565,  565,  566,  566,  566,  566,  566,  566,  567,  567,
+      567,  567,  567,  567,  569,  570,  571,  572,  575,  577,
+      579,  582,  584,  586,  588,  590,  592,  595,  597,  599,
+      601,  603,  605,  607,  609,  611,  613,  615,  617,  619,
+      621,  623,  625,  628,  631,  634,  636,  638,  640,  642,
+      645,  648,  650,  652,  654,  656,  659,  661,  663,  665,
+      667,  669,  671,  673,  676,  678,  680,  683,  683,  683,
+      683,  684,  684,  684,  684,  684,  684,  684,  684,  685,
+      687,  689,  691,  693,  695,  697,  699,  701,  701,  703,
+
+      705,  707,  709,  711,  713,  715,  717,  719,  721,  723,
+      725,  727,  729,  731,  733,  735,  737,  739,  742,  745,
+      748,  750,  752,  755,  758,  761,  764,  767,  770,  772,
+      774,  776,  778,  778,  778,  779,  779,  780,  780,  780,
+      780,  780,  780,  781,  783,  785,  787,  789,  791,  793,
+      795,  797,  799,  801,  801,  804,  806,  809,  812,  814,
+      816,  818,  820,  823,  825,  827,  829,  831,  833,  835,
+      837,  839,  841,  844,  846,  848,  850,  853,  855,  857,
+      857,  857,  857,  857,  858,  858,  858,  858,  858,  858,
+      860,  862,  864,  867,  870,  873,  876,  878,  880,  882,
+
+      884,  884,  884,  886,  888,  890,  893,  896,  898,  901,
+      903,  906,  908,  911,  913,  915,  918,  921,  924,  926,
+      926,  929,  932,  933,  933,  933,  933,  933,  933,  934,
+      934,  934,  935,  935,  936,  938,  940,  943,  946,  949,
+      952,  954,  957,  959,  959,  959,  959,  961,  963,  965,
+      967,  969,  972,  974,  976,  979,  981,  984,  986,  988,
+      988,  989,  990,  990,  990,  990,  990,  992,  994,  997,
+      999, 1001, 1001, 1001, 1001, 1003, 1005, 1007, 1010, 1013,
+     1016, 1019, 1022, 1024, 1027, 1029, 1029, 1029, 1029, 1029,
+     1029, 1031, 1033, 1035, 1037, 1037, 1037, 1037, 1040, 1040,
+
+     1040, 1042, 1044, 1047, 1049, 1051, 1051, 1051, 1051, 1051,
+     1051, 1053, 1055, 1057, 1059, 1059, 1059, 1059, 1061, 1061,
+     1061, 1061, 1063, 1066, 1069, 1072, 1072, 1072, 1072, 1072,
+     1072, 1074, 1076, 1078, 1081, 1081, 1081, 1081, 1084, 1085,
+     1085, 1088, 1088, 1088, 1088, 1088, 1088, 1090, 1092, 1094,
+     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1097,
+     1099, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+     1103, 1105, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108,
+     1108, 1111, 1113, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
+     1116, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
+
+     1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120,
+     1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121,
+     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124, 1124, 1124,
+     1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, 1127,
+     1127, 1127, 1127, 1128, 1128
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -620,185 +619,185 @@ static const YY_CHAR yy_meta[86] =
        15,    1,    1,    1,    1
     } ;
 
-static const flex_int16_t yy_base[778] =
+static const flex_int16_t yy_base[775] =
     {   0,
-        0,    0, 1412, 1413,   84,    0, 1379,   80,   85,   59,
-       83,   83, 1413, 1413, 1378,   80, 1413,   81,   79,   97,
-      140,  202, 1376, 1413,   99, 1376,   77, 1413,    0, 1372,
-     1350,  110, 1358, 1413, 1401, 1413, 1371,   98,   44,   51,
-       68,   66,   72,   84, 1331,   86, 1330, 1339,  105,  108,
-     1329, 1327, 1333, 1413,   91, 1413, 1413,  171,    0, 1413,
-      142, 1413, 1393,  211, 1334,  117, 1332, 1328, 1319, 1413,
-     1413, 1413, 1413,  124, 1413, 1388, 1413, 1413, 1413, 1413,
-     1413, 1413, 1372,  153,  238,    0, 1413,  205,  203,    0,
-      266,  230,  134,    0, 1413, 1413, 1413, 1357, 1413, 1413,
-
-     1413, 1356,    0, 1343, 1345,  152,  133, 1335, 1413, 1413,
-     1313, 1315,  118, 1318,  250, 1312, 1305, 1308, 1317, 1303,
-     1319, 1305, 1312, 1297, 1298, 1295, 1295, 1301, 1297, 1294,
-     1291,    0,   51, 1295,  135, 1293,  119,  139, 1298, 1289,
-     1285, 1288,  139,  138, 1294, 1413, 1413,  309, 1296,  177,
-     1297,  202, 1286, 1298, 1413,  323, 1413, 1323,    0,    0,
-      308,  216,  339,  313,  200, 1413,  217,  324, 1413, 1413,
-     1305,  168,  164, 1413, 1349,  244, 1413, 1348, 1311, 1278,
-     1277,  186, 1279, 1273,  183,  204, 1284, 1265, 1273, 1271,
-     1268, 1279,  230, 1259, 1273, 1266, 1310,    0, 1264, 1266,
-
-     1276, 1271, 1258,  225, 1273, 1271, 1267, 1258, 1265, 1251,
-     1267,    0, 1252, 1257,    0, 1258, 1255, 1244, 1242, 1244,
-     1246, 1254, 1239, 1237, 1237, 1250, 1249, 1248, 1237, 1242,
-     1246, 1248, 1236, 1300, 1237, 1239, 1239, 1234, 1295, 1236,
-     1236, 1234, 1231,  381,  329, 1260,  227, 1413,  273, 1413,
-     1413,  343,  274, 1253, 1246, 1247,    0, 1221, 1231, 1217,
-     1225, 1217, 1223, 1214, 1207, 1220, 1210, 1220, 1203,  233,
-     1207, 1219, 1201, 1211, 1213, 1200, 1201, 1202, 1245,    0,
-        0, 1201,    0,    0, 1192, 1201, 1189, 1196,    0,    0,
-     1190, 1201, 1186,    0, 1190,    0, 1185, 1185, 1184, 1181,
-
-     1194, 1183, 1188, 1193, 1192, 1193,    0, 1189, 1178, 1184,
-        0, 1171, 1184, 1241, 1413, 1173, 1237, 1238, 1178, 1236,
-     1413, 1176, 1176, 1231, 1166,  375, 1413,  263, 1413,  310,
-        0, 1185, 1188,    0, 1157, 1155, 1155,  299, 1172,  381,
-     1155, 1168, 1152, 1157, 1163, 1158,  295, 1152, 1158, 1145,
-     1149, 1159, 1156, 1141, 1158,    0,    0,    0, 1144, 1145,
-     1151, 1141,    0,    0, 1149, 1134, 1143, 1137,    0, 1146,
-     1143, 1145, 1128, 1138, 1141, 1139,    0, 1129, 1133,    0,
-     1136, 1193, 1192, 1413, 1191,  263, 1131,  400, 1135, 1177,
-     1171, 1413, 1163, 1139,  373, 1119, 1110, 1109, 1126, 1123,
-
-      408, 1126, 1116, 1112, 1104, 1104, 1107, 1106, 1153, 1150,
-     1097, 1103, 1098, 1109, 1112, 1097, 1146, 1091, 1089, 1089,
-        0,    0,    0, 1102, 1103,    0,    0,    0,    0,    0,
-        0, 1105, 1098, 1098, 1090, 1152, 1153, 1413, 1152, 1413,
-      377,  412,  393,  424, 1149, 1413, 1129, 1126,  408, 1129,
-     1126, 1081, 1075, 1077, 1078, 1089, 1073,  434, 1085,    0,
-        0, 1070, 1067, 1079, 1112,    0, 1070, 1080, 1071, 1075,
-     1066, 1071, 1110, 1066, 1069,    0, 1056, 1053, 1059, 1121,
-     1065, 1063,    0, 1067, 1119,  438, 1413,  316,  430,  451,
-     1118, 1117, 1063, 1094, 1090,    0, 1037, 1036,    0, 1044,
-
-     1039, 1051, 1043, 1042,  453, 1033, 1047, 1042, 1050, 1049,
-     1036,    0, 1044, 1046, 1033, 1044, 1072, 1030,    0,    0,
-        0, 1026, 1037,    0,    0, 1083, 1053,  428, 1037, 1089,
-      457, 1413,  415, 1088, 1413, 1087, 1413, 1052, 1032, 1008,
-        0,    0,    0, 1014,    0, 1014, 1027, 1027, 1011, 1006,
-     1021, 1008, 1022, 1002,    0, 1001, 1019,    0, 1018, 1017,
-     1011, 1012, 1006, 1413, 1057, 1025,  439, 1026,  458, 1020,
-     1028,    0, 1003, 1004,  987,  984,  992,  998,  461,  988,
-        0,    0, 1001,    0,    0,  981,  999,  997,  996,  996,
-      461, 1008,  462, 1005, 1003,  989,  990,  981,  974,  987,
-
-      987,  465,  982,  985,  984,    0,  983,  970,  964,  988,
-      368,  979,  469,  986,  988,  967,  963,  962,  961,  953,
-      971,    0, 1013,  235,  969,    0,    0,    0, 1019,  986,
-      471,  974,  472,  972,  972,  957,    0,  957,  960,  951,
-        0, 1413,  463,    0,  959,  979,  475,  976,  477,  977,
-      962,  945, 1413,  934,  940,  466,  951,  961,  478,  941,
-      480,  859,  868,  841,  836,  839,  471,  825,  853,  484,
-      852,  486,  847,  838,  698,  688, 1413,  475,  680,  714,
-      487,  706,  488,    0,  701,    0,  654,  479,  656,  665,
-      490,  671,  499,    0,  652,  482,  632,  637,  493,  645,
-
-      494,  599,  485,  589,  580,  497,  576,  498, 1413,  490,
-      570,  516,  540,  571,  503,  499,  568,  563,  559, 1413,
-      549,  548, 1413,  553,  558,  535,  490,  541,  537, 1413,
-      525,  524, 1413,  511,  509,  442,  491,  316,  327,  297,
-      237,  248,  227,  196,   93, 1413, 1413,  563,  579,  595,
-      606,  617,  633,  644,  658,  674,  689,  700,  716,  732,
-      743,  759,  775,  791,  807,  817,  833,  849,  865,  878,
-      893,  909,  925,  941,  957,  973,  989
+        0,    0, 1409, 1410,   84,    0, 1376,   80,   85,   59,
+       83,   83, 1410, 1410, 1375,   80, 1410,   81,   79,   97,
+      140,  202, 1373, 1410,   99, 1373,   77, 1410,    0, 1369,
+     1347,  110, 1355, 1410, 1398, 1410, 1368,   98,   44, 1326,
+       68,   66,   56,   84, 1327,   78, 1326, 1335,  105,  108,
+     1325, 1323, 1329, 1410,   90, 1410, 1410,  172,    0, 1410,
+       89, 1410, 1389,  172, 1330,   81, 1328, 1324, 1315, 1410,
+     1410, 1410, 1410,  133, 1410, 1384, 1410, 1410, 1410, 1410,
+     1410, 1410, 1368,  170,  154,    0, 1410,  196,  193,    0,
+      259,  171,  134,    0, 1410, 1410, 1410, 1353, 1410, 1410,
+
+     1410, 1352,    0, 1339, 1341,  164,  192, 1331, 1410, 1410,
+     1309, 1311,  111, 1314,  231, 1308, 1301, 1314, 1300, 1316,
+     1302, 1309, 1294, 1295, 1292, 1292, 1298, 1294, 1291, 1288,
+        0,  136, 1292,  179, 1290,  126,  161, 1295, 1286, 1282,
+     1285,  185,  183, 1291, 1410, 1410,  290, 1293,  191, 1294,
+      207, 1283, 1295, 1410,  304, 1410, 1320,    0,    0,  289,
+      205,  320,  231,  218, 1410,  254,  305, 1410, 1410, 1302,
+      163,  282, 1410, 1346,  244, 1410, 1345, 1308, 1275, 1274,
+      250, 1276, 1270,  262,  290, 1281, 1262, 1270, 1268, 1265,
+     1276,  287, 1256, 1270, 1263, 1307,    0, 1261, 1274, 1269,
+
+     1256,  279, 1271, 1269, 1265, 1256, 1263, 1249, 1265,    0,
+     1250, 1255,    0, 1256, 1253, 1242, 1240, 1242, 1244, 1252,
+     1237, 1235, 1235, 1248, 1247, 1246, 1235, 1240, 1244, 1246,
+     1234, 1298, 1235, 1237, 1237, 1232, 1293, 1234, 1234, 1232,
+     1229,  362,  330, 1258,  284, 1410,  307, 1410, 1410,  327,
+      312, 1251, 1244, 1245,    0, 1219, 1229, 1215, 1223, 1215,
+     1221, 1212, 1205, 1218, 1208, 1218, 1201,  291, 1205, 1217,
+     1199, 1209, 1211, 1198, 1199, 1200, 1243,    0, 1199,    0,
+        0, 1190, 1199, 1187, 1194,    0,    0, 1188, 1199, 1184,
+        0, 1188,    0, 1183, 1183, 1182, 1179, 1192, 1181, 1186,
+
+     1191, 1190, 1191,    0, 1187, 1176, 1182,    0, 1169, 1182,
+     1239, 1410, 1171, 1235, 1236, 1176, 1234, 1410, 1174, 1174,
+     1229, 1164,  362, 1410,  318, 1410,  325,    0, 1183, 1186,
+        0, 1155, 1153, 1153,  322, 1170,  395, 1153, 1166, 1150,
+     1155, 1161, 1156,  337, 1150, 1156, 1143, 1147, 1157, 1154,
+     1139, 1156,    0,    0,    0, 1142, 1143, 1149, 1139,    0,
+        0, 1147, 1132, 1141, 1135,    0, 1144, 1141, 1143, 1126,
+     1136, 1139, 1137,    0, 1127, 1131,    0, 1134, 1191, 1190,
+     1410, 1189,  399, 1129,  385, 1133, 1175, 1169, 1410, 1161,
+     1137,  393, 1117, 1108, 1107, 1124, 1121,  413, 1124, 1114,
+
+     1110, 1102, 1102, 1105, 1104, 1151, 1148, 1095, 1101, 1096,
+     1107, 1110, 1095, 1144, 1089, 1087, 1087,    0,    0,    0,
+     1100, 1101,    0,    0,    0,    0,    0,    0, 1103, 1096,
+     1096, 1088, 1150, 1151, 1410, 1150, 1410,  418,  419,  423,
+      421, 1147, 1410, 1127, 1124,   97, 1127, 1124, 1079, 1073,
+     1075, 1076, 1087, 1071,  425, 1083,    0,    0, 1068, 1065,
+     1077, 1110,    0, 1068, 1078, 1069, 1073, 1064, 1069, 1108,
+     1064, 1067,    0, 1054, 1051, 1057, 1119, 1063, 1061,    0,
+     1065, 1117,  429, 1410,  335,  431,  435, 1116, 1115, 1061,
+     1092, 1088,    0, 1035, 1034,    0, 1042, 1037, 1049, 1041,
+
+     1040,  448, 1031, 1045, 1040, 1048, 1047, 1034,    0, 1042,
+     1044, 1031, 1042, 1070, 1028,    0,    0,    0, 1024, 1035,
+        0,    0, 1081, 1051,  259, 1035, 1087,  452, 1410,  432,
+     1086, 1410, 1085, 1410, 1050, 1030, 1006,    0,    0,    0,
+     1012,    0, 1012, 1025, 1025, 1009, 1004, 1019, 1006, 1020,
+     1000,    0,  999, 1017,    0, 1016, 1015, 1009, 1010, 1004,
+     1410, 1055, 1023,  436, 1024,  453, 1018, 1026,    0, 1001,
+     1002,  985,  982,  990,  996,  456,  986,    0,    0,  999,
+        0,    0,  979,  997,  995,  994,  994,  456, 1006,  457,
+     1003, 1001,  987,  988,  979,  972,  985,  985,  460,  980,
+
+      983,  982,    0,  981,  968,  962,  986,  461,  977,  460,
+      984,  986,  965,  961,  960,  959,  951,  969,    0, 1011,
+      453,  967,    0,    0,    0, 1017,  984,  464,  972,  467,
+      970,  970,  955,    0,  955,  958,  949,    0, 1410,  456,
+        0,  957,  977,  468,  974,  470,  975,  960,  943, 1410,
+      932,  938,  463,  949,  930,  257,  868,  475,  857,  866,
+      839,  834,  837,  468,  823,  851,  474,  850,  477,  833,
+      712,  695,  686, 1410,  471,  677,  711,  479,  704,  486,
+        0,  665,    0,  651,  470,  654,  662,  490,  668,  493,
+        0,  650,  473,  617,  635,  489,  607,  492,  597,  485,
+
+      570,  575,  494,  572,  496, 1410,  489,  567,  518,  538,
+      567,  502,  521,  509,  558,  554, 1410,  552,  548, 1410,
+      551,  557,  534,  487,  539,  535, 1410,  532,  523, 1410,
+      511,  504,  439,  498,  432,  341,  323,  297,  210,  158,
+      202,  172, 1410, 1410,  562,  578,  594,  605,  616,  632,
+      643,  657,  673,  688,  699,  715,  731,  742,  758,  774,
+      790,  806,  816,  832,  848,  864,  877,  892,  908,  924,
+      940,  956,  972,  988
     } ;
 
-static const flex_int16_t yy_def[778] =
+static const flex_int16_t yy_def[775] =
     {   0,
-      747,    1,  747,  747,  747,  748,  747,  749,  747,  747,
-      747,  750,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  751,  751,
-      751,  751,  751,  747,  747,  747,  747,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  747,  747,  747,  747,  747,  748,  747,
-      749,  747,  749,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  750,  747,  750,  747,  747,  747,  747,
-      747,  747,  747,  752,  747,  753,  747,  752,   21,   22,
-      747,  747,  747,  754,  747,  747,  747,  747,  747,  747,
-
-      747,  747,  751,  751,  751,  755,  756,  751,  747,  747,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  757,  753,
-      747,  747,  747,  758,  747,  747,  747,  754,  747,  747,
-      751,  751,  755,  747,  755,  756,  747,  756,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  759,  747,  747,  747,  747,  760,  747,
-      747,  747,  747,  747,  761,  757,  747,  747,  747,  747,
-      747,  747,  747,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  759,  747,  747,  747,  762,  747,  760,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      747,  763,  762,  747,  764,  747,  747,  747,  747,  747,
-      747,  747,  751,  751,  751,  751,  751,  751,  751,  751,
-
-      747,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  747,  763,  747,  764,  747,
-      747,  765,  747,  747,  747,  747,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  747,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  766,  747,  765,  765,  747,  765,  747,  767,
-      768,  769,  751,  751,  751,  751,  751,  751,  751,  751,
-
-      751,  751,  751,  747,  747,  751,  751,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  747,  751,  751,  770,  747,  765,  747,  767,
-      767,  747,  767,  768,  747,  769,  747,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  747,  747,  747,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  747,  747,  770,  747,  765,  747,  767,  751,
-      751,  751,  751,  751,  747,  747,  747,  751,  751,  751,
-      751,  751,  751,  751,  751,  751,  751,  751,  747,  747,
-      765,  747,  767,  751,  751,  751,  751,  747,  747,  747,
-
-      751,  747,  771,  751,  751,  751,  751,  751,  747,  747,
-      765,  747,  767,  751,  751,  751,  751,  747,  747,  747,
-      751,  771,  771,  771,  751,  751,  751,  751,  747,  747,
-      765,  747,  767,  751,  751,  751,  751,  747,  747,  747,
-      751,  747,  771,  751,  747,  747,  765,  747,  767,  751,
-      751,  751,  747,  747,  747,  771,  747,  747,  765,  747,
-      767,  751,  751,  751,  747,  747,  771,  747,  747,  765,
-      747,  767,  751,  751,  751,  747,  747,  771,  747,  747,
-      765,  747,  767,  751,  751,  751,  747,  771,  747,  747,
-      765,  747,  767,  751,  747,  771,  747,  747,  765,  747,
-
-      767,  747,  771,  747,  747,  765,  747,  767,  747,  771,
-      747,  772,  773,  747,  767,  771,  747,  772,  772,  747,
-      773,  773,  747,  774,  775,  776,  747,  774,  774,  747,
-      775,  775,  747,  776,  776,  747,  776,  747,  747,  747,
-      747,  747,  747,  777,  777,  747,    0,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747
+      744,    1,  744,  744,  744,  745,  744,  746,  744,  744,
+      744,  747,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  748,  748,
+      748,  748,  748,  744,  744,  744,  744,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  744,  744,  744,  744,  744,  745,  744,
+      746,  744,  746,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  747,  744,  747,  744,  744,  744,  744,
+      744,  744,  744,  749,  744,  750,  744,  749,   21,   22,
+      744,  744,  744,  751,  744,  744,  744,  744,  744,  744,
+
+      744,  744,  748,  748,  748,  752,  753,  748,  744,  744,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  754,  750,  744,
+      744,  744,  755,  744,  744,  744,  751,  744,  744,  748,
+      748,  752,  744,  752,  753,  744,  753,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  756,  744,  744,  744,  744,  757,  744,  744,  744,
+      744,  744,  758,  754,  744,  744,  744,  744,  744,  744,
+      744,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      756,  744,  744,  744,  759,  744,  757,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  744,  760,  759,
+      744,  761,  744,  744,  744,  744,  744,  744,  744,  748,
+      748,  748,  748,  748,  748,  748,  748,  744,  748,  748,
+
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  744,  760,  744,  761,  744,  744,  762,  744,
+      744,  744,  744,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  744,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  763,
+      744,  762,  762,  744,  762,  744,  764,  765,  766,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+
+      744,  744,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  744,
+      748,  748,  767,  744,  762,  744,  764,  764,  744,  764,
+      765,  744,  766,  744,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  744,  744,  744,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  744,
+      744,  767,  744,  762,  744,  764,  748,  748,  748,  748,
+      748,  744,  744,  744,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  744,  744,  762,  744,  764,
+      748,  748,  748,  748,  744,  744,  744,  748,  744,  768,
+
+      748,  748,  748,  748,  748,  744,  744,  762,  744,  764,
+      748,  748,  748,  748,  744,  744,  744,  748,  768,  768,
+      768,  748,  748,  748,  748,  744,  744,  762,  744,  764,
+      748,  748,  748,  748,  744,  744,  744,  748,  744,  768,
+      748,  744,  744,  762,  744,  764,  748,  748,  748,  744,
+      744,  744,  768,  744,  744,  762,  744,  764,  748,  748,
+      748,  744,  744,  768,  744,  744,  762,  744,  764,  748,
+      748,  748,  744,  744,  768,  744,  744,  762,  744,  764,
+      748,  748,  748,  744,  768,  744,  744,  762,  744,  764,
+      748,  744,  768,  744,  744,  762,  744,  764,  744,  768,
+
+      744,  744,  762,  744,  764,  744,  768,  744,  769,  770,
+      744,  764,  768,  744,  769,  769,  744,  770,  770,  744,
+      771,  772,  773,  744,  771,  771,  744,  772,  772,  744,
+      773,  773,  744,  773,  744,  744,  744,  744,  744,  744,
+      774,  774,  744,    0,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744
     } ;
 
-static const flex_int16_t yy_nxt[1499] =
+static const flex_int16_t yy_nxt[1496] =
     {   0,
         4,    5,    6,    5,    5,    7,    8,    9,   10,   11,
        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
@@ -809,165 +808,165 @@ static const flex_int16_t yy_nxt[1499] =
        43,   44,   45,   29,   46,   29,   29,   47,   29,   29,
        29,   29,   48,   49,   50,   51,   52,   53,   29,   29,
        29,   54,   55,   56,   57,   58,   62,   58,   58,   64,
-       70,   71,   72,   75,   78,  746,   83,   80,   84,   84,
+       70,   71,   72,   75,   78,   62,   83,   80,   84,   84,
 
        84,   84,   84,   84,   84,   84,   84,   96,  101,  102,
-       85,   79,   81,   82,   73,   86,  106,  116,  214,  117,
-      107,  118,  146,  119,  120,  215,  123,   97,   87,   98,
-       99,  121,   63,  111,   75,   76,  124,  112,  122,  125,
-      128,  126,  113,  177,   65,   66,  114,  132,   62,   67,
-      127,  129,   68,  115,  130,  133,   69,   88,  174,   89,
-       89,   89,   89,   89,   89,   89,   90,   90,  136,  137,
-      174,  140,   58,  147,   58,   58,   76,  167,   91,  138,
-      141,  221,  139,   92,  150,  178,  151,  142,  182,   93,
-       94,  156,  157,  183,   63,  223,  157,  217,  746,  222,
-
-       91,  167,  231,  229,  175,  232,  239,   92,  218,  219,
-      255,  224,  230,  156,  157,   93,  175,  256,   94,   88,
-      157,   90,   90,   90,   90,   90,   90,   90,   90,   90,
-      148,  148,  148,  148,  148,  148,  148,  148,  148,  158,
-       91,  236,  158,  156,  157,   92,  161,  642,  157,  166,
-      237,   93,  162,  747,  177,  260,  264,  265,  261,  249,
-      251,  240,   91,  266,  441,  156,  157,  442,  159,   92,
-      161,  241,  157,  165,  267,  166,  248,   93,  162,  166,
-      163,  747,  163,  249,  251,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  274,  643,  178,  165,  285,  286,
-
-      346,  744,  248,  743,  275,  166,  185,  347,  186,  187,
-      188,  742,  329,  234,  189,  409,  327,  330,  487,  190,
-      410,  191,  192,  193,  194,  195,  196,  197,  148,  148,
-      148,  148,  148,  148,  148,  148,  148,  244,  329,  244,
-      327,  330,  245,  245,  245,  245,  245,  245,  245,  245,
-      245,  247,  250,  392,  398,  399,  250,  248,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  252,  157,  741,
-      487,  528,  157,  253,  250,  247,  390,  392,  441,  390,
-      250,  441,  401,  248,  401,  401,  328,  740,  391,  739,
-      157,  252,  329,  449,  489,  450,  157,  490,  451,  253,
-
-      245,  245,  245,  245,  245,  245,  245,  245,  245,  401,
-      328,  401,  401,  486,  487,  631,  486,  532,  329,  444,
-      444,  444,  444,  444,  444,  444,  444,  444,  491,  495,
-      487,  489,  484,  496,  489,  505,  402,  505,  505,  486,
-      487,  487,  486,  444,  444,  444,  444,  444,  444,  444,
-      444,  444,  531,  532,  505,  531,  505,  505,  531,  532,
-      532,  531,  602,  487,  532,  602,  602,  488,  567,  602,
-      569,  532,  603,  487,  532,  642,  622,  487,  642,  532,
-      487,  591,  532,  642,  457,  529,  487,  642,  532,  487,
-      532,  642,  487,  488,  642,  487,  532,  642,  593,  487,
-
-      532,  532,  642,  737,  613,  532,  533,  647,  548,  659,
-      726,  642,  533,  661,  672,  738,  611,  719,  720,  649,
-      719,  737,  670,  735,  633,  691,  733,  733,  681,  549,
-      683,  678,  693,  688,  656,  696,  699,  701,  667,  730,
-      708,  722,  723,  730,  722,  710,  736,  735,  706,  716,
-      723,  723,  713,  715,  729,  730,  703,  729,  725,  732,
-      733,  720,  732,   59,   59,  720,   59,   59,   59,   59,
-       59,   59,   59,   59,   59,   59,   59,   59,   59,   61,
+       85,   79,   81,   82,   73,   86,  106,  116,  492,  117,
+      107,  145,  493,  124,  119,  125,  122,   97,   87,   98,
+       99,  120,   63,  111,  126,   76,  123,  112,  121,  131,
+      127,   63,  113,   75,   65,   66,  114,  132,  149,   67,
+      150,  128,   68,  115,  129,  157,   69,   88,  157,   89,
+       89,   89,   89,   89,   89,   89,   90,   90,  135,  136,
+      173,  139,  146,   58,  743,   58,   58,  166,   91,  137,
+      140,  181,  138,   92,  158,   76,  182,  141,  219,   93,
+       94,  147,  147,  147,  147,  147,  147,  147,  147,  147,
+
+       91,  166,  176,  212,  743,  253,  220,   92,  155,  156,
+      213,  237,  254,  156,  164,   93,  174,  221,   94,   88,
+      165,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+      155,  156,  741,  222,  155,  156,  160,  156,  164,  156,
+       91,  215,  161,  744,  177,   92,  165,  229,  247,  227,
+      230,   93,  216,  217,  176,  234,  155,  156,  228,  484,
+      160,  484,   91,  156,  235,  740,  238,  165,  161,   92,
+      248,  744,  247,  162,  248,  162,  239,   93,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  184,  173,  185,
+      186,  187,  248,  165,  232,  188,  177,  249,  248,  564,
+
+      189,  667,  190,  191,  192,  193,  194,  195,  196,  147,
+      147,  147,  147,  147,  147,  147,  147,  147,  242,  258,
+      242,  249,  259,  243,  243,  243,  243,  243,  243,  243,
+      243,  243,  245,  246,  174,  262,  263,  484,  246,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  250,  264,
+      324,  272,  282,  283,  251,  327,  245,  406,  343,  246,
+      265,  273,  407,  387,  246,  344,  387,  326,  389,  156,
+      325,  739,  250,  156,  324,  388,  326,  395,  396,  327,
+      251,  243,  243,  243,  243,  243,  243,  243,  243,  243,
+      525,  156,  389,  326,  325,  738,  398,  156,  398,  398,
+
+      438,  737,  326,  439,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  446,  398,  447,  398,  398,  448,  438,
+      483,  484,  438,  483,  486,  488,  502,  487,  502,  502,
+      483,  484,  486,  483,  529,  486,  528,  529,  484,  528,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  502,
+      399,  502,  502,  528,  529,  529,  528,  599,  484,  529,
+      599,  599,  529,  484,  599,  639,  484,  600,  639,  529,
+      484,  619,  529,  481,  485,  639,  484,  529,  588,  529,
+      639,  484,  639,  639,  485,  639,  526,  566,  529,  454,
+      530,  484,  484,  590,  529,  529,  484,  639,  529,  610,
+
+      644,  639,  656,  545,  529,  736,  658,  530,  628,  669,
+      734,  608,  735,  640,  646,  630,  734,  688,  678,  716,
+      717,  680,  716,  732,  546,  730,  693,  653,  675,  685,
+      690,  698,  723,  639,  730,  664,  696,  727,  705,  719,
+      720,  727,  719,  733,  703,  707,  732,  700,  713,  710,
+      720,  712,  726,  727,  720,  726,  717,  722,  729,  730,
+      717,  729,   59,   59,  724,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   61,   61,
        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
-       61,   61,   61,   61,   61,   74,   74,   74,   74,   74,
+       61,   61,   61,   61,   74,   74,   74,   74,   74,   74,
 
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,   84,  727,   84,   84,  724,   84,  717,   84,
-       84,  714,   84,  160,  160,  712,  160,  160,  160,  160,
-      160,  160,  160,  160,  160,  160,  160,  160,  160,  168,
-      168,  168,  168,  711,  709,  168,  168,  168,  173,  173,
-      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
-      173,  173,  173,  173,  176,  176,  176,  176,  176,  176,
-      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
-      246,  707,  705,  246,  246,  246,  246,  246,  246,  246,
-
-      246,  246,  246,  246,  246,  164,  704,  702,  164,  700,
-      164,  698,  697,  164,  695,  164,  314,  314,  314,  314,
-      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
-      314,  314,  320,  320,  320,  320,  320,  320,  320,  320,
-      320,  320,  320,  320,  320,  320,  320,  320,  245,  694,
-      692,  245,  690,  245,  689,  687,  245,  686,  245,  383,
-      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
-      383,  383,  383,  383,  383,  437,  437,  437,  437,  437,
-      437,  437,  437,  437,  437,  437,  437,  437,  437,  437,
-      437,  439,  439,  439,  439,  439,  439,  439,  439,  439,
-
-      439,  439,  439,  439,  439,  439,  439,  485,  485,  485,
-      485,  485,  485,  485,  485,  485,  485,  485,  485,  485,
-      485,  485,  485,  526,  526,  526,  526,  526,  526,  526,
-      526,  526,  526,  530,  530,  530,  530,  530,  530,  530,
-      530,  530,  530,  530,  530,  530,  530,  530,  530,  534,
-      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
-      534,  534,  534,  534,  534,  536,  536,  536,  536,  536,
-      536,  536,  536,  536,  536,  536,  536,  536,  536,  536,
-      536,  565,  685,  565,  565,  565,  565,  565,  565,  565,
-      565,  565,  565,  565,  623,  684,  682,  680,  679,  677,
-
-      676,  675,  674,  673,  623,  623,  623,  623,  623,  718,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,   84,  721,   84,   84,  714,   84,  711,   84,   84,
+      709,   84,  159,  159,  708,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  167,  167,
+      167,  167,  706,  704,  167,  167,  167,  172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      172,  172,  172,  175,  175,  175,  175,  175,  175,  175,
+      175,  175,  175,  175,  175,  175,  175,  175,  175,  244,
+      702,  701,  244,  244,  244,  244,  244,  244,  244,  244,
+
+      244,  244,  244,  244,  163,  699,  697,  163,  695,  163,
+      694,  692,  163,  691,  163,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  243,  689,  687,
+      243,  686,  243,  684,  683,  243,  682,  243,  380,  380,
+      380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
+      380,  380,  380,  380,  434,  434,  434,  434,  434,  434,
+      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
+      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
+
+      436,  436,  436,  436,  436,  436,  482,  482,  482,  482,
+      482,  482,  482,  482,  482,  482,  482,  482,  482,  482,
+      482,  482,  523,  523,  523,  523,  523,  523,  523,  523,
+      523,  523,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  531,  531,
+      531,  531,  531,  531,  531,  531,  531,  531,  531,  531,
+      531,  531,  531,  531,  533,  533,  533,  533,  533,  533,
+      533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
+      562,  681,  562,  562,  562,  562,  562,  562,  562,  562,
+      562,  562,  562,  620,  679,  677,  676,  674,  673,  672,
+
+      671,  670,  668,  620,  620,  620,  620,  620,  715,  715,
+      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
+      715,  715,  715,  715,  718,  718,  718,  718,  718,  718,
       718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
-      718,  718,  718,  718,  718,  721,  721,  721,  721,  721,
-      721,  721,  721,  721,  721,  721,  721,  721,  721,  721,
-      721,  728,  728,  728,  728,  728,  728,  728,  728,  728,
-      728,  728,  728,  728,  728,  728,  728,  731,  731,  731,
-      731,  731,  731,  731,  731,  731,  731,  731,  731,  731,
-      731,  731,  731,  734,  734,  671,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  745,
-      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
-
-      745,  745,  745,  745,  745,  669,  668,  666,  665,  664,
-      663,  662,  660,  658,  657,  655,  654,  653,  652,  651,
-      650,  648,  646,  645,  644,  642,  641,  640,  639,  638,
-      637,  636,  635,  634,  632,  630,  629,  628,  627,  626,
-      625,  624,  621,  620,  619,  618,  617,  616,  615,  614,
-      612,  610,  609,  608,  607,  606,  605,  604,  601,  600,
-      599,  598,  597,  596,  595,  594,  592,  590,  564,  589,
-      588,  587,  586,  585,  584,  583,  582,  581,  580,  579,
-      578,  577,  576,  575,  574,  573,  572,  571,  570,  537,
-      535,  532,  568,  566,  564,  563,  562,  561,  560,  559,
-
-      558,  557,  556,  555,  554,  553,  552,  551,  550,  547,
-      546,  545,  544,  543,  542,  541,  540,  539,  538,  537,
-      535,  487,  527,  525,  524,  523,  522,  521,  520,  519,
-      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
-      508,  507,  506,  504,  503,  502,  501,  500,  499,  498,
-      497,  494,  493,  492,  440,  438,  483,  482,  481,  480,
-      479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
-      469,  468,  467,  466,  465,  464,  463,  462,  461,  460,
-      459,  458,  456,  455,  454,  453,  452,  448,  447,  446,
-      391,  445,  443,  440,  384,  438,  436,  435,  434,  433,
-
-      432,  431,  430,  429,  428,  427,  426,  425,  424,  423,
-      422,  421,  420,  419,  418,  417,  416,  415,  414,  413,
-      412,  411,  408,  407,  406,  405,  404,  403,  400,  397,
-      396,  395,  394,  393,  389,  388,  387,  386,  321,  385,
-      384,  382,  381,  315,  380,  379,  378,  377,  376,  375,
-      374,  373,  372,  371,  370,  369,  368,  367,  366,  365,
-      364,  363,  362,  361,  360,  359,  358,  357,  356,  355,
-      354,  353,  352,  351,  350,  349,  348,  345,  344,  343,
-      342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
-      332,  331,  326,  325,  324,  323,  322,  321,  319,  318,
-
-      317,  316,  315,  313,  312,  311,  310,  309,  308,  307,
-      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
-      296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
-      284,  283,  282,  281,  280,  279,  278,  277,  276,  273,
-      272,  271,  270,  269,  268,  263,  262,  259,  258,  257,
-      747,  747,  254,  159,  243,  242,  238,  235,  233,  228,
-      227,  226,  225,  220,  216,  213,  212,  211,  210,  209,
-      208,  207,  206,  205,  204,  203,  202,  201,  200,  199,
-      198,  184,  181,  180,  179,  172,  171,  170,  169,  155,
-      747,  154,  153,  152,  149,  747,  145,  144,  143,  135,
-
-      134,  131,  110,  109,  108,  105,  104,  100,   95,   77,
-       60,  747,    3,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747
+      725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
+      725,  725,  725,  725,  725,  725,  728,  728,  728,  728,
+      728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
+      728,  728,  731,  731,  666,  731,  731,  731,  731,  731,
+      731,  731,  731,  731,  731,  731,  731,  731,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+
+      742,  742,  742,  742,  665,  663,  662,  661,  660,  659,
+      657,  655,  654,  652,  651,  650,  649,  648,  647,  645,
+      643,  642,  641,  639,  638,  637,  636,  635,  634,  633,
+      632,  631,  629,  627,  626,  625,  624,  623,  622,  621,
+      618,  617,  616,  615,  614,  613,  612,  611,  609,  607,
+      606,  605,  604,  603,  602,  601,  598,  597,  596,  595,
+      594,  593,  592,  591,  589,  587,  561,  586,  585,  584,
+      583,  582,  581,  580,  579,  578,  577,  576,  575,  574,
+      573,  572,  571,  570,  569,  568,  567,  534,  532,  529,
+      565,  563,  561,  560,  559,  558,  557,  556,  555,  554,
+
+      553,  552,  551,  550,  549,  548,  547,  544,  543,  542,
+      541,  540,  539,  538,  537,  536,  535,  534,  532,  484,
+      524,  522,  521,  520,  519,  518,  517,  516,  515,  514,
+      513,  512,  511,  510,  509,  508,  507,  506,  505,  504,
+      503,  501,  500,  499,  498,  497,  496,  495,  494,  491,
+      490,  489,  437,  435,  480,  479,  478,  477,  476,  475,
+      474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
+      464,  463,  462,  461,  460,  459,  458,  457,  456,  455,
+      453,  452,  451,  450,  449,  445,  444,  443,  388,  442,
+      440,  437,  381,  435,  433,  432,  431,  430,  429,  428,
+
+      427,  426,  425,  424,  423,  422,  421,  420,  419,  418,
+      417,  416,  415,  414,  413,  412,  411,  410,  409,  408,
+      405,  404,  403,  402,  401,  400,  397,  394,  393,  392,
+      391,  390,  386,  385,  384,  383,  318,  382,  381,  379,
+      378,  312,  377,  376,  375,  374,  373,  372,  371,  370,
+      369,  368,  367,  366,  365,  364,  363,  362,  361,  360,
+      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
+      349,  348,  347,  346,  345,  342,  341,  340,  339,  338,
+      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
+      323,  322,  321,  320,  319,  318,  316,  315,  314,  313,
+
+      312,  310,  309,  308,  307,  306,  305,  304,  303,  302,
+      301,  300,  299,  298,  297,  296,  295,  294,  293,  292,
+      291,  290,  289,  288,  287,  286,  285,  284,  281,  280,
+      279,  278,  277,  276,  275,  274,  271,  270,  269,  268,
+      267,  266,  261,  260,  257,  256,  255,  744,  744,  252,
+      158,  241,  240,  236,  233,  231,  226,  225,  224,  223,
+      218,  214,  211,  210,  209,  208,  207,  206,  205,  204,
+      203,  202,  201,  200,  199,  198,  197,  183,  180,  179,
+      178,  171,  170,  169,  168,  154,  744,  153,  152,  151,
+      148,  744,  144,  143,  142,  134,  133,  130,  118,  110,
+
+      109,  108,  105,  104,  100,   95,   77,   60,  744,    3,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744
 
     } ;
 
-static const flex_int16_t yy_chk[1499] =
+static const flex_int16_t yy_chk[1496] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -978,161 +977,161 @@ static const flex_int16_t yy_chk[1499] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    5,    8,    5,    5,    9,
-       10,   10,   11,   12,   16,  745,   19,   18,   19,   19,
+       10,   10,   11,   12,   16,   61,   19,   18,   19,   19,
 
        19,   19,   19,   19,   19,   19,   19,   25,   27,   27,
-       20,   16,   18,   18,   11,   20,   32,   39,  133,   39,
-       32,   40,   55,   40,   41,  133,   42,   25,   20,   25,
-       25,   41,    8,   38,   74,   12,   42,   38,   41,   43,
-       44,   43,   38,  107,    9,    9,   38,   46,   61,    9,
-       43,   44,    9,   38,   44,   46,    9,   21,  106,   21,
+       20,   16,   18,   18,   11,   20,   32,   39,  446,   39,
+       32,   55,  446,   43,   41,   43,   42,   25,   20,   25,
+       25,   41,    8,   38,   43,   12,   42,   38,   41,   46,
+       44,   61,   38,   74,    9,    9,   38,   46,   66,    9,
+       66,   44,    9,   38,   44,   85,    9,   21,   85,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   49,   49,
-      173,   50,   58,   55,   58,   58,   74,   93,   21,   49,
-       50,  137,   49,   21,   66,  107,   66,   50,  113,   21,
-       21,   84,   84,  113,   61,  138,   84,  135,  744,  137,
-
-       21,   93,  144,  143,  106,  144,  152,   21,  135,  135,
-      172,  138,  143,   84,   84,   21,  173,  172,   21,   22,
-       84,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       64,   64,   64,   64,   64,   64,   64,   64,   64,   85,
-       22,  150,   85,   88,   88,   22,   89,  624,   88,  165,
-      150,   22,   89,   89,  176,  182,  185,  185,  182,  162,
-      167,  152,   22,  186,  386,   88,   88,  386,   85,   22,
-       89,  152,   88,   92,  186,  165,  247,   22,   89,   92,
-       91,   89,   91,  162,  167,   91,   91,   91,   91,   91,
-       91,   91,   91,   91,  193,  624,  176,   92,  204,  204,
-
-      270,  743,  247,  742,  193,   92,  115,  270,  115,  115,
-      115,  741,  328,  148,  115,  347,  249,  253,  488,  115,
-      347,  115,  115,  115,  115,  115,  115,  115,  148,  148,
-      148,  148,  148,  148,  148,  148,  148,  156,  328,  156,
-      249,  253,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  161,  164,  330,  338,  338,  164,  161,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  168,  245,  740,
-      611,  488,  245,  168,  164,  161,  326,  330,  441,  326,
-      164,  441,  340,  161,  340,  340,  252,  739,  326,  738,
-      245,  168,  252,  395,  443,  395,  245,  443,  395,  168,
-
-      244,  244,  244,  244,  244,  244,  244,  244,  244,  401,
-      252,  401,  401,  442,  442,  611,  442,  533,  252,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  444,  449,
-      528,  489,  441,  449,  489,  458,  340,  458,  458,  486,
-      486,  567,  486,  444,  444,  444,  444,  444,  444,  444,
-      444,  444,  490,  490,  505,  490,  505,  505,  531,  531,
-      569,  531,  579,  591,  593,  579,  602,  442,  528,  602,
-      533,  613,  579,  631,  633,  643,  602,  647,  656,  649,
-      659,  567,  661,  667,  401,  489,  670,  678,  672,  681,
-      683,  688,  691,  486,  696,  699,  701,  703,  569,  706,
-
-      708,  693,  710,  737,  593,  715,  490,  631,  505,  647,
-      716,  716,  531,  649,  661,  736,  591,  712,  712,  633,
-      712,  735,  659,  734,  613,  681,  732,  731,  670,  505,
-      672,  667,  683,  678,  643,  688,  691,  693,  656,  729,
-      701,  713,  713,  728,  713,  703,  727,  726,  699,  710,
-      722,  721,  706,  708,  724,  724,  696,  724,  715,  725,
-      725,  719,  725,  748,  748,  718,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  749,
-      749,  749,  749,  749,  749,  749,  749,  749,  749,  749,
-      749,  749,  749,  749,  749,  750,  750,  750,  750,  750,
-
-      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
-      750,  751,  751,  751,  751,  751,  751,  751,  751,  751,
-      751,  751,  752,  717,  752,  752,  714,  752,  711,  752,
-      752,  707,  752,  753,  753,  705,  753,  753,  753,  753,
+      106,   50,   55,   58,  742,   58,   58,   93,   21,   49,
+       50,  113,   49,   21,   85,   74,  113,   50,  136,   21,
+       21,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       21,   93,  107,  132,  741,  171,  136,   21,   84,   84,
+      132,  151,  171,   84,   92,   21,  106,  137,   21,   22,
+       92,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       84,   84,  740,  137,   88,   88,   89,   84,   92,   88,
+       22,  134,   89,   89,  107,   22,   92,  143,  161,  142,
+      143,   22,  134,  134,  175,  149,   88,   88,  142,  656,
+       89,  525,   22,   88,  149,  739,  151,  164,   89,   22,
+      163,   89,  161,   91,  163,   91,  151,   22,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,  115,  172,  115,
+      115,  115,  163,  164,  147,  115,  175,  166,  163,  525,
+
+      115,  656,  115,  115,  115,  115,  115,  115,  115,  147,
+      147,  147,  147,  147,  147,  147,  147,  147,  155,  181,
+      155,  166,  181,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  160,  245,  172,  184,  184,  485,  160,  162,
+      162,  162,  162,  162,  162,  162,  162,  162,  167,  185,
+      247,  192,  202,  202,  167,  251,  160,  344,  268,  245,
+      185,  192,  344,  323,  160,  268,  323,  325,  327,  243,
+      250,  738,  167,  243,  247,  323,  250,  335,  335,  251,
+      167,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      485,  243,  327,  325,  250,  737,  337,  243,  337,  337,
+
+      383,  736,  250,  383,  385,  385,  385,  385,  385,  385,
+      385,  385,  385,  392,  398,  392,  398,  398,  392,  438,
+      439,  439,  438,  439,  440,  441,  455,  440,  455,  455,
+      483,  483,  486,  483,  530,  486,  487,  487,  564,  487,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  502,
+      337,  502,  502,  528,  528,  566,  528,  576,  588,  590,
+      576,  599,  610,  608,  599,  621,  628,  576,  640,  630,
+      644,  599,  646,  438,  439,  653,  667,  658,  564,  669,
+      664,  678,  685,  675,  483,  693,  486,  530,  680,  398,
+      487,  696,  688,  566,  698,  690,  703,  700,  705,  590,
+
+      628,  707,  644,  502,  712,  735,  646,  528,  608,  658,
+      734,  588,  733,  621,  630,  610,  732,  678,  667,  709,
+      709,  669,  709,  731,  502,  729,  685,  640,  664,  675,
+      680,  690,  713,  713,  728,  653,  688,  726,  698,  710,
+      710,  725,  710,  724,  696,  700,  723,  693,  707,  703,
+      719,  705,  721,  721,  718,  721,  716,  712,  722,  722,
+      715,  722,  745,  745,  714,  745,  745,  745,  745,  745,
+      745,  745,  745,  745,  745,  745,  745,  745,  746,  746,
+      746,  746,  746,  746,  746,  746,  746,  746,  746,  746,
+      746,  746,  746,  746,  747,  747,  747,  747,  747,  747,
+
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  749,  711,  749,  749,  708,  749,  704,  749,  749,
+      702,  749,  750,  750,  701,  750,  750,  750,  750,  750,
+      750,  750,  750,  750,  750,  750,  750,  750,  751,  751,
+      751,  751,  699,  697,  751,  751,  751,  752,  752,  752,
+      752,  752,  752,  752,  752,  752,  752,  752,  752,  752,
+      752,  752,  752,  753,  753,  753,  753,  753,  753,  753,
       753,  753,  753,  753,  753,  753,  753,  753,  753,  754,
-      754,  754,  754,  704,  702,  754,  754,  754,  755,  755,
-      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  755,  755,  756,  756,  756,  756,  756,  756,
-      756,  756,  756,  756,  756,  756,  756,  756,  756,  756,
-      757,  700,  698,  757,  757,  757,  757,  757,  757,  757,
+      695,  694,  754,  754,  754,  754,  754,  754,  754,  754,
 
-      757,  757,  757,  757,  757,  758,  697,  695,  758,  692,
-      758,  690,  689,  758,  687,  758,  759,  759,  759,  759,
+      754,  754,  754,  754,  755,  692,  689,  755,  687,  755,
+      686,  684,  755,  682,  755,  756,  756,  756,  756,  756,
+      756,  756,  756,  756,  756,  756,  756,  756,  756,  756,
+      756,  757,  757,  757,  757,  757,  757,  757,  757,  757,
+      757,  757,  757,  757,  757,  757,  757,  758,  679,  677,
+      758,  676,  758,  673,  672,  758,  671,  758,  759,  759,
       759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
-      759,  759,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  761,  685,
-      682,  761,  680,  761,  679,  676,  761,  675,  761,  762,
-      762,  762,  762,  762,  762,  762,  762,  762,  762,  762,
-      762,  762,  762,  762,  762,  763,  763,  763,  763,  763,
-      763,  763,  763,  763,  763,  763,  763,  763,  763,  763,
-      763,  764,  764,  764,  764,  764,  764,  764,  764,  764,
+      759,  759,  759,  759,  760,  760,  760,  760,  760,  760,
+      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
+      761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
 
-      764,  764,  764,  764,  764,  764,  764,  765,  765,  765,
+      761,  761,  761,  761,  761,  761,  762,  762,  762,  762,
+      762,  762,  762,  762,  762,  762,  762,  762,  762,  762,
+      762,  762,  763,  763,  763,  763,  763,  763,  763,  763,
+      763,  763,  764,  764,  764,  764,  764,  764,  764,  764,
+      764,  764,  764,  764,  764,  764,  764,  764,  765,  765,
       765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
-      765,  765,  765,  766,  766,  766,  766,  766,  766,  766,
-      766,  766,  766,  767,  767,  767,  767,  767,  767,  767,
-      767,  767,  767,  767,  767,  767,  767,  767,  767,  768,
-      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
-      768,  768,  768,  768,  768,  769,  769,  769,  769,  769,
-      769,  769,  769,  769,  769,  769,  769,  769,  769,  769,
-      769,  770,  674,  770,  770,  770,  770,  770,  770,  770,
-      770,  770,  770,  770,  771,  673,  671,  669,  668,  666,
+      765,  765,  765,  765,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      767,  670,  767,  767,  767,  767,  767,  767,  767,  767,
+      767,  767,  767,  768,  668,  666,  665,  663,  662,  661,
 
-      665,  664,  663,  662,  771,  771,  771,  771,  771,  772,
+      660,  659,  657,  768,  768,  768,  768,  768,  769,  769,
+      769,  769,  769,  769,  769,  769,  769,  769,  769,  769,
+      769,  769,  769,  769,  770,  770,  770,  770,  770,  770,
+      770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
+      771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  771,  772,  772,  772,  772,
       772,  772,  772,  772,  772,  772,  772,  772,  772,  772,
-      772,  772,  772,  772,  772,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
-      773,  774,  774,  774,  774,  774,  774,  774,  774,  774,
-      774,  774,  774,  774,  774,  774,  774,  775,  775,  775,
-      775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
-      775,  775,  775,  776,  776,  660,  776,  776,  776,  776,
-      776,  776,  776,  776,  776,  776,  776,  776,  776,  777,
-      777,  777,  777,  777,  777,  777,  777,  777,  777,  777,
-
-      777,  777,  777,  777,  777,  658,  657,  655,  654,  652,
-      651,  650,  648,  646,  645,  640,  639,  638,  636,  635,
-      634,  632,  630,  629,  625,  623,  621,  620,  619,  618,
-      617,  616,  615,  614,  612,  610,  609,  608,  607,  605,
-      604,  603,  601,  600,  599,  598,  597,  596,  595,  594,
-      592,  590,  589,  588,  587,  586,  583,  580,  578,  577,
-      576,  575,  574,  573,  571,  570,  568,  566,  565,  563,
-      562,  561,  560,  559,  557,  556,  554,  553,  552,  551,
-      550,  549,  548,  547,  546,  544,  540,  539,  538,  536,
-      534,  530,  529,  527,  526,  523,  522,  518,  517,  516,
-
-      515,  514,  513,  511,  510,  509,  508,  507,  506,  504,
-      503,  502,  501,  500,  498,  497,  495,  494,  493,  492,
-      491,  485,  484,  482,  481,  480,  479,  478,  477,  475,
-      474,  473,  472,  471,  470,  469,  468,  467,  465,  464,
-      463,  462,  459,  457,  456,  455,  454,  453,  452,  451,
-      450,  448,  447,  445,  439,  437,  436,  435,  434,  433,
-      432,  425,  424,  420,  419,  418,  417,  416,  415,  414,
-      413,  412,  411,  410,  409,  408,  407,  406,  405,  404,
-      403,  402,  400,  399,  398,  397,  396,  394,  393,  391,
-      390,  389,  387,  385,  383,  382,  381,  379,  378,  376,
-
-      375,  374,  373,  372,  371,  370,  368,  367,  366,  365,
-      362,  361,  360,  359,  355,  354,  353,  352,  351,  350,
-      349,  348,  346,  345,  344,  343,  342,  341,  339,  337,
-      336,  335,  333,  332,  325,  324,  323,  322,  320,  319,
-      318,  317,  316,  314,  313,  312,  310,  309,  308,  306,
-      305,  304,  303,  302,  301,  300,  299,  298,  297,  295,
-      293,  292,  291,  288,  287,  286,  285,  282,  279,  278,
-      277,  276,  275,  274,  273,  272,  271,  269,  268,  267,
-      266,  265,  264,  263,  262,  261,  260,  259,  258,  256,
-      255,  254,  246,  243,  242,  241,  240,  239,  238,  237,
-
-      236,  235,  234,  233,  232,  231,  230,  229,  228,  227,
-      226,  225,  224,  223,  222,  221,  220,  219,  218,  217,
-      216,  214,  213,  211,  210,  209,  208,  207,  206,  205,
-      203,  202,  201,  200,  199,  197,  196,  195,  194,  192,
-      191,  190,  189,  188,  187,  184,  183,  181,  180,  179,
-      178,  175,  171,  158,  154,  153,  151,  149,  145,  142,
-      141,  140,  139,  136,  134,  131,  130,  129,  128,  127,
-      126,  125,  124,  123,  122,  121,  120,  119,  118,  117,
-      116,  114,  112,  111,  108,  105,  104,  102,   98,   83,
-       76,   69,   68,   67,   65,   63,   53,   52,   51,   48,
-
-       47,   45,   37,   35,   33,   31,   30,   26,   23,   15,
-        7,    3,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747
+      772,  772,  773,  773,  655,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+
+      774,  774,  774,  774,  654,  652,  651,  649,  648,  647,
+      645,  643,  642,  637,  636,  635,  633,  632,  631,  629,
+      627,  626,  622,  620,  618,  617,  616,  615,  614,  613,
+      612,  611,  609,  607,  606,  605,  604,  602,  601,  600,
+      598,  597,  596,  595,  594,  593,  592,  591,  589,  587,
+      586,  585,  584,  583,  580,  577,  575,  574,  573,  572,
+      571,  570,  568,  567,  565,  563,  562,  560,  559,  558,
+      557,  556,  554,  553,  551,  550,  549,  548,  547,  546,
+      545,  544,  543,  541,  537,  536,  535,  533,  531,  527,
+      526,  524,  523,  520,  519,  515,  514,  513,  512,  511,
+
+      510,  508,  507,  506,  505,  504,  503,  501,  500,  499,
+      498,  497,  495,  494,  492,  491,  490,  489,  488,  482,
+      481,  479,  478,  477,  476,  475,  474,  472,  471,  470,
+      469,  468,  467,  466,  465,  464,  462,  461,  460,  459,
+      456,  454,  453,  452,  451,  450,  449,  448,  447,  445,
+      444,  442,  436,  434,  433,  432,  431,  430,  429,  422,
+      421,  417,  416,  415,  414,  413,  412,  411,  410,  409,
+      408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
+      397,  396,  395,  394,  393,  391,  390,  388,  387,  386,
+      384,  382,  380,  379,  378,  376,  375,  373,  372,  371,
+
+      370,  369,  368,  367,  365,  364,  363,  362,  359,  358,
+      357,  356,  352,  351,  350,  349,  348,  347,  346,  345,
+      343,  342,  341,  340,  339,  338,  336,  334,  333,  332,
+      330,  329,  322,  321,  320,  319,  317,  316,  315,  314,
+      313,  311,  310,  309,  307,  306,  305,  303,  302,  301,
+      300,  299,  298,  297,  296,  295,  294,  292,  290,  289,
+      288,  285,  284,  283,  282,  279,  277,  276,  275,  274,
+      273,  272,  271,  270,  269,  267,  266,  265,  264,  263,
+      262,  261,  260,  259,  258,  257,  256,  254,  253,  252,
+      244,  241,  240,  239,  238,  237,  236,  235,  234,  233,
+
+      232,  231,  230,  229,  228,  227,  226,  225,  224,  223,
+      222,  221,  220,  219,  218,  217,  216,  215,  214,  212,
+      211,  209,  208,  207,  206,  205,  204,  203,  201,  200,
+      199,  198,  196,  195,  194,  193,  191,  190,  189,  188,
+      187,  186,  183,  182,  180,  179,  178,  177,  174,  170,
+      157,  153,  152,  150,  148,  144,  141,  140,  139,  138,
+      135,  133,  130,  129,  128,  127,  126,  125,  124,  123,
+      122,  121,  120,  119,  118,  117,  116,  114,  112,  111,
+      108,  105,  104,  102,   98,   83,   76,   69,   68,   67,
+       65,   63,   53,   52,   51,   48,   47,   45,   40,   37,
+
+       35,   33,   31,   30,   26,   23,   15,    7,    3,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744
 
     } ;
 
@@ -1220,8 +1219,8 @@ static void print_error (GISourceScanner *scanner);
 #define IS_EOF EOF
 #endif
 
+#line 1223 "giscanner/scannerlexer.c"
 #line 1224 "giscanner/scannerlexer.c"
-#line 1225 "giscanner/scannerlexer.c"
 
 #define INITIAL 0
 
@@ -1445,7 +1444,7 @@ YY_DECL
 #line 78 "giscanner/scannerlexer.l"
 
 
-#line 1449 "giscanner/scannerlexer.c"
+#line 1448 "giscanner/scannerlexer.c"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -1471,14 +1470,14 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 748 )
+                               if ( yy_current_state >= 745 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        *(yy_state_ptr)++ = yy_current_state;
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 1413 );
+               while ( yy_base[yy_current_state] != 1410 );
 
 yy_find_action:
                yy_current_state = *--(yy_state_ptr);
@@ -2006,15 +2005,15 @@ YY_RULE_SETUP
 { return BASIC_TYPE; }
        YY_BREAK
 case 97:
+/* rule 97 can match eol */
 YY_RULE_SETUP
 #line 186 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ ++lineno; /* Ignore */ }
        YY_BREAK
 case 98:
-/* rule 98 can match eol */
 YY_RULE_SETUP
 #line 187 "giscanner/scannerlexer.l"
-{ ++lineno; /* Ignore */ }
+{ /* Ignore */ }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
@@ -2029,7 +2028,7 @@ YY_RULE_SETUP
 case 101:
 YY_RULE_SETUP
 #line 190 "giscanner/scannerlexer.l"
-{ /* Ignore */ }
+{ /* ignore */ }
        YY_BREAK
 case 102:
 YY_RULE_SETUP
@@ -2038,18 +2037,18 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 192 "giscanner/scannerlexer.l"
-{ /* ignore */ }
+#line 193 "giscanner/scannerlexer.l"
+{ return INTL_CONST; }
        YY_BREAK
 case 104:
 YY_RULE_SETUP
 #line 194 "giscanner/scannerlexer.l"
-{ return INTL_CONST; }
+{ return INTUL_CONST; }
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 195 "giscanner/scannerlexer.l"
-{ return INTUL_CONST; }
+#line 196 "giscanner/scannerlexer.l"
+{ return BOOLEAN; }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
@@ -2068,78 +2067,78 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 200 "giscanner/scannerlexer.l"
-{ return BOOLEAN; }
+#line 201 "giscanner/scannerlexer.l"
+{ if (scanner->macro_scan) return check_identifier(scanner, yytext); else REJECT; }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 202 "giscanner/scannerlexer.l"
-{ if (scanner->macro_scan) return check_identifier(scanner, yytext); else REJECT; }
+#line 203 "giscanner/scannerlexer.l"
+{ if (!parse_ignored_macro()) REJECT; }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
 #line 204 "giscanner/scannerlexer.l"
-{ if (!parse_ignored_macro()) REJECT; }
+{ return AUTO; }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
 #line 205 "giscanner/scannerlexer.l"
-{ return AUTO; }
+{ return BREAK; }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
 #line 206 "giscanner/scannerlexer.l"
-{ return BREAK; }
+{ return CASE; }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
 #line 207 "giscanner/scannerlexer.l"
-{ return CASE; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
 #line 208 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return CONST; }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
 #line 209 "giscanner/scannerlexer.l"
-{ return CONST; }
+{ return CONTINUE; }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
 #line 210 "giscanner/scannerlexer.l"
-{ return CONTINUE; }
+{ return DEFAULT; }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
 #line 211 "giscanner/scannerlexer.l"
-{ return DEFAULT; }
+{ return DO; }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
 #line 212 "giscanner/scannerlexer.l"
-{ return DO; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
 #line 213 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return ELSE; }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
 #line 214 "giscanner/scannerlexer.l"
-{ return ELSE; }
+{ return ENUM; }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
 #line 215 "giscanner/scannerlexer.l"
-{ return ENUM; }
+{ return EXTERN; }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
 #line 216 "giscanner/scannerlexer.l"
-{ return EXTERN; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
@@ -2179,27 +2178,27 @@ YY_RULE_SETUP
 case 131:
 YY_RULE_SETUP
 #line 224 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return FOR; }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
 #line 225 "giscanner/scannerlexer.l"
-{ return FOR; }
+{ return GOTO; }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
 #line 226 "giscanner/scannerlexer.l"
-{ return GOTO; }
+{ return IF; }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
 #line 227 "giscanner/scannerlexer.l"
-{ return IF; }
+{ return INLINE; }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
 #line 228 "giscanner/scannerlexer.l"
-{ return INLINE; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
@@ -2234,27 +2233,27 @@ YY_RULE_SETUP
 case 142:
 YY_RULE_SETUP
 #line 235 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return REGISTER; }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
 #line 236 "giscanner/scannerlexer.l"
-{ return REGISTER; }
+{ return RESTRICT; }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
 #line 237 "giscanner/scannerlexer.l"
-{ return RESTRICT; }
+{ return RETURN; }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
 #line 238 "giscanner/scannerlexer.l"
-{ return RETURN; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
 #line 239 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return SIGNED; }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
@@ -2269,62 +2268,62 @@ YY_RULE_SETUP
 case 149:
 YY_RULE_SETUP
 #line 242 "giscanner/scannerlexer.l"
-{ return SIGNED; }
+{ return SIZEOF; }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
 #line 243 "giscanner/scannerlexer.l"
-{ return SIZEOF; }
+{ return STATIC; }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
 #line 244 "giscanner/scannerlexer.l"
-{ return STATIC; }
+{ return STRUCT; }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
 #line 245 "giscanner/scannerlexer.l"
-{ return STRUCT; }
+{ return SWITCH; }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
 #line 246 "giscanner/scannerlexer.l"
-{ return SWITCH; }
+{ return TYPEDEF; }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
 #line 247 "giscanner/scannerlexer.l"
-{ return TYPEDEF; }
+{ return UNION; }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
 #line 248 "giscanner/scannerlexer.l"
-{ return UNION; }
+{ return UNSIGNED; }
        YY_BREAK
 case 156:
 YY_RULE_SETUP
 #line 249 "giscanner/scannerlexer.l"
-{ return UNSIGNED; }
+{ return VOID; }
        YY_BREAK
 case 157:
 YY_RULE_SETUP
 #line 250 "giscanner/scannerlexer.l"
-{ return VOID; }
+{ return VOLATILE; }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 251 "giscanner/scannerlexer.l"
-{ return VOLATILE; }
+{ return WHILE; }
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 252 "giscanner/scannerlexer.l"
-{ return WHILE; }
+#line 253 "giscanner/scannerlexer.l"
+{ return check_identifier(scanner, yytext); }
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 254 "giscanner/scannerlexer.l"
-{ return check_identifier(scanner, yytext); }
+#line 255 "giscanner/scannerlexer.l"
+{ return INTEGER; }
        YY_BREAK
 case 161:
 YY_RULE_SETUP
@@ -2338,8 +2337,8 @@ YY_RULE_SETUP
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 258 "giscanner/scannerlexer.l"
-{ return INTEGER; }
+#line 259 "giscanner/scannerlexer.l"
+{ return FLOATING; }
        YY_BREAK
 case 164:
 YY_RULE_SETUP
@@ -2347,9 +2346,10 @@ YY_RULE_SETUP
 { return FLOATING; }
        YY_BREAK
 case 165:
+/* rule 165 can match eol */
 YY_RULE_SETUP
-#line 261 "giscanner/scannerlexer.l"
-{ return FLOATING; }
+#line 262 "giscanner/scannerlexer.l"
+{ return CHARACTER; }
        YY_BREAK
 case 166:
 /* rule 166 can match eol */
@@ -2360,8 +2360,8 @@ YY_RULE_SETUP
 case 167:
 /* rule 167 can match eol */
 YY_RULE_SETUP
-#line 264 "giscanner/scannerlexer.l"
-{ return CHARACTER; }
+#line 265 "giscanner/scannerlexer.l"
+{ return STRING; }
        YY_BREAK
 case 168:
 /* rule 168 can match eol */
@@ -2370,22 +2370,16 @@ YY_RULE_SETUP
 { return STRING; }
        YY_BREAK
 case 169:
-/* rule 169 can match eol */
 YY_RULE_SETUP
-#line 267 "giscanner/scannerlexer.l"
-{ return STRING; }
-       YY_BREAK
-case 170:
-YY_RULE_SETUP
-#line 269 "giscanner/scannerlexer.l"
+#line 268 "giscanner/scannerlexer.l"
 { print_error(scanner); }
        YY_BREAK
-case 171:
+case 170:
 YY_RULE_SETUP
-#line 271 "giscanner/scannerlexer.l"
+#line 270 "giscanner/scannerlexer.l"
 ECHO;
        YY_BREAK
-#line 2389 "giscanner/scannerlexer.c"
+#line 2383 "giscanner/scannerlexer.c"
                        case YY_STATE_EOF(INITIAL):
                                yyterminate();
 
@@ -2650,7 +2644,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 748 )
+                       if ( yy_current_state >= 745 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -2673,11 +2667,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 748 )
+               if ( yy_current_state >= 745 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 747);
+       yy_is_jam = (yy_current_state == 744);
        if ( ! yy_is_jam )
                *(yy_state_ptr)++ = yy_current_state;
 
@@ -3326,7 +3320,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 271 "giscanner/scannerlexer.l"
+#line 270 "giscanner/scannerlexer.l"
 
 
 static int
@@ -3574,7 +3568,8 @@ print_error (GISourceScanner *scanner)
 {
   if (yytext[0]) {
     char *filename = g_file_get_parse_name (scanner->current_file);
-    fprintf(stderr, "%s:%d: unexpected character `%c'\n", filename, lineno, yytext[0]);
+    gchar *error = g_strdup_printf ("%s:%d: unexpected character `%c'", filename, lineno, yytext[0]);
+    g_ptr_array_add (scanner->errors, error);
     g_free (filename);
   }
 }
index c63b56d..d3a6017 100644 (file)
@@ -183,7 +183,6 @@ stringtext                          ([^\\\"])|(\\.)
 "__volatile"                           { return VOLATILE; }
 "__volatile__"                         { return VOLATILE; }
 "_Bool"                                        { return BASIC_TYPE; }
-"bool"                                 { return BASIC_TYPE; }
 "typedef char __static_assert_t".*"\n" { ++lineno; /* Ignore */ }
 "__cdecl"                              { /* Ignore */ }
 "__declspec(deprecated(".*"))"         { /* Ignore */ }
@@ -515,7 +514,8 @@ print_error (GISourceScanner *scanner)
 {
   if (yytext[0]) {
     char *filename = g_file_get_parse_name (scanner->current_file);
-    fprintf(stderr, "%s:%d: unexpected character `%c'\n", filename, lineno, yytext[0]);
+    gchar *error = g_strdup_printf ("%s:%d: unexpected character `%c'", filename, lineno, yytext[0]);
+    g_ptr_array_add (scanner->errors, error);
     g_free (filename);
   }
 }
index ccb14e9..a2d7ea5 100644 (file)
 # 02110-1301, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import errno
 import optparse
 import os
@@ -248,6 +243,11 @@ match the namespace prefix.""")
     parser.add_option("", "--include-last-in-src",
                       action="append", dest="include_last_src", default=[],
                       help="Header to include after the other headers in generated sources")
+    parser.add_option("", "--sources-top-dirs", default=[], action='append',
+                      help="Paths to the sources directories used to determine"
+                      " relative files locations to be used in the gir file."
+                      " This is especially useful when build dir and source dir are different"
+                      " and mirrored.")
 
     return parser
 
@@ -439,9 +439,13 @@ def create_source_scanner(options, args):
                        options.cpp_defines,
                        options.cpp_undefines,
                        cflags=options.cflags)
-    ss.parse_files(filenames)
-    ss.parse_macros(filenames)
-    return ss
+    try:
+        ss.parse_files(filenames)
+        ss.parse_macros(filenames)
+    finally:
+        for error in ss.get_errors():
+            print(error, file=sys.stderr)
+    return ss, filenames
 
 
 def write_output(data, options):
@@ -535,7 +539,7 @@ def scanner_main(args):
         except pkgconfig.PkgConfigError as e:
             _error(str(e))
 
-    ss = create_source_scanner(options, args)
+    ss, filenames = create_source_scanner(options, args)
 
     cbp = GtkDocCommentBlockParser()
     blocks = cbp.parse_comment_blocks(ss.get_comments())
@@ -575,7 +579,9 @@ def scanner_main(args):
 
     transformer.namespace.c_includes = options.c_includes
     transformer.namespace.exported_packages = exported_packages
-    writer = Writer(transformer.namespace)
+    if not options.sources_top_dirs:
+        options.sources_top_dirs = [os.path.commonprefix(filenames).rpartition(os.path.sep)[0]]
+    writer = Writer(transformer.namespace, options.sources_top_dirs)
     data = writer.get_encoded_xml()
 
     write_output(data, options)
index d972e47..1780ce0 100644 (file)
@@ -205,7 +205,8 @@ pop_conditional (GISourceScanner *scanner)
   if (type == 0)
     {
       gchar *filename = g_file_get_path (scanner->current_file);
-      fprintf (stderr, "%s:%d: mismatched %s", filename, lineno, yytext);
+      gchar *error = g_strdup_printf ("%s:%d: mismatched %s", filename, lineno, yytext);
+      g_ptr_array_add (scanner->errors, error);
       g_free (filename);
     }
 
@@ -220,8 +221,9 @@ warn_if_cond_has_gi_scanner (GISourceScanner *scanner,
   if (strstr (text, "__GI_SCANNER__"))
     {
       gchar *filename = g_file_get_path (scanner->current_file);
-      fprintf (stderr, "%s:%d: the __GI_SCANNER__ constant should only be used with simple #ifdef or #endif: %s",
+      gchar *error = g_strdup_printf ("%s:%d: the __GI_SCANNER__ constant should only be used with simple #ifdef or #endif: %s",
                filename, lineno, text);
+      g_ptr_array_add (scanner->errors, error);
       g_free (filename);
     }
 }
@@ -269,7 +271,7 @@ set_or_merge_base_type (GISourceType *type,
 }
 
 
-#line 273 "giscanner/scannerparser.c" /* yacc.c:338  */
+#line 275 "giscanner/scannerparser.c" /* yacc.c:338  */
 # ifndef YY_NULLPTR
 #  if defined __cplusplus
 #   if 201103L <= __cplusplus
@@ -462,7 +464,7 @@ extern int yydebug;
 
 union YYSTYPE
 {
-#line 234 "giscanner/scannerparser.y" /* yacc.c:353  */
+#line 236 "giscanner/scannerparser.y" /* yacc.c:353  */
 
   char *str;
   GList *list;
@@ -473,7 +475,7 @@ union YYSTYPE
   FunctionSpecifier function_specifier;
   UnaryOperator unary_operator;
 
-#line 477 "giscanner/scannerparser.c" /* yacc.c:353  */
+#line 479 "giscanner/scannerparser.c" /* yacc.c:353  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -719,18 +721,18 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  72
+#define YYFINAL  74
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2370
+#define YYLAST   2430
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  100
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  78
+#define YYNNTS  79
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  252
+#define YYNRULES  254
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  422
+#define YYNSTATES  424
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
@@ -784,32 +786,32 @@ static const yytype_uint8 yytranslate[] =
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   328,   328,   337,   353,   359,   365,   372,   373,   377,
-     385,   400,   414,   421,   422,   426,   427,   431,   435,   439,
-     443,   447,   451,   458,   459,   463,   464,   468,   472,   495,
-     502,   509,   513,   521,   525,   529,   533,   537,   541,   548,
-     549,   561,   562,   568,   576,   587,   588,   594,   603,   604,
-     616,   625,   626,   632,   638,   644,   653,   654,   660,   669,
-     670,   679,   680,   689,   690,   699,   700,   711,   712,   723,
-     724,   731,   732,   739,   740,   741,   742,   743,   744,   745,
-     746,   747,   748,   749,   753,   754,   755,   762,   768,   786,
-     793,   798,   803,   816,   817,   822,   827,   832,   840,   844,
-     851,   852,   856,   860,   864,   868,   872,   876,   883,   890,
-     894,   898,   902,   907,   908,   909,   917,   937,   942,   950,
-     955,   963,   964,   971,   991,   996,   997,  1002,  1010,  1014,
-    1022,  1025,  1026,  1030,  1041,  1048,  1055,  1062,  1069,  1076,
-    1085,  1085,  1094,  1102,  1110,  1122,  1126,  1130,  1134,  1141,
-    1148,  1153,  1157,  1162,  1166,  1171,  1176,  1186,  1193,  1202,
-    1207,  1211,  1222,  1235,  1236,  1243,  1247,  1254,  1259,  1264,
-    1269,  1276,  1282,  1291,  1292,  1296,  1301,  1302,  1310,  1314,
-    1319,  1324,  1329,  1334,  1340,  1350,  1356,  1369,  1376,  1377,
-    1378,  1382,  1383,  1389,  1390,  1391,  1392,  1393,  1394,  1398,
-    1399,  1400,  1404,  1405,  1409,  1410,  1414,  1415,  1419,  1420,
-    1424,  1425,  1426,  1430,  1431,  1432,  1433,  1434,  1435,  1436,
-    1437,  1438,  1439,  1443,  1444,  1445,  1446,  1447,  1453,  1454,
-    1458,  1459,  1460,  1464,  1465,  1469,  1470,  1476,  1483,  1490,
-    1494,  1511,  1516,  1521,  1526,  1531,  1536,  1543,  1548,  1556,
-    1557,  1558,  1559
+       0,   330,   330,   339,   355,   361,   367,   374,   375,   379,
+     387,   402,   416,   423,   424,   428,   429,   433,   437,   441,
+     445,   449,   453,   460,   461,   465,   466,   470,   474,   497,
+     504,   511,   515,   523,   527,   531,   535,   539,   543,   550,
+     551,   563,   564,   570,   578,   589,   590,   596,   605,   606,
+     618,   627,   628,   634,   640,   646,   655,   656,   662,   671,
+     672,   681,   682,   691,   692,   701,   702,   713,   714,   725,
+     726,   733,   734,   741,   742,   743,   744,   745,   746,   747,
+     748,   749,   750,   751,   755,   756,   757,   764,   770,   788,
+     795,   798,   803,   808,   821,   822,   827,   832,   837,   845,
+     849,   856,   857,   861,   865,   869,   873,   877,   881,   888,
+     895,   899,   903,   907,   912,   913,   914,   922,   942,   947,
+     955,   960,   968,   969,   976,   996,  1001,  1002,  1007,  1015,
+    1019,  1027,  1030,  1031,  1035,  1046,  1053,  1060,  1067,  1074,
+    1081,  1090,  1090,  1099,  1107,  1115,  1127,  1131,  1135,  1139,
+    1146,  1153,  1158,  1162,  1167,  1171,  1176,  1181,  1191,  1198,
+    1207,  1212,  1216,  1227,  1240,  1241,  1248,  1252,  1259,  1264,
+    1269,  1274,  1281,  1287,  1296,  1297,  1301,  1306,  1307,  1315,
+    1319,  1324,  1329,  1334,  1339,  1345,  1355,  1361,  1374,  1381,
+    1382,  1383,  1387,  1388,  1394,  1395,  1396,  1397,  1398,  1399,
+    1403,  1404,  1405,  1409,  1410,  1414,  1415,  1419,  1420,  1424,
+    1425,  1429,  1430,  1431,  1435,  1436,  1437,  1438,  1439,  1440,
+    1441,  1442,  1443,  1444,  1448,  1449,  1450,  1451,  1452,  1458,
+    1459,  1463,  1464,  1465,  1466,  1470,  1471,  1475,  1476,  1482,
+    1489,  1496,  1500,  1517,  1522,  1527,  1532,  1537,  1542,  1549,
+    1554,  1562,  1563,  1564,  1565
 };
 #endif
 
@@ -840,7 +842,7 @@ static const char *const yytname[] =
   "and_expression", "exclusive_or_expression", "inclusive_or_expression",
   "logical_and_expression", "logical_or_expression",
   "conditional_expression", "assignment_expression", "assignment_operator",
-  "expression", "constant_expression", "declaration",
+  "expression", "constant_expression", "declaration", "empty_declaration",
   "declaration_specifiers", "init_declarator_list", "init_declarator",
   "storage_class_specifier", "basic_type", "type_specifier",
   "struct_or_union_specifier", "struct_or_union",
@@ -879,10 +881,10 @@ static const yytype_uint16 yytoknum[] =
 };
 # endif
 
-#define YYPACT_NINF -237
+#define YYPACT_NINF -241
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-237)))
+  (!!((Yystate) == (-241)))
 
 #define YYTABLE_NINF -15
 
@@ -893,49 +895,49 @@ static const yytype_uint16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    2078,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,
-    -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,
-    -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,
-    -237,  -237,    11,  2306,  -237,  2306,  -237,    44,  -237,    47,
-    2306,  2306,  -237,  1997,  -237,  -237,   -41,  1635,  -237,  -237,
-    -237,  -237,  -237,   138,   207,  -237,  -237,   -61,  -237,   884,
-      87,    19,  -237,  -237,  2179,  -237,   -23,  -237,  -237,   -10,
-    -237,  -237,  -237,  -237,    74,  -237,  -237,  -237,  -237,  -237,
-      29,    50,  1674,  1674,    65,  1724,  1222,  -237,  -237,  -237,
-    -237,  -237,  -237,  -237,   134,  -237,   145,  -237,  1635,  -237,
-      58,    94,   209,   176,   267,    98,    96,   104,   211,    25,
-    -237,  -237,   136,  -237,  -237,   207,   138,  -237,   441,  1322,
-    -237,    11,  -237,  2047,  2151,  1341,    87,  2179,  1929,  -237,
-      21,  2179,  2179,   137,    74,  -237,  -237,   -18,  1674,  1674,
-    1763,  -237,  -237,   129,  1222,  -237,  1782,   177,  -237,  -237,
-     -11,   130,   166,  -237,  -237,  -237,   324,  1380,  1763,   324,
-    -237,  1635,  1635,  1635,  1635,  1635,  1635,  1635,  1635,  1635,
-    1635,  1635,  1635,  1635,  1635,  1635,  1635,  1635,  1635,  1763,
-    -237,  -237,  -237,  -237,   154,   178,  1635,   185,   189,   827,
-     196,   324,   237,   945,   240,   243,  -237,  -237,   210,   233,
-     -30,  -237,   252,  -237,  -237,  -237,   547,  -237,  -237,  -237,
-    -237,  -237,  1322,  -237,  -237,  -237,  -237,  -237,  -237,    90,
-      69,  -237,   152,  -237,   224,  -237,  -237,  -237,  1635,   -20,
-    -237,   257,  -237,  1966,  -237,    32,   241,  -237,   231,  -237,
-      74,   278,   279,  1782,   741,   280,  1160,   275,  -237,  -237,
-    -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237,  1635,
-    -237,  1635,  1902,  1430,   242,  -237,   245,  1635,  -237,  -237,
-     173,  -237,   -49,  -237,  -237,  -237,  -237,    58,    58,    94,
-      94,   209,   209,   209,   209,   176,   176,   267,    98,    96,
-     104,   211,   -22,  -237,   263,  -237,   827,   296,   961,   264,
-    1763,  -237,    18,  1763,  1763,   827,  -237,  -237,  -237,  -237,
-     248,  1840,  -237,    39,  -237,  -237,  2275,  -237,  -237,  -237,
-      21,  -237,  1635,  -237,  -237,  -237,  1635,  -237,    37,  -237,
-    -237,  -237,   644,  -237,  -237,  -237,  -237,   180,   285,  -237,
-     283,   245,  2213,  1469,  -237,  -237,  1635,  -237,  1763,   827,
-    -237,   289,  1047,    46,  -237,   182,  -237,   184,   193,  -237,
-    -237,  1283,  -237,  -237,  -237,  -237,  -237,   290,  -237,  -237,
-    -237,  -237,   197,  -237,   287,  -237,   275,  -237,  1763,  1488,
-      72,  1063,   827,   827,   827,  -237,  -237,  -237,  -237,  -237,
-     208,   827,   218,  1527,  1577,    73,   329,  -237,  -237,   274,
-    -237,   827,   827,   220,   827,   221,  1616,   827,  -237,  -237,
-    -237,   827,  -237,   827,   827,   229,  -237,  -237,  -237,  -237,
-     827,  -237
+     529,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
+    -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
+    -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
+    -241,  -241,  -241,  -241,    30,  2366,  -241,  2366,  -241,    18,
+    -241,    48,  2366,  2366,  -241,   442,  -241,  -241,    -4,  1787,
+    -241,  -241,  -241,  -241,  -241,    90,   199,  -241,  -241,   -56,
+    -241,  1036,    -7,    42,  -241,  -241,   408,  -241,   -50,  -241,
+    -241,    -1,  -241,  -241,  -241,  -241,    78,  -241,  -241,  -241,
+    -241,  -241,    19,    41,  1826,  1826,    73,  1876,  1374,  -241,
+    -241,  -241,  -241,  -241,  -241,  -241,   162,  -241,   147,  -241,
+    1787,  -241,    52,   171,   249,    85,   259,   121,   122,   123,
+     201,    25,  -241,  -241,   170,  -241,  -241,   199,    90,  -241,
+     602,  1474,  -241,    30,  -241,  2149,  2211,  1493,    -7,   408,
+    2081,  -241,    34,   408,   408,    65,    78,  -241,  -241,    84,
+    1826,  1826,  1915,  -241,  -241,   191,  1374,  -241,  1934,   177,
+    -241,  -241,    86,   -22,   197,  -241,  -241,  -241,   288,  1532,
+    1915,   288,  -241,  1787,  1787,  1787,  1787,  1787,  1787,  1787,
+    1787,  1787,  1787,  1787,  1787,  1787,  1787,  1787,  1787,  1787,
+    1787,  1915,  -241,  -241,  -241,  -241,   179,   181,  1787,   195,
+     204,   979,   231,   288,   234,  1097,   238,   240,  -241,  -241,
+     221,   222,   -51,  -241,   224,  -241,  -241,  -241,   699,  -241,
+    -241,  -241,  -241,  -241,  1474,  -241,  -241,  -241,  -241,  -241,
+    -241,    56,   127,  -241,   130,  -241,   241,  -241,  -241,  -241,
+    1787,   -16,  -241,   228,  -241,  2118,  -241,    32,   232,  -241,
+     103,  -241,    78,   252,   254,  1934,   893,   255,  1312,   250,
+    -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
+    -241,  1787,  -241,  1787,  2054,  1582,   141,  -241,   215,  1787,
+    -241,  -241,   137,  -241,   -24,  -241,  -241,  -241,  -241,    52,
+      52,   171,   171,   249,   249,   249,   249,    85,    85,   259,
+     121,   122,   123,   201,   -48,  -241,   237,  -241,   979,   270,
+    1113,   242,  1915,  -241,    63,  1915,  1915,   979,  -241,  -241,
+    -241,  -241,   165,  1992,  -241,    21,  -241,  -241,  2335,  -241,
+    -241,  -241,    34,  -241,  1787,  -241,  -241,  -241,  1787,  -241,
+      37,  -241,  -241,  -241,   796,  -241,  -241,  -241,  -241,   142,
+     262,  -241,   261,   215,  2273,  1621,  -241,  -241,  1787,  -241,
+    1915,   979,  -241,   268,  1199,    72,  -241,   149,  -241,   158,
+     168,  -241,  -241,  1435,  -241,  -241,  -241,  -241,  -241,   271,
+    -241,  -241,  -241,  -241,   169,  -241,   264,  -241,   250,  -241,
+    1915,  1640,   107,  1215,   979,   979,   979,  -241,  -241,  -241,
+    -241,  -241,   172,   979,   182,  1679,  1729,   116,   305,  -241,
+    -241,   256,  -241,   979,   979,   184,   979,   185,  1768,   979,
+    -241,  -241,  -241,   979,  -241,   979,   979,   193,  -241,  -241,
+    -241,  -241,   979,  -241
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -943,75 +945,75 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,   252,   108,   187,   105,   145,   139,   147,   103,   149,
-     106,   146,   110,   104,   119,   107,   102,   120,   111,   109,
-     148,   237,   238,   241,   242,   243,   244,   245,   246,   247,
-     248,   231,     0,    91,   112,    93,   113,     0,   114,     0,
-      95,    97,   115,     0,   228,   230,     0,     0,   249,   250,
-     251,   232,    12,     0,   160,    89,   152,     0,    98,   100,
-     151,     0,    90,    92,     0,    13,   118,    14,   140,   138,
-      94,    96,     1,   229,     0,     3,     6,     4,     5,    10,
-       0,     0,     0,     0,     0,     0,     0,    33,    34,    35,
-      36,    37,    38,    15,     7,     2,    25,    39,     0,    41,
-      45,    48,    51,    56,    59,    61,    63,    65,    67,    69,
-      87,   240,     0,   163,   162,   159,     0,    88,     0,     0,
-     235,     0,   234,     0,     0,     0,   150,   125,     0,   121,
-     130,   127,     0,     0,     0,   140,   171,     0,     0,     0,
-       0,    26,    27,     0,     0,    31,   147,    39,    71,    84,
-       0,   173,     0,    11,    21,    22,     0,     0,     0,     0,
-      28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   254,   109,   188,   106,   146,   140,   148,   104,   150,
+     107,   147,   111,   105,   120,   108,   103,   121,   112,   110,
+     149,   239,   240,   243,   244,   245,   246,   247,   248,   249,
+     250,    90,   232,   233,     0,    92,   113,    94,   114,     0,
+     115,     0,    96,    98,   116,     0,   229,   231,     0,     0,
+     251,   252,   253,   234,    12,     0,   161,    89,   153,     0,
+      99,   101,   152,     0,    91,    93,     0,    13,   119,    14,
+     141,   139,    95,    97,     1,   230,     0,     3,     6,     4,
+       5,    10,     0,     0,     0,     0,     0,     0,     0,    33,
+      34,    35,    36,    37,    38,    15,     7,     2,    25,    39,
+       0,    41,    45,    48,    51,    56,    59,    61,    63,    65,
+      67,    69,    87,   242,     0,   164,   163,   160,     0,    88,
+       0,     0,   237,     0,   236,     0,     0,     0,   151,   126,
+       0,   122,   131,   128,     0,     0,     0,   141,   172,     0,
+       0,     0,     0,    26,    27,     0,     0,    31,   148,    39,
+      71,    84,     0,   174,     0,    11,    21,    22,     0,     0,
+       0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     153,   164,   161,    99,   100,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   202,   208,     2,     0,
-       0,   206,   115,   207,   193,   194,     0,   204,   195,   196,
-     197,   198,     0,   188,   101,   236,   233,   170,   158,   169,
-       0,   165,     0,   155,     0,   124,   117,   122,     0,     0,
-     128,   131,   126,     0,   135,     0,   143,   141,     0,   239,
-       0,     0,     0,     0,     0,     0,     0,    86,    77,    78,
-      74,    75,    76,    82,    81,    83,    79,    80,    73,     0,
-       8,     0,     0,     0,   175,   174,   176,     0,    20,    18,
-       0,    23,     0,    19,    42,    43,    44,    46,    47,    49,
-      50,    54,    55,    52,    53,    57,    58,    60,    62,    64,
-      66,    68,     0,   225,     0,   224,     0,     0,     0,     0,
-       0,   226,     0,     0,     0,     0,   209,   203,   205,   191,
-       0,     0,   167,   175,   168,   156,     0,   157,   154,   132,
-     130,   123,     0,   116,   137,   142,     0,   134,     0,   172,
-      29,    30,     0,    32,    72,    85,   183,     0,     0,   179,
-       0,   177,     0,     0,    40,    17,     0,    16,     0,     0,
-     201,     0,     0,     0,   223,     0,   227,     0,     0,   199,
-     189,     0,   166,   129,   133,   144,   136,     0,   184,   178,
-     180,   185,     0,   181,     0,    24,    70,   200,     0,     0,
-       0,     0,     0,     0,     0,   190,   192,     9,   186,   182,
-       0,     0,     0,     0,     0,     0,   210,   212,   213,     0,
-     215,     0,     0,     0,     0,     0,     0,     0,   214,   219,
-     217,     0,   216,     0,     0,     0,   211,   221,   220,   218,
-       0,   222
+       0,     0,   154,   165,   162,   100,   101,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   203,   209,
+       2,     0,     0,   207,   116,   208,   194,   195,     0,   205,
+     196,   197,   198,   199,     0,   189,   102,   238,   235,   171,
+     159,   170,     0,   166,     0,   156,     0,   125,   118,   123,
+       0,     0,   129,   132,   127,     0,   136,     0,   144,   142,
+       0,   241,     0,     0,     0,     0,     0,     0,     0,    86,
+      77,    78,    74,    75,    76,    82,    81,    83,    79,    80,
+      73,     0,     8,     0,     0,     0,   176,   175,   177,     0,
+      20,    18,     0,    23,     0,    19,    42,    43,    44,    46,
+      47,    49,    50,    54,    55,    52,    53,    57,    58,    60,
+      62,    64,    66,    68,     0,   226,     0,   225,     0,     0,
+       0,     0,     0,   227,     0,     0,     0,     0,   210,   204,
+     206,   192,     0,     0,   168,   176,   169,   157,     0,   158,
+     155,   133,   131,   124,     0,   117,   138,   143,     0,   135,
+       0,   173,    29,    30,     0,    32,    72,    85,   184,     0,
+       0,   180,     0,   178,     0,     0,    40,    17,     0,    16,
+       0,     0,   202,     0,     0,     0,   224,     0,   228,     0,
+       0,   200,   190,     0,   167,   130,   134,   145,   137,     0,
+     185,   179,   181,   186,     0,   182,     0,    24,    70,   201,
+       0,     0,     0,     0,     0,     0,     0,   191,   193,     9,
+     187,   183,     0,     0,     0,     0,     0,     0,   211,   213,
+     214,     0,   216,     0,     0,     0,     0,     0,     0,     0,
+     215,   220,   218,     0,   217,     0,     0,     0,   212,   222,
+     221,   219,     0,   223
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -237,  -237,  -237,   -32,   -26,  -237,  -237,   255,  -237,   -81,
-     183,   175,   164,   172,   192,   199,   204,   206,   212,  -237,
-     -39,   -99,  -237,   -70,  -168,    14,     4,  -237,   268,  -237,
-    -237,     7,  -237,  -237,   254,  -101,   -77,  -237,    67,  -237,
-    -237,   256,  -237,   258,   -24,  -237,   -31,   -59,   -51,  -237,
-    -118,    81,   265,   259,  -105,  -236,    -6,  -200,  -237,  -165,
-    -237,   -40,   155,  -196,  -237,  -237,  -237,  -237,  -237,   357,
-    -237,  -237,  -237,  -237,  -237,  -237,  -237,  -237
+    -241,  -241,  -241,   -34,   -28,  -241,  -241,   253,  -241,   -85,
+     131,   144,   133,   153,   178,   180,   183,   186,   176,  -241,
+     -41,  -109,  -241,   -72,  -164,    20,  -241,     2,  -241,   244,
+    -241,  -241,     5,  -241,  -241,   226,  -113,   -78,  -241,    44,
+    -241,  -241,   227,  -241,   235,   -26,  -241,   -33,   -59,   -53,
+    -241,  -120,    45,   247,   243,  -134,  -240,    -8,  -205,  -241,
+      51,  -241,     0,   128,  -194,  -241,  -241,  -241,  -241,  -241,
+     322,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    93,    94,    95,   199,    96,   270,   147,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     148,   149,   259,   200,   111,   201,   121,    57,    58,    33,
-      34,    35,    36,    37,   128,   129,   130,   229,   230,    38,
-      39,   133,   134,   325,    40,    41,   112,    60,    61,   115,
-     337,   221,   137,   152,   338,   266,    42,   214,   310,   203,
-     204,   205,   206,   207,   208,   209,   210,   211,    43,    44,
-      45,   123,    46,    47,    48,    49,    50,    51
+      -1,    95,    96,    97,   201,    98,   272,   149,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+     150,   151,   261,   202,   113,   203,    33,   123,    59,    60,
+      35,    36,    37,    38,    39,   130,   131,   132,   231,   232,
+      40,    41,   135,   136,   327,    42,    43,   114,    62,    63,
+     117,   339,   223,   139,   154,   340,   268,    44,   216,   312,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,    45,
+      46,    47,   125,    48,    49,    50,    51,    52,    53
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1019,236 +1021,242 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      56,    59,   126,   114,    32,    65,   220,    65,   110,   151,
-     308,    66,   309,    69,    31,    52,   150,   160,   294,   122,
-     213,    56,   116,    52,   297,    52,   224,   227,   341,    56,
-     113,    67,   347,    67,   261,    74,    52,    62,   117,    63,
-     131,    52,   136,    52,    70,    71,   265,    32,    52,     3,
-     225,    52,     3,   261,   232,   132,   178,    31,   271,   239,
-     319,   261,   131,   320,   182,   240,   260,   151,   135,   306,
-     150,   127,   261,   120,   150,   348,   247,   341,    52,   321,
-     274,   275,   276,   216,    56,   184,   198,    53,   272,    56,
-     184,   181,   136,   127,    52,    53,    54,    53,    56,   231,
-     264,   261,   236,   131,   131,   138,    54,   131,   131,   292,
-      55,   324,   202,   213,   314,   311,   366,   356,   228,   263,
-     131,   179,    64,   302,    65,    68,   139,    65,   219,   261,
-     268,   350,   227,   273,   127,   127,   308,   215,   127,   127,
-     359,   143,    52,   161,   153,   381,   315,   110,   162,   163,
-      67,   127,   316,    67,   364,   261,   261,   198,   365,    65,
-     334,   386,   335,   124,   340,   299,   311,   125,   313,   151,
-     263,   393,   406,   247,   198,    54,   150,   154,   155,   156,
-     164,   165,   174,    67,   377,    67,   344,    56,   312,   110,
-     175,   248,   249,   250,   251,   252,   253,   254,   255,   176,
-     202,   256,   257,   236,   168,   169,   262,   244,   329,   131,
-     263,   264,   198,   180,    53,    54,   234,   396,   397,   398,
-     235,   157,   131,    54,   372,   158,   400,   159,   353,   317,
-     355,   166,   167,   357,   358,   240,   409,   410,   202,   412,
-     127,   177,   416,   267,   374,     5,   417,   375,   418,   419,
-     345,     7,   119,   127,   126,   421,   346,   368,    11,   382,
-     313,   383,   213,   316,   198,   261,   219,   261,   170,   171,
-     384,    20,   298,   198,   388,   258,   261,   293,   376,    56,
-     316,    56,   380,   110,   295,   399,   296,   110,    56,   231,
-      67,   261,    54,   172,   173,   401,   236,   411,   413,    67,
-     198,   261,    97,   261,   261,   318,   420,   -13,   390,   392,
-     327,   395,   261,   300,   328,   219,   303,   198,   262,   304,
-     219,   342,   263,   403,   405,   343,   202,   360,    52,     3,
-     305,   361,   281,   282,   283,   284,   415,   141,   142,   326,
-     145,   279,   280,    67,   285,   286,   219,   277,   278,   -14,
-     198,   198,   198,    97,   322,   330,   331,   333,   261,   198,
-     349,   351,   369,   354,   370,   378,   287,   387,   389,   198,
-     198,   407,   198,   408,   288,   198,    67,    67,    67,   198,
-     289,   198,   198,   290,   183,    67,   233,   363,   198,   222,
-     291,   238,   237,   241,   242,    67,    67,   362,    67,   332,
-      73,    67,     0,   245,     0,    67,     0,    67,    67,     0,
-       0,     0,     0,     0,    67,     0,    97,    97,    97,    97,
-      97,    97,    97,    97,    97,    97,    97,    97,    97,    97,
-      97,    97,    97,    97,     0,     0,     0,     0,     0,     0,
-       0,    97,     0,     0,     2,    52,     3,    75,    76,    77,
-      78,    79,    80,    81,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    82,    83,     0,     4,   185,   186,     5,
-     187,   188,   189,    97,     6,   146,     8,   190,   191,   192,
-       9,    10,    11,   193,     0,    12,    85,    13,    14,   194,
-      15,    16,    17,    18,    19,    20,   195,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    86,     0,   118,
-     196,     0,    97,     0,     0,    87,    88,    89,    90,    91,
-      92,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     197,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       2,    52,     3,    75,    76,    77,    78,    79,    80,    81,
+      58,    61,    34,   116,   128,    67,   222,    67,   112,   311,
+     153,    68,   215,    71,   310,   162,   152,   229,   226,   267,
+      32,    58,    54,     3,   296,    54,   343,   118,   134,    58,
+     115,    69,   263,    69,    54,   263,    54,    64,    54,    65,
+     133,    54,   138,   119,    72,    73,    54,    34,   308,   350,
+     273,   227,    54,     3,   264,   234,   180,   349,   265,   263,
+      54,   124,   133,    56,   184,    32,   321,   322,   153,   126,
+     152,   129,    76,   127,   152,   343,   249,   137,   276,   277,
+     278,   122,    54,   323,    58,   186,   200,   316,   274,    58,
+     186,   183,   138,   129,    54,   140,    66,   313,    58,   233,
+     266,   265,   238,   133,   133,   215,    55,   133,   133,   294,
+      55,   326,   204,   170,   171,    56,   368,   141,    55,    56,
+     133,   181,   229,   304,    67,   218,    70,    67,   221,    57,
+     270,   230,   313,   275,   129,   129,   265,   163,   129,   129,
+     310,    56,   164,   165,   236,   217,   263,   112,   237,   145,
+      69,   129,   336,    69,   337,   263,   342,   200,   388,    67,
+     366,   241,   358,   262,   367,   301,    55,   242,   315,   263,
+     153,   383,   155,   249,   200,    56,   152,   172,   173,   156,
+     157,   158,   329,    69,   346,    69,   330,    58,   314,   112,
+     263,   250,   251,   252,   253,   254,   255,   256,   257,   263,
+     204,   258,   259,   238,   317,   176,   395,   319,   331,   133,
+     318,   266,   200,   242,   347,   408,   177,   264,   178,   370,
+     348,   265,   133,   159,   374,   318,   384,   160,   355,   161,
+     357,   179,   263,   359,   360,   385,   376,     5,   204,   377,
+     129,   263,   299,     7,   362,   386,   390,   182,   363,   401,
+      11,   263,   318,   129,   215,   263,   128,   166,   167,   403,
+     315,   413,   415,    20,   200,   263,   221,   263,   263,   246,
+     422,   168,   169,   200,   269,   260,   263,   121,   378,    58,
+     295,    58,   382,   112,    56,   174,   175,   112,    58,   233,
+      69,   344,    54,     3,   297,   345,   238,   279,   280,    69,
+     200,   298,    99,   283,   284,   285,   286,   300,   392,   394,
+     302,   397,   281,   282,   305,   221,   306,   200,   -13,   307,
+     221,   -14,   320,   405,   407,   324,   204,   287,   288,   332,
+     328,   333,   335,   263,   351,   353,   417,   143,   144,   371,
+     147,   356,   372,    69,   380,   391,   221,   409,   389,   352,
+     200,   200,   200,    99,   289,   410,   293,   290,   361,   200,
+     235,   291,   185,   364,   240,   292,   365,    75,     0,   200,
+     200,   239,   200,   224,   334,   200,    69,    69,    69,   200,
+       0,   200,   200,     0,     0,    69,     0,     0,   200,   247,
+       0,     0,     0,   243,   244,    69,    69,     0,    69,     0,
+       0,    69,   379,     0,     0,    69,     0,    69,    69,     0,
+       0,     2,     0,     3,    69,     0,    99,    99,    99,    99,
+      99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
+      99,    99,    99,    99,     0,   398,   399,   400,     0,     0,
+       0,    99,    74,     1,   402,     2,     5,     3,     0,     0,
+       0,     6,     7,     0,   411,   412,     0,   414,     0,    11,
+     418,     0,    12,     0,   419,    14,   420,   421,     0,    17,
+      18,    19,    20,   423,     0,     0,     0,     4,     0,     0,
+       5,     0,     0,    99,     0,     6,     7,     8,     0,     0,
+       0,     9,    10,    11,     0,     0,    12,     0,    13,    14,
+       0,    15,    16,    17,    18,    19,    20,     0,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,     0,     0,
+       0,     0,    99,     0,     0,     0,     0,     0,     0,     0,
+       1,     0,     2,     0,     3,     0,     0,     0,     0,     0,
+       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    97,     0,    82,
-      83,    97,     4,   185,   186,     5,   187,   188,   189,     0,
-       6,   146,     8,   190,   191,   192,     9,    10,    11,   193,
-       0,    12,    85,    13,    14,   194,    15,    16,    17,    18,
-      19,    20,   195,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    86,     0,   118,   307,     0,     0,     0,
-       0,    87,    88,    89,    90,    91,    92,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   197,     2,    52,     3,
-      75,    76,    77,    78,    79,    80,    81,     0,     0,     0,
+       0,     0,     0,     0,     4,     0,     0,     5,     0,     0,
+       0,     0,     6,     7,     8,     0,     0,    99,     9,    10,
+      11,    99,     0,    12,     0,    13,    14,     0,    15,    16,
+      17,    18,    19,    20,     0,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,     2,    54,     3,    77,    78,
+      79,    80,    81,    82,    83,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
+       0,     0,     0,     0,    84,    85,     0,     4,   187,   188,
+       5,   189,   190,   191,     0,     6,   148,     8,   192,   193,
+     194,     9,    10,    11,   195,     0,    12,    87,    13,    14,
+     196,    15,    16,    17,    18,    19,    20,   197,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
+     120,   198,     0,     0,     0,     0,    89,    90,    91,    92,
+      93,    94,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   199,     2,    54,     3,    77,    78,    79,    80,    81,
+      82,    83,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    82,    83,     0,     4,
-     185,   186,     5,   187,   188,   189,     0,     6,   146,     8,
-     190,   191,   192,     9,    10,    11,   193,     0,    12,    85,
-      13,    14,   194,    15,    16,    17,    18,    19,    20,   195,
+       0,    84,    85,     0,     4,   187,   188,     5,   189,   190,
+     191,     0,     6,   148,     8,   192,   193,   194,     9,    10,
+      11,   195,     0,    12,    87,    13,    14,   196,    15,    16,
+      17,    18,    19,    20,   197,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    88,     0,   120,   309,     0,
+       0,     0,     0,    89,    90,    91,    92,    93,    94,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   199,     2,
+      54,     3,    77,    78,    79,    80,    81,    82,    83,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      86,     0,   118,   367,     0,     0,     0,     0,    87,    88,
-      89,    90,    91,    92,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   197,     2,    52,     3,    75,    76,    77,
-      78,    79,    80,    81,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    84,    85,
+       0,     4,   187,   188,     5,   189,   190,   191,     0,     6,
+     148,     8,   192,   193,   194,     9,    10,    11,   195,     0,
+      12,    87,    13,    14,   196,    15,    16,    17,    18,    19,
+      20,   197,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    88,     0,   120,   369,     0,     0,     0,     0,
+      89,    90,    91,    92,    93,    94,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   199,     2,    54,     3,    77,
+      78,    79,    80,    81,    82,    83,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    82,    83,     0,     4,   185,   186,     5,
-     187,   188,   189,     0,     6,   146,     8,   190,   191,   192,
-       9,    10,    11,   193,     0,    12,    85,    13,    14,   194,
-      15,    16,    17,    18,    19,    20,   195,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    86,     0,   118,
-       0,     0,     0,     0,     0,    87,    88,    89,    90,    91,
-      92,    52,     3,    75,    76,    77,    78,    79,    80,    81,
-     197,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
-      83,     0,     0,   185,   186,     0,   187,   188,   189,     0,
-       0,   243,     0,   190,   191,   192,     0,     0,     0,   193,
-       0,     0,    85,     0,     0,   194,     0,     2,     0,     3,
-       0,     0,   195,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    86,     0,   118,     0,     0,     0,     0,
-       0,    87,    88,    89,    90,    91,    92,     0,     0,     4,
-       0,     0,     5,     0,     0,     0,   197,     6,     7,     8,
-       0,     0,     0,     9,    10,    11,     0,     0,    12,     0,
-      13,    14,     0,    15,    16,    17,    18,    19,    20,    52,
-       0,    75,    76,    77,    78,    79,    80,    81,     0,     0,
-       0,     0,   118,     0,     0,    52,     0,    75,    76,    77,
-      78,    79,    80,    81,     0,     0,     0,    82,    83,     0,
-       0,     0,   119,     0,     0,     0,     0,     0,     0,   243,
-       0,     0,     0,    82,    83,     0,     0,     0,     0,     0,
-      85,     0,     0,     0,     0,   243,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    85,     0,     0,     0,
-       0,    86,     0,     0,     0,     0,     0,     0,     0,    87,
-      88,    89,    90,    91,    92,     0,     0,    86,     0,     0,
-       0,     0,     0,     0,   301,    87,    88,    89,    90,    91,
-      92,    52,     0,    75,    76,    77,    78,    79,    80,    81,
-     352,     0,     0,     0,     0,     0,     0,    52,     0,    75,
-      76,    77,    78,    79,    80,    81,     0,     0,     0,    82,
-      83,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   243,     0,     0,     0,    82,    83,     0,     0,     0,
-       0,     0,    85,     0,     0,     0,     0,   243,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    85,     0,
-       0,     0,     0,    86,     0,     0,     0,     0,     0,     0,
-       0,    87,    88,    89,    90,    91,    92,     0,     0,    86,
-       0,     0,     0,     0,     0,     0,   379,    87,    88,    89,
-      90,    91,    92,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   394,     2,    52,     3,    75,    76,    77,    78,
-      79,    80,    81,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    84,    85,     0,     4,   187,
+     188,     5,   189,   190,   191,     0,     6,   148,     8,   192,
+     193,   194,     9,    10,    11,   195,     0,    12,    87,    13,
+      14,   196,    15,    16,    17,    18,    19,    20,   197,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    88,
+       0,   120,     0,     0,     0,     0,     0,    89,    90,    91,
+      92,    93,    94,    54,     3,    77,    78,    79,    80,    81,
+      82,    83,   199,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    82,    83,     0,     0,     0,     0,     5,     0,
-       0,     0,     0,     6,   146,     0,     0,     0,     0,     0,
-       0,    11,     0,     0,    12,    85,     0,    14,     0,     0,
-       0,    17,    18,    19,    20,     2,    52,     3,    75,    76,
-      77,    78,    79,    80,    81,     0,    86,     0,   244,     0,
-       0,     0,     0,     0,    87,    88,    89,    90,    91,    92,
-       0,     0,     0,     0,    82,    83,     0,     0,     0,     0,
-       5,     0,     0,     0,     0,     6,   146,     0,     0,     0,
-       0,     0,     0,    11,     0,     0,    12,    85,     0,    14,
-       0,     0,     0,    17,    18,    19,    20,    52,     0,    75,
-      76,    77,    78,    79,    80,    81,     0,     0,    86,     0,
-       0,     0,     0,     0,     0,     0,    87,    88,    89,    90,
-      91,    92,     0,     0,     0,    82,    83,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    52,    84,    75,    76,
-      77,    78,    79,    80,    81,     0,     0,     0,    85,     0,
-       0,     0,     0,     0,     0,    52,     0,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,     0,     0,     0,    86,
-       0,   212,   385,     0,     0,     0,    84,    87,    88,    89,
-      90,    91,    92,    82,    83,     0,     0,    85,     0,     0,
-       0,     0,     0,     0,    52,    84,    75,    76,    77,    78,
-      79,    80,    81,     0,     0,     0,    85,     0,    86,     0,
-     212,     0,     0,     0,     0,     0,    87,    88,    89,    90,
-      91,    92,    82,    83,     0,     0,     0,    86,     0,     0,
-       0,     0,   223,     0,    84,    87,    88,    89,    90,    91,
-      92,     0,     0,     0,    52,    85,    75,    76,    77,    78,
-      79,    80,    81,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    86,   269,     0,     0,
-       0,     0,    82,    83,    87,    88,    89,    90,    91,    92,
-       0,     0,     0,    52,    84,    75,    76,    77,    78,    79,
-      80,    81,     0,     0,     0,    85,     0,     0,     0,     0,
-       0,     0,    52,     0,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,     0,     0,     0,    86,     0,     0,     0,
-       0,   339,     0,    84,    87,    88,    89,    90,    91,    92,
-      82,    83,     0,     0,    85,     0,     0,     0,     0,     0,
-       0,    52,   243,    75,    76,    77,    78,    79,    80,    81,
-       0,     0,     0,    85,     0,    86,     0,     0,     0,     0,
-     373,     0,     0,    87,    88,    89,    90,    91,    92,    82,
-      83,     0,     0,     0,    86,   391,     0,     0,     0,     0,
-       0,   243,    87,    88,    89,    90,    91,    92,     0,     0,
-       0,    52,    85,    75,    76,    77,    78,    79,    80,    81,
+       0,    84,    85,     0,     0,   187,   188,     0,   189,   190,
+     191,     0,     0,   245,     0,   192,   193,   194,     0,     0,
+       0,   195,     0,     0,    87,     0,     0,   196,     0,     2,
+       0,     3,     0,     0,   197,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    88,     0,   120,     0,     0,
+       0,     0,     0,    89,    90,    91,    92,    93,    94,     0,
+       0,     4,     0,     0,     5,     0,     0,     0,   199,     6,
+       7,     8,     0,     0,     0,     9,    10,    11,     0,     0,
+      12,     0,    13,    14,     0,    15,    16,    17,    18,    19,
+      20,    54,     0,    77,    78,    79,    80,    81,    82,    83,
+       0,     0,     0,     0,   120,     0,     0,    54,     0,    77,
+      78,    79,    80,    81,    82,    83,     0,     0,     0,    84,
+      85,     0,     0,     0,   121,     0,     0,     0,     0,     0,
+       0,   245,     0,     0,     0,    84,    85,     0,     0,     0,
+       0,     0,    87,     0,     0,     0,     0,   245,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    87,     0,
+       0,     0,     0,    88,     0,     0,     0,     0,     0,     0,
+       0,    89,    90,    91,    92,    93,    94,     0,     0,    88,
+       0,     0,     0,     0,     0,     0,   303,    89,    90,    91,
+      92,    93,    94,    54,     0,    77,    78,    79,    80,    81,
+      82,    83,   354,     0,     0,     0,     0,     0,     0,    54,
+       0,    77,    78,    79,    80,    81,    82,    83,     0,     0,
+       0,    84,    85,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   245,     0,     0,     0,    84,    85,     0,
+       0,     0,     0,     0,    87,     0,     0,     0,     0,   245,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    86,   402,     0,     0,     0,     0,    82,
-      83,    87,    88,    89,    90,    91,    92,     0,     0,     0,
-      52,   243,    75,    76,    77,    78,    79,    80,    81,     0,
-       0,     0,    85,     0,     0,     0,     0,     0,     0,    52,
-       0,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-       0,     0,     0,    86,   404,     0,     0,     0,     0,     0,
-     243,    87,    88,    89,    90,    91,    92,    82,    83,     0,
-       0,    85,     0,     0,     0,     0,     0,     0,    52,    84,
-      75,    76,    77,    78,    79,    80,    81,     0,     0,     0,
-      85,     0,    86,   414,     0,     0,     0,     0,     0,     0,
-      87,    88,    89,    90,    91,    92,    82,    83,     0,     0,
-       0,    86,     0,     0,     0,     0,     0,     0,    84,    87,
-      88,    89,    90,    91,    92,     0,     0,     0,    52,    85,
-      75,    76,    77,    78,    79,    80,    81,     0,     0,     0,
+      87,     0,     0,     0,     0,    88,     0,     0,     0,     0,
+       0,     0,     0,    89,    90,    91,    92,    93,    94,     0,
+       0,    88,     0,     0,     0,     0,     0,     0,   381,    89,
+      90,    91,    92,    93,    94,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   396,     2,    54,     3,    77,    78,
+      79,    80,    81,    82,    83,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     140,     0,     0,     0,     0,     0,    82,    83,    87,    88,
-      89,    90,    91,    92,     0,     0,     0,    52,    84,    75,
-      76,    77,    78,    79,    80,    81,     0,     0,     0,    85,
-       0,     0,     0,     0,     0,     0,    52,     0,    75,    76,
+       0,     0,     0,     0,    84,    85,     0,     0,     0,     0,
+       5,     0,     0,     0,     0,     6,   148,     0,     0,     0,
+       0,     0,     0,    11,     0,     0,    12,    87,     0,    14,
+       0,     0,     0,    17,    18,    19,    20,     2,    54,     3,
+      77,    78,    79,    80,    81,    82,    83,     0,    88,     0,
+     246,     0,     0,     0,     0,     0,    89,    90,    91,    92,
+      93,    94,     0,     0,     0,     0,    84,    85,     0,     0,
+       0,     0,     5,     0,     0,     0,     0,     6,   148,     0,
+       0,     0,     0,     0,     0,    11,     0,     0,    12,    87,
+       0,    14,     0,     0,     0,    17,    18,    19,    20,    54,
+       0,    77,    78,    79,    80,    81,    82,    83,     0,     0,
+      88,     0,     0,     0,     0,     0,     0,     0,    89,    90,
+      91,    92,    93,    94,     0,     0,     0,    84,    85,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    54,    86,
       77,    78,    79,    80,    81,    82,    83,     0,     0,     0,
-     144,     0,     0,     0,     0,     0,     0,   243,    87,    88,
-      89,    90,    91,    92,    82,    83,     0,     0,    85,     0,
-       0,     0,     0,     0,     0,     0,   243,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    85,     0,    86,
-       0,     0,     0,     2,    52,     3,     0,    87,    88,    89,
-      90,    91,    92,   217,     0,     0,     0,     0,   246,     0,
-       0,     0,     0,     0,     0,     0,    87,    88,    89,    90,
-      91,    92,     0,     0,     0,     4,     0,     0,     5,     0,
-       0,     0,     0,     6,     7,     8,     0,     0,     0,     9,
-      10,    11,     0,     0,    12,     0,    13,    14,     0,    15,
-      16,    17,    18,    19,    20,     2,     0,     3,     0,     0,
-       0,     0,     0,     0,     0,   217,   311,   336,     0,     0,
-     263,     0,     0,     0,     0,    54,     0,     0,     0,     0,
-       0,     0,     2,     0,     3,     0,     0,     4,     0,     0,
+      87,     0,     0,     0,     0,     0,     0,    54,     0,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,     0,     0,
+       0,    88,     0,   214,   387,     0,     0,     0,    86,    89,
+      90,    91,    92,    93,    94,    84,    85,     0,     0,    87,
+       0,     0,     0,     0,     0,     0,    54,    86,    77,    78,
+      79,    80,    81,    82,    83,     0,     0,     0,    87,     0,
+      88,     0,   214,     0,     0,     0,     0,     0,    89,    90,
+      91,    92,    93,    94,    84,    85,     0,     0,     0,    88,
+       0,     0,     0,     0,   225,     0,    86,    89,    90,    91,
+      92,    93,    94,     0,     0,     0,    54,    87,    77,    78,
+      79,    80,    81,    82,    83,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    88,   271,
+       0,     0,     0,     0,    84,    85,    89,    90,    91,    92,
+      93,    94,     0,     0,     0,    54,    86,    77,    78,    79,
+      80,    81,    82,    83,     0,     0,     0,    87,     0,     0,
+       0,     0,     0,     0,    54,     0,    77,    78,    79,    80,
+      81,    82,    83,    84,    85,     0,     0,     0,    88,     0,
+       0,     0,     0,   341,     0,    86,    89,    90,    91,    92,
+      93,    94,    84,    85,     0,     0,    87,     0,     0,     0,
+       0,     0,     0,    54,   245,    77,    78,    79,    80,    81,
+      82,    83,     0,     0,     0,    87,     0,    88,     0,     0,
+       0,     0,   375,     0,     0,    89,    90,    91,    92,    93,
+      94,    84,    85,     0,     0,     0,    88,   393,     0,     0,
+       0,     0,     0,   245,    89,    90,    91,    92,    93,    94,
+       0,     0,     0,    54,    87,    77,    78,    79,    80,    81,
+      82,    83,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    88,   404,     0,     0,     0,
+       0,    84,    85,    89,    90,    91,    92,    93,    94,     0,
+       0,     0,    54,   245,    77,    78,    79,    80,    81,    82,
+      83,     0,     0,     0,    87,     0,     0,     0,     0,     0,
+       0,    54,     0,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,     0,     0,     0,    88,   406,     0,     0,     0,
+       0,     0,   245,    89,    90,    91,    92,    93,    94,    84,
+      85,     0,     0,    87,     0,     0,     0,     0,     0,     0,
+      54,    86,    77,    78,    79,    80,    81,    82,    83,     0,
+       0,     0,    87,     0,    88,   416,     0,     0,     0,     0,
+       0,     0,    89,    90,    91,    92,    93,    94,    84,    85,
+       0,     0,     0,    88,     0,     0,     0,     0,     0,     0,
+      86,    89,    90,    91,    92,    93,    94,     0,     0,     0,
+      54,    87,    77,    78,    79,    80,    81,    82,    83,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   142,     0,     0,     0,     0,     0,    84,    85,
+      89,    90,    91,    92,    93,    94,     0,     0,     0,    54,
+      86,    77,    78,    79,    80,    81,    82,    83,     0,     0,
+       0,    87,     0,     0,     0,     0,     0,     0,    54,     0,
+      77,    78,    79,    80,    81,    82,    83,    84,    85,     0,
+       0,     0,   146,     0,     0,     0,     0,     0,     0,   245,
+      89,    90,    91,    92,    93,    94,    84,    85,     0,     0,
+      87,     0,     0,     0,     0,     0,     0,     0,   245,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    87,
+       0,    88,     0,     0,     0,     2,    54,     3,     0,    89,
+      90,    91,    92,    93,    94,   219,     0,     0,     0,     0,
+     248,     0,     0,     0,     0,     0,     0,     0,    89,    90,
+      91,    92,    93,    94,     0,     0,     0,     4,     0,     0,
        5,     0,     0,     0,     0,     6,     7,     8,     0,     0,
        0,     9,    10,    11,     0,     0,    12,     0,    13,    14,
-       0,    15,    16,    17,    18,    19,    20,     5,     0,     2,
-       0,     3,     6,     7,     0,     0,     0,     0,   262,   336,
-      11,     0,   263,    12,     0,     0,    14,    54,     0,     0,
-      17,    18,    19,    20,     0,     0,     0,    72,     1,     0,
-       2,     0,     3,     0,     5,     0,     0,     0,   226,     6,
-       7,     0,     0,     0,     0,     0,     0,    11,     0,     0,
-      12,     0,     0,    14,     0,     0,     0,    17,    18,    19,
-      20,     0,     4,     0,     0,     5,     0,     0,     0,     0,
-       6,     7,     8,     0,     0,   323,     9,    10,    11,     0,
-       2,    12,     3,    13,    14,     0,    15,    16,    17,    18,
-      19,    20,     0,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,     0,     0,     0,     0,     0,     0,     1,
-       0,     2,     4,     3,     0,     5,     0,     0,     0,     0,
-       6,     7,     8,     0,     0,     0,     9,    10,    11,     0,
-       0,    12,     0,    13,    14,     0,    15,    16,    17,    18,
-      19,    20,     0,     4,     0,     0,     5,     0,     0,     0,
-       0,     6,     7,     8,     0,   118,     0,     9,    10,    11,
-       0,     0,    12,     0,    13,    14,     0,    15,    16,    17,
-      18,    19,    20,     0,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,     2,    52,     3,     0,     0,     0,
-       0,     0,     0,     0,   217,     0,     0,     0,     0,     0,
+       0,    15,    16,    17,    18,    19,    20,     2,     0,     3,
+       0,     0,     0,     0,     0,     0,     0,   219,   313,   338,
+       0,     0,   265,     0,     0,     0,     0,    56,     0,     0,
+       0,     0,     0,     0,     2,     0,     3,     0,     0,     4,
+       0,     0,     5,     0,     0,     0,     0,     6,     7,     8,
+       0,     0,     0,     9,    10,    11,     0,     0,    12,     0,
+      13,    14,     0,    15,    16,    17,    18,    19,    20,     5,
+       0,     2,     0,     3,     6,     7,     0,     0,     0,     0,
+     264,   338,    11,     0,   265,    12,     0,     0,    14,    56,
+       0,     0,    17,    18,    19,    20,     0,     0,     0,     0,
+       0,     0,     2,     0,     3,     0,     5,     0,     0,     0,
+     228,     6,     7,     0,     0,     0,     0,     0,     0,    11,
+       0,     0,    12,     0,     0,    14,     0,     0,     0,    17,
+      18,    19,    20,     0,     4,     0,     0,     5,     0,     0,
+       0,     0,     6,     7,     8,     0,     0,   325,     9,    10,
+      11,     0,     0,    12,     0,    13,    14,     0,    15,    16,
+      17,    18,    19,    20,     2,    54,     3,     0,     0,     0,
+       0,     0,     0,     0,   219,     0,     0,   120,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     2,     0,     3,     0,     4,     0,     0,     5,
+       0,     0,     0,     0,     0,     0,     4,     0,     0,     5,
        0,     0,     0,     0,     6,     7,     8,     0,     0,     0,
        9,    10,    11,     0,     0,    12,     0,    13,    14,     0,
-      15,    16,    17,    18,    19,    20,     2,     5,     3,     0,
-       0,     0,     6,     7,     0,     0,   217,     0,   218,     0,
-      11,     0,     0,    12,     0,     0,    14,     0,     0,     0,
-      17,    18,    19,    20,     0,     0,     0,     0,     4,     0,
+      15,    16,    17,    18,    19,    20,     2,     0,     3,     0,
+       0,     0,     0,     0,     0,     0,   219,     0,   220,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     4,     0,
        0,     5,     0,     0,     0,     0,     6,     7,     8,     0,
        0,     0,     9,    10,    11,     0,     0,    12,     0,    13,
       14,     0,    15,    16,    17,    18,    19,    20,     2,     0,
-       3,     0,     0,     0,     0,     0,     0,     0,   217,     0,
-     371,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       3,     0,     0,     0,     0,     0,     0,     0,   219,     0,
+     373,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
        4,     3,     0,     5,     0,     0,     0,     0,     6,     7,
        8,     0,     0,     0,     9,    10,    11,     0,     0,    12,
@@ -1261,231 +1269,237 @@ static const yytype_int16 yytable[] =
 
 static const yytype_int16 yycheck[] =
 {
-      32,    32,    61,    54,     0,    37,   124,    39,    47,    86,
-     206,    37,   212,    39,     0,     4,    86,    98,   186,    59,
-     119,    53,    83,     4,   189,     4,   125,   128,   264,    61,
-      54,    37,    81,    39,    83,    76,     4,    33,    99,    35,
-      64,     4,    74,     4,    40,    41,   151,    43,     4,     5,
-     127,     4,     5,    83,   131,    78,    31,    43,   157,    77,
-     228,    83,    86,    83,   115,    83,    77,   144,    78,    99,
-     140,    64,    83,    59,   144,    97,   146,   313,     4,    99,
-     161,   162,   163,   123,   116,   116,   118,    76,   158,   121,
-     121,   115,   124,    86,     4,    76,    85,    76,   130,   130,
-     151,    83,   134,   127,   128,    76,    85,   131,   132,   179,
-      99,    79,   118,   212,   219,    76,    79,    99,    97,    80,
-     144,    96,    78,   193,   156,    78,    76,   159,   124,    83,
-     156,   296,   233,   159,   127,   128,   332,   123,   131,   132,
-     305,    76,     4,    85,    10,    99,    77,   186,    90,    91,
-     156,   144,    83,   159,   322,    83,    83,   189,   326,   191,
-     259,   361,   261,    76,   263,   191,    76,    80,   219,   246,
-      80,    99,    99,   243,   206,    85,   246,    32,    33,    34,
-      86,    87,    84,   189,   349,   191,   267,   219,   219,   228,
-      94,    14,    15,    16,    17,    18,    19,    20,    21,    95,
-     206,    24,    25,   235,    28,    29,    76,    78,   240,   233,
-      80,   262,   244,    77,    76,    85,    79,   382,   383,   384,
-      83,    76,   246,    85,   342,    80,   391,    82,   298,    77,
-     300,    22,    23,   303,   304,    83,   401,   402,   244,   404,
-     233,    30,   407,    77,   343,    38,   411,   346,   413,   414,
-      77,    44,    98,   246,   313,   420,    83,    77,    51,    77,
-     311,    77,   361,    83,   296,    83,   262,    83,    92,    93,
-      77,    64,    76,   305,    77,    98,    83,    99,   348,   311,
-      83,   313,   352,   322,    99,    77,    97,   326,   320,   320,
-     296,    83,    85,    26,    27,    77,   328,    77,    77,   305,
-     332,    83,    47,    83,    83,    81,    77,    97,   378,   379,
-      79,   381,    83,    76,    83,   311,    76,   349,    76,    76,
-     316,    76,    80,   393,   394,    80,   332,    79,     4,     5,
-      97,    83,   168,   169,   170,   171,   406,    82,    83,    98,
-      85,   166,   167,   349,   172,   173,   342,   164,   165,    97,
-     382,   383,   384,    98,    97,    77,    77,    77,    83,   391,
-      97,    65,    77,    99,    81,    76,   174,    77,    81,   401,
-     402,    42,   404,    99,   175,   407,   382,   383,   384,   411,
-     176,   413,   414,   177,   116,   391,   132,   320,   420,   124,
-     178,   135,   134,   138,   139,   401,   402,   316,   404,   244,
-      43,   407,    -1,   144,    -1,   411,    -1,   413,   414,    -1,
-      -1,    -1,    -1,    -1,   420,    -1,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   186,    -1,    -1,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,
+      34,    34,     0,    56,    63,    39,   126,    41,    49,   214,
+      88,    39,   121,    41,   208,   100,    88,   130,   127,   153,
+       0,    55,     4,     5,   188,     4,   266,    83,    78,    63,
+      56,    39,    83,    41,     4,    83,     4,    35,     4,    37,
+      66,     4,    76,    99,    42,    43,     4,    45,    99,    97,
+     159,   129,     4,     5,    76,   133,    31,    81,    80,    83,
+       4,    61,    88,    85,   117,    45,   230,    83,   146,    76,
+     142,    66,    76,    80,   146,   315,   148,    78,   163,   164,
+     165,    61,     4,    99,   118,   118,   120,   221,   160,   123,
+     123,   117,   126,    88,     4,    76,    78,    76,   132,   132,
+     153,    80,   136,   129,   130,   214,    76,   133,   134,   181,
+      76,    79,   120,    28,    29,    85,    79,    76,    76,    85,
+     146,    96,   235,   195,   158,   125,    78,   161,   126,    99,
+     158,    97,    76,   161,   129,   130,    80,    85,   133,   134,
+     334,    85,    90,    91,    79,   125,    83,   188,    83,    76,
+     158,   146,   261,   161,   263,    83,   265,   191,   363,   193,
+     324,    77,    99,    77,   328,   193,    76,    83,   221,    83,
+     248,    99,    10,   245,   208,    85,   248,    92,    93,    32,
+      33,    34,    79,   191,   269,   193,    83,   221,   221,   230,
+      83,    14,    15,    16,    17,    18,    19,    20,    21,    83,
+     208,    24,    25,   237,    77,    84,    99,    77,   242,   235,
+      83,   264,   246,    83,    77,    99,    94,    76,    95,    77,
+      83,    80,   248,    76,   344,    83,    77,    80,   300,    82,
+     302,    30,    83,   305,   306,    77,   345,    38,   246,   348,
+     235,    83,   191,    44,    79,    77,    77,    77,    83,    77,
+      51,    83,    83,   248,   363,    83,   315,    86,    87,    77,
+     313,    77,    77,    64,   298,    83,   264,    83,    83,    78,
+      77,    22,    23,   307,    77,    98,    83,    98,   350,   313,
+      99,   315,   354,   324,    85,    26,    27,   328,   322,   322,
+     298,    76,     4,     5,    99,    80,   330,   166,   167,   307,
+     334,    97,    49,   170,   171,   172,   173,    76,   380,   381,
+      76,   383,   168,   169,    76,   313,    76,   351,    97,    97,
+     318,    97,    81,   395,   396,    97,   334,   174,   175,    77,
+      98,    77,    77,    83,    97,    65,   408,    84,    85,    77,
+      87,    99,    81,   351,    76,    81,   344,    42,    77,   298,
+     384,   385,   386,   100,   176,    99,   180,   177,   307,   393,
+     134,   178,   118,   318,   137,   179,   322,    45,    -1,   403,
+     404,   136,   406,   126,   246,   409,   384,   385,   386,   413,
+      -1,   415,   416,    -1,    -1,   393,    -1,    -1,   422,   146,
+      -1,    -1,    -1,   140,   141,   403,   404,    -1,   406,    -1,
+      -1,   409,   351,    -1,    -1,   413,    -1,   415,   416,    -1,
+      -1,     3,    -1,     5,   422,    -1,   163,   164,   165,   166,
+     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
+     177,   178,   179,   180,    -1,   384,   385,   386,    -1,    -1,
+      -1,   188,     0,     1,   393,     3,    38,     5,    -1,    -1,
+      -1,    43,    44,    -1,   403,   404,    -1,   406,    -1,    51,
+     409,    -1,    54,    -1,   413,    57,   415,   416,    -1,    61,
+      62,    63,    64,   422,    -1,    -1,    -1,    35,    -1,    -1,
+      38,    -1,    -1,   230,    -1,    43,    44,    45,    -1,    -1,
+      -1,    49,    50,    51,    -1,    -1,    54,    -1,    56,    57,
+      -1,    59,    60,    61,    62,    63,    64,    -1,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    -1,    -1,
+      -1,    -1,   269,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       1,    -1,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
+      -1,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    32,    33,    -1,    35,    36,    37,    38,
-      39,    40,    41,   228,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    -1,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    78,
-      79,    -1,   267,    -1,    -1,    84,    85,    86,    87,    88,
-      89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      -1,    -1,    -1,    -1,    35,    -1,    -1,    38,    -1,    -1,
+      -1,    -1,    43,    44,    45,    -1,    -1,   324,    49,    50,
+      51,   328,    -1,    54,    -1,    56,    57,    -1,    59,    60,
+      61,    62,    63,    64,    -1,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,
+      -1,    -1,    -1,    -1,    32,    33,    -1,    35,    36,    37,
+      38,    39,    40,    41,    -1,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    -1,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
+      78,    79,    -1,    -1,    -1,    -1,    84,    85,    86,    87,
+      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    99,     3,     4,     5,     6,     7,     8,     9,    10,
+      11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,    32,
-      33,   326,    35,    36,    37,    38,    39,    40,    41,    -1,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      -1,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    -1,    78,    79,    -1,    -1,    -1,
-      -1,    84,    85,    86,    87,    88,    89,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    99,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
+      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    40,
+      41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    76,    -1,    78,    79,    -1,
+      -1,    -1,    -1,    84,    85,    86,    87,    88,    89,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,     3,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    32,    33,    -1,    35,
-      36,    37,    38,    39,    40,    41,    -1,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    -1,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,    33,
+      -1,    35,    36,    37,    38,    39,    40,    41,    -1,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    76,    -1,    78,    79,    -1,    -1,    -1,    -1,
+      84,    85,    86,    87,    88,    89,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    99,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      76,    -1,    78,    79,    -1,    -1,    -1,    -1,    84,    85,
-      86,    87,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    99,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    32,    33,    -1,    35,    36,
+      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    -1,    54,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      -1,    78,    -1,    -1,    -1,    -1,    -1,    84,    85,    86,
+      87,    88,    89,     4,     5,     6,     7,     8,     9,    10,
+      11,    12,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    32,    33,    -1,    35,    36,    37,    38,
-      39,    40,    41,    -1,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    -1,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    78,
-      -1,    -1,    -1,    -1,    -1,    84,    85,    86,    87,    88,
-      89,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,
-      33,    -1,    -1,    36,    37,    -1,    39,    40,    41,    -1,
-      -1,    44,    -1,    46,    47,    48,    -1,    -1,    -1,    52,
-      -1,    -1,    55,    -1,    -1,    58,    -1,     3,    -1,     5,
-      -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    -1,    78,    -1,    -1,    -1,    -1,
-      -1,    84,    85,    86,    87,    88,    89,    -1,    -1,    35,
-      -1,    -1,    38,    -1,    -1,    -1,    99,    43,    44,    45,
-      -1,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
-      56,    57,    -1,    59,    60,    61,    62,    63,    64,     4,
-      -1,     6,     7,     8,     9,    10,    11,    12,    -1,    -1,
-      -1,    -1,    78,    -1,    -1,     4,    -1,     6,     7,     8,
-       9,    10,    11,    12,    -1,    -1,    -1,    32,    33,    -1,
-      -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    44,
-      -1,    -1,    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,
-      55,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
-      -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,
-      85,    86,    87,    88,    89,    -1,    -1,    76,    -1,    -1,
-      -1,    -1,    -1,    -1,    99,    84,    85,    86,    87,    88,
-      89,     4,    -1,     6,     7,     8,     9,    10,    11,    12,
-      99,    -1,    -1,    -1,    -1,    -1,    -1,     4,    -1,     6,
+      -1,    32,    33,    -1,    -1,    36,    37,    -1,    39,    40,
+      41,    -1,    -1,    44,    -1,    46,    47,    48,    -1,    -1,
+      -1,    52,    -1,    -1,    55,    -1,    -1,    58,    -1,     3,
+      -1,     5,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    76,    -1,    78,    -1,    -1,
+      -1,    -1,    -1,    84,    85,    86,    87,    88,    89,    -1,
+      -1,    35,    -1,    -1,    38,    -1,    -1,    -1,    99,    43,
+      44,    45,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
+      54,    -1,    56,    57,    -1,    59,    60,    61,    62,    63,
+      64,     4,    -1,     6,     7,     8,     9,    10,    11,    12,
+      -1,    -1,    -1,    -1,    78,    -1,    -1,     4,    -1,     6,
        7,     8,     9,    10,    11,    12,    -1,    -1,    -1,    32,
-      33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      33,    -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,
       -1,    44,    -1,    -1,    -1,    32,    33,    -1,    -1,    -1,
       -1,    -1,    55,    -1,    -1,    -1,    -1,    44,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
       -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    84,    85,    86,    87,    88,    89,    -1,    -1,    76,
       -1,    -1,    -1,    -1,    -1,    -1,    99,    84,    85,    86,
-      87,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    99,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      87,    88,    89,     4,    -1,     6,     7,     8,     9,    10,
+      11,    12,    99,    -1,    -1,    -1,    -1,    -1,    -1,     4,
+      -1,     6,     7,     8,     9,    10,    11,    12,    -1,    -1,
+      -1,    32,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    44,    -1,    -1,    -1,    32,    33,    -1,
+      -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    44,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      55,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    84,    85,    86,    87,    88,    89,    -1,
+      -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    99,    84,
+      85,    86,    87,    88,    89,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    99,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    32,    33,    -1,    -1,    -1,    -1,    38,    -1,
-      -1,    -1,    -1,    43,    44,    -1,    -1,    -1,    -1,    -1,
-      -1,    51,    -1,    -1,    54,    55,    -1,    57,    -1,    -1,
-      -1,    61,    62,    63,    64,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    -1,    76,    -1,    78,    -1,
-      -1,    -1,    -1,    -1,    84,    85,    86,    87,    88,    89,
       -1,    -1,    -1,    -1,    32,    33,    -1,    -1,    -1,    -1,
       38,    -1,    -1,    -1,    -1,    43,    44,    -1,    -1,    -1,
       -1,    -1,    -1,    51,    -1,    -1,    54,    55,    -1,    57,
-      -1,    -1,    -1,    61,    62,    63,    64,     4,    -1,     6,
-       7,     8,     9,    10,    11,    12,    -1,    -1,    76,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    84,    85,    86,    87,
-      88,    89,    -1,    -1,    -1,    32,    33,    -1,    -1,    -1,
+      -1,    -1,    -1,    61,    62,    63,    64,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    -1,    76,    -1,
+      78,    -1,    -1,    -1,    -1,    -1,    84,    85,    86,    87,
+      88,    89,    -1,    -1,    -1,    -1,    32,    33,    -1,    -1,
+      -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,    -1,
+      -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    54,    55,
+      -1,    57,    -1,    -1,    -1,    61,    62,    63,    64,     4,
+      -1,     6,     7,     8,     9,    10,    11,    12,    -1,    -1,
+      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,    85,
+      86,    87,    88,    89,    -1,    -1,    -1,    32,    33,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,    44,
+       6,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
+      55,    -1,    -1,    -1,    -1,    -1,    -1,     4,    -1,     6,
+       7,     8,     9,    10,    11,    12,    32,    33,    -1,    -1,
+      -1,    76,    -1,    78,    79,    -1,    -1,    -1,    44,    84,
+      85,    86,    87,    88,    89,    32,    33,    -1,    -1,    55,
       -1,    -1,    -1,    -1,    -1,    -1,     4,    44,     6,     7,
        8,     9,    10,    11,    12,    -1,    -1,    -1,    55,    -1,
-      -1,    -1,    -1,    -1,    -1,     4,    -1,     6,     7,     8,
-       9,    10,    11,    12,    32,    33,    -1,    -1,    -1,    76,
-      -1,    78,    79,    -1,    -1,    -1,    44,    84,    85,    86,
-      87,    88,    89,    32,    33,    -1,    -1,    55,    -1,    -1,
-      -1,    -1,    -1,    -1,     4,    44,     6,     7,     8,     9,
-      10,    11,    12,    -1,    -1,    -1,    55,    -1,    76,    -1,
-      78,    -1,    -1,    -1,    -1,    -1,    84,    85,    86,    87,
-      88,    89,    32,    33,    -1,    -1,    -1,    76,    -1,    -1,
-      -1,    -1,    81,    -1,    44,    84,    85,    86,    87,    88,
-      89,    -1,    -1,    -1,     4,    55,     6,     7,     8,     9,
-      10,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
-      -1,    -1,    32,    33,    84,    85,    86,    87,    88,    89,
+      76,    -1,    78,    -1,    -1,    -1,    -1,    -1,    84,    85,
+      86,    87,    88,    89,    32,    33,    -1,    -1,    -1,    76,
+      -1,    -1,    -1,    -1,    81,    -1,    44,    84,    85,    86,
+      87,    88,    89,    -1,    -1,    -1,     4,    55,     6,     7,
+       8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
+      -1,    -1,    -1,    -1,    32,    33,    84,    85,    86,    87,
+      88,    89,    -1,    -1,    -1,     4,    44,     6,     7,     8,
+       9,    10,    11,    12,    -1,    -1,    -1,    55,    -1,    -1,
+      -1,    -1,    -1,    -1,     4,    -1,     6,     7,     8,     9,
+      10,    11,    12,    32,    33,    -1,    -1,    -1,    76,    -1,
+      -1,    -1,    -1,    81,    -1,    44,    84,    85,    86,    87,
+      88,    89,    32,    33,    -1,    -1,    55,    -1,    -1,    -1,
       -1,    -1,    -1,     4,    44,     6,     7,     8,     9,    10,
-      11,    12,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,
-      -1,    -1,     4,    -1,     6,     7,     8,     9,    10,    11,
-      12,    32,    33,    -1,    -1,    -1,    76,    -1,    -1,    -1,
-      -1,    81,    -1,    44,    84,    85,    86,    87,    88,    89,
-      32,    33,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
-      -1,     4,    44,     6,     7,     8,     9,    10,    11,    12,
-      -1,    -1,    -1,    55,    -1,    76,    -1,    -1,    -1,    -1,
-      81,    -1,    -1,    84,    85,    86,    87,    88,    89,    32,
-      33,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
-      -1,    44,    84,    85,    86,    87,    88,    89,    -1,    -1,
-      -1,     4,    55,     6,     7,     8,     9,    10,    11,    12,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    32,
-      33,    84,    85,    86,    87,    88,    89,    -1,    -1,    -1,
+      11,    12,    -1,    -1,    -1,    55,    -1,    76,    -1,    -1,
+      -1,    -1,    81,    -1,    -1,    84,    85,    86,    87,    88,
+      89,    32,    33,    -1,    -1,    -1,    76,    77,    -1,    -1,
+      -1,    -1,    -1,    44,    84,    85,    86,    87,    88,    89,
+      -1,    -1,    -1,     4,    55,     6,     7,     8,     9,    10,
+      11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,
+      -1,    32,    33,    84,    85,    86,    87,    88,    89,    -1,
+      -1,    -1,     4,    44,     6,     7,     8,     9,    10,    11,
+      12,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
+      -1,     4,    -1,     6,     7,     8,     9,    10,    11,    12,
+      32,    33,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,
+      -1,    -1,    44,    84,    85,    86,    87,    88,    89,    32,
+      33,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
        4,    44,     6,     7,     8,     9,    10,    11,    12,    -1,
-      -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,     4,
-      -1,     6,     7,     8,     9,    10,    11,    12,    32,    33,
-      -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,
-      44,    84,    85,    86,    87,    88,    89,    32,    33,    -1,
-      -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,     4,    44,
-       6,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
-      55,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
-      84,    85,    86,    87,    88,    89,    32,    33,    -1,    -1,
-      -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    44,    84,
-      85,    86,    87,    88,    89,    -1,    -1,    -1,     4,    55,
-       6,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
+      -1,    -1,    55,    -1,    76,    77,    -1,    -1,    -1,    -1,
+      -1,    -1,    84,    85,    86,    87,    88,    89,    32,    33,
+      -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
+      44,    84,    85,    86,    87,    88,    89,    -1,    -1,    -1,
+       4,    55,     6,     7,     8,     9,    10,    11,    12,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      76,    -1,    -1,    -1,    -1,    -1,    32,    33,    84,    85,
-      86,    87,    88,    89,    -1,    -1,    -1,     4,    44,     6,
-       7,     8,     9,    10,    11,    12,    -1,    -1,    -1,    55,
-      -1,    -1,    -1,    -1,    -1,    -1,     4,    -1,     6,     7,
-       8,     9,    10,    11,    12,    32,    33,    -1,    -1,    -1,
-      76,    -1,    -1,    -1,    -1,    -1,    -1,    44,    84,    85,
-      86,    87,    88,    89,    32,    33,    -1,    -1,    55,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    76,
-      -1,    -1,    -1,     3,     4,     5,    -1,    84,    85,    86,
-      87,    88,    89,    13,    -1,    -1,    -1,    -1,    76,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    84,    85,    86,    87,
-      88,    89,    -1,    -1,    -1,    35,    -1,    -1,    38,    -1,
-      -1,    -1,    -1,    43,    44,    45,    -1,    -1,    -1,    49,
-      50,    51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,
-      60,    61,    62,    63,    64,     3,    -1,     5,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    13,    76,    77,    -1,    -1,
-      80,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,
-      -1,    -1,     3,    -1,     5,    -1,    -1,    35,    -1,    -1,
+      -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    32,    33,
+      84,    85,    86,    87,    88,    89,    -1,    -1,    -1,     4,
+      44,     6,     7,     8,     9,    10,    11,    12,    -1,    -1,
+      -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,     4,    -1,
+       6,     7,     8,     9,    10,    11,    12,    32,    33,    -1,
+      -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    44,
+      84,    85,    86,    87,    88,    89,    32,    33,    -1,    -1,
+      55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
+      -1,    76,    -1,    -1,    -1,     3,     4,     5,    -1,    84,
+      85,    86,    87,    88,    89,    13,    -1,    -1,    -1,    -1,
+      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,    85,
+      86,    87,    88,    89,    -1,    -1,    -1,    35,    -1,    -1,
       38,    -1,    -1,    -1,    -1,    43,    44,    45,    -1,    -1,
       -1,    49,    50,    51,    -1,    -1,    54,    -1,    56,    57,
-      -1,    59,    60,    61,    62,    63,    64,    38,    -1,     3,
-      -1,     5,    43,    44,    -1,    -1,    -1,    -1,    76,    77,
-      51,    -1,    80,    54,    -1,    -1,    57,    85,    -1,    -1,
-      61,    62,    63,    64,    -1,    -1,    -1,     0,     1,    -1,
-       3,    -1,     5,    -1,    38,    -1,    -1,    -1,    79,    43,
-      44,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,
-      54,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    63,
-      64,    -1,    35,    -1,    -1,    38,    -1,    -1,    -1,    -1,
-      43,    44,    45,    -1,    -1,    79,    49,    50,    51,    -1,
-       3,    54,     5,    56,    57,    -1,    59,    60,    61,    62,
-      63,    64,    -1,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,     1,
-      -1,     3,    35,     5,    -1,    38,    -1,    -1,    -1,    -1,
-      43,    44,    45,    -1,    -1,    -1,    49,    50,    51,    -1,
-      -1,    54,    -1,    56,    57,    -1,    59,    60,    61,    62,
-      63,    64,    -1,    35,    -1,    -1,    38,    -1,    -1,    -1,
-      -1,    43,    44,    45,    -1,    78,    -1,    49,    50,    51,
-      -1,    -1,    54,    -1,    56,    57,    -1,    59,    60,    61,
-      62,    63,    64,    -1,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,     3,     4,     5,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    -1,    -1,
+      -1,    59,    60,    61,    62,    63,    64,     3,    -1,     5,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    13,    76,    77,
+      -1,    -1,    80,    -1,    -1,    -1,    -1,    85,    -1,    -1,
+      -1,    -1,    -1,    -1,     3,    -1,     5,    -1,    -1,    35,
+      -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,
+      -1,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
+      56,    57,    -1,    59,    60,    61,    62,    63,    64,    38,
+      -1,     3,    -1,     5,    43,    44,    -1,    -1,    -1,    -1,
+      76,    77,    51,    -1,    80,    54,    -1,    -1,    57,    85,
+      -1,    -1,    61,    62,    63,    64,    -1,    -1,    -1,    -1,
+      -1,    -1,     3,    -1,     5,    -1,    38,    -1,    -1,    -1,
+      79,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,
+      -1,    -1,    54,    -1,    -1,    57,    -1,    -1,    -1,    61,
+      62,    63,    64,    -1,    35,    -1,    -1,    38,    -1,    -1,
+      -1,    -1,    43,    44,    45,    -1,    -1,    79,    49,    50,
+      51,    -1,    -1,    54,    -1,    56,    57,    -1,    59,    60,
+      61,    62,    63,    64,     3,     4,     5,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    13,    -1,    -1,    78,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     3,    -1,     5,    -1,    35,    -1,    -1,    38,
+      -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,    -1,    38,
       -1,    -1,    -1,    -1,    43,    44,    45,    -1,    -1,    -1,
       49,    50,    51,    -1,    -1,    54,    -1,    56,    57,    -1,
-      59,    60,    61,    62,    63,    64,     3,    38,     5,    -1,
-      -1,    -1,    43,    44,    -1,    -1,    13,    -1,    77,    -1,
-      51,    -1,    -1,    54,    -1,    -1,    57,    -1,    -1,    -1,
-      61,    62,    63,    64,    -1,    -1,    -1,    -1,    35,    -1,
+      59,    60,    61,    62,    63,    64,     3,    -1,     5,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    13,    -1,    77,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,
       -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,    -1,
       -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,    56,
       57,    -1,    59,    60,    61,    62,    63,    64,     3,    -1,
@@ -1508,46 +1522,46 @@ static const yytype_uint8 yystos[] =
        0,     1,     3,     5,    35,    38,    43,    44,    45,    49,
       50,    51,    54,    56,    57,    59,    60,    61,    62,    63,
       64,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,   125,   126,   129,   130,   131,   132,   133,   139,   140,
-     144,   145,   156,   168,   169,   170,   172,   173,   174,   175,
-     176,   177,     4,    76,    85,    99,   103,   127,   128,   146,
-     147,   148,   126,   126,    78,   103,   104,   156,    78,   104,
-     126,   126,     0,   169,    76,     6,     7,     8,     9,    10,
-      11,    12,    32,    33,    44,    55,    76,    84,    85,    86,
-      87,    88,    89,   101,   102,   103,   105,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   124,   146,   144,   148,   149,    83,    99,    78,    98,
-     125,   126,   161,   171,    76,    80,   147,   131,   134,   135,
-     136,   144,    78,   141,   142,    78,   103,   152,    76,    76,
-      76,   107,   107,    76,    76,   107,    44,   107,   120,   121,
-     123,   136,   153,    10,    32,    33,    34,    76,    80,    82,
-     109,    85,    90,    91,    86,    87,    22,    23,    28,    29,
-      92,    93,    26,    27,    84,    94,    95,    30,    31,    96,
-      77,   144,   148,   128,   146,    36,    37,    39,    40,    41,
-      46,    47,    48,    52,    58,    65,    79,    99,   103,   104,
-     123,   125,   156,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    78,   121,   157,   125,   161,    13,    77,   126,
-     150,   151,   152,    81,   121,   136,    79,   135,    97,   137,
-     138,   146,   136,   134,    79,    83,   103,   143,   141,    77,
-      83,   107,   107,    44,    78,   153,    76,   123,    14,    15,
-      16,    17,    18,    19,    20,    21,    24,    25,    98,   122,
-      77,    83,    76,    80,   148,   154,   155,    77,   104,    77,
-     106,   121,   123,   104,   109,   109,   109,   110,   110,   111,
-     111,   112,   112,   112,   112,   113,   113,   114,   115,   116,
-     117,   118,   123,    99,   124,    99,    97,   159,    76,   104,
-      76,    99,   123,    76,    76,    97,    99,    79,   163,   157,
-     158,    76,   146,   148,   154,    77,    83,    77,    81,   124,
-      83,    99,    97,    79,    79,   143,    98,    79,    83,   103,
-      77,    77,   162,    77,   121,   121,    77,   150,   154,    81,
-     121,   155,    76,    80,   109,    77,    83,    81,    97,    97,
-     159,    65,    99,   123,    99,   123,    99,   123,   123,   159,
-      79,    83,   151,   138,   124,   124,    79,    79,    77,    77,
-      81,    77,   150,    81,   121,   121,   123,   159,    76,    99,
-     123,    99,    77,    77,    77,    79,   157,    77,    77,    81,
-     123,    77,   123,    99,    99,   123,   159,   159,   159,    77,
-     159,    77,    77,   123,    77,   123,    99,    42,    99,   159,
-     159,    77,   159,    77,    77,   123,   159,   159,   159,   159,
-      77,   159
+      75,    99,   125,   126,   127,   130,   131,   132,   133,   134,
+     140,   141,   145,   146,   157,   169,   170,   171,   173,   174,
+     175,   176,   177,   178,     4,    76,    85,    99,   103,   128,
+     129,   147,   148,   149,   127,   127,    78,   103,   104,   157,
+      78,   104,   127,   127,     0,   170,    76,     6,     7,     8,
+       9,    10,    11,    12,    32,    33,    44,    55,    76,    84,
+      85,    86,    87,    88,    89,   101,   102,   103,   105,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   124,   147,   145,   149,   150,    83,    99,
+      78,    98,   125,   127,   162,   172,    76,    80,   148,   132,
+     135,   136,   137,   145,    78,   142,   143,    78,   103,   153,
+      76,    76,    76,   107,   107,    76,    76,   107,    44,   107,
+     120,   121,   123,   137,   154,    10,    32,    33,    34,    76,
+      80,    82,   109,    85,    90,    91,    86,    87,    22,    23,
+      28,    29,    92,    93,    26,    27,    84,    94,    95,    30,
+      31,    96,    77,   145,   149,   129,   147,    36,    37,    39,
+      40,    41,    46,    47,    48,    52,    58,    65,    79,    99,
+     103,   104,   123,   125,   157,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,    78,   121,   158,   125,   162,    13,
+      77,   127,   151,   152,   153,    81,   121,   137,    79,   136,
+      97,   138,   139,   147,   137,   135,    79,    83,   103,   144,
+     142,    77,    83,   107,   107,    44,    78,   154,    76,   123,
+      14,    15,    16,    17,    18,    19,    20,    21,    24,    25,
+      98,   122,    77,    83,    76,    80,   149,   155,   156,    77,
+     104,    77,   106,   121,   123,   104,   109,   109,   109,   110,
+     110,   111,   111,   112,   112,   112,   112,   113,   113,   114,
+     115,   116,   117,   118,   123,    99,   124,    99,    97,   160,
+      76,   104,    76,    99,   123,    76,    76,    97,    99,    79,
+     164,   158,   159,    76,   147,   149,   155,    77,    83,    77,
+      81,   124,    83,    99,    97,    79,    79,   144,    98,    79,
+      83,   103,    77,    77,   163,    77,   121,   121,    77,   151,
+     155,    81,   121,   156,    76,    80,   109,    77,    83,    81,
+      97,    97,   160,    65,    99,   123,    99,   123,    99,   123,
+     123,   160,    79,    83,   152,   139,   124,   124,    79,    79,
+      77,    77,    81,    77,   151,    81,   121,   121,   123,   160,
+      76,    99,   123,    99,    77,    77,    77,    79,   158,    77,
+      77,    81,   123,    77,   123,    99,    99,   123,   160,   160,
+     160,    77,   160,    77,    77,   123,    77,   123,    99,    42,
+      99,   160,   160,    77,   160,    77,    77,   123,   160,   160,
+     160,   160,    77,   160
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1562,23 +1576,23 @@ static const yytype_uint8 yyr1[] =
      115,   116,   116,   117,   117,   118,   118,   119,   119,   120,
      120,   121,   121,   122,   122,   122,   122,   122,   122,   122,
      122,   122,   122,   122,   123,   123,   123,   124,   125,   125,
-     126,   126,   126,   126,   126,   126,   126,   126,   127,   127,
-     128,   128,   129,   129,   129,   129,   129,   129,   130,   131,
-     131,   131,   131,   131,   131,   131,   132,   132,   132,   133,
-     133,   134,   134,   135,   136,   136,   136,   136,   137,   137,
-     138,   138,   138,   138,   139,   139,   139,   139,   139,   140,
-     142,   141,   141,   143,   143,   144,   144,   144,   144,   145,
-     146,   146,   147,   147,   147,   147,   147,   147,   147,   148,
-     148,   148,   148,   149,   149,   150,   150,   151,   151,   151,
-     151,   152,   152,   153,   153,   154,   154,   154,   155,   155,
-     155,   155,   155,   155,   155,   155,   155,   156,   157,   157,
-     157,   158,   158,   159,   159,   159,   159,   159,   159,   160,
-     160,   160,   161,   161,   162,   162,   163,   163,   164,   164,
-     165,   165,   165,   166,   166,   166,   166,   166,   166,   166,
-     166,   166,   166,   167,   167,   167,   167,   167,   168,   168,
-     169,   169,   169,   170,   170,   171,   171,   172,   173,   174,
-     175,   176,   176,   176,   176,   176,   176,   176,   176,   177,
-     177,   177,   177
+     126,   127,   127,   127,   127,   127,   127,   127,   127,   128,
+     128,   129,   129,   130,   130,   130,   130,   130,   130,   131,
+     132,   132,   132,   132,   132,   132,   132,   133,   133,   133,
+     134,   134,   135,   135,   136,   137,   137,   137,   137,   138,
+     138,   139,   139,   139,   139,   140,   140,   140,   140,   140,
+     141,   143,   142,   142,   144,   144,   145,   145,   145,   145,
+     146,   147,   147,   148,   148,   148,   148,   148,   148,   148,
+     149,   149,   149,   149,   150,   150,   151,   151,   152,   152,
+     152,   152,   153,   153,   154,   154,   155,   155,   155,   156,
+     156,   156,   156,   156,   156,   156,   156,   156,   157,   158,
+     158,   158,   159,   159,   160,   160,   160,   160,   160,   160,
+     161,   161,   161,   162,   162,   163,   163,   164,   164,   165,
+     165,   166,   166,   166,   167,   167,   167,   167,   167,   167,
+     167,   167,   167,   167,   168,   168,   168,   168,   168,   169,
+     169,   170,   170,   170,   170,   171,   171,   172,   172,   173,
+     174,   175,   176,   177,   177,   177,   177,   177,   177,   177,
+     177,   178,   178,   178,   178
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1593,23 +1607,23 @@ static const yytype_uint8 yyr2[] =
        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
        5,     1,     3,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     3,     2,     1,     3,     2,
-       2,     1,     2,     1,     2,     1,     2,     1,     1,     3,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     5,     4,     2,     1,
-       1,     1,     2,     3,     2,     1,     2,     1,     1,     3,
-       0,     1,     2,     3,     5,     4,     6,     5,     2,     1,
-       0,     2,     3,     1,     3,     1,     1,     1,     1,     1,
-       2,     1,     1,     3,     4,     3,     4,     4,     3,     2,
-       1,     3,     2,     1,     2,     1,     3,     2,     2,     1,
-       1,     1,     3,     1,     2,     1,     1,     2,     3,     2,
-       3,     3,     4,     2,     3,     3,     4,     1,     1,     3,
-       4,     1,     3,     1,     1,     1,     1,     1,     1,     3,
-       4,     3,     2,     3,     1,     2,     1,     1,     1,     2,
-       5,     7,     5,     5,     7,     6,     7,     7,     8,     7,
-       8,     8,     9,     3,     2,     2,     2,     3,     1,     2,
-       1,     1,     1,     4,     3,     1,     2,     1,     1,     4,
-       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1
+       1,     2,     1,     2,     1,     2,     1,     2,     1,     1,
+       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     5,     4,     2,
+       1,     1,     1,     2,     3,     2,     1,     2,     1,     1,
+       3,     0,     1,     2,     3,     5,     4,     6,     5,     2,
+       1,     0,     2,     3,     1,     3,     1,     1,     1,     1,
+       1,     2,     1,     1,     3,     4,     3,     4,     4,     3,
+       2,     1,     3,     2,     1,     2,     1,     3,     2,     2,
+       1,     1,     1,     3,     1,     2,     1,     1,     2,     3,
+       2,     3,     3,     4,     2,     3,     3,     4,     1,     1,
+       3,     4,     1,     3,     1,     1,     1,     1,     1,     1,
+       3,     4,     3,     2,     3,     1,     2,     1,     1,     1,
+       2,     5,     7,     5,     5,     7,     6,     7,     7,     8,
+       7,     8,     8,     9,     3,     2,     2,     2,     3,     1,
+       2,     1,     1,     1,     1,     4,     3,     1,     2,     1,
+       1,     4,     2,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1
 };
 
 
@@ -2288,7 +2302,7 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 329 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 331 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = g_hash_table_lookup (scanner->const_table, (yyvsp[0].str));
                if ((yyval.symbol) == NULL) {
@@ -2297,11 +2311,11 @@ yyreduce:
                        (yyval.symbol) = gi_source_symbol_ref ((yyval.symbol));
                }
          }
-#line 2301 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2315 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 3:
-#line 338 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 340 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                char *rest;
                guint64 value;
@@ -2317,58 +2331,58 @@ yyreduce:
                (yyval.symbol)->const_int = value;
                (yyval.symbol)->const_int_is_unsigned = (rest && (rest[0] == 'U'));
          }
-#line 2321 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2335 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 4:
-#line 354 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 356 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_boolean_set = TRUE;
                (yyval.symbol)->const_boolean = g_ascii_strcasecmp (yytext, "true") == 0 ? TRUE : FALSE;
          }
-#line 2331 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2345 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 5:
-#line 360 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 362 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = g_utf8_get_char(yytext + 1);
          }
-#line 2341 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2355 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 6:
-#line 366 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 368 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_double_set = TRUE;
                (yyval.symbol)->const_double = 0.0;
         sscanf (yytext, "%lf", &((yyval.symbol)->const_double));
          }
-#line 2352 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2366 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 8:
-#line 374 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 376 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
          }
-#line 2360 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2374 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 9:
-#line 378 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 380 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2368 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2382 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 10:
-#line 386 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 388 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                yytext[strlen (yytext) - 1] = '\0';
@@ -2383,11 +2397,11 @@ yyreduce:
                   }
 
          }
-#line 2387 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2401 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 11:
-#line 401 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 403 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                char *strings, *string2;
                (yyval.symbol) = (yyvsp[-1].symbol);
@@ -2398,91 +2412,91 @@ yyreduce:
                g_free (string2);
                (yyval.symbol)->const_string = strings;
          }
-#line 2402 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2416 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 12:
-#line 415 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 417 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.str) = g_strdup (yytext);
          }
-#line 2410 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2424 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 16:
-#line 428 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 430 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2418 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2432 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 17:
-#line 432 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 434 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2426 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2440 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 18:
-#line 436 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 438 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2434 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2448 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 19:
-#line 440 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 442 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2442 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2456 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 20:
-#line 444 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 446 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2450 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2464 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 21:
-#line 448 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 450 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2458 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2472 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 22:
-#line 452 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 454 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2466 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2480 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 26:
-#line 465 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 467 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2474 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2488 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 27:
-#line 469 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 471 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2482 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2496 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 28:
-#line 473 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 475 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                switch ((yyvsp[-1].unary_operator)) {
                case UNARY_PLUS:
@@ -2505,98 +2519,98 @@ yyreduce:
                        break;
                }
          }
-#line 2509 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2523 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 29:
-#line 496 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 498 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
                if ((yyval.symbol)->const_int_set) {
                        (yyval.symbol)->base_type = gi_source_basic_type_new ((yyval.symbol)->const_int_is_unsigned ? "guint64" : "gint64");
                }
          }
-#line 2520 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2534 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 30:
-#line 503 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 505 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
                if ((yyval.symbol)->const_int_set) {
                        (yyval.symbol)->base_type = gi_source_basic_type_new ("guint64");
                }
          }
-#line 2531 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2545 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 31:
-#line 510 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 512 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2539 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2553 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 32:
-#line 514 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 516 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                ctype_free ((yyvsp[-1].ctype));
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2548 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2562 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 33:
-#line 522 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 524 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.unary_operator) = UNARY_ADDRESS_OF;
          }
-#line 2556 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2570 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 34:
-#line 526 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 528 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.unary_operator) = UNARY_POINTER_INDIRECTION;
          }
-#line 2564 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2578 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 35:
-#line 530 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 532 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.unary_operator) = UNARY_PLUS;
          }
-#line 2572 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2586 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 36:
-#line 534 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 536 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.unary_operator) = UNARY_MINUS;
          }
-#line 2580 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2594 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 37:
-#line 538 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 540 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.unary_operator) = UNARY_BITWISE_COMPLEMENT;
          }
-#line 2588 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2602 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 38:
-#line 542 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 544 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.unary_operator) = UNARY_LOGICAL_NEGATION;
          }
-#line 2596 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2610 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 40:
-#line 550 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 552 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                if ((yyval.symbol)->const_int_set || (yyval.symbol)->const_double_set || (yyval.symbol)->const_string != NULL) {
@@ -2605,21 +2619,21 @@ yyreduce:
                        ctype_free ((yyvsp[-2].ctype));
                }
          }
-#line 2609 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2623 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 42:
-#line 563 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 565 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int * (yyvsp[0].symbol)->const_int;
          }
-#line 2619 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2633 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 43:
-#line 569 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 571 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2627,11 +2641,11 @@ yyreduce:
                        (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int / (yyvsp[0].symbol)->const_int;
                }
          }
-#line 2631 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2645 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 44:
-#line 577 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 579 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2639,31 +2653,31 @@ yyreduce:
                        (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int % (yyvsp[0].symbol)->const_int;
                }
          }
-#line 2643 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2657 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 46:
-#line 589 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 591 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int + (yyvsp[0].symbol)->const_int;
          }
-#line 2653 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2667 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 47:
-#line 595 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 597 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int - (yyvsp[0].symbol)->const_int;
          }
-#line 2663 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2677 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 49:
-#line 605 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 607 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2675,111 +2689,111 @@ yyreduce:
                 */
                is_bitfield = TRUE;
          }
-#line 2679 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2693 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 50:
-#line 617 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 619 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >> (yyvsp[0].symbol)->const_int;
          }
-#line 2689 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2703 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 52:
-#line 627 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 629 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int < (yyvsp[0].symbol)->const_int;
          }
-#line 2699 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2713 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 53:
-#line 633 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 635 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int > (yyvsp[0].symbol)->const_int;
          }
-#line 2709 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2723 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 54:
-#line 639 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 641 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int <= (yyvsp[0].symbol)->const_int;
          }
-#line 2719 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2733 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 55:
-#line 645 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 647 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >= (yyvsp[0].symbol)->const_int;
          }
-#line 2729 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2743 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 57:
-#line 655 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 657 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int == (yyvsp[0].symbol)->const_int;
          }
-#line 2739 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2753 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 58:
-#line 661 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 663 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int != (yyvsp[0].symbol)->const_int;
          }
-#line 2749 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2763 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 60:
-#line 671 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 673 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int & (yyvsp[0].symbol)->const_int;
          }
-#line 2759 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2773 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 62:
-#line 681 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 683 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int ^ (yyvsp[0].symbol)->const_int;
          }
-#line 2769 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2783 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 64:
-#line 691 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 693 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int | (yyvsp[0].symbol)->const_int;
          }
-#line 2779 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2793 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 66:
-#line 701 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 703 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2787,11 +2801,11 @@ yyreduce:
                  gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) &&
                  gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
          }
-#line 2791 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2805 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 68:
-#line 713 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 715 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2799,35 +2813,35 @@ yyreduce:
                  gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) ||
                  gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
          }
-#line 2803 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2817 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 70:
-#line 725 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 727 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_get_const_boolean ((yyvsp[-4].symbol)) ? (yyvsp[-2].symbol) : (yyvsp[0].symbol);
          }
-#line 2811 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2825 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 72:
-#line 733 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 735 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2819 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2833 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 86:
-#line 756 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 758 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2827 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2841 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 88:
-#line 769 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 771 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GList *l;
                for (l = (yyvsp[-1].list); l != NULL; l = l->next) {
@@ -2845,37 +2859,37 @@ yyreduce:
                }
                ctype_free ((yyvsp[-2].ctype));
          }
-#line 2849 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2863 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
   case 89:
-#line 787 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 789 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                ctype_free ((yyvsp[-1].ctype));
          }
-#line 2857 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2871 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 90:
-#line 794 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 91:
+#line 799 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->storage_class_specifier |= (yyvsp[-1].storage_class_specifier);
          }
-#line 2866 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2880 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 91:
-#line 799 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 92:
+#line 804 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->storage_class_specifier |= (yyvsp[0].storage_class_specifier);
          }
-#line 2875 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2889 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 92:
-#line 804 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 93:
+#line 809 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[-1].ctype);
                /* combine basic types like unsigned int and long long */
@@ -2888,161 +2902,161 @@ yyreduce:
                        set_or_merge_base_type ((yyvsp[-1].ctype), (yyvsp[0].ctype));
                }
          }
-#line 2892 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2906 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 94:
-#line 818 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 95:
+#line 823 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
          }
-#line 2901 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2915 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 95:
-#line 823 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 96:
+#line 828 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
          }
-#line 2910 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2924 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 96:
-#line 828 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 97:
+#line 833 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->function_specifier |= (yyvsp[-1].function_specifier);
          }
-#line 2919 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2933 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 97:
-#line 833 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 98:
+#line 838 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->function_specifier |= (yyvsp[0].function_specifier);
          }
-#line 2928 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2942 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 98:
-#line 841 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 99:
+#line 846 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 2936 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2950 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 99:
-#line 845 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 100:
+#line 850 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 2944 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2958 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 102:
-#line 857 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 103:
+#line 862 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_TYPEDEF;
          }
-#line 2952 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2966 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 103:
-#line 861 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 104:
+#line 866 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_EXTERN;
          }
-#line 2960 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2974 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 104:
-#line 865 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 105:
+#line 870 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_STATIC;
          }
-#line 2968 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2982 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 105:
-#line 869 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 106:
+#line 874 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_AUTO;
          }
-#line 2976 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2990 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 106:
-#line 873 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 107:
+#line 878 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_REGISTER;
          }
-#line 2984 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2998 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 107:
-#line 877 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 108:
+#line 882 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_THREAD_LOCAL;
          }
-#line 2992 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3006 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 108:
-#line 884 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 109:
+#line 889 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.str) = g_strdup (yytext);
          }
-#line 3000 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3014 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 109:
-#line 891 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 110:
+#line 896 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_VOID);
          }
-#line 3008 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3022 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 110:
-#line 895 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 111:
+#line 900 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("signed");
          }
-#line 3016 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3030 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 111:
-#line 899 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 112:
+#line 904 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("unsigned");
          }
-#line 3024 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3038 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 112:
-#line 903 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 113:
+#line 908 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_BASIC_TYPE);
                (yyval.ctype)->name = (yyvsp[0].str);
          }
-#line 3033 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3047 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 115:
-#line 910 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 116:
+#line 915 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_typedef_new ((yyvsp[0].str));
                g_free ((yyvsp[0].str));
          }
-#line 3042 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3056 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 116:
-#line 918 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 117:
+#line 923 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceSymbol *sym;
                (yyval.ctype) = (yyvsp[-4].ctype);
@@ -3062,55 +3076,55 @@ yyreduce:
                gi_source_scanner_add_symbol (scanner, sym);
                gi_source_symbol_unref (sym);
          }
-#line 3066 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3080 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 117:
-#line 938 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 118:
+#line 943 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[-3].ctype);
                (yyval.ctype)->child_list = (yyvsp[-1].list);
          }
-#line 3075 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3089 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 118:
-#line 943 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 119:
+#line 948 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[-1].ctype);
                (yyval.ctype)->name = (yyvsp[0].str);
          }
-#line 3084 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3098 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 119:
-#line 951 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 120:
+#line 956 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                 scanner->private = FALSE;
                (yyval.ctype) = gi_source_struct_new (NULL);
          }
-#line 3093 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3107 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 120:
-#line 956 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 121:
+#line 961 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                 scanner->private = FALSE;
                (yyval.ctype) = gi_source_union_new (NULL);
          }
-#line 3102 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3116 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 122:
-#line 965 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 123:
+#line 970 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.list) = g_list_concat ((yyvsp[-1].list), (yyvsp[0].list));
          }
-#line 3110 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3124 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 123:
-#line 972 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 124:
+#line 977 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
            GList *l;
            (yyval.list) = NULL;
@@ -3127,70 +3141,70 @@ yyreduce:
              }
            ctype_free ((yyvsp[-2].ctype));
          }
-#line 3131 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3145 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 124:
-#line 992 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 125:
+#line 997 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[-1].ctype);
                set_or_merge_base_type ((yyvsp[-1].ctype), (yyvsp[0].ctype));
          }
-#line 3140 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3154 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 126:
-#line 998 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 127:
+#line 1003 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
          }
-#line 3149 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3163 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 127:
-#line 1003 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 128:
+#line 1008 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
          }
-#line 3158 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3172 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 128:
-#line 1011 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 129:
+#line 1016 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 3166 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3180 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 129:
-#line 1015 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 130:
+#line 1020 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 3174 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3188 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 130:
-#line 1022 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 131:
+#line 1027 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 3182 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3196 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 132:
-#line 1027 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 133:
+#line 1032 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 3190 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3204 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 133:
-#line 1031 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 134:
+#line 1036 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-2].symbol);
                if ((yyvsp[0].symbol)->const_int_set) {
@@ -3198,99 +3212,99 @@ yyreduce:
                  (yyval.symbol)->const_int = (yyvsp[0].symbol)->const_int;
                }
          }
-#line 3202 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3216 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 134:
-#line 1042 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 135:
+#line 1047 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_enum_new ((yyvsp[-3].str));
                (yyval.ctype)->child_list = (yyvsp[-1].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3213 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3227 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 135:
-#line 1049 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 136:
+#line 1054 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_enum_new (NULL);
                (yyval.ctype)->child_list = (yyvsp[-1].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3224 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3238 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 136:
-#line 1056 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 137:
+#line 1061 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_enum_new ((yyvsp[-4].str));
                (yyval.ctype)->child_list = (yyvsp[-2].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3235 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3249 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 137:
-#line 1063 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 138:
+#line 1068 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_enum_new (NULL);
                (yyval.ctype)->child_list = (yyvsp[-2].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3246 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3260 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 138:
-#line 1070 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 139:
+#line 1075 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_enum_new ((yyvsp[0].str));
          }
-#line 3254 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3268 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 139:
-#line 1077 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 140:
+#line 1082 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                 scanner->flags = FALSE;
                 scanner->private = FALSE;
           }
-#line 3263 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3277 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 140:
-#line 1085 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 141:
+#line 1090 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                /* reset flag before the first enum value */
                is_bitfield = FALSE;
          }
-#line 3272 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3286 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 141:
-#line 1090 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 142:
+#line 1095 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
             (yyvsp[0].symbol)->private = scanner->private;
             (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 3281 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3295 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 142:
-#line 1095 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 143:
+#line 1100 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
             (yyvsp[0].symbol)->private = scanner->private;
             (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 3290 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3304 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 143:
-#line 1103 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 144:
+#line 1108 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
                (yyval.symbol)->ident = (yyvsp[0].str);
@@ -3298,11 +3312,11 @@ yyreduce:
                (yyval.symbol)->const_int = ++last_enum_value;
                g_hash_table_insert (scanner->const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
          }
-#line 3302 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3316 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 144:
-#line 1111 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 145:
+#line 1116 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
                (yyval.symbol)->ident = (yyvsp[-2].str);
@@ -3311,95 +3325,95 @@ yyreduce:
                last_enum_value = (yyval.symbol)->const_int;
                g_hash_table_insert (scanner->const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
          }
-#line 3315 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3329 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 145:
-#line 1123 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 146:
+#line 1128 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_CONST;
          }
-#line 3323 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3337 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 146:
-#line 1127 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 147:
+#line 1132 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_RESTRICT;
          }
-#line 3331 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3345 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 147:
-#line 1131 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 148:
+#line 1136 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_EXTENSION;
          }
-#line 3339 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3353 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 148:
-#line 1135 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 149:
+#line 1140 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_VOLATILE;
          }
-#line 3347 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3361 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 149:
-#line 1142 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 150:
+#line 1147 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.function_specifier) = FUNCTION_INLINE;
          }
-#line 3355 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3369 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 150:
-#line 1149 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 151:
+#line 1154 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3364 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3378 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 152:
-#line 1158 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 153:
+#line 1163 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                (yyval.symbol)->ident = (yyvsp[0].str);
          }
-#line 3373 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3387 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 153:
-#line 1163 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 154:
+#line 1168 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
          }
-#line 3381 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3395 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 154:
-#line 1167 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 155:
+#line 1172 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
-#line 3390 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3404 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 155:
-#line 1172 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 156:
+#line 1177 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
-#line 3399 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3413 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 156:
-#line 1177 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 157:
+#line 1182 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
@@ -3409,49 +3423,49 @@ yyreduce:
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3413 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3427 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 157:
-#line 1187 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 158:
+#line 1192 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType *func = gi_source_function_new ();
                func->child_list = (yyvsp[-1].list);
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3424 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3438 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 158:
-#line 1194 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 159:
+#line 1199 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType *func = gi_source_function_new ();
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3434 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3448 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 159:
-#line 1203 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 160:
+#line 1208 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_pointer_new (NULL);
                (yyval.ctype)->type_qualifier = (yyvsp[0].type_qualifier);
          }
-#line 3443 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3457 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 160:
-#line 1208 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 161:
+#line 1213 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.ctype) = gi_source_pointer_new (NULL);
          }
-#line 3451 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3465 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 161:
-#line 1212 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 162:
+#line 1217 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType **base = &((yyvsp[0].ctype)->base_type);
 
@@ -3462,11 +3476,11 @@ yyreduce:
                (*base)->type_qualifier = (yyvsp[-1].type_qualifier);
                (yyval.ctype) = (yyvsp[0].ctype);
          }
-#line 3466 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3480 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 162:
-#line 1223 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 163:
+#line 1228 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType **base = &((yyvsp[0].ctype)->base_type);
 
@@ -3476,162 +3490,162 @@ yyreduce:
                *base = gi_source_pointer_new (NULL);
                (yyval.ctype) = (yyvsp[0].ctype);
          }
-#line 3480 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3494 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 164:
-#line 1237 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 165:
+#line 1242 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier);
          }
-#line 3488 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3502 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 165:
-#line 1244 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 166:
+#line 1249 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 3496 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3510 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 166:
-#line 1248 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 167:
+#line 1253 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 3504 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3518 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 167:
-#line 1255 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 168:
+#line 1260 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3513 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3527 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 168:
-#line 1260 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 169:
+#line 1265 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3522 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3536 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 169:
-#line 1265 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 170:
+#line 1270 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                (yyval.symbol)->base_type = (yyvsp[0].ctype);
          }
-#line 3531 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3545 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 170:
-#line 1270 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 171:
+#line 1275 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_ELLIPSIS, scanner->current_file, lineno);
          }
-#line 3539 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3553 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 171:
-#line 1277 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 172:
+#line 1282 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                sym->ident = (yyvsp[0].str);
                (yyval.list) = g_list_append (NULL, sym);
          }
-#line 3549 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3563 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 172:
-#line 1283 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 173:
+#line 1288 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                sym->ident = (yyvsp[0].str);
                (yyval.list) = g_list_append ((yyvsp[-2].list), sym);
          }
-#line 3559 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3573 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 175:
-#line 1297 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 176:
+#line 1302 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[0].ctype));
          }
-#line 3568 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3582 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 177:
-#line 1303 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 178:
+#line 1308 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3577 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3591 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 178:
-#line 1311 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 179:
+#line 1316 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
          }
-#line 3585 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3599 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 179:
-#line 1315 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 180:
+#line 1320 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
-#line 3594 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3608 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 180:
-#line 1320 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 181:
+#line 1325 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
-#line 3603 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3617 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 181:
-#line 1325 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 182:
+#line 1330 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
-#line 3612 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3626 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 182:
-#line 1330 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 183:
+#line 1335 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
-#line 3621 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3635 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 183:
-#line 1335 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 184:
+#line 1340 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType *func = gi_source_function_new ();
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3631 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3645 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 184:
-#line 1341 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 185:
+#line 1346 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
@@ -3641,21 +3655,21 @@ yyreduce:
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3645 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3659 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 185:
-#line 1351 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 186:
+#line 1356 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType *func = gi_source_function_new ();
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3655 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3669 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 186:
-#line 1357 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 187:
+#line 1362 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
@@ -3665,35 +3679,35 @@ yyreduce:
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3669 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3683 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 187:
-#line 1370 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 188:
+#line 1375 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.str) = g_strdup (yytext);
          }
-#line 3677 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3691 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 237:
-#line 1477 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 239:
+#line 1483 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.str) = g_strdup (yytext + strlen ("#define "));
          }
-#line 3685 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3699 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 238:
-#line 1484 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 240:
+#line 1490 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                (yyval.str) = g_strdup (yytext + strlen ("#define "));
          }
-#line 3693 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3707 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 240:
-#line 1495 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 242:
+#line 1501 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0].symbol)->const_int_set || (yyvsp[0].symbol)->const_boolean_set || (yyvsp[0].symbol)->const_double_set || (yyvsp[0].symbol)->const_string != NULL) {
                        GISourceSymbol *macro = gi_source_symbol_copy ((yyvsp[0].symbol));
@@ -3707,85 +3721,85 @@ yyreduce:
                        gi_source_symbol_unref ((yyvsp[0].symbol));
                }
          }
-#line 3711 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3725 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 241:
-#line 1512 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 243:
+#line 1518 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                push_conditional (scanner, FOR_GI_SCANNER);
                update_skipping (scanner);
          }
-#line 3720 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3734 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 242:
-#line 1517 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 244:
+#line 1523 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                push_conditional (scanner, NOT_GI_SCANNER);
                update_skipping (scanner);
          }
-#line 3729 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3743 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 243:
-#line 1522 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 245:
+#line 1528 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
-#line 3738 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3752 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 244:
-#line 1527 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 246:
+#line 1533 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
-#line 3747 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3761 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 245:
-#line 1532 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 247:
+#line 1538 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
-#line 3756 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3770 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 246:
-#line 1537 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 248:
+#line 1543 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                pop_conditional (scanner);
                push_conditional (scanner, IRRELEVANT);
                update_skipping (scanner);
          }
-#line 3767 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3781 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 247:
-#line 1544 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 249:
+#line 1550 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                toggle_conditional (scanner);
                update_skipping (scanner);
          }
-#line 3776 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3790 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
-  case 248:
-#line 1549 "giscanner/scannerparser.y" /* yacc.c:1645  */
+  case 250:
+#line 1555 "giscanner/scannerparser.y" /* yacc.c:1645  */
     {
                pop_conditional (scanner);
                update_skipping (scanner);
          }
-#line 3785 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3799 "giscanner/scannerparser.c" /* yacc.c:1645  */
     break;
 
 
-#line 3789 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3803 "giscanner/scannerparser.c" /* yacc.c:1645  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4012,7 +4026,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1562 "giscanner/scannerparser.y" /* yacc.c:1903  */
+#line 1568 "giscanner/scannerparser.y" /* yacc.c:1903  */
 
 static void
 yyerror (GISourceScanner *scanner, const char *s)
@@ -4021,8 +4035,9 @@ yyerror (GISourceScanner *scanner, const char *s)
    * have valid expressions */
   if (!scanner->macro_scan)
     {
-      fprintf(stderr, "%s:%d: %s in '%s' at '%s'\n",
-             g_file_get_parse_name (scanner->current_file), lineno, s, linebuf, yytext);
+      gchar *error = g_strdup_printf ("%s:%d: %s in '%s' at '%s'",
+          g_file_get_parse_name (scanner->current_file), lineno, s, linebuf, yytext);
+      g_ptr_array_add (scanner->errors, error);
     }
 }
 
@@ -4080,6 +4095,19 @@ read_identifier (FILE * f, int c, char **identifier)
   return c;
 }
 
+static gboolean
+parse_file (GISourceScanner *scanner, FILE *file)
+{
+  g_return_val_if_fail (file != NULL, FALSE);
+
+  lineno = 1;
+  yyin = file;
+  yyparse (scanner);
+  yyin = NULL;
+
+  return TRUE;
+}
+
 void
 gi_source_scanner_parse_macros (GISourceScanner *scanner, GList *filenames)
 {
@@ -4226,29 +4254,29 @@ gi_source_scanner_parse_macros (GISourceScanner *scanner, GList *filenames)
     }
 
   rewind (fmacros);
-  gi_source_scanner_parse_file (scanner, fmacros);
+  parse_file (scanner, fmacros);
   fclose (fmacros);
   g_unlink (tmp_name);
 }
 
 gboolean
-gi_source_scanner_parse_file (GISourceScanner *scanner, FILE *file)
+gi_source_scanner_parse_file (GISourceScanner *scanner, const gchar *filename)
 {
-  g_return_val_if_fail (file != NULL, FALSE);
+  FILE *file;
+  gboolean result;
 
-  lineno = 1;
-  yyin = file;
-  yyparse (scanner);
-  yyin = NULL;
+  file = g_fopen (filename, "r");
+  result = parse_file (scanner, file);
+  fclose (file);
 
-  return TRUE;
+  return result;
 }
 
 gboolean
 gi_source_scanner_lex_filename (GISourceScanner *scanner, const gchar *filename)
 {
   lineno = 1;
-  yyin = fopen (filename, "r");
+  yyin = g_fopen (filename, "r");
 
   while (yylex (scanner) != YYEOF)
     ;
index 63c8f93..710bca0 100644 (file)
@@ -203,7 +203,7 @@ extern int yydebug;
 
 union YYSTYPE
 {
-#line 234 "giscanner/scannerparser.y" /* yacc.c:1906  */
+#line 236 "giscanner/scannerparser.y" /* yacc.c:1906  */
 
   char *str;
   GList *list;
index 9b4e136..7ce0236 100644 (file)
@@ -165,7 +165,8 @@ pop_conditional (GISourceScanner *scanner)
   if (type == 0)
     {
       gchar *filename = g_file_get_path (scanner->current_file);
-      fprintf (stderr, "%s:%d: mismatched %s", filename, lineno, yytext);
+      gchar *error = g_strdup_printf ("%s:%d: mismatched %s", filename, lineno, yytext);
+      g_ptr_array_add (scanner->errors, error);
       g_free (filename);
     }
 
@@ -180,8 +181,9 @@ warn_if_cond_has_gi_scanner (GISourceScanner *scanner,
   if (strstr (text, "__GI_SCANNER__"))
     {
       gchar *filename = g_file_get_path (scanner->current_file);
-      fprintf (stderr, "%s:%d: the __GI_SCANNER__ constant should only be used with simple #ifdef or #endif: %s",
+      gchar *error = g_strdup_printf ("%s:%d: the __GI_SCANNER__ constant should only be used with simple #ifdef or #endif: %s",
                filename, lineno, text);
+      g_ptr_array_add (scanner->errors, error);
       g_free (filename);
     }
 }
@@ -789,6 +791,9 @@ declaration
          }
        ;
 
+empty_declaration
+       : ';'
+
 declaration_specifiers
        : storage_class_specifier declaration_specifiers
          {
@@ -1457,6 +1462,7 @@ translation_unit
 external_declaration
        : function_definition
        | declaration
+       | empty_declaration
        | macro
        ;
 
@@ -1567,8 +1573,9 @@ yyerror (GISourceScanner *scanner, const char *s)
    * have valid expressions */
   if (!scanner->macro_scan)
     {
-      fprintf(stderr, "%s:%d: %s in '%s' at '%s'\n",
-             g_file_get_parse_name (scanner->current_file), lineno, s, linebuf, yytext);
+      gchar *error = g_strdup_printf ("%s:%d: %s in '%s' at '%s'",
+          g_file_get_parse_name (scanner->current_file), lineno, s, linebuf, yytext);
+      g_ptr_array_add (scanner->errors, error);
     }
 }
 
@@ -1626,6 +1633,19 @@ read_identifier (FILE * f, int c, char **identifier)
   return c;
 }
 
+static gboolean
+parse_file (GISourceScanner *scanner, FILE *file)
+{
+  g_return_val_if_fail (file != NULL, FALSE);
+
+  lineno = 1;
+  yyin = file;
+  yyparse (scanner);
+  yyin = NULL;
+
+  return TRUE;
+}
+
 void
 gi_source_scanner_parse_macros (GISourceScanner *scanner, GList *filenames)
 {
@@ -1772,29 +1792,29 @@ gi_source_scanner_parse_macros (GISourceScanner *scanner, GList *filenames)
     }
 
   rewind (fmacros);
-  gi_source_scanner_parse_file (scanner, fmacros);
+  parse_file (scanner, fmacros);
   fclose (fmacros);
   g_unlink (tmp_name);
 }
 
 gboolean
-gi_source_scanner_parse_file (GISourceScanner *scanner, FILE *file)
+gi_source_scanner_parse_file (GISourceScanner *scanner, const gchar *filename)
 {
-  g_return_val_if_fail (file != NULL, FALSE);
+  FILE *file;
+  gboolean result;
 
-  lineno = 1;
-  yyin = file;
-  yyparse (scanner);
-  yyin = NULL;
+  file = g_fopen (filename, "r");
+  result = parse_file (scanner, file);
+  fclose (file);
 
-  return TRUE;
+  return result;
 }
 
 gboolean
 gi_source_scanner_lex_filename (GISourceScanner *scanner, const gchar *filename)
 {
   lineno = 1;
-  yyin = fopen (filename, "r");
+  yyin = g_fopen (filename, "r");
 
   while (yylex (scanner) != YYEOF)
     ;
index e8e584d..ed4660f 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import re
 from . import ast
 from .utils import to_underscores
index f70c54d..8b4924d 100644 (file)
 # 02110-1301, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import platform
 import re
index 464e469..27f82f7 100644 (file)
@@ -210,6 +210,14 @@ gi_source_function_new (void)
   return func;
 }
 
+static void
+gi_source_comment_free (GISourceComment *comment)
+{
+  g_free (comment->comment);
+  g_free (comment->filename);
+  g_slice_free (GISourceComment, comment);
+}
+
 GISourceScanner *
 gi_source_scanner_new (void)
 {
@@ -222,18 +230,13 @@ gi_source_scanner_new (void)
                                                 (GDestroyNotify) gi_source_symbol_unref);
   scanner->files = g_hash_table_new_full (g_file_hash, (GEqualFunc)g_file_equal,
                                           g_object_unref, NULL);
+  scanner->symbols = g_ptr_array_new_with_free_func ((GDestroyNotify) gi_source_comment_free);
+  scanner->comments = g_ptr_array_new_with_free_func ((GDestroyNotify) gi_source_symbol_unref);
+  scanner->errors = g_ptr_array_new_with_free_func (g_free);
   g_queue_init (&scanner->conditionals);
   return scanner;
 }
 
-static void
-gi_source_comment_free (GISourceComment *comment)
-{
-  g_free (comment->comment);
-  g_free (comment->filename);
-  g_slice_free (GISourceComment, comment);
-}
-
 void
 gi_source_scanner_free (GISourceScanner *scanner)
 {
@@ -242,10 +245,9 @@ gi_source_scanner_free (GISourceScanner *scanner)
   g_hash_table_destroy (scanner->typedef_table);
   g_hash_table_destroy (scanner->const_table);
 
-  g_slist_foreach (scanner->comments, (GFunc)(void *)gi_source_comment_free, NULL);
-  g_slist_free (scanner->comments);
-  g_slist_foreach (scanner->symbols, (GFunc)(void *)gi_source_symbol_unref, NULL);
-  g_slist_free (scanner->symbols);
+  g_ptr_array_free (scanner->symbols, TRUE);
+  g_ptr_array_free (scanner->comments, TRUE);
+  g_ptr_array_free (scanner->errors, TRUE);
 
   g_hash_table_unref (scanner->files);
 
@@ -280,8 +282,7 @@ gi_source_scanner_add_symbol (GISourceScanner  *scanner,
   g_assert (scanner->current_file);
 
   if (scanner->macro_scan || g_hash_table_contains (scanner->files, scanner->current_file))
-    scanner->symbols = g_slist_prepend (scanner->symbols,
-                                        gi_source_symbol_ref (symbol));
+    g_ptr_array_add (scanner->symbols, gi_source_symbol_ref (symbol));
 
   g_assert (symbol->source_filename != NULL);
 
@@ -308,32 +309,41 @@ gi_source_scanner_take_comment (GISourceScanner *scanner,
       return;
     }
 
-  scanner->comments = g_slist_prepend (scanner->comments,
-                                       comment);
+  g_ptr_array_add (scanner->comments, comment);
 }
 
 /**
  * gi_source_scanner_get_symbols:
  * @scanner: scanner instance
  *
- * Returns: (transfer container): List of GISourceSymbol.
- *   Free resulting list with g_slist_free().
+ * Returns: (transfer none): Array of GISourceSymbol.
  */
-GSList *
+GPtrArray *
 gi_source_scanner_get_symbols (GISourceScanner  *scanner)
 {
-  return g_slist_reverse (g_slist_copy (scanner->symbols));
+  return scanner->symbols;
+}
+
+/**
+ * gi_source_scanner_get_errors:
+ * @scanner: scanner instance
+ *
+ * Returns: (transfer none): Array of strings.
+ */
+GPtrArray *
+gi_source_scanner_get_errors (GISourceScanner  *scanner)
+{
+  return scanner->errors;
 }
 
 /**
  * gi_source_scanner_get_comments:
  * @scanner: scanner instance
  *
- * Returns: (transfer container): List of GISourceComment.
- *   Free resulting list with g_slist_free().
+ * Returns: (transfer none): Array of GISourceComment.
  */
-GSList *
+GPtrArray *
 gi_source_scanner_get_comments(GISourceScanner  *scanner)
 {
-  return g_slist_reverse (g_slist_copy (scanner->comments));
+  return scanner->comments;
 }
index c3e9c65..a788abe 100644 (file)
@@ -111,13 +111,14 @@ struct _GISourceScanner
   gboolean macro_scan;
   gboolean private; /* set by gtk-doc comment <private>/<public> */
   gboolean flags; /* set by gtk-doc comment <flags> */
-  GSList *symbols;
+  GPtrArray *symbols; /* GISourceSymbol */
   GHashTable *files;
-  GSList *comments; /* _GIComment */
+  GPtrArray *comments; /* GISourceComment */
   GHashTable *typedef_table;
   GHashTable *const_table;
   gboolean skipping;
   GQueue conditionals;
+  GPtrArray *errors;
 };
 
 struct _GISourceSymbol
@@ -155,13 +156,14 @@ GISourceScanner *   gi_source_scanner_new              (void);
 gboolean            gi_source_scanner_lex_filename     (GISourceScanner  *igenerator,
                                                        const gchar      *filename);
 gboolean            gi_source_scanner_parse_file       (GISourceScanner  *igenerator,
-                                                       FILE             *file);
+                                                       const gchar      *filename);
 void                gi_source_scanner_parse_macros     (GISourceScanner  *scanner,
                                                        GList            *filenames);
 void                gi_source_scanner_set_macro_scan   (GISourceScanner  *scanner,
                                                        gboolean          macro_scan);
-GSList *            gi_source_scanner_get_symbols      (GISourceScanner  *scanner);
-GSList *            gi_source_scanner_get_comments     (GISourceScanner  *scanner);
+GPtrArray *         gi_source_scanner_get_symbols      (GISourceScanner  *scanner);
+GPtrArray *         gi_source_scanner_get_comments     (GISourceScanner  *scanner);
+GPtrArray *         gi_source_scanner_get_errors       (GISourceScanner  *scanner);
 void                gi_source_scanner_free             (GISourceScanner  *scanner);
 
 GISourceSymbol *    gi_source_symbol_new               (GISourceSymbolType  type, GFile *file, int line);
index aea05e6..d6cb92a 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import with_statement
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import tempfile
 
@@ -274,6 +268,9 @@ class SourceScanner(object):
     def get_comments(self):
         return self._scanner.get_comments()
 
+    def get_errors(self):
+        return self._scanner.get_errors()
+
     def dump(self):
         print('-' * 30)
         for symbol in self._scanner.get_symbols():
@@ -307,10 +304,7 @@ class SourceScanner(object):
                       self._cpp_options)
 
         os.unlink(tmp_name_cpp)
-        fp = open(tmpfile_output, 'r')
-
-        self._scanner.parse_file(fp.fileno())
-        fp.close()
+        self._scanner.parse_file(tmpfile_output)
         os.unlink(tmpfile_output)
 
     def _write_preprocess_src(self, fp, defines, undefs, filenames):
index 846e151..e3ffdab 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
-import sys
+from io import StringIO
 
 from . import ast
 from .codegen import CCodeGenerator
 
-if sys.version_info.major < 3:
-    from StringIO import StringIO
-else:
-    from io import StringIO
-
 DEFAULT_C_VALUES = {ast.TYPE_ANY: 'NULL',
                     ast.TYPE_STRING: '""',
                     ast.TYPE_FILENAME: '""',
index 200470d..1c406e9 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import sys
 import subprocess
@@ -184,6 +179,7 @@ None."""
     def _get_gi_data_dirs(self):
         data_dirs = utils.get_system_data_dirs()
         data_dirs.append(DATADIR)
+        data_dirs.append(GIRDIR)
         if os.name != 'nt':
             # For backwards compatibility, was always unconditionally added to the list.
             data_dirs.append('/usr/share')
@@ -625,7 +621,8 @@ raise ValueError."""
             # https://bugzilla.gnome.org/show_bug.cgi?id=755882
             if name.endswith('_autoptr'):
                 return None
-            return ast.Alias(name, target, ctype=symbol.ident)
+            node = ast.Alias(name, target, ctype=symbol.ident)
+            node.add_symbol_reference(symbol)
         else:
             raise NotImplementedError(
                 "symbol '%s' of type %s" % (symbol.ident, ctype_name(ctype)))
@@ -702,7 +699,7 @@ raise ValueError."""
         # because of different ABI, but this usually works fine,
         # so for backward compatibility lets continue for now:
         # https://gitlab.gnome.org/GNOME/gobject-introspection/merge_requests/24#note_92792
-        if canonical in ('_Bool', 'bool'):
+        if canonical == '_Bool':
             canonical = 'gboolean'
             base = canonical
 
index bdb9071..25160c3 100644 (file)
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 #
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
 
-import errno
 import re
 import os
 import subprocess
@@ -218,39 +213,6 @@ def which(program):
     return None
 
 
-def makedirs(name, mode=0o777, exist_ok=False):
-    """Super-mkdir; create a leaf directory and all intermediate ones.  Works like
-    mkdir, except that any intermediate path segment (not just the rightmost)
-    will be created if it does not exist. If the target directory already
-    exists, raise an OSError if exist_ok is False. Otherwise no exception is
-    raised.  This is recursive.
-
-    Note: This function has been imported from Python 3.4 sources and adapted to work
-    with Python 2.X because get_user_cache_dir() uses the exist_ok parameter. It can
-    be removed again when Python 2.X support is dropped.
-    """
-    head, tail = os.path.split(name)
-    if not tail:
-        head, tail = os.path.split(head)
-    if head and tail and not os.path.exists(head):
-        try:
-            makedirs(head, mode, exist_ok)
-        except (IOError, OSError) as e:
-            # be happy if someone already created the path
-            if e.errno != errno.EEXIST:
-                raise
-        cdir = os.path.curdir
-        if isinstance(tail, bytes):
-            cdir = os.path.curdir.encode("ascii")
-        if tail == cdir:           # xxx/newdir/. exists if xxx/newdir exists
-            return
-    try:
-        os.mkdir(name, mode)
-    except (IOError, OSError) as e:
-        if not exist_ok or e.errno != errno.EEXIST or not os.path.isdir(name):
-            raise
-
-
 def get_user_cache_dir(dir=None):
     '''
     This is a Python reimplemention of `g_get_user_cache_dir()` because we don't want to
@@ -263,7 +225,7 @@ def get_user_cache_dir(dir=None):
         if dir is not None:
             xdg_cache_home = os.path.join(xdg_cache_home, dir)
         try:
-            makedirs(xdg_cache_home, mode=0o755, exist_ok=True)
+            os.makedirs(xdg_cache_home, mode=0o755, exist_ok=True)
         except EnvironmentError:
             # Let's fall back to ~/.cache below
             pass
@@ -276,7 +238,7 @@ def get_user_cache_dir(dir=None):
         if dir is not None:
             cachedir = os.path.join(cachedir, dir)
         try:
-            makedirs(cachedir, mode=0o755, exist_ok=True)
+            os.makedirs(cachedir, mode=0o755, exist_ok=True)
         except EnvironmentError:
             return None
         else:
index 099f9e1..62d3031 100755 (executable)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import with_statement
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
-import sys
-
+from io import StringIO
 from contextlib import contextmanager
 from xml.sax.saxutils import escape, quoteattr
 
-if sys.version_info.major < 3:
-    from StringIO import StringIO
-else:
-    from io import StringIO
-    unicode = str
-
 
 def _calc_attrs_length(attributes, indent, self_indent):
     if indent == -1:
@@ -141,7 +128,7 @@ class XMLWriter(object):
     def write_line(self, line='', indent=True, do_escape=False):
         if isinstance(line, bytes):
             line = line.decode('utf-8')
-        assert isinstance(line, unicode)
+        assert isinstance(line, str)
         if do_escape:
             line = escape(line)
         if indent:
index c0532f2..33bbc34 100644 (file)
@@ -21,4 +21,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.58.3
+Version: 1.59.1
index a08b5d2..1036f90 100644 (file)
@@ -10,7 +10,7 @@ g_ir_scanner=${bindir}/g-ir-scanner
 g_ir_compiler=${bindir}/g-ir-compiler@EXEEXT@
 g_ir_generate=${bindir}/g-ir-generate@EXEEXT@
 gidatadir=${datadir}/gobject-introspection-1.0
-girdir=${datadir}/gir-1.0
+girdir=@GIR_PC_DIR@
 typelibdir=${libdir}/girepository-1.0
 
 Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
index bad92ec..c3234f5 100644 (file)
@@ -20,4 +20,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.58.3
+Version: 1.59.1
index d214d22..bde4faf 100644 (file)
@@ -9,7 +9,7 @@ includedir=@includedir@
 g_ir_scanner=${bindir}/g-ir-scanner
 g_ir_compiler=${bindir}/g-ir-compiler@EXEEXT@
 g_ir_generate=${bindir}/g-ir-generate@EXEEXT@
-girdir=${datadir}/gir-1.0
+girdir=@GIR_PC_DIR@
 typelibdir=${libdir}/girepository-1.0
 
 Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
index 8ac117b..cd79f7a 100644 (file)
@@ -1,5 +1,5 @@
 project('gobject-introspection', 'c',
-  version: '1.58.3',
+  version: '1.59.1',
   meson_version: '>= 0.46.0',
   default_options: [
     'warning_level=1',
@@ -15,10 +15,30 @@ configinc = include_directories('.')
 pymod = import('python')
 python = pymod.find_installation(get_option('python'))
 
+python_version = python.language_version()
+python_version_req = '>=3.4'
+if not python_version.version_compare(python_version_req)
+  error('Requires Python @0@, @1@ found.'.format(python_version_req, python_version))
+endif
+
 cc = meson.get_compiler('c')
 config = configuration_data()
+
+config.set('GI_MAJOR_VERSION', gi_versions[0])
+config.set('GI_MINOR_VERSION', gi_versions[1])
+config.set('GI_MICRO_VERSION', gi_versions[2])
+
 config.set_quoted('GIR_SUFFIX', 'gir-1.0')
-config.set_quoted('GIR_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'gir-1.0'))
+gir_dir_prefix = get_option('gir-dir-prefix')
+if gir_dir_prefix == ''
+    gir_dir_prefix = join_paths(get_option('prefix'), get_option('datadir'))
+    gir_dir_pc_prefix = '${datadir}'
+else
+    gir_dir_prefix = join_paths(get_option('prefix'), gir_dir_prefix)
+    gir_dir_pc_prefix = join_paths('${prefix}', gir_dir_prefix)
+endif
+girdir = join_paths(gir_dir_prefix, 'gir-1.0')
+config.set_quoted('GIR_DIR', girdir)
 config.set_quoted('GOBJECT_INTROSPECTION_LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
 
 foreach type : ['char', 'short', 'int', 'long']
@@ -93,6 +113,7 @@ pkgconfig_conf.set('libdir', join_paths('${prefix}', get_option('libdir')))
 pkgconfig_conf.set('datarootdir', join_paths('${prefix}', get_option('datadir')))
 pkgconfig_conf.set('datadir', '${datarootdir}')
 pkgconfig_conf.set('includedir', join_paths('${prefix}', get_option('includedir')))
+pkgconfig_conf.set('GIR_PC_DIR', join_paths(gir_dir_pc_prefix, 'gir-1.0'))
 if host_system == 'windows' or host_system == 'cygwin'
   pkgconfig_conf.set('EXEEXT', '.exe')
 else
index 49726be..ee6958d 100644 (file)
@@ -21,3 +21,7 @@ option('cairo-libname', type: 'string',
 option('python', type: 'string', value: 'python3',
   description: 'Path or name of the Python interpreter to build for'
 )
+
+option('gir-dir-prefix', type: 'string',
+  description: 'Intermediate prefix for gir installation under ${prefix}'
+)
index 89e1780..241439d 100755 (executable)
@@ -3,11 +3,6 @@
 # e.g.:
 #   ./update-glib-annotations.py ../../glib ../../glib/_build
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import sys
 
index 4c1ec13..566d6ac 100644 (file)
@@ -161,10 +161,6 @@ def parsed2tree(docblock):
 
 
 if __name__ == '__main__':
-    if sys.version_info < (3, 0):
-        print('Sorry, update-gtkdoc-tests.py requires Python 3.x')
-        sys.exit(1)
-
     gi_tests = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'tests', 'scanner', 'annotationparser', 'gtkdoc'))
 
     gtkdoc_tests = None
@@ -195,7 +191,7 @@ if __name__ == '__main__':
                 writer = GtkDocCommentBlockWriter(indent=True)
                 logger.enable_warnings((ERROR, FATAL))
 
-                with io.open(path, 'rU') as f:
+                with io.open(path, 'r') as f:
                     lines = f.readlines()
 
                 chunks = []
diff --git a/misc/verbump.py b/misc/verbump.py
deleted file mode 100644 (file)
index b8a8f4f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-# Automakes a release preparation for a post-release project
-# * Create a git tag
-# * Bump version in configure.ac and commit it
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
-import re
-import os
-import sys
-import subprocess
-
-micro_version_re = re.compile('m4_define.*gi_micro_version, ([0-9]+)')
-micro_version_replace = 'm4_define(gi_micro_version, %d)\n'
-
-def _extract_config_log_variable(name):
-    f = open('config.log')
-    keystart = name + '=\''
-    for line in f:
-        if line.startswith(keystart):
-            return line[len(keystart):-2]
-    f.close()
-    fatal("Failed to find '%s' in config.status" % (name, ))
-
-if not os.path.isfile('config.log'):
-    fatal("Couldn't find config.log; did you run configure?")
-package = _extract_config_log_variable('PACKAGE_TARNAME')
-version = _extract_config_log_variable('VERSION')
-
-configure_path=os.path.join(os.environ['top_srcdir'], 'configure.ac')
-f = open(configure_path)
-newf = open(configure_path + '.tmp', 'w')
-for line in f:
-  m = micro_version_re.match(line)
-  if not m:
-    newf.write(line)
-    continue
-  v = int(m.group(1))
-  newv = v+1
-  print("Will update micro version from %s to %s" % (v, newv))
-  newf.write(micro_version_replace % (newv, ))
-newf.close()
-
-os.rename(configure_path + '.tmp', configure_path)
-print("Successfully wrote new 'configure.ac' with post-release version bump")
-
-args=['git', 'commit', '-m', "configure: Post-release version bump", configure_path]
-print("Running: %r" % (args, ))
-subprocess.check_call(args)
index 1508256..96e2660 100644 (file)
@@ -494,8 +494,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index 18cc080..bfa8f8b 100644 (file)
@@ -17,6 +17,125 @@ installed_sources = [
 
 install_data(installed_sources, install_dir: join_paths(get_option('datadir'), 'gobject-introspection-1.0', 'tests'))
 
+# Generate everything.h and everything.c:
+test_everything_files = custom_target('everything',
+  output: ['everything.h', 'everything.c'],
+  depends: typelibs,
+  command: [
+    python,
+    girscanner,
+    '--generate-typelib-tests=Everything,@OUTPUT0@,@OUTPUT1@',
+    '--function-decoration=_GI_TEST_EXTERN',
+    '--include-first-in-src=config.h',
+    '--include-last-in-header=gitestmacros.h',
+  ]
+)
+
+test_everything_headers = [test_everything_files[0]]
+test_everything_sources = [test_everything_files[1]]
+
+everything_lib = shared_library('everything-1.0',
+  sources: test_everything_sources,
+  include_directories : configinc,
+  c_args: gi_hidden_visibility_cflags,
+  dependencies: [glib_dep, gobject_dep],
+  version: '1.0.0',
+)
+
+gimarshallingtests_lib = shared_library('gimarshallingtests-1.0',
+  sources: test_marshalling_sources,
+  include_directories : configinc,
+  c_args: gi_hidden_visibility_cflags,
+  dependencies: [glib_dep, gobject_dep],
+  version: '1.0.0',
+)
+
+test_gir_files = []
+test_typelibs = []
+
+# FIXME: When using glib as a subproject g-ir-scanner will not discover build
+# flag of dependencies through pkg-config, instead they have to be specified
+# manually like for example in gir/meson.build. This remain to be done here as
+# well. Though, this could work differently altogether. Instead one could
+# generate appropriate pkg-config files and point PKG_CONFIG_PATH to them,
+# leaving all invocations of g-ir-scanner as is.
+if glib_dep.type_name() == 'pkgconfig'
+  test_gir_files += custom_target('gir-everything',
+    input: test_everything_sources + test_everything_headers,
+    output: 'Everything-1.0.gir',
+    depends: [everything_lib] + typelibs,
+    command: [
+      python,
+      girscanner,
+      '--output=@OUTPUT@',
+      '--no-libtool',
+      '--reparse-validate',
+      '--add-include-path', join_paths(meson.source_root(), 'gir'),
+      '--add-include-path', join_paths(meson.build_root(), 'gir'),
+      '--warn-all',
+      '--warn-error',
+      '--namespace=Everything',
+      '--nsversion=1.0',
+      '--include=Gio-2.0',
+      '--library=everything-1.0',
+      '-L', meson.current_build_dir(),
+      '-I', meson.current_source_dir(),
+      '@INPUT@',
+    ]
+  )
+
+  test_gir_files += custom_target('gir-gimarshallingtests',
+    input: test_marshalling_sources + test_marshalling_headers,
+    output: 'GIMarshallingTests-1.0.gir',
+    depends: [gimarshallingtests_lib] + typelibs,
+    command: [
+      python,
+      girscanner,
+      '--output=@OUTPUT@',
+      '--no-libtool',
+      '--reparse-validate',
+      '--add-include-path', join_paths(meson.source_root(), 'gir'),
+      '--add-include-path', join_paths(meson.build_root(), 'gir'),
+      '--warn-all',
+      '--warn-error',
+      '--namespace=GIMarshallingTests',
+      '--symbol-prefix=gi_marshalling_tests',
+      '--nsversion=1.0',
+      '--include=Gio-2.0',
+      '--library=gimarshallingtests-1.0',
+      '-L' + meson.current_build_dir(),
+      '--c-include="tests/gimarshallingtests.h"',
+      '@INPUT@',
+    ]
+  )
+
+  foreach gir : test_gir_files
+    test_typelibs += custom_target('generate-typelib-@0@'.format(gir).underscorify(),
+      input: gir,
+      output: '@BASENAME@.typelib',
+      depends: [gobject_gir, ],
+      command: [gircompiler, '-o', '@OUTPUT@', '@INPUT@',
+                '--includedir', join_paths(meson.build_root(), 'gir'),
+                '--includedir', meson.current_build_dir()
+      ],
+    )
+  endforeach
+
+  # FIXME: Remove? Those tests doesn't actually do anything for typelibs ...
+  foreach typelib : test_typelibs
+    gi_tester = files('gi-tester')
+    typelib_name = typelib.full_path().split('/')[-1]
+    test(
+      'gi-tester' + typelib_name,
+      python,
+      args: [gi_tester, typelib]
+    )
+  endforeach
+
+endif
+
 ### TODO: actually test
+subdir('offsets')
 subdir('warn')
+subdir('repository')
 subdir('scanner')
index 269b0ce..1a6abaf 100644 (file)
@@ -36,7 +36,7 @@ CLEANFILES += Offsets-1.0.gir Offsets-1.0.typelib liboffsets.la
 EXTRA_PROGRAMS += gitestoffsets
 
 nodist_gitestoffsets_SOURCES = gitestoffsets.c
-gitestoffsets_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_srcdir)/tests
+gitestoffsets_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository -I$(top_srcdir)/tests
 gitestoffsets_CFLAGS = $(WARN_CFLAGS)
 gitestoffsets_LDFLAGS = $(WARN_LDFLAGS)
 gitestoffsets_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
@@ -46,7 +46,8 @@ gitestoffsets.c: gen-gitestoffsets offsets.h Offsets-1.0.typelib
 
 EXTRA_DIST += \
        gen-gitestoffsets \
-       test_offsets.py
+       test_offsets.py \
+       meson.build
 BUILT_SOURCES += gitestoffsets.c
 CLEANFILES += gitestoffsets.c $(EXTRA_PROGRAMS)
 
index 2f618d5..d55fde4 100644 (file)
@@ -488,8 +488,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -711,7 +715,7 @@ _gir_default_scanner_env = CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(
 BUILT_SOURCES = gitestoffsets.c
 CLEANFILES = Offsets-1.0.gir Offsets-1.0.typelib liboffsets.la \
        gitestoffsets.c $(EXTRA_PROGRAMS)
-EXTRA_DIST = gen-gitestoffsets test_offsets.py
+EXTRA_DIST = gen-gitestoffsets test_offsets.py meson.build
 INTROSPECTION_GIRS = Offsets-1.0.gir
 
 ############################################################
@@ -730,7 +734,7 @@ Offsets_1_0_gir_PACKAGES = gobject-2.0
 Offsets_1_0_gir_FILES = offsets.h offsets.c
 Offsets_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --warn-all --warn-error  -I$(top_srcdir)/tests
 nodist_gitestoffsets_SOURCES = gitestoffsets.c
-gitestoffsets_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_srcdir)/tests
+gitestoffsets_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository -I$(top_srcdir)/tests
 gitestoffsets_CFLAGS = $(WARN_CFLAGS)
 gitestoffsets_LDFLAGS = $(WARN_LDFLAGS)
 gitestoffsets_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
index 94a2062..2e9bc5f 100755 (executable)
@@ -19,8 +19,6 @@
 # 02110-1301, USA.
 #
 
-from __future__ import print_function
-
 # The idea here is that we want to compare offset information two ways:
 #
 #  1) As generated by the compiler
diff --git a/tests/offsets/meson.build b/tests/offsets/meson.build
new file mode 100644 (file)
index 0000000..acf8145
--- /dev/null
@@ -0,0 +1,79 @@
+test_offsets_sources = files('offsets.c')
+test_offsets_headers = files('offsets.h')
+
+test_offsets_inc = include_directories('.', '..')
+
+test_offsets_lib = shared_library('offsets-1.0',
+  sources: test_offsets_sources,
+  include_directories : [configinc, test_offsets_inc],
+  c_args: gi_hidden_visibility_cflags,
+  dependencies: [glib_dep, gobject_dep],
+  version: '1.0.0',
+)
+
+# FIXME: See tests/meson.build
+# FIXME: gitestoffsets.exe fails with STATUS_DLL_NOT_FOUND
+if host_system != 'windows'
+
+  test_offsets_gir = custom_target('gir-offsets',
+    input: test_offsets_sources + test_offsets_headers,
+    output: 'Offsets-1.0.gir',
+    depends: [test_offsets_lib] + typelibs,
+    command: [
+      python,
+      girscanner,
+      '--output=@OUTPUT@',
+      '--no-libtool',
+      '--reparse-validate',
+      '--add-include-path', join_paths(meson.source_root(), 'gir'),
+      '--add-include-path', join_paths(meson.build_root(), 'gir'),
+      '--warn-all',
+      '--warn-error',
+      '--namespace=Offsets',
+      '--nsversion=1.0',
+      '--include=GObject-2.0',
+      '--library=offsets-1.0',
+      '-L', meson.current_build_dir(),
+      '-I', meson.current_source_dir(),
+      '-I', join_paths(meson.source_root(), 'tests'),
+      '@INPUT@',
+    ]
+  )
+
+  test_offsets_typelib = custom_target(
+    'generate-typelib-offsets',
+    input: test_offsets_gir,
+    output: '@BASENAME@.typelib',
+    depends: [gobject_gir, ],
+    command: [gircompiler, '-o', '@OUTPUT@', '@INPUT@',
+              '--includedir', join_paths(meson.build_root(), 'gir'),
+              '--includedir', meson.current_build_dir()
+    ],
+  )
+
+  gitestoffsets_sources = custom_target(
+    'generate-gitestoffsets.c',
+    output: ['gitestoffsets.c'],
+    command: [python] + files('gen-gitestoffsets', 'offsets.h'),
+    capture: true,
+  )
+
+  executable('gitestoffsets',
+    gitestoffsets_sources, 
+    include_directories : test_offsets_inc,
+    dependencies: [girepo_dep],
+  )
+
+  test_offsets_env = environment()
+  test_offsets_env.set('top_builddir', join_paths(meson.build_root(), 'gir'))
+  test_offsets_env.set('builddir', meson.current_build_dir())
+  
+  test('test_offsets.py',
+    python, 
+    args: files('test_offsets.py'),
+    env: test_offsets_env,
+    depends: test_offsets_typelib,
+  )
+
+endif
+
index b6bde9d..6b26107 100644 (file)
@@ -4,21 +4,22 @@ LIBS = $(GOBJECT_LIBS)
 
 EXTRA_PROGRAMS = gitestrepo giteststructinfo gitestthrows gitypelibtest
 CLEANFILES = $(EXTRA_PROGRAMS)
+EXTRA_DIST = meson.build
 
 gitestrepo_SOURCES = gitestrepo.c
-gitestrepo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+gitestrepo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 gitestrepo_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 
 giteststructinfo_SOURCES = giteststructinfo.c
-giteststructinfo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+giteststructinfo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 giteststructinfo_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 
 gitestthrows_SOURCES = gitestthrows.c
-gitestthrows_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+gitestthrows_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 gitestthrows_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 
 gitypelibtest_SOURCES = gitypelibtest.c
-gitypelibtest_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+gitypelibtest_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 gitypelibtest_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 
 TESTS = gitestrepo giteststructinfo gitestthrows gitypelibtest
index b05402e..05dff7a 100644 (file)
@@ -449,8 +449,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -589,17 +593,18 @@ top_srcdir = @top_srcdir@
 AM_CFLAGS = $(WARN_CFLAGS) $(GOBJECT_CFLAGS)
 AM_LDFLAGS = $(WARN_LDFLAGS) -module -avoid-version
 CLEANFILES = $(EXTRA_PROGRAMS)
+EXTRA_DIST = meson.build
 gitestrepo_SOURCES = gitestrepo.c
-gitestrepo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+gitestrepo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 gitestrepo_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 giteststructinfo_SOURCES = giteststructinfo.c
-giteststructinfo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+giteststructinfo_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 giteststructinfo_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 gitestthrows_SOURCES = gitestthrows.c
-gitestthrows_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+gitestthrows_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 gitestthrows_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 gitypelibtest_SOURCES = gitypelibtest.c
-gitypelibtest_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+gitypelibtest_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 gitypelibtest_LDADD = $(top_builddir)/libgirepository-1.0.la $(GIREPO_LIBS)
 TESTS_ENVIRONMENT = env GI_TYPELIB_PATH="$(top_builddir):$(top_builddir)/gir:$(top_builddir)/tests:$(top_builddir)/tests/scanner" \
        PATH="$(top_builddir)/tests/scanner/.libs:$(PATH)" \
index 281a5f3..6c10b07 100644 (file)
@@ -34,6 +34,29 @@ test_constructor_return_type(GIBaseInfo* object_info)
   g_assert (strcmp (class_name, return_name) == 0);
 }
 
+static void
+test_type_info_get_name (GIRepository *repo)
+{
+  GIBaseInfo *base;
+  GIVFuncInfo *vfunc;
+  GITypeInfo *typeinfo;
+
+  base = g_irepository_find_by_name (repo, "Gio", "File");
+  g_assert_nonnull (base);
+  g_assert_true (GI_IS_INTERFACE_INFO (base));
+  vfunc = g_interface_info_find_vfunc ((GIInterfaceInfo*)base, "read_async");
+  g_assert_nonnull (vfunc);
+  g_base_info_unref ((GIBaseInfo*)base);
+
+  typeinfo = g_callable_info_get_return_type (vfunc);
+  g_assert_nonnull (typeinfo);
+  g_base_info_unref ((GIBaseInfo*)vfunc);
+
+  /* https://gitlab.gnome.org/GNOME/gobject-introspection/issues/96 */
+  g_assert_null (g_base_info_get_name (typeinfo));
+  g_base_info_unref ((GIBaseInfo*)typeinfo);
+}
+
 
 int
 main(int argc, char **argv)
@@ -137,6 +160,8 @@ main(int argc, char **argv)
     g_assert (strcmp (g_base_info_get_name ((GIBaseInfo*)invoker), "get_display") == 0);
   }
 
+  test_type_info_get_name (repo);
+
   /* Error quark tests */
   errorinfo = g_irepository_find_by_error_domain (repo, G_RESOLVER_ERROR);
   g_assert (errorinfo != NULL);
diff --git a/tests/repository/meson.build b/tests/repository/meson.build
new file mode 100644 (file)
index 0000000..1281427
--- /dev/null
@@ -0,0 +1,22 @@
+repository_tests = [
+  'gitestrepo',
+  'giteststructinfo',
+  'gitestthrows',
+  # FIXME: Requires Regress typelib which is not yet ported to meson.
+  # 'gitypelibtest',
+]
+
+repository_test_env = environment()
+repository_test_env.append(
+  'GI_TYPELIB_PATH',
+  join_paths(meson.build_root(), 'gir'),
+  join_paths(meson.build_root(), 'tests')
+)
+
+if glib_dep.type_name() == 'pkgconfig'
+  foreach test_name : repository_tests
+    source = files(test_name + '.c')
+    exe = executable(test_name, source, dependencies: [girepo_dep])
+    test(test_name, exe, env: repository_test_env)
+  endforeach
+endif
index 245adff..cdd8095 100644 (file)
@@ -20,6 +20,7 @@ and/or use gtk-doc annotations.  -->
            glib:type-name="BarBaz"
            glib:get-type="bar_baz_get_type"
            glib:type-struct="BazClass">
+      <source-position filename="barapp.h" line="21"/>
       <field name="parent_instance">
         <type name="GObject.Object" c:type="GObject"/>
       </field>
@@ -27,6 +28,7 @@ and/or use gtk-doc annotations.  -->
     <record name="BazClass"
             c:type="BarBazClass"
             glib:is-gtype-struct-for="Baz">
+      <source-position filename="barapp.h" line="21"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
@@ -38,7 +40,9 @@ and/or use gtk-doc annotations.  -->
            glib:type-name="MutterWindow"
            glib:get-type="mutter_window_get_type"
            glib:type-struct="MutterWindowClass">
+      <source-position filename="barapp.h" line="53"/>
       <method name="func" c:identifier="mutter_window_func">
+        <source-position filename="barapp.h" line="59"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -58,16 +62,19 @@ and/or use gtk-doc annotations.  -->
     <record name="MutterWindowClass"
             c:type="MutterWindowClass"
             glib:is-gtype-struct-for="MutterWindow">
+      <source-position filename="barapp.h" line="53"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
     </record>
     <function name="app_func" c:identifier="bar_app_func">
+      <source-position filename="barapp.h" line="28"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
     </function>
     <function name="app_func2" c:identifier="bar_app_func2">
+      <source-position filename="barapp.h" line="31"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
index ae17525..b3908fc 100644 (file)
@@ -21,40 +21,51 @@ and/or use gtk-doc annotations.  -->
            glib:type-name="GetTypeObject"
            glib:get-type="gettype_object_get_type"
            glib:type-struct="ObjectClass">
+      <source-position filename="gettype.h" line="22"/>
       <constructor name="new" c:identifier="gettype_object_new">
+        <source-position filename="gettype.h" line="28"/>
         <return-value transfer-ownership="full">
           <type name="Object" c:type="GetTypeObject*"/>
         </return-value>
       </constructor>
       <function name="nonmeta2_get_type"
                 c:identifier="gettype_object_nonmeta2_get_type">
-        <doc xml:space="preserve">This shouldn't be scanned as a *_get_type function because it doesn't return
+        <doc xml:space="preserve"
+             filename="gettype.c"
+             line="38">This shouldn't be scanned as a *_get_type function because it doesn't return
 a GType. It will generate a warning.</doc>
+        <source-position filename="gettype.h" line="35"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">true</doc>
+          <doc xml:space="preserve" filename="gettype.c" line="44">true</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
       </function>
       <function name="nonmeta_get_gtype"
                 c:identifier="gettype_object_nonmeta_get_gtype">
-        <doc xml:space="preserve">This shouldn't be scanned as a *_get_type function because it doesn't return
+        <doc xml:space="preserve"
+             filename="gettype.c"
+             line="52">This shouldn't be scanned as a *_get_type function because it doesn't return
 a GType. It will generate a warning.</doc>
+        <source-position filename="gettype.h" line="38"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">true</doc>
+          <doc xml:space="preserve" filename="gettype.c" line="58">true</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
       </function>
       <method name="nonmeta1_get_type"
               c:identifier="gettype_object_nonmeta1_get_type">
-        <doc xml:space="preserve">This shouldn't be scanned as a *_get_type function because it takes
+        <doc xml:space="preserve"
+             filename="gettype.c"
+             line="23">This shouldn't be scanned as a *_get_type function because it takes
 arguments.</doc>
+        <source-position filename="gettype.h" line="32"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">0</doc>
+          <doc xml:space="preserve" filename="gettype.c" line="30">0</doc>
           <type name="GType" c:type="GType"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">self</doc>
+            <doc xml:space="preserve" filename="gettype.c" line="25">self</doc>
             <type name="Object" c:type="GetTypeObject*"/>
           </instance-parameter>
         </parameters>
@@ -66,6 +77,7 @@ arguments.</doc>
     <record name="ObjectClass"
             c:type="GetTypeObjectClass"
             glib:is-gtype-struct-for="Object">
+      <source-position filename="gettype.h" line="22"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
index a4e39ef..3ed6129 100644 (file)
@@ -15,6 +15,7 @@ and/or use gtk-doc annotations.  -->
              c:symbol-prefixes="gtk_frob">
     <function name="language_manager_get_default"
               c:identifier="gtk_frob_language_manager_get_default">
+      <source-position filename="gtkfrob.h" line="11"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
index 179d981..4b2daf9 100644 (file)
@@ -12,6 +12,7 @@ and/or use gtk-doc annotations.  -->
              c:identifier-prefixes="Headeronly"
              c:symbol-prefixes="headeronly">
     <enumeration name="ExampleEnum" c:type="HeaderonlyExampleEnum">
+      <source-position filename="headeronly.h" line="7"/>
       <member name="foo" value="0" c:identifier="HEADERONLY_FOO">
       </member>
       <member name="bar" value="1" c:identifier="HEADERONLY_BAR">
index 5c4590e..15cd408 100644 (file)
@@ -12,9 +12,12 @@ and/or use gtk-doc annotations.  -->
              c:identifier-prefixes="Identfilter"
              c:symbol-prefixes="identfilter">
     <record name="Context" c:type="identfilter_t" disguised="1">
+      <source-position filename="identfilter.h" line="4"/>
     </record>
     <record name="Object" c:type="identfilter_object_t" disguised="1">
+      <source-position filename="identfilter.h" line="5"/>
       <method name="foo_method" c:identifier="identfilter_object_foo_method">
+        <source-position filename="identfilter.h" line="8"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -25,6 +28,7 @@ and/or use gtk-doc annotations.  -->
         </parameters>
       </method>
       <method name="free" c:identifier="identfilter_object_free">
+        <source-position filename="identfilter.h" line="9"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -37,6 +41,7 @@ and/or use gtk-doc annotations.  -->
       <function name="new"
                 c:identifier="identfilter_object_new"
                 introspectable="0">
+        <source-position filename="identfilter.h" line="7"/>
         <return-value>
           <type name="Object" c:type="identfilter_object_t*"/>
         </return-value>
index 9da301f..d5124e7 100644 (file)
@@ -21,7 +21,7 @@ EXTRA_LTLIBRARIES = \
 CLEANFILES += $(EXTRA_LTLIBRARIES)
 
 GI_SCANNER_CFLAGS = -I$(top_srcdir)/tests
-AM_CPPFLAGS = -I$(top_srcdir)/girepository
+AM_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) $(GI_SCANNER_CFLAGS) $(WARN_CFLAGS)
 # -rpath needed to force libtool to build a shared library for a check_LTLIBRARIES
 # target. See http://lists.gnu.org/archive/html/automake/2005-10/msg00107.html
index dd57335..d3a75b2 100644 (file)
@@ -593,8 +593,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -826,7 +830,7 @@ EXTRA_LTLIBRARIES = \
        $(NULL)
 
 GI_SCANNER_CFLAGS = -I$(top_srcdir)/tests
-AM_CPPFLAGS = -I$(top_srcdir)/girepository
+AM_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
 AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) $(GI_SCANNER_CFLAGS) $(WARN_CFLAGS)
 # -rpath needed to force libtool to build a shared library for a check_LTLIBRARIES
 # target. See http://lists.gnu.org/archive/html/automake/2005-10/msg00107.html
index 19e4521..2d72b94 100644 (file)
@@ -17,7 +17,7 @@
   </synopsis>
   <synopsis>
     <title>Known Implementations</title>
-    <p>None</p>
+    <p>TestInterface is implemented by TestSubObj</p>
   </synopsis>
   <links type="topic" ui:expanded="true"
          api:type="function" api:mime="text/x-csrc"
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-write-only.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-write-only.page
new file mode 100644 (file)
index 0000000..bb36661
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-write-only"
+      type="topic"
+      style="property"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestObj" group="property" type="guide"/>
+    <title type="link" role="topic">write-only</title>
+  </info>
+  <title>Regress.TestObj:write-only</title>
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj-boolean.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj-boolean.page
new file mode 100644 (file)
index 0000000..223c3e9
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj-boolean"
+      type="topic"
+      style="property"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestSubObj" group="property" type="guide"/>
+    <title type="link" role="topic">boolean</title>
+  </info>
+  <title>Regress.TestSubObj:boolean</title>
+
+
+</page>
index 5fb58df..de94a5c 100644 (file)
@@ -12,7 +12,9 @@
   <synopsis><code>
 const Regress = imports.gi.Regress;
 
-let test_interface = new Regress.TestInterface();
+let test_interface = new Regress.TestInterface({
+    <link xref='Regress.TestInterface-number'>number</link>: value,
+});
   </code></synopsis>
 
 
@@ -22,7 +24,7 @@ let test_interface = new Regress.TestInterface();
   </synopsis>
   <synopsis>
     <title>Known Implementations</title>
-    <p>None</p>
+    <p>TestInterface is implemented by TestSubObj</p>
   </synopsis>
   <links type="topic" ui:expanded="true"
          api:type="function" api:mime="text/x-gjs"
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-write-only.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-write-only.page
new file mode 100644 (file)
index 0000000..9fd1925
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-write-only"
+      type="topic"
+      style="property"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestObj" group="property" type="guide"/>
+    <title type="link" role="topic">write-only</title>
+  </info>
+  <title>Regress.TestObj.write_only</title>
+  <synopsis><code mime="text/x-gjs">
+TestObj.write_only: Boolean (Write)
+  </code></synopsis>
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj-boolean.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj-boolean.page
new file mode 100644 (file)
index 0000000..b2be61b
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj-boolean"
+      type="topic"
+      style="property"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestSubObj" group="property" type="guide"/>
+    <title type="link" role="topic">boolean</title>
+  </info>
+  <title>Regress.TestSubObj.boolean</title>
+  <synopsis><code mime="text/x-gjs">
+TestSubObj.boolean: Boolean (Read / Write / Construct)
+  </code></synopsis>
+
+
+</page>
index d9f0885..b69022b 100644 (file)
@@ -12,7 +12,9 @@
   <synopsis><code>
 const Regress = imports.gi.Regress;
 
-let testSubObj = new Regress.TestSubObj();
+let testSubObj = new Regress.TestSubObj({
+    <link xref='Regress.TestSubObj-boolean'>boolean</link>: value,
+});
   </code></synopsis>
 
 
index 7fb4c88..be09d3a 100644 (file)
@@ -12,7 +12,7 @@
   <synopsis><code>
 from gi.repository import Regress
 
-test_interface = Regress.TestInterface()  </code></synopsis>
+test_interface = Regress.TestInterface(<link xref='Regress.TestInterface-number'>number</link>=value)  </code></synopsis>
 
 
   <synopsis>
@@ -21,7 +21,7 @@ test_interface = Regress.TestInterface()  </code></synopsis>
   </synopsis>
   <synopsis>
     <title>Known Implementations</title>
-    <p>None</p>
+    <p>TestInterface is implemented by TestSubObj</p>
   </synopsis>
   <links type="topic" ui:expanded="true"
          api:type="function" api:mime="text/python"
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-write-only.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-write-only.page
new file mode 100644 (file)
index 0000000..8281a78
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-write-only"
+      type="topic"
+      style="property"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestObj" group="property" type="guide"/>
+    <title type="link" role="topic">write-only</title>
+  </info>
+  <title>Regress.TestObj:write-only</title>
+  <synopsis><code mime="text/x-python">
+"write-only"             bool                : Write
+  </code></synopsis>
+</page>
index 6f45704..73d7724 100644 (file)
@@ -12,7 +12,7 @@
   <synopsis><code>
 from gi.repository import Regress
 
-test_obj = Regress.TestObj(<link xref='Regress.TestObj-bare'>bare</link>=value, <link xref='Regress.TestObj-boxed'>boxed</link>=value, <link xref='Regress.TestObj-byte-array'>byte_array</link>=value, <link xref='Regress.TestObj-double'>double</link>=value, <link xref='Regress.TestObj-float'>float</link>=value, <link xref='Regress.TestObj-gtype'>gtype</link>=value, <link xref='Regress.TestObj-hash-table'>hash_table</link>=value, <link xref='Regress.TestObj-hash-table-old'>hash_table_old</link>=value, <link xref='Regress.TestObj-int'>int</link>=value, <link xref='Regress.TestObj-list'>list</link>=value, <link xref='Regress.TestObj-list-old'>list_old</link>=value, <link xref='Regress.TestObj-name-conflict'>name_conflict</link>=value, <link xref='Regress.TestObj-pptrarray'>pptrarray</link>=value, <link xref='Regress.TestObj-string'>string</link>=value)
+test_obj = Regress.TestObj(<link xref='Regress.TestObj-bare'>bare</link>=value, <link xref='Regress.TestObj-boxed'>boxed</link>=value, <link xref='Regress.TestObj-byte-array'>byte_array</link>=value, <link xref='Regress.TestObj-double'>double</link>=value, <link xref='Regress.TestObj-float'>float</link>=value, <link xref='Regress.TestObj-gtype'>gtype</link>=value, <link xref='Regress.TestObj-hash-table'>hash_table</link>=value, <link xref='Regress.TestObj-hash-table-old'>hash_table_old</link>=value, <link xref='Regress.TestObj-int'>int</link>=value, <link xref='Regress.TestObj-list'>list</link>=value, <link xref='Regress.TestObj-list-old'>list_old</link>=value, <link xref='Regress.TestObj-name-conflict'>name_conflict</link>=value, <link xref='Regress.TestObj-pptrarray'>pptrarray</link>=value, <link xref='Regress.TestObj-string'>string</link>=value, <link xref='Regress.TestObj-write-only'>write_only</link>=value)
   </code></synopsis>
 
 
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj-boolean.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj-boolean.page
new file mode 100644 (file)
index 0000000..5207131
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj-boolean"
+      type="topic"
+      style="property"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestSubObj" group="property" type="guide"/>
+    <title type="link" role="topic">boolean</title>
+  </info>
+  <title>Regress.TestSubObj:boolean</title>
+  <synopsis><code mime="text/x-python">
+"boolean"             bool                : Read / Write / Construct
+  </code></synopsis>
+
+
+</page>
index da1c0db..e5b3a13 100644 (file)
@@ -12,7 +12,7 @@
   <synopsis><code>
 from gi.repository import Regress
 
-test_sub_obj = Regress.TestSubObj()
+test_sub_obj = Regress.TestSubObj(<link xref='Regress.TestSubObj-boolean'>boolean</link>=value)
   </code></synopsis>
 
 
index 1753233..9236f9a 100644 (file)
@@ -16,51 +16,74 @@ and/or use gtk-doc annotations.  -->
              c:identifier-prefixes="Regress"
              c:symbol-prefixes="regress">
     <alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
-      <doc xml:space="preserve">Typedef TestBoxed to test caller-allocates correctness</doc>
+      <doc xml:space="preserve"
+           filename="regress.h"
+           line="1374">Typedef TestBoxed to test caller-allocates correctness</doc>
+      <source-position filename="regress.h" line="1379"/>
       <type name="TestBoxed" c:type="RegressTestBoxed"/>
     </alias>
     <alias name="FooObjectCookie" c:type="RegressFooObjectCookie">
+      <source-position filename="foo.h" line="148"/>
       <type name="gpointer" c:type="gpointer"/>
     </alias>
     <alias name="FooXEvent" c:type="RegressFooXEvent">
+      <source-position filename="foo.h" line="383"/>
       <type name="none" c:type="void"/>
     </alias>
     <alias name="IntsetAlias" c:type="RegressIntsetAlias" introspectable="0">
-      <doc xml:space="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
+      <doc xml:space="preserve"
+           filename="regress.h"
+           line="1344">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
+      <source-position filename="regress.h" line="1350"/>
       <type name="Intset" c:type="RegressIntset"/>
     </alias>
     <alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
-      <doc xml:space="preserve">Typedef'd GPtrArray for some reason</doc>
+      <doc xml:space="preserve"
+           filename="regress.h"
+           line="1352">Typedef'd GPtrArray for some reason</doc>
+      <source-position filename="regress.h" line="1357"/>
       <type name="GLib.PtrArray" c:type="GPtrArray"/>
     </alias>
     <alias name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64">
+      <source-position filename="regress.h" line="528"/>
       <type name="guint64" c:type="guint64"/>
     </alias>
     <alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
-      <doc xml:space="preserve">Typedef'd va_list for additional reasons</doc>
+      <doc xml:space="preserve"
+           filename="regress.h"
+           line="1363">Typedef'd va_list for additional reasons</doc>
+      <source-position filename="regress.h" line="1368"/>
       <type name="va_list" c:type="va_list"/>
     </alias>
     <constant name="ANNOTATION_CALCULATED_DEFINE"
               value="100"
               c:type="REGRESS_ANNOTATION_CALCULATED_DEFINE">
+      <source-position filename="annotation.h" line="282"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="ANNOTATION_CALCULATED_LARGE"
               value="10000000000UL"
               c:type="REGRESS_ANNOTATION_CALCULATED_LARGE"
               version="1.4">
-      <doc xml:space="preserve">Constant to define a calculated large value</doc>
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="284">Constant to define a calculated large value</doc>
+      <source-position filename="annotation.h" line="291"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="ANNOTATION_CALCULATED_LARGE_DIV"
               value="1000000UL"
               c:type="REGRESS_ANNOTATION_CALCULATED_LARGE_DIV">
-      <doc xml:space="preserve">Constant to define a calculated large value</doc>
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="293">Constant to define a calculated large value</doc>
+      <source-position filename="annotation.h" line="298"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <enumeration name="ATestError"
                  c:type="RegressATestError"
                  glib:error-domain="regress-atest-error">
+      <source-position filename="regress.h" line="511"/>
       <member name="code0" value="0" c:identifier="REGRESS_ATEST_ERROR_CODE0">
       </member>
       <member name="code1" value="1" c:identifier="REGRESS_ATEST_ERROR_CODE1">
@@ -69,10 +92,12 @@ and/or use gtk-doc annotations.  -->
       </member>
     </enumeration>
     <record name="AnAnonymousUnion" c:type="RegressAnAnonymousUnion">
+      <source-position filename="regress.h" line="1480"/>
       <field name="x" writable="1">
         <type name="gint" c:type="int"/>
       </field>
       <union>
+        <source-position filename="regress.h" line="1479"/>
         <field name="a" writable="1">
           <array zero-terminated="0"
                  c:type="RegressLikeGnomeKeyringPasswordSchema"
@@ -89,43 +114,61 @@ and/or use gtk-doc annotations.  -->
       </union>
     </record>
     <bitfield name="AnnotationBitfield" c:type="RegressAnnotationBitfield">
+      <source-position filename="annotation.h" line="12"/>
       <member name="foo" value="1" c:identifier="ANN_FLAG_FOO">
       </member>
       <member name="bar" value="2" c:identifier="ANN_FLAG_BAR">
       </member>
     </bitfield>
     <callback name="AnnotationCallback" c:type="RegressAnnotationCallback">
-      <doc xml:space="preserve">This is a callback.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:space="preserve">array of ints</doc>
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="14">This is a callback.</doc>
+      <source-position filename="annotation.h" line="21"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="annotation.h"
+             line="19">array of ints</doc>
         <type name="gint" c:type="const gint*"/>
       </return-value>
       <parameters>
         <parameter name="in" transfer-ownership="none">
-          <doc xml:space="preserve">array of ints</doc>
+          <doc xml:space="preserve"
+               filename="annotation.h"
+               line="16">array of ints</doc>
           <type name="gint" c:type="const gint*"/>
         </parameter>
       </parameters>
     </callback>
     <record name="AnnotationFields" c:type="RegressAnnotationFields">
-      <doc xml:space="preserve">This is a struct for testing field documentation and annotations</doc>
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="246">This is a struct for testing field documentation and annotations</doc>
+      <source-position filename="annotation.h" line="259"/>
       <field name="field1" writable="1">
-        <doc xml:space="preserve">Some documentation</doc>
+        <doc xml:space="preserve"
+             filename="annotation.h"
+             line="248">Some documentation</doc>
         <type name="gint" c:type="int"/>
       </field>
       <field name="arr" writable="1">
-        <doc xml:space="preserve">an array of length @len</doc>
+        <doc xml:space="preserve"
+             filename="annotation.h"
+             line="249">an array of length @len</doc>
         <array length="2" zero-terminated="0" c:type="guchar*">
           <type name="guint8" c:type="guchar"/>
         </array>
       </field>
       <field name="len" writable="1">
-        <doc xml:space="preserve">the length of array</doc>
+        <doc xml:space="preserve"
+             filename="annotation.h"
+             line="250">the length of array</doc>
         <type name="gulong" c:type="gulong"/>
       </field>
     </record>
     <callback name="AnnotationForeachFunc"
               c:type="RegressAnnotationForeachFunc">
+      <source-position filename="annotation.h" line="49"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -147,16 +190,23 @@ and/or use gtk-doc annotations.  -->
     </callback>
     <callback name="AnnotationListCallback"
               c:type="RegressAnnotationListCallback">
-      <doc xml:space="preserve">This is a callback taking a list.</doc>
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="23">This is a callback taking a list.</doc>
+      <source-position filename="annotation.h" line="30"/>
       <return-value transfer-ownership="container">
-        <doc xml:space="preserve">list of strings</doc>
+        <doc xml:space="preserve"
+             filename="annotation.h"
+             line="28">list of strings</doc>
         <type name="GLib.List" c:type="GList*">
           <type name="utf8"/>
         </type>
       </return-value>
       <parameters>
         <parameter name="in" transfer-ownership="none">
-          <doc xml:space="preserve">list of strings</doc>
+          <doc xml:space="preserve"
+               filename="annotation.h"
+               line="25">list of strings</doc>
           <type name="GLib.List" c:type="GList*">
             <type name="utf8"/>
           </type>
@@ -164,8 +214,11 @@ and/or use gtk-doc annotations.  -->
       </parameters>
     </callback>
     <callback name="AnnotationNotifyFunc" c:type="RegressAnnotationNotifyFunc">
-      <doc xml:space="preserve">This is a callback with a 'closure' argument that is not named
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="32">This is a callback with a 'closure' argument that is not named
 'user_data' and hence has to be annotated.</doc>
+      <source-position filename="annotation.h" line="39"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -175,7 +228,9 @@ and/or use gtk-doc annotations.  -->
                    nullable="1"
                    allow-none="1"
                    closure="0">
-          <doc xml:space="preserve">The user data</doc>
+          <doc xml:space="preserve"
+               filename="annotation.h"
+               line="34">The user data</doc>
           <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
@@ -188,16 +243,24 @@ and/or use gtk-doc annotations.  -->
            glib:get-type="regress_annotation_object_get_type"
            glib:type-struct="AnnotationObjectClass">
       <attribute name="org.example.Test" value="cows"/>
-      <doc xml:space="preserve">This is an object used to test annotations.</doc>
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="41">This is an object used to test annotations.</doc>
+      <source-position filename="annotation.h" line="61"/>
       <method name="allow_none"
               c:identifier="regress_annotation_object_allow_none">
+        <source-position filename="annotation.h" line="77"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">%NULL always</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="568">%NULL always</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="565">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="somearg"
@@ -210,66 +273,93 @@ and/or use gtk-doc annotations.  -->
       </method>
       <method name="calleeowns"
               c:identifier="regress_annotation_object_calleeowns">
-        <doc xml:space="preserve">This is a test for out arguments; GObject defaults to transfer</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="292">This is a test for out arguments; GObject defaults to transfer</doc>
+        <source-position filename="annotation.h" line="100"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="299">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="294">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="toown"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="295">a #GObject</doc>
             <type name="GObject.Object" c:type="GObject**"/>
           </parameter>
         </parameters>
       </method>
       <method name="calleesowns"
               c:identifier="regress_annotation_object_calleesowns">
-        <doc xml:space="preserve">This is a test for out arguments, one transferred, other not</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="308">This is a test for out arguments, one transferred, other not</doc>
+        <source-position filename="annotation.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="316">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="310">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="toown1"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="311">a #GObject</doc>
             <type name="GObject.Object" c:type="GObject**"/>
           </parameter>
           <parameter name="toown2"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="312">a #GObject</doc>
             <type name="GObject.Object" c:type="GObject**"/>
           </parameter>
         </parameters>
       </method>
       <method name="compute_sum"
               c:identifier="regress_annotation_object_compute_sum">
-        <doc xml:space="preserve">Test taking a zero-terminated array</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="418">Test taking a zero-terminated array</doc>
+        <source-position filename="annotation.h" line="128"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="420">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="nums" transfer-ownership="none">
-            <doc xml:space="preserve">Sequence of numbers</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="421">Sequence of numbers</doc>
             <array zero-terminated="0" c:type="int*">
               <type name="gint" c:type="int"/>
             </array>
@@ -278,62 +368,87 @@ and/or use gtk-doc annotations.  -->
       </method>
       <method name="compute_sum_n"
               c:identifier="regress_annotation_object_compute_sum_n">
-        <doc xml:space="preserve">Test taking an array with length parameter</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="432">Test taking an array with length parameter</doc>
+        <source-position filename="annotation.h" line="133"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="434">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="nums" transfer-ownership="none">
-            <doc xml:space="preserve">Sequence of
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="435">Sequence of
   numbers that are zero-terminated</doc>
             <array length="1" zero-terminated="0" c:type="int*">
               <type name="gint" c:type="int"/>
             </array>
           </parameter>
           <parameter name="n_nums" transfer-ownership="none">
-            <doc xml:space="preserve">Length of number array</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="437">Length of number array</doc>
             <type name="gint" c:type="int"/>
           </parameter>
         </parameters>
       </method>
       <method name="compute_sum_nz"
               c:identifier="regress_annotation_object_compute_sum_nz">
-        <doc xml:space="preserve">Test taking a zero-terminated array with length parameter</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="449">Test taking a zero-terminated array with length parameter</doc>
+        <source-position filename="annotation.h" line="138"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="451">a #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="nums" transfer-ownership="none">
-            <doc xml:space="preserve">Sequence of numbers that
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="452">Sequence of numbers that
 are zero-terminated</doc>
             <array length="1" zero-terminated="1" c:type="int*">
               <type name="gint" c:type="int"/>
             </array>
           </parameter>
           <parameter name="n_nums" transfer-ownership="none">
-            <doc xml:space="preserve">Length of number array</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="454">Length of number array</doc>
             <type name="gint" c:type="int"/>
           </parameter>
         </parameters>
       </method>
       <method name="create_object"
               c:identifier="regress_annotation_object_create_object">
-        <doc xml:space="preserve">Test returning a caller-owned object</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="392">Test returning a caller-owned object</doc>
+        <source-position filename="annotation.h" line="74"/>
         <return-value transfer-ownership="full">
-          <doc xml:space="preserve">The object</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="398">The object</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="394">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
         </parameters>
@@ -343,13 +458,18 @@ are zero-terminated</doc>
               deprecated="1"
               deprecated-version="0.12">
         <doc-deprecated xml:space="preserve">Use regress_annotation_object_create_object() instead.</doc-deprecated>
+        <source-position filename="annotation.h" line="174"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">%NULL always</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="593">%NULL always</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="591">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
         </parameters>
@@ -357,6 +477,7 @@ are zero-terminated</doc>
       <method name="extra_annos"
               c:identifier="regress_annotation_object_extra_annos">
         <attribute name="org.foobar" value="testvalue"/>
+        <source-position filename="annotation.h" line="213"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -367,20 +488,27 @@ are zero-terminated</doc>
         </parameters>
       </method>
       <method name="foreach" c:identifier="regress_annotation_object_foreach">
-        <doc xml:space="preserve">Test taking a call-scoped callback</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="498">Test taking a call-scoped callback</doc>
+        <source-position filename="annotation.h" line="152"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="500">a #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="func"
                      transfer-ownership="none"
                      scope="call"
                      closure="1">
-            <doc xml:space="preserve">Callback to invoke</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="501">Callback to invoke</doc>
             <type name="AnnotationForeachFunc"
                   c:type="RegressAnnotationForeachFunc"/>
           </parameter>
@@ -388,17 +516,24 @@ are zero-terminated</doc>
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">Callback user data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="502">Callback user data</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
       <method name="get_hash"
               c:identifier="regress_annotation_object_get_hash">
-        <doc xml:space="preserve">This is a test for returning a hash table mapping strings to
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="345">This is a test for returning a hash table mapping strings to
 objects.</doc>
+        <source-position filename="annotation.h" line="112"/>
         <return-value transfer-ownership="full">
-          <doc xml:space="preserve">hash table</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="352">hash table</doc>
           <type name="GLib.HashTable" c:type="GHashTable*">
             <type name="utf8"/>
             <type name="GObject.Object"/>
@@ -406,124 +541,177 @@ objects.</doc>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="347">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_objects"
               c:identifier="regress_annotation_object_get_objects">
-        <doc xml:space="preserve">This is a test for returning a list of objects.
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="374">This is a test for returning a list of objects.
 The list itself should be freed, but not the internal objects,
 intentionally similar example to gtk_container_get_children</doc>
+        <source-position filename="annotation.h" line="119"/>
         <return-value transfer-ownership="container">
-          <doc xml:space="preserve">list of objects</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="382">list of objects</doc>
           <type name="GLib.SList" c:type="GSList*">
             <type name="AnnotationObject"/>
           </type>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="376">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_strings"
               c:identifier="regress_annotation_object_get_strings">
-        <doc xml:space="preserve">This is a test for returning a list of strings, where
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="327">This is a test for returning a list of strings, where
 each string needs to be freed.</doc>
+        <source-position filename="annotation.h" line="109"/>
         <return-value transfer-ownership="full">
-          <doc xml:space="preserve">list of strings</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="334">list of strings</doc>
           <type name="GLib.List" c:type="GList*">
             <type name="utf8"/>
           </type>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="329">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="hidden_self"
               c:identifier="regress_annotation_object_hidden_self">
+        <source-position filename="annotation.h" line="188"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="637">A #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="gpointer"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="in" c:identifier="regress_annotation_object_in">
-        <doc xml:space="preserve">This is a test for in arguments</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="228">This is a test for in arguments</doc>
+        <source-position filename="annotation.h" line="96"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="235">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="230">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="inarg" transfer-ownership="none">
-            <doc xml:space="preserve">This is an argument test</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="231">This is an argument test</doc>
             <type name="gint" c:type="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="inout" c:identifier="regress_annotation_object_inout">
-        <doc xml:space="preserve">This is a test for out arguments</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="244">This is a test for out arguments</doc>
+        <source-position filename="annotation.h" line="84"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="251">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="246">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="inoutarg"
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">This is an argument test</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="247">This is an argument test</doc>
             <type name="gint" c:type="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="inout2" c:identifier="regress_annotation_object_inout2">
-        <doc xml:space="preserve">This is a second test for out arguments</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="259">This is a second test for out arguments</doc>
+        <source-position filename="annotation.h" line="88"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="266">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="261">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="inoutarg"
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">This is an argument test</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="262">This is an argument test</doc>
             <type name="gint" c:type="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="inout3" c:identifier="regress_annotation_object_inout3">
-        <doc xml:space="preserve">This is a 3th test for out arguments</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="275">This is a 3th test for out arguments</doc>
+        <source-position filename="annotation.h" line="92"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="282">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="277">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="inoutarg"
@@ -532,78 +720,108 @@ each string needs to be freed.</doc>
                      transfer-ownership="full"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">This is an argument test</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="278">This is an argument test</doc>
             <type name="gint" c:type="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="method" c:identifier="regress_annotation_object_method">
+        <source-position filename="annotation.h" line="67"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="204">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="202">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="notrans" c:identifier="regress_annotation_object_notrans">
+        <source-position filename="annotation.h" line="81"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">An object, not referenced</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="580">An object, not referenced</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="578">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="out" c:identifier="regress_annotation_object_out">
-        <doc xml:space="preserve">This is a test for out arguments</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="212">This is a test for out arguments</doc>
+        <source-position filename="annotation.h" line="70"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="219">an int</doc>
           <type name="gint" c:type="gint"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="214">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="outarg"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">This is an argument test</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="215">This is an argument test</doc>
             <type name="gint" c:type="int*"/>
           </parameter>
         </parameters>
       </method>
       <method name="parse_args"
               c:identifier="regress_annotation_object_parse_args">
-        <doc xml:space="preserve">Test taking a zero-terminated array with length parameter</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="466">Test taking a zero-terminated array with length parameter</doc>
+        <source-position filename="annotation.h" line="143"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="468">a #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="argc"
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Length of the argument vector</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="469">Length of the argument vector</doc>
             <type name="gint" c:type="int*"/>
           </parameter>
           <parameter name="argv"
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Argument vector</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="470">Argument vector</doc>
             <array length="0" zero-terminated="1" c:type="char***">
               <type name="utf8" c:type="char**"/>
             </array>
@@ -612,103 +830,142 @@ each string needs to be freed.</doc>
       </method>
       <method name="set_data"
               c:identifier="regress_annotation_object_set_data">
-        <doc xml:space="preserve">Test taking a guchar * with a length.</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="514">Test taking a guchar * with a length.</doc>
+        <source-position filename="annotation.h" line="158"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="516">a #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="data" transfer-ownership="none">
-            <doc xml:space="preserve">The data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="517">The data</doc>
             <array length="1" zero-terminated="0" c:type="const guchar*">
               <type name="guint8" c:type="guchar"/>
             </array>
           </parameter>
           <parameter name="length" transfer-ownership="none">
-            <doc xml:space="preserve">Length of the data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="518">Length of the data</doc>
             <type name="gsize" c:type="gsize"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_data2"
               c:identifier="regress_annotation_object_set_data2">
-        <doc xml:space="preserve">Test taking a gchar * with a length.</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="530">Test taking a gchar * with a length.</doc>
+        <source-position filename="annotation.h" line="163"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="532">a #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="data" transfer-ownership="none">
-            <doc xml:space="preserve">The data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="533">The data</doc>
             <array length="1" zero-terminated="0" c:type="const gchar*">
               <type name="gint8"/>
             </array>
           </parameter>
           <parameter name="length" transfer-ownership="none">
-            <doc xml:space="preserve">Length of the data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="534">Length of the data</doc>
             <type name="gsize" c:type="gsize"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_data3"
               c:identifier="regress_annotation_object_set_data3">
-        <doc xml:space="preserve">Test taking a gchar * with a length, overriding the array element
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="546">Test taking a gchar * with a length, overriding the array element
 type.</doc>
+        <source-position filename="annotation.h" line="168"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="548">a #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="data" transfer-ownership="none">
-            <doc xml:space="preserve">The data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="549">The data</doc>
             <array length="1" zero-terminated="0" c:type="gpointer">
               <type name="guint8"/>
             </array>
           </parameter>
           <parameter name="length" transfer-ownership="none">
-            <doc xml:space="preserve">Length of the data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="550">Length of the data</doc>
             <type name="gsize" c:type="gsize"/>
           </parameter>
         </parameters>
       </method>
       <method name="string_out"
               c:identifier="regress_annotation_object_string_out">
-        <doc xml:space="preserve">Test returning a string as an out parameter</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">some boolean</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="482">Test returning a string as an out parameter</doc>
+        <source-position filename="annotation.h" line="148"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="489">some boolean</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="484">a #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="str_out"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">string return value</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="485">string return value</doc>
             <type name="utf8" c:type="char**"/>
           </parameter>
         </parameters>
       </method>
       <method name="use_buffer"
               c:identifier="regress_annotation_object_use_buffer">
+        <source-position filename="annotation.h" line="123"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="408">a #GObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="bytes" transfer-ownership="none">
@@ -720,18 +977,25 @@ type.</doc>
               c:identifier="regress_annotation_object_watch"
               shadowed-by="watch_full"
               introspectable="0">
-        <doc xml:space="preserve">This is here just for the sake of being overriden by its
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="602">This is here just for the sake of being overriden by its
 regress_annotation_object_watch_full().</doc>
+        <source-position filename="annotation.h" line="177"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="604">A #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="func" transfer-ownership="none" closure="1">
-            <doc xml:space="preserve">The callback</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="605">The callback</doc>
             <type name="AnnotationForeachFunc"
                   c:type="RegressAnnotationForeachFunc"/>
           </parameter>
@@ -739,7 +1003,9 @@ regress_annotation_object_watch_full().</doc>
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">The callback data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="606">The callback data</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
@@ -747,13 +1013,18 @@ regress_annotation_object_watch_full().</doc>
       <method name="watch_full"
               c:identifier="regress_annotation_object_watch_full"
               shadows="watch">
-        <doc xml:space="preserve">Test overriding via the "Rename To" annotation.</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="618">Test overriding via the "Rename To" annotation.</doc>
+        <source-position filename="annotation.h" line="182"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressAnnotationObject</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="620">A #RegressAnnotationObject</doc>
             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
           </instance-parameter>
           <parameter name="func"
@@ -761,7 +1032,9 @@ regress_annotation_object_watch_full().</doc>
                      scope="notified"
                      closure="1"
                      destroy="2">
-            <doc xml:space="preserve">The callback</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="621">The callback</doc>
             <type name="AnnotationForeachFunc"
                   c:type="RegressAnnotationForeachFunc"/>
           </parameter>
@@ -769,17 +1042,22 @@ regress_annotation_object_watch_full().</doc>
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">The callback data</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="622">The callback data</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
           <parameter name="destroy" transfer-ownership="none" scope="async">
-            <doc xml:space="preserve">Destroy notification</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="623">Destroy notification</doc>
             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
           </parameter>
         </parameters>
       </method>
       <method name="with_voidp"
               c:identifier="regress_annotation_object_with_voidp">
+        <source-position filename="annotation.h" line="115"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -791,7 +1069,9 @@ regress_annotation_object_watch_full().</doc>
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">Opaque pointer handle</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="366">Opaque pointer handle</doc>
             <type name="gpointer" c:type="void*"/>
           </parameter>
         </parameters>
@@ -809,7 +1089,9 @@ regress_annotation_object_watch_full().</doc>
                 writable="1"
                 construct="1"
                 transfer-ownership="none">
-        <doc xml:space="preserve">This is a property which is a string</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="152">This is a property which is a string</doc>
         <doc-deprecated xml:space="preserve">Use better-string-property instead</doc-deprecated>
         <type name="utf8" c:type="gchar*"/>
       </property>
@@ -818,7 +1100,9 @@ regress_annotation_object_watch_full().</doc>
                 writable="1"
                 construct="1"
                 transfer-ownership="none">
-        <doc xml:space="preserve">This is a property annotation intentionally indented with a mix
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="177">This is a property annotation intentionally indented with a mix
 of tabs and strings to test the tab handling capabilities of the scanner.</doc>
         <type name="utf8" c:type="gchar*"/>
       </property>
@@ -826,27 +1110,37 @@ of tabs and strings to test the tab handling capabilities of the scanner.</doc>
         <type name="GObject.Object" c:type="GObject"/>
       </field>
       <glib:signal name="attribute-signal" when="last">
-        <doc xml:space="preserve">This signal tests a signal with attributes.</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="130">This signal tests a signal with attributes.</doc>
         <return-value transfer-ownership="full">
           <attribute name="some.annotation.foo3" value="val3"/>
-          <doc xml:space="preserve">the return value</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="138">the return value</doc>
           <type name="utf8" c:type="gchar*"/>
         </return-value>
         <parameters>
           <parameter name="arg1" transfer-ownership="none">
             <attribute name="some.annotation.foo1" value="val1"/>
-            <doc xml:space="preserve">a value</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="133">a value</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
           <parameter name="arg2" transfer-ownership="none">
             <attribute name="some.annotation.foo2" value="val2"/>
-            <doc xml:space="preserve">another value</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="134">another value</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="doc-empty-arg-parsing" when="last">
-        <doc xml:space="preserve">This signal tests an empty document argument (@arg1)</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="114">This signal tests an empty document argument (@arg1)</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -860,14 +1154,18 @@ of tabs and strings to test the tab handling capabilities of the scanner.</doc>
         </parameters>
       </glib:signal>
       <glib:signal name="list-signal" when="last">
-        <doc xml:space="preserve">This is a signal which takes a list of strings, but it's not
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="97">This is a signal which takes a list of strings, but it's not
 known by GObject as it's only marked as G_TYPE_POINTER</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="list" transfer-ownership="container">
-            <doc xml:space="preserve">a list of strings</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="100">a list of strings</doc>
             <type name="GLib.List" c:type="gpointer">
               <type name="utf8"/>
             </type>
@@ -879,7 +1177,9 @@ known by GObject as it's only marked as G_TYPE_POINTER</doc>
                    version="1.0"
                    deprecated="1"
                    deprecated-version="1.2">
-        <doc xml:space="preserve">This is a signal which has a broken signal handler,
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="77">This is a signal which has a broken signal handler,
 it says it's pointer but it's actually a string.</doc>
         <doc-deprecated xml:space="preserve">Use other-signal instead</doc-deprecated>
         <return-value transfer-ownership="none">
@@ -887,7 +1187,9 @@ it says it's pointer but it's actually a string.</doc>
         </return-value>
         <parameters>
           <parameter name="string" transfer-ownership="none">
-            <doc xml:space="preserve">a string</doc>
+            <doc xml:space="preserve"
+                 filename="annotation.c"
+                 line="80">a string</doc>
             <type name="utf8" c:type="gpointer"/>
           </parameter>
         </parameters>
@@ -896,12 +1198,16 @@ it says it's pointer but it's actually a string.</doc>
     <record name="AnnotationObjectClass"
             c:type="RegressAnnotationObjectClass"
             glib:is-gtype-struct-for="AnnotationObject">
+      <source-position filename="annotation.h" line="61"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
     </record>
     <record name="AnnotationStruct" c:type="RegressAnnotationStruct">
-      <doc xml:space="preserve">This is a test of an array of object in an field of a struct.</doc>
+      <doc xml:space="preserve"
+           filename="annotation.h"
+           line="236">This is a test of an array of object in an field of a struct.</doc>
+      <source-position filename="annotation.h" line="244"/>
       <field name="objects" writable="1">
         <array zero-terminated="0"
                c:type="RegressAnnotationObject"
@@ -912,11 +1218,14 @@ it says it's pointer but it's actually a string.</doc>
     </record>
     <record name="AnonymousUnionAndStruct"
             c:type="RegressAnonymousUnionAndStruct">
+      <source-position filename="regress.h" line="1493"/>
       <field name="x" writable="1">
         <type name="gint" c:type="int"/>
       </field>
       <union>
+        <source-position filename="regress.h" line="1492"/>
         <record>
+          <source-position filename="regress.h" line="1489"/>
           <field name="a" writable="1">
             <type name="LikeGnomeKeyringPasswordSchema"
                   c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
@@ -933,40 +1242,48 @@ it says it's pointer but it's actually a string.</doc>
       </union>
     </record>
     <constant name="BOOL_CONSTANT" value="true" c:type="REGRESS_BOOL_CONSTANT">
+      <source-position filename="regress.h" line="524"/>
       <type name="gboolean" c:type="gboolean"/>
     </constant>
     <constant name="DOUBLE_CONSTANT"
               value="44.220000"
               c:type="REGRESS_DOUBLE_CONSTANT">
+      <source-position filename="regress.h" line="521"/>
       <type name="gdouble" c:type="gdouble"/>
     </constant>
     <constant name="FOO_DEFINE_SHOULD_BE_EXPOSED"
               value="should be exposed"
               c:type="REGRESS_FOO_DEFINE_SHOULD_BE_EXPOSED">
+      <source-position filename="foo.h" line="12"/>
       <type name="utf8" c:type="gchar*"/>
     </constant>
     <constant name="FOO_FLAGS_SECOND_AND_THIRD"
               value="6"
               c:type="REGRESS_FOO_FLAGS_SECOND_AND_THIRD">
+      <source-position filename="foo.h" line="249"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="FOO_PIE_IS_TASTY"
               value="3.141590"
               c:type="REGRESS_FOO_PIE_IS_TASTY">
+      <source-position filename="foo.h" line="14"/>
       <type name="gdouble" c:type="gdouble"/>
     </constant>
     <constant name="FOO_SUCCESS_INT"
               value="4408"
               c:type="REGRESS_FOO_SUCCESS_INT">
+      <source-position filename="foo.h" line="10"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <enumeration name="FooASingle" c:type="RegressFooASingle">
+      <source-position filename="foo.h" line="534"/>
       <member name="foo_some_single_enum"
               value="0"
               c:identifier="REGRESS_FOO_SOME_SINGLE_ENUM">
       </member>
     </enumeration>
     <enumeration name="FooAddressType" c:type="RegressFooAddressType">
+      <source-position filename="foo.h" line="281"/>
       <member name="invalid"
               value="0"
               c:identifier="REGRESS_FOO_ADDRESS_INVALID">
@@ -981,6 +1298,7 @@ it says it's pointer but it's actually a string.</doc>
             glib:type-name="RegressFooBRect"
             glib:get-type="regress_foo_brect_get_type"
             c:symbol-prefix="foo_brect">
+      <source-position filename="foo.h" line="393"/>
       <field name="x" writable="1">
         <type name="gdouble" c:type="double"/>
       </field>
@@ -988,6 +1306,7 @@ it says it's pointer but it's actually a string.</doc>
         <type name="gdouble" c:type="double"/>
       </field>
       <constructor name="new" c:identifier="regress_foo_brect_new">
+        <source-position filename="foo.h" line="401"/>
         <return-value transfer-ownership="full">
           <type name="FooBRect" c:type="RegressFooBRect*"/>
         </return-value>
@@ -1001,6 +1320,7 @@ it says it's pointer but it's actually a string.</doc>
         </parameters>
       </constructor>
       <method name="add" c:identifier="regress_foo_brect_add">
+        <source-position filename="foo.h" line="405"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1019,6 +1339,7 @@ it says it's pointer but it's actually a string.</doc>
            glib:type-name="RegressFooBUnion"
            glib:get-type="regress_foo_bunion_get_type"
            c:symbol-prefix="foo_bunion">
+      <source-position filename="foo.h" line="414"/>
       <field name="type" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -1029,12 +1350,14 @@ it says it's pointer but it's actually a string.</doc>
         <type name="FooBRect" c:type="RegressFooBRect*"/>
       </field>
       <constructor name="new" c:identifier="regress_foo_bunion_new">
+        <source-position filename="foo.h" line="440"/>
         <return-value transfer-ownership="full">
           <type name="FooBUnion" c:type="RegressFooBUnion*"/>
         </return-value>
       </constructor>
       <method name="get_contained_type"
               c:identifier="regress_foo_bunion_get_contained_type">
+        <source-position filename="foo.h" line="448"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -1050,12 +1373,15 @@ it says it's pointer but it's actually a string.</doc>
             glib:type-name="RegressFooBoxed"
             glib:get-type="regress_foo_boxed_get_type"
             c:symbol-prefix="foo_boxed">
+      <source-position filename="foo.h" line="283"/>
       <constructor name="new" c:identifier="regress_foo_boxed_new">
+        <source-position filename="foo.h" line="290"/>
         <return-value transfer-ownership="full">
           <type name="FooBoxed" c:type="RegressFooBoxed*"/>
         </return-value>
       </constructor>
       <method name="method" c:identifier="regress_foo_boxed_method">
+        <source-position filename="foo.h" line="293"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1073,8 +1399,10 @@ it says it's pointer but it's actually a string.</doc>
            glib:type-name="RegressFooBuffer"
            glib:get-type="regress_foo_buffer_get_type"
            glib:type-struct="FooBufferClass">
+      <source-position filename="foo.h" line="52"/>
       <implements name="FooInterface"/>
       <method name="some_method" c:identifier="regress_foo_buffer_some_method">
+        <source-position filename="foo.h" line="213"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1089,8 +1417,10 @@ it says it's pointer but it's actually a string.</doc>
             c:type="RegressFooBufferClass"
             disguised="1"
             glib:is-gtype-struct-for="FooBuffer">
+      <source-position filename="foo.h" line="52"/>
     </record>
     <callback name="FooCallback" c:type="RegressFooCallback">
+      <source-position filename="foo.h" line="317"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
@@ -1114,7 +1444,9 @@ it says it's pointer but it's actually a string.</doc>
             glib:type-name="RegressFooDBusData"
             glib:get-type="regress_foo_dbus_data_get_type"
             c:symbol-prefix="foo_dbus_data">
+      <source-position filename="foo.h" line="296"/>
       <method name="method" c:identifier="regress_foo_dbus_data_method">
+        <source-position filename="foo.h" line="302"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1126,6 +1458,7 @@ it says it's pointer but it's actually a string.</doc>
       </method>
     </record>
     <enumeration name="FooEnumFullname" c:type="RegressFooEnumFullname">
+      <source-position filename="foo.h" line="274"/>
       <member name="one"
               value="1"
               c:identifier="REGRESS_FOO_ENUM_FULLNAME_ONE">
@@ -1140,6 +1473,7 @@ it says it's pointer but it's actually a string.</doc>
       </member>
     </enumeration>
     <enumeration name="FooEnumNoType" c:type="RegressFooEnumNoType">
+      <source-position filename="foo.h" line="260"/>
       <member name="un" value="1" c:identifier="REGRESS_FOO_ENUM_UN">
       </member>
       <member name="deux" value="2" c:identifier="REGRESS_FOO_ENUM_DEUX">
@@ -1169,6 +1503,7 @@ it says it's pointer but it's actually a string.</doc>
               glib:nick="delta">
       </member>
       <function name="method" c:identifier="regress_foo_enum_type_method">
+        <source-position filename="foo.h" line="236"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -1179,6 +1514,7 @@ it says it's pointer but it's actually a string.</doc>
         </parameters>
       </function>
       <function name="returnv" c:identifier="regress_foo_enum_type_returnv">
+        <source-position filename="foo.h" line="240"/>
         <return-value transfer-ownership="none">
           <type name="FooEnumType" c:type="RegressFooEnumType"/>
         </return-value>
@@ -1216,6 +1552,7 @@ it says it's pointer but it's actually a string.</doc>
       </function>
     </enumeration>
     <union name="FooEvent" c:type="RegressFooEvent">
+      <source-position filename="foo.h" line="381"/>
       <field name="type" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -1227,11 +1564,13 @@ it says it's pointer but it's actually a string.</doc>
       </field>
     </union>
     <record name="FooEventAny" c:type="RegressFooEventAny">
+      <source-position filename="foo.h" line="368"/>
       <field name="send_event" writable="1">
         <type name="gint8" c:type="gint8"/>
       </field>
     </record>
     <record name="FooEventExpose" c:type="RegressFooEventExpose">
+      <source-position filename="foo.h" line="374"/>
       <field name="send_event" writable="1">
         <type name="gint8" c:type="gint8"/>
       </field>
@@ -1240,6 +1579,7 @@ it says it's pointer but it's actually a string.</doc>
       </field>
     </record>
     <bitfield name="FooFlagsNoType" c:type="RegressFooFlagsNoType">
+      <source-position filename="foo.h" line="267"/>
       <member name="ett" value="1" c:identifier="REGRESS_FOO_FLAGS_ETT">
       </member>
       <member name="tva" value="2" c:identifier="REGRESS_FOO_FLAGS_TVA">
@@ -1270,15 +1610,18 @@ it says it's pointer but it's actually a string.</doc>
     <record name="FooForeignStruct"
             c:type="RegressFooForeignStruct"
             foreign="1">
+      <source-position filename="foo.h" line="563"/>
       <field name="regress_foo" writable="1">
         <type name="gint" c:type="int"/>
       </field>
       <constructor name="new" c:identifier="regress_foo_foreign_struct_new">
+        <source-position filename="foo.h" line="567"/>
         <return-value transfer-ownership="full">
           <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
         </return-value>
       </constructor>
       <method name="copy" c:identifier="regress_foo_foreign_struct_copy">
+        <source-position filename="foo.h" line="570"/>
         <return-value transfer-ownership="full">
           <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
         </return-value>
@@ -1295,8 +1638,10 @@ it says it's pointer but it's actually a string.</doc>
                glib:type-name="RegressFooInterface"
                glib:get-type="regress_foo_interface_get_type"
                glib:type-struct="FooInterfaceIface">
+      <source-position filename="foo.h" line="61"/>
       <function name="static_method"
                 c:identifier="regress_foo_interface_static_method">
+        <source-position filename="foo.h" line="73"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1307,6 +1652,7 @@ it says it's pointer but it's actually a string.</doc>
         </parameters>
       </function>
       <virtual-method name="do_regress_foo" invoker="do_regress_foo">
+        <source-position filename="foo.h" line="60"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1321,6 +1667,7 @@ it says it's pointer but it's actually a string.</doc>
       </virtual-method>
       <method name="do_regress_foo"
               c:identifier="regress_foo_interface_do_regress_foo">
+        <source-position filename="foo.h" line="69"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1337,11 +1684,13 @@ it says it's pointer but it's actually a string.</doc>
     <record name="FooInterfaceIface"
             c:type="RegressFooInterfaceIface"
             glib:is-gtype-struct-for="FooInterface">
+      <source-position filename="foo.h" line="61"/>
       <field name="parent_iface">
         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
       </field>
       <field name="do_regress_foo">
         <callback name="do_regress_foo">
+          <source-position filename="foo.h" line="60"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1363,20 +1712,24 @@ it says it's pointer but it's actually a string.</doc>
            glib:type-name="RegressFooObject"
            glib:get-type="regress_foo_object_get_type"
            glib:type-struct="FooObjectClass">
+      <source-position filename="foo.h" line="121"/>
       <implements name="FooInterface"/>
       <constructor name="new" c:identifier="regress_foo_object_new">
+        <source-position filename="foo.h" line="132"/>
         <return-value transfer-ownership="full">
           <type name="FooObject" c:type="RegressFooObject*"/>
         </return-value>
       </constructor>
       <constructor name="new_as_super"
                    c:identifier="regress_foo_object_new_as_super">
+        <source-position filename="foo.h" line="138"/>
         <return-value transfer-ownership="full">
           <type name="GObject.Object" c:type="GObject*"/>
         </return-value>
       </constructor>
       <function name="a_global_method"
                 c:identifier="regress_foo_object_a_global_method">
+        <source-position filename="foo.h" line="577"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1388,40 +1741,50 @@ it says it's pointer but it's actually a string.</doc>
       </function>
       <function name="get_default"
                 c:identifier="regress_foo_object_get_default">
-        <doc xml:space="preserve">This function is intended to match clutter_stage_get_default which
+        <doc xml:space="preserve"
+             filename="foo.c"
+             line="327">This function is intended to match clutter_stage_get_default which
 uses a C sugar return type.</doc>
+        <source-position filename="foo.h" line="205"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">The global #RegressFooSubobject</doc>
+          <doc xml:space="preserve"
+               filename="foo.c"
+               line="333">The global #RegressFooSubobject</doc>
           <type name="FooSubobject" c:type="RegressFooObject*"/>
         </return-value>
       </function>
       <function name="static_meth"
                 c:identifier="regress_foo_object_static_meth">
+        <source-position filename="foo.h" line="180"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
       </function>
       <virtual-method name="read_fn" invoker="read">
-        <doc xml:space="preserve">Read some stuff.</doc>
+        <doc xml:space="preserve"
+             filename="foo.c"
+             line="288">Read some stuff.</doc>
+        <source-position filename="foo.h" line="117"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">obj</doc>
+            <doc xml:space="preserve" filename="foo.c" line="290">obj</doc>
             <type name="FooObject" c:type="RegressFooObject*"/>
           </instance-parameter>
           <parameter name="offset" transfer-ownership="none">
-            <doc xml:space="preserve">offset</doc>
+            <doc xml:space="preserve" filename="foo.c" line="291">offset</doc>
             <type name="gint" c:type="int"/>
           </parameter>
           <parameter name="length" transfer-ownership="none">
-            <doc xml:space="preserve">length</doc>
+            <doc xml:space="preserve" filename="foo.c" line="292">length</doc>
             <type name="gint" c:type="int"/>
           </parameter>
         </parameters>
       </virtual-method>
       <virtual-method name="virtual_method" invoker="virtual_method">
+        <source-position filename="foo.h" line="114"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
@@ -1436,7 +1799,10 @@ uses a C sugar return type.</doc>
       </virtual-method>
       <method name="append_new_stack_layer"
               c:identifier="regress_foo_object_append_new_stack_layer">
-        <doc xml:space="preserve">This shouldn't be scanned as a constructor.</doc>
+        <doc xml:space="preserve"
+             filename="foo.c"
+             line="776">This shouldn't be scanned as a constructor.</doc>
+        <source-position filename="foo.h" line="581"/>
         <return-value transfer-ownership="none">
           <type name="FooOtherObject" c:type="RegressFooOtherObject*"/>
         </return-value>
@@ -1450,6 +1816,7 @@ uses a C sugar return type.</doc>
         </parameters>
       </method>
       <method name="dup_name" c:identifier="regress_foo_object_dup_name">
+        <source-position filename="foo.h" line="164"/>
         <return-value transfer-ownership="full">
           <type name="utf8" c:type="char*"/>
         </return-value>
@@ -1461,18 +1828,24 @@ uses a C sugar return type.</doc>
       </method>
       <method name="external_type"
               c:identifier="regress_foo_object_external_type">
+        <source-position filename="foo.h" line="135"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">%NULL always</doc>
+          <doc xml:space="preserve"
+               filename="foo.c"
+               line="237">%NULL always</doc>
           <type name="Utility.Object" c:type="UtilityObject*"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressFooObject</doc>
+            <doc xml:space="preserve"
+                 filename="foo.c"
+                 line="235">a #RegressFooObject</doc>
             <type name="FooObject" c:type="RegressFooObject*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="get_name" c:identifier="regress_foo_object_get_name">
+        <source-position filename="foo.h" line="160"/>
         <return-value transfer-ownership="none">
           <type name="utf8" c:type="const char*"/>
         </return-value>
@@ -1484,6 +1857,7 @@ uses a C sugar return type.</doc>
       </method>
       <method name="handle_glyph"
               c:identifier="regress_foo_object_handle_glyph">
+        <source-position filename="foo.h" line="168"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1498,6 +1872,7 @@ uses a C sugar return type.</doc>
       </method>
       <method name="is_it_time_yet"
               c:identifier="regress_foo_object_is_it_time_yet">
+        <source-position filename="foo.h" line="156"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1513,7 +1888,10 @@ uses a C sugar return type.</doc>
       <method name="new_cookie"
               c:identifier="regress_foo_object_new_cookie"
               introspectable="0">
-        <doc xml:space="preserve">Not sure why this test is here...</doc>
+        <doc xml:space="preserve"
+             filename="foo.c"
+             line="263">Not sure why this test is here...</doc>
+        <source-position filename="foo.h" line="152"/>
         <return-value transfer-ownership="none">
           <type name="FooObjectCookie" c:type="RegressFooObjectCookie"/>
         </return-value>
@@ -1527,21 +1905,24 @@ uses a C sugar return type.</doc>
         </parameters>
       </method>
       <method name="read" c:identifier="regress_foo_object_read">
-        <doc xml:space="preserve">Read some stuff.</doc>
+        <doc xml:space="preserve"
+             filename="foo.c"
+             line="288">Read some stuff.</doc>
+        <source-position filename="foo.h" line="176"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">obj</doc>
+            <doc xml:space="preserve" filename="foo.c" line="290">obj</doc>
             <type name="FooObject" c:type="RegressFooObject*"/>
           </instance-parameter>
           <parameter name="offset" transfer-ownership="none">
-            <doc xml:space="preserve">offset</doc>
+            <doc xml:space="preserve" filename="foo.c" line="291">offset</doc>
             <type name="gint" c:type="int"/>
           </parameter>
           <parameter name="length" transfer-ownership="none">
-            <doc xml:space="preserve">length</doc>
+            <doc xml:space="preserve" filename="foo.c" line="292">length</doc>
             <type name="gint" c:type="int"/>
           </parameter>
         </parameters>
@@ -1549,13 +1930,16 @@ uses a C sugar return type.</doc>
       <method name="skipped_method"
               c:identifier="regress_foo_object_skipped_method"
               introspectable="0">
-        <doc xml:space="preserve">This is only useful from C.</doc>
+        <doc xml:space="preserve"
+             filename="foo.c"
+             line="302">This is only useful from C.</doc>
+        <source-position filename="foo.h" line="184"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="object" transfer-ownership="none">
-            <doc xml:space="preserve">obj</doc>
+            <doc xml:space="preserve" filename="foo.c" line="304">obj</doc>
             <type name="FooObject" c:type="RegressFooObject*"/>
           </instance-parameter>
         </parameters>
@@ -1563,6 +1947,7 @@ uses a C sugar return type.</doc>
       <method name="take_all"
               c:identifier="regress_foo_object_take_all"
               introspectable="0">
+        <source-position filename="foo.h" line="146"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1579,6 +1964,7 @@ uses a C sugar return type.</doc>
         </parameters>
       </method>
       <method name="various" c:identifier="regress_foo_object_various">
+        <source-position filename="foo.h" line="142"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1599,6 +1985,7 @@ uses a C sugar return type.</doc>
       </method>
       <method name="virtual_method"
               c:identifier="regress_foo_object_virtual_method">
+        <source-position filename="foo.h" line="172"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
@@ -1650,11 +2037,13 @@ uses a C sugar return type.</doc>
     <record name="FooObjectClass"
             c:type="RegressFooObjectClass"
             glib:is-gtype-struct-for="FooObject">
+      <source-position filename="foo.h" line="121"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
       <field name="virtual_method">
         <callback name="virtual_method">
+          <source-position filename="foo.h" line="114"/>
           <return-value transfer-ownership="none">
             <type name="gboolean" c:type="gboolean"/>
           </return-value>
@@ -1670,20 +2059,25 @@ uses a C sugar return type.</doc>
       </field>
       <field name="read_fn">
         <callback name="read_fn">
+          <source-position filename="foo.h" line="117"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
           <parameters>
             <parameter name="object" transfer-ownership="none">
-              <doc xml:space="preserve">obj</doc>
+              <doc xml:space="preserve" filename="foo.c" line="290">obj</doc>
               <type name="FooObject" c:type="RegressFooObject*"/>
             </parameter>
             <parameter name="offset" transfer-ownership="none">
-              <doc xml:space="preserve">offset</doc>
+              <doc xml:space="preserve"
+                   filename="foo.c"
+                   line="291">offset</doc>
               <type name="gint" c:type="int"/>
             </parameter>
             <parameter name="length" transfer-ownership="none">
-              <doc xml:space="preserve">length</doc>
+              <doc xml:space="preserve"
+                   filename="foo.c"
+                   line="292">length</doc>
               <type name="gint" c:type="int"/>
             </parameter>
           </parameters>
@@ -1702,13 +2096,16 @@ uses a C sugar return type.</doc>
            glib:type-name="RegressFooOtherObject"
            glib:get-type="regress_foo_other_object_get_type"
            glib:type-struct="FooOtherObjectClass">
+      <source-position filename="foo.h" line="54"/>
     </class>
     <record name="FooOtherObjectClass"
             c:type="RegressFooOtherObjectClass"
             disguised="1"
             glib:is-gtype-struct-for="FooOtherObject">
+      <source-position filename="foo.h" line="54"/>
     </record>
     <record name="FooRectangle" c:type="RegressFooRectangle">
+      <source-position filename="foo.h" line="341"/>
       <field name="x" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -1722,6 +2119,7 @@ uses a C sugar return type.</doc>
         <type name="gint" c:type="gint"/>
       </field>
       <method name="add" c:identifier="regress_foo_rectangle_add">
+        <source-position filename="foo.h" line="353"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1730,11 +2128,15 @@ uses a C sugar return type.</doc>
                               direction="inout"
                               caller-allocates="0"
                               transfer-ownership="full">
-            <doc xml:space="preserve">add to this rect</doc>
+            <doc xml:space="preserve"
+                 filename="foo.c"
+                 line="556">add to this rect</doc>
             <type name="FooRectangle" c:type="RegressFooRectangle*"/>
           </instance-parameter>
           <parameter name="r2" transfer-ownership="none">
-            <doc xml:space="preserve">source rectangle</doc>
+            <doc xml:space="preserve"
+                 filename="foo.c"
+                 line="557">source rectangle</doc>
             <type name="FooRectangle" c:type="const RegressFooRectangle*"/>
           </parameter>
         </parameters>
@@ -1742,8 +2144,11 @@ uses a C sugar return type.</doc>
       <function name="new"
                 c:identifier="regress_foo_rectangle_new"
                 introspectable="0">
-        <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
+        <doc xml:space="preserve"
+             filename="foo.c"
+             line="537">This is a C convenience constructor; we have to (skip)
 it because it's not a boxed type.</doc>
+        <source-position filename="foo.h" line="357"/>
         <return-value>
           <type name="FooRectangle" c:type="RegressFooRectangle*"/>
         </return-value>
@@ -1766,16 +2171,24 @@ it because it's not a boxed type.</doc>
     <enumeration name="FooSkippable"
                  introspectable="0"
                  c:type="RegressFooSkippable">
-      <doc xml:space="preserve">Some type that is only interesting from C and should not be
+      <doc xml:space="preserve"
+           filename="foo.h"
+           line="544">Some type that is only interesting from C and should not be
 exposed to language bindings.</doc>
+      <source-position filename="foo.h" line="555"/>
       <member name="one" value="0" c:identifier="REGRESS_FOO_SKIPPABLE_ONE">
-        <doc xml:space="preserve">a skippable enum value</doc>
+        <doc xml:space="preserve"
+             filename="foo.h"
+             line="546">a skippable enum value</doc>
       </member>
       <member name="two" value="1" c:identifier="REGRESS_FOO_SKIPPABLE_TWO">
-        <doc xml:space="preserve">another skippable enum value</doc>
+        <doc xml:space="preserve"
+             filename="foo.h"
+             line="547">another skippable enum value</doc>
       </member>
     </enumeration>
     <enumeration name="FooStackLayer" c:type="RegressFooStackLayer">
+      <source-position filename="foo.h" line="529"/>
       <member name="desktop"
               value="0"
               c:identifier="REGRESS_FOO_LAYER_DESKTOP">
@@ -1804,6 +2217,7 @@ exposed to language bindings.</doc>
       </member>
     </enumeration>
     <record name="FooStruct" c:type="RegressFooStruct">
+      <source-position filename="foo.h" line="331"/>
       <field name="priv" writable="1">
         <type name="FooStructPrivate" c:type="RegressFooStructPrivate*"/>
       </field>
@@ -1814,6 +2228,7 @@ exposed to language bindings.</doc>
     <record name="FooStructPrivate"
             c:type="RegressFooStructPrivate"
             disguised="1">
+      <source-position filename="foo.h" line="325"/>
     </record>
     <interface name="FooSubInterface"
                c:symbol-prefix="foo_sub_interface"
@@ -1821,8 +2236,10 @@ exposed to language bindings.</doc>
                glib:type-name="RegressFooSubInterface"
                glib:get-type="regress_foo_sub_interface_get_type"
                glib:type-struct="FooSubInterfaceIface">
+      <source-position filename="foo.h" line="88"/>
       <prerequisite name="FooInterface"/>
       <virtual-method name="destroy_event">
+        <source-position filename="foo.h" line="81"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1833,6 +2250,7 @@ exposed to language bindings.</doc>
         </parameters>
       </virtual-method>
       <virtual-method name="do_bar" invoker="do_bar">
+        <source-position filename="foo.h" line="85"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1843,6 +2261,7 @@ exposed to language bindings.</doc>
         </parameters>
       </virtual-method>
       <virtual-method name="do_baz" invoker="do_baz">
+        <source-position filename="foo.h" line="87"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1866,6 +2285,7 @@ exposed to language bindings.</doc>
         </parameters>
       </virtual-method>
       <method name="do_bar" c:identifier="regress_foo_sub_interface_do_bar">
+        <source-position filename="foo.h" line="96"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1876,6 +2296,7 @@ exposed to language bindings.</doc>
         </parameters>
       </method>
       <method name="do_baz" c:identifier="regress_foo_sub_interface_do_baz">
+        <source-position filename="foo.h" line="99"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -1906,11 +2327,13 @@ exposed to language bindings.</doc>
     <record name="FooSubInterfaceIface"
             c:type="RegressFooSubInterfaceIface"
             glib:is-gtype-struct-for="FooSubInterface">
+      <source-position filename="foo.h" line="88"/>
       <field name="parent_iface">
         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
       </field>
       <field name="destroy_event">
         <callback name="destroy_event">
+          <source-position filename="foo.h" line="81"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1923,6 +2346,7 @@ exposed to language bindings.</doc>
       </field>
       <field name="do_bar">
         <callback name="do_bar">
+          <source-position filename="foo.h" line="85"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1935,6 +2359,7 @@ exposed to language bindings.</doc>
       </field>
       <field name="do_baz">
         <callback name="do_baz">
+          <source-position filename="foo.h" line="87"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1967,8 +2392,10 @@ exposed to language bindings.</doc>
            glib:type-name="RegressFooSubobject"
            glib:get-type="regress_foo_subobject_get_type"
            glib:type-struct="FooSubobjectClass">
+      <source-position filename="foo.h" line="194"/>
       <implements name="FooInterface"/>
       <constructor name="new" c:identifier="regress_foo_subobject_new">
+        <source-position filename="foo.h" line="201"/>
         <return-value transfer-ownership="full">
           <type name="FooSubobject" c:type="RegressFooSubobject*"/>
         </return-value>
@@ -1980,11 +2407,13 @@ exposed to language bindings.</doc>
     <record name="FooSubobjectClass"
             c:type="RegressFooSubobjectClass"
             glib:is-gtype-struct-for="FooSubobject">
+      <source-position filename="foo.h" line="194"/>
       <field name="parent_class">
         <type name="FooObjectClass" c:type="RegressFooObjectClass"/>
       </field>
     </record>
     <record name="FooThingWithArray" c:type="RegressFooThingWithArray">
+      <source-position filename="foo.h" line="436"/>
       <field name="x" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -2001,11 +2430,13 @@ exposed to language bindings.</doc>
       </field>
     </record>
     <union name="FooUnion" c:type="RegressFooUnion">
+      <source-position filename="foo.h" line="421"/>
       <field name="regress_foo" writable="1">
         <type name="gint" c:type="int"/>
       </field>
     </union>
     <record name="FooUtilityStruct" c:type="RegressFooUtilityStruct">
+      <source-position filename="foo.h" line="427"/>
       <field name="bar" writable="1">
         <type name="Utility.Struct" c:type="UtilityStruct"/>
       </field>
@@ -2013,6 +2444,7 @@ exposed to language bindings.</doc>
     <callback name="FooVarargsCallback"
               c:type="RegressFooVarargsCallback"
               introspectable="0">
+      <source-position filename="foo.h" line="482"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -2028,41 +2460,52 @@ exposed to language bindings.</doc>
     <constant name="GI_SCANNER_ELSE"
               value="3"
               c:type="REGRESS_GI_SCANNER_ELSE">
+      <source-position filename="regress.h" line="1457"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="GI_SCANNER_IFDEF"
               value="3"
               c:type="REGRESS_GI_SCANNER_IFDEF">
+      <source-position filename="regress.h" line="1461"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="GUINT64_CONSTANT"
               value="18446744073709551615"
               c:type="REGRESS_GUINT64_CONSTANT">
+      <source-position filename="regress.h" line="526"/>
       <type name="guint64" c:type="guint64"/>
     </constant>
     <constant name="GUINT64_CONSTANTA"
               value="18446744073709551615"
               c:type="REGRESS_GUINT64_CONSTANTA">
+      <source-position filename="regress.h" line="529"/>
       <type name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64"/>
     </constant>
     <constant name="G_GINT64_CONSTANT"
               value="1000"
               c:type="REGRESS_G_GINT64_CONSTANT">
+      <source-position filename="regress.h" line="525"/>
       <type name="gint64" c:type="gint64"/>
     </constant>
     <constant name="INT_CONSTANT" value="4422" c:type="REGRESS_INT_CONSTANT">
+      <source-position filename="regress.h" line="520"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <record name="Intset" c:type="RegressIntset" disguised="1">
-      <doc xml:space="preserve">Like telepathy-glib's TpIntset.</doc>
+      <doc xml:space="preserve"
+           filename="regress.h"
+           line="1336">Like telepathy-glib's TpIntset.</doc>
+      <source-position filename="regress.h" line="1342"/>
     </record>
     <constant name="LONG_STRING_CONSTANT"
               value="TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL,HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO,AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL,POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF,PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
               c:type="REGRESS_LONG_STRING_CONSTANT">
+      <source-position filename="regress.h" line="1428"/>
       <type name="utf8" c:type="gchar*"/>
     </constant>
     <record name="LikeGnomeKeyringPasswordSchema"
             c:type="RegressLikeGnomeKeyringPasswordSchema">
+      <source-position filename="regress.h" line="1447"/>
       <field name="dummy" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -2076,6 +2519,7 @@ exposed to language bindings.</doc>
       </field>
     </record>
     <record name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem">
+      <source-position filename="regress.h" line="1414"/>
       <field name="name" writable="1">
         <array zero-terminated="0" c:type="gchar" fixed-size="32">
           <type name="gchar" c:type="gchar"/>
@@ -2083,6 +2527,7 @@ exposed to language bindings.</doc>
       </field>
       <method name="set_name"
               c:identifier="regress_like_xkl_config_item_set_name">
+        <source-position filename="regress.h" line="1418"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2099,33 +2544,41 @@ exposed to language bindings.</doc>
     <constant name="MAXUINT64"
               value="18446744073709551615"
               c:type="REGRESS_MAXUINT64">
+      <source-position filename="regress.h" line="1451"/>
       <type name="guint64" c:type="guint64"/>
     </constant>
     <constant name="MININT64"
               value="-9223372036854775808"
               c:type="REGRESS_MININT64">
+      <source-position filename="regress.h" line="1450"/>
       <type name="gint64" c:type="gint64"/>
     </constant>
     <constant name="Mixed_Case_Constant"
               value="4423"
               c:type="REGRESS_Mixed_Case_Constant">
+      <source-position filename="regress.h" line="523"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="NEGATIVE_INT_CONSTANT"
               value="-42"
               c:type="REGRESS_NEGATIVE_INT_CONSTANT">
+      <source-position filename="regress.h" line="519"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="STRING_CONSTANT"
               value="Some String"
               c:type="REGRESS_STRING_CONSTANT">
+      <source-position filename="regress.h" line="522"/>
       <type name="utf8" c:type="gchar*"/>
     </constant>
     <record name="SkippedStructure"
             c:type="RegressSkippedStructure"
             introspectable="0">
-      <doc xml:space="preserve">This should be skipped, and moreover, all function which
+      <doc xml:space="preserve"
+           filename="regress.h"
+           line="1318">This should be skipped, and moreover, all function which
 use it should be.</doc>
+      <source-position filename="regress.h" line="1328"/>
       <field name="x" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -2164,6 +2617,7 @@ use it should be.</doc>
             glib:type-name="RegressTestBoxed"
             glib:get-type="regress_test_boxed_get_type"
             c:symbol-prefix="test_boxed">
+      <source-position filename="regress.h" line="673"/>
       <field name="some_int8" writable="1">
         <type name="gint8" c:type="gint8"/>
       </field>
@@ -2174,12 +2628,14 @@ use it should be.</doc>
         <type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
       </field>
       <constructor name="new" c:identifier="regress_test_boxed_new">
+        <source-position filename="regress.h" line="679"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
         </return-value>
       </constructor>
       <constructor name="new_alternative_constructor1"
                    c:identifier="regress_test_boxed_new_alternative_constructor1">
+        <source-position filename="regress.h" line="682"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
         </return-value>
@@ -2191,6 +2647,7 @@ use it should be.</doc>
       </constructor>
       <constructor name="new_alternative_constructor2"
                    c:identifier="regress_test_boxed_new_alternative_constructor2">
+        <source-position filename="regress.h" line="685"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
         </return-value>
@@ -2205,6 +2662,7 @@ use it should be.</doc>
       </constructor>
       <constructor name="new_alternative_constructor3"
                    c:identifier="regress_test_boxed_new_alternative_constructor3">
+        <source-position filename="regress.h" line="688"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
         </return-value>
@@ -2217,6 +2675,7 @@ use it should be.</doc>
       <method name="_not_a_method"
               c:identifier="regress_test_boxeds_not_a_method"
               moved-to="test_boxeds_not_a_method">
+        <source-position filename="regress.h" line="700"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2227,6 +2686,7 @@ use it should be.</doc>
         </parameters>
       </method>
       <method name="copy" c:identifier="regress_test_boxed_copy">
+        <source-position filename="regress.h" line="692"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
         </return-value>
@@ -2237,6 +2697,7 @@ use it should be.</doc>
         </parameters>
       </method>
       <method name="equals" c:identifier="regress_test_boxed_equals">
+        <source-position filename="regress.h" line="695"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
@@ -2255,6 +2716,7 @@ use it should be.</doc>
             glib:type-name="RegressTestBoxedB"
             glib:get-type="regress_test_boxed_b_get_type"
             c:symbol-prefix="test_boxed_b">
+      <source-position filename="regress.h" line="711"/>
       <field name="some_int8" writable="1">
         <type name="gint8" c:type="gint8"/>
       </field>
@@ -2262,6 +2724,7 @@ use it should be.</doc>
         <type name="glong" c:type="glong"/>
       </field>
       <constructor name="new" c:identifier="regress_test_boxed_b_new">
+        <source-position filename="regress.h" line="718"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
         </return-value>
@@ -2275,6 +2738,7 @@ use it should be.</doc>
         </parameters>
       </constructor>
       <method name="copy" c:identifier="regress_test_boxed_b_copy">
+        <source-position filename="regress.h" line="721"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
         </return-value>
@@ -2290,6 +2754,7 @@ use it should be.</doc>
             glib:type-name="RegressTestBoxedC"
             glib:get-type="regress_test_boxed_c_get_type"
             c:symbol-prefix="test_boxed_c">
+      <source-position filename="regress.h" line="729"/>
       <field name="refcount" writable="1">
         <type name="guint" c:type="guint"/>
       </field>
@@ -2297,6 +2762,7 @@ use it should be.</doc>
         <type name="guint" c:type="guint"/>
       </field>
       <constructor name="new" c:identifier="regress_test_boxed_c_new">
+        <source-position filename="regress.h" line="735"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxedC" c:type="RegressTestBoxedC*"/>
         </return-value>
@@ -2307,7 +2773,9 @@ use it should be.</doc>
             glib:type-name="RegressTestBoxedD"
             glib:get-type="regress_test_boxed_d_get_type"
             c:symbol-prefix="test_boxed_d">
+      <source-position filename="regress.h" line="737"/>
       <constructor name="new" c:identifier="regress_test_boxed_d_new">
+        <source-position filename="regress.h" line="745"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
         </return-value>
@@ -2321,6 +2789,7 @@ use it should be.</doc>
         </parameters>
       </constructor>
       <method name="copy" c:identifier="regress_test_boxed_d_copy">
+        <source-position filename="regress.h" line="748"/>
         <return-value transfer-ownership="full">
           <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
         </return-value>
@@ -2331,6 +2800,7 @@ use it should be.</doc>
         </parameters>
       </method>
       <method name="free" c:identifier="regress_test_boxed_d_free">
+        <source-position filename="regress.h" line="751"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2341,6 +2811,7 @@ use it should be.</doc>
         </parameters>
       </method>
       <method name="get_magic" c:identifier="regress_test_boxed_d_get_magic">
+        <source-position filename="regress.h" line="755"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -2354,13 +2825,16 @@ use it should be.</doc>
     <record name="TestBoxedPrivate"
             c:type="RegressTestBoxedPrivate"
             disguised="1">
+      <source-position filename="regress.h" line="665"/>
     </record>
     <callback name="TestCallback" c:type="RegressTestCallback">
+      <source-position filename="regress.h" line="1074"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
     </callback>
     <callback name="TestCallbackArray" c:type="RegressTestCallbackArray">
+      <source-position filename="regress.h" line="1106"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -2385,6 +2859,7 @@ use it should be.</doc>
     </callback>
     <callback name="TestCallbackArrayInOut"
               c:type="RegressTestCallbackArrayInOut">
+      <source-position filename="regress.h" line="1112"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -2406,25 +2881,33 @@ use it should be.</doc>
       </parameters>
     </callback>
     <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
+      <source-position filename="regress.h" line="1093"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
       <parameters>
         <parameter name="foo" transfer-ownership="none">
-          <doc xml:space="preserve">the investment rate</doc>
+          <doc xml:space="preserve"
+               filename="regress.h"
+               line="1089">the investment rate</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="bar" transfer-ownership="none">
-          <doc xml:space="preserve">how much money</doc>
+          <doc xml:space="preserve"
+               filename="regress.h"
+               line="1090">how much money</doc>
           <type name="gdouble" c:type="double"/>
         </parameter>
         <parameter name="path" transfer-ownership="none">
-          <doc xml:space="preserve">Path to file</doc>
+          <doc xml:space="preserve"
+               filename="regress.h"
+               line="1091">Path to file</doc>
           <type name="filename" c:type="char*"/>
         </parameter>
       </parameters>
     </callback>
     <callback name="TestCallbackGError" c:type="RegressTestCallbackGError">
+      <source-position filename="regress.h" line="1081"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -2436,12 +2919,15 @@ use it should be.</doc>
     </callback>
     <callback name="TestCallbackHashtable"
               c:type="RegressTestCallbackHashtable">
+      <source-position filename="regress.h" line="1080"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="data" transfer-ownership="none">
-          <doc xml:space="preserve">a hash table; will be modified</doc>
+          <doc xml:space="preserve"
+               filename="regress.h"
+               line="1078">a hash table; will be modified</doc>
           <type name="GLib.HashTable" c:type="GHashTable*">
             <type name="utf8"/>
             <type name="gint"/>
@@ -2451,23 +2937,28 @@ use it should be.</doc>
     </callback>
     <callback name="TestCallbackOwnedGError"
               c:type="RegressTestCallbackOwnedGError">
+      <source-position filename="regress.h" line="1086"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="error" transfer-ownership="full">
-          <doc xml:space="preserve">GError instance; must be freed by the callback</doc>
+          <doc xml:space="preserve"
+               filename="regress.h"
+               line="1084">GError instance; must be freed by the callback</doc>
           <type name="GLib.Error" c:type="GError*"/>
         </parameter>
       </parameters>
     </callback>
     <callback name="TestCallbackReturnFull"
               c:type="RegressTestCallbackReturnFull">
+      <source-position filename="regress.h" line="1098"/>
       <return-value transfer-ownership="full">
         <type name="TestObj" c:type="RegressTestObj*"/>
       </return-value>
     </callback>
     <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
+      <source-position filename="regress.h" line="1075"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -2484,6 +2975,7 @@ use it should be.</doc>
     <enumeration name="TestDEFError"
                  c:type="RegressTestDEFError"
                  glib:error-domain="regress-test-def-error">
+      <source-position filename="regress.h" line="497"/>
       <member name="code0"
               value="0"
               c:identifier="REGRESS_TEST_DEF_ERROR_CODE0">
@@ -2501,18 +2993,20 @@ use it should be.</doc>
                  glib:type-name="RegressTestEnum"
                  glib:get-type="regress_test_enum_get_type"
                  c:type="RegressTestEnum">
-      <doc xml:space="preserve">By purpose, not all members have documentation</doc>
+      <doc xml:space="preserve"
+           filename="regress.h"
+           line="368">By purpose, not all members have documentation</doc>
       <member name="value1"
               value="0"
               c:identifier="REGRESS_TEST_VALUE1"
               glib:nick="value1">
-        <doc xml:space="preserve">value 1</doc>
+        <doc xml:space="preserve" filename="regress.h" line="370">value 1</doc>
       </member>
       <member name="value2"
               value="1"
               c:identifier="REGRESS_TEST_VALUE2"
               glib:nick="value2">
-        <doc xml:space="preserve">value 2</doc>
+        <doc xml:space="preserve" filename="regress.h" line="371">value 2</doc>
       </member>
       <member name="value3"
               value="-1"
@@ -2530,6 +3024,7 @@ use it should be.</doc>
               glib:nick="value5">
       </member>
       <function name="param" c:identifier="regress_test_enum_param">
+        <source-position filename="regress.h" line="435"/>
         <return-value transfer-ownership="none">
           <type name="utf8" c:type="const gchar*"/>
         </return-value>
@@ -2541,6 +3036,7 @@ use it should be.</doc>
       </function>
     </enumeration>
     <enumeration name="TestEnumNoGEnum" c:type="RegressTestEnumNoGEnum">
+      <source-position filename="regress.h" line="425"/>
       <member name="evalue1" value="0" c:identifier="REGRESS_TEST_EVALUE1">
       </member>
       <member name="evalue2" value="42" c:identifier="REGRESS_TEST_EVALUE2">
@@ -2591,6 +3087,7 @@ use it should be.</doc>
     </enumeration>
     <callback name="TestExternallyDefinedCallback"
               c:type="RegressTestExternallyDefinedCallback">
+      <source-position filename="regress.h" line="790"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -2630,9 +3127,13 @@ use it should be.</doc>
            glib:type-name="RegressTestFloating"
            glib:get-type="regress_test_floating_get_type"
            glib:type-struct="TestFloatingClass">
+      <source-position filename="regress.h" line="1258"/>
       <constructor name="new" c:identifier="regress_test_floating_new">
+        <source-position filename="regress.h" line="1265"/>
         <return-value transfer-ownership="none">
-          <doc xml:space="preserve">A new floating #RegressTestFloating</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="4211">A new floating #RegressTestFloating</doc>
           <type name="TestFloating" c:type="RegressTestFloating*"/>
         </return-value>
       </constructor>
@@ -2643,6 +3144,7 @@ use it should be.</doc>
     <record name="TestFloatingClass"
             c:type="RegressTestFloatingClass"
             glib:is-gtype-struct-for="TestFloating">
+      <source-position filename="regress.h" line="1258"/>
       <field name="parent_class">
         <type name="GObject.InitiallyUnownedClass"
               c:type="GInitiallyUnownedClass"/>
@@ -2660,7 +3162,9 @@ use it should be.</doc>
            glib:unref-func="regress_test_fundamental_object_unref"
            glib:set-value-func="regress_test_value_set_fundamental_object"
            glib:get-value-func="regress_test_value_get_fundamental_object">
+      <source-position filename="regress.h" line="1026"/>
       <virtual-method name="copy">
+        <source-position filename="regress.h" line="1011"/>
         <return-value transfer-ownership="full">
           <type name="TestFundamentalObject"
                 c:type="RegressTestFundamentalObject*"/>
@@ -2673,6 +3177,7 @@ use it should be.</doc>
         </parameters>
       </virtual-method>
       <virtual-method name="finalize">
+        <source-position filename="regress.h" line="1012"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2684,8 +3189,11 @@ use it should be.</doc>
         </parameters>
       </virtual-method>
       <method name="ref" c:identifier="regress_test_fundamental_object_ref">
+        <source-position filename="regress.h" line="1032"/>
         <return-value transfer-ownership="full">
-          <doc xml:space="preserve">A new #RegressTestFundamentalObject</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3337">A new #RegressTestFundamentalObject</doc>
           <type name="TestFundamentalObject"
                 c:type="RegressTestFundamentalObject*"/>
         </return-value>
@@ -2699,6 +3207,7 @@ use it should be.</doc>
       </method>
       <method name="unref"
               c:identifier="regress_test_fundamental_object_unref">
+        <source-position filename="regress.h" line="1035"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2723,6 +3232,7 @@ use it should be.</doc>
     <record name="TestFundamentalObjectClass"
             c:type="RegressTestFundamentalObjectClass"
             glib:is-gtype-struct-for="TestFundamentalObject">
+      <source-position filename="regress.h" line="1026"/>
       <field name="type_class">
         <type name="GObject.TypeClass" c:type="GTypeClass"/>
       </field>
@@ -2737,6 +3247,7 @@ use it should be.</doc>
     </record>
     <callback name="TestFundamentalObjectCopyFunction"
               c:type="RegressTestFundamentalObjectCopyFunction">
+      <source-position filename="regress.h" line="1011"/>
       <return-value transfer-ownership="full">
         <type name="TestFundamentalObject"
               c:type="RegressTestFundamentalObject*"/>
@@ -2750,6 +3261,7 @@ use it should be.</doc>
     </callback>
     <callback name="TestFundamentalObjectFinalizeFunction"
               c:type="RegressTestFundamentalObjectFinalizeFunction">
+      <source-position filename="regress.h" line="1012"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -2768,8 +3280,10 @@ use it should be.</doc>
            glib:get-type="regress_test_fundamental_sub_object_get_type"
            glib:type-struct="TestFundamentalSubObjectClass"
            glib:fundamental="1">
+      <source-position filename="regress.h" line="1056"/>
       <constructor name="new"
                    c:identifier="regress_test_fundamental_sub_object_new">
+        <source-position filename="regress.h" line="1065"/>
         <return-value transfer-ownership="full">
           <type name="TestFundamentalSubObject"
                 c:type="RegressTestFundamentalSubObject*"/>
@@ -2791,6 +3305,7 @@ use it should be.</doc>
     <record name="TestFundamentalSubObjectClass"
             c:type="RegressTestFundamentalSubObjectClass"
             glib:is-gtype-struct-for="TestFundamentalSubObject">
+      <source-position filename="regress.h" line="1056"/>
       <field name="fundamental_object_class">
         <type name="TestFundamentalObjectClass"
               c:type="RegressTestFundamentalObjectClass"/>
@@ -2804,8 +3319,10 @@ use it should be.</doc>
            glib:type-name="RegressTestInheritDrawable"
            glib:get-type="regress_test_inherit_drawable_get_type"
            glib:type-struct="TestInheritDrawableClass">
+      <source-position filename="drawable.h" line="19"/>
       <method name="do_foo"
               c:identifier="regress_test_inherit_drawable_do_foo">
+        <source-position filename="drawable.h" line="26"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2822,6 +3339,7 @@ use it should be.</doc>
       <method name="do_foo_maybe_throw"
               c:identifier="regress_test_inherit_drawable_do_foo_maybe_throw"
               throws="1">
+        <source-position filename="drawable.h" line="35"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2837,6 +3355,7 @@ use it should be.</doc>
       </method>
       <method name="get_origin"
               c:identifier="regress_test_inherit_drawable_get_origin">
+        <source-position filename="drawable.h" line="29"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2861,6 +3380,7 @@ use it should be.</doc>
       </method>
       <method name="get_size"
               c:identifier="regress_test_inherit_drawable_get_size">
+        <source-position filename="drawable.h" line="32"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2890,12 +3410,14 @@ use it should be.</doc>
     <record name="TestInheritDrawableClass"
             c:type="RegressTestInheritDrawableClass"
             glib:is-gtype-struct-for="TestInheritDrawable">
+      <source-position filename="drawable.h" line="19"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
     </record>
     <record name="TestInheritPixmapObjectClass"
             c:type="RegressTestInheritPixmapObjectClass">
+      <source-position filename="drawable.h" line="42"/>
       <field name="parent_class" writable="1">
         <type name="TestInheritDrawableClass"
               c:type="RegressTestInheritDrawableClass"/>
@@ -2907,25 +3429,37 @@ use it should be.</doc>
                glib:type-name="RegressTestInterface"
                glib:get-type="regress_test_interface_get_type"
                glib:type-struct="TestInterfaceIface">
+      <source-position filename="regress.h" line="1202"/>
       <method name="emit_signal"
               c:identifier="regress_test_interface_emit_signal">
+        <source-position filename="regress.h" line="1208"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="self" transfer-ownership="none">
-            <doc xml:space="preserve">the object to emit the signal</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="4070">the object to emit the signal</doc>
             <type name="TestInterface" c:type="RegressTestInterface*"/>
           </instance-parameter>
         </parameters>
       </method>
+      <property name="number"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
       <glib:signal name="interface-signal" when="last">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="ptr" transfer-ownership="none">
-            <doc xml:space="preserve">the code must look up the signal with
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="4051">the code must look up the signal with
   g_interface_info_find_signal() in order to get this to work.</doc>
             <type name="gint" c:type="gpointer"/>
           </parameter>
@@ -2935,11 +3469,13 @@ use it should be.</doc>
     <record name="TestInterfaceIface"
             c:type="RegressTestInterfaceIface"
             glib:is-gtype-struct-for="TestInterface">
+      <source-position filename="regress.h" line="1202"/>
       <field name="base_iface">
         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
       </field>
     </record>
     <callback name="TestNoPtrCallback" c:type="RegressTestNoPtrCallback">
+      <source-position filename="regress.h" line="1073"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -2951,24 +3487,30 @@ use it should be.</doc>
            glib:type-name="RegressTestObj"
            glib:get-type="regress_test_obj_get_type"
            glib:type-struct="TestObjClass">
+      <source-position filename="regress.h" line="812"/>
       <constructor name="constructor" c:identifier="regress_constructor">
+        <source-position filename="regress.h" line="821"/>
         <return-value transfer-ownership="full">
           <type name="TestObj" c:type="RegressTestObj*"/>
         </return-value>
       </constructor>
       <constructor name="new" c:identifier="regress_test_obj_new">
+        <source-position filename="regress.h" line="818"/>
         <return-value transfer-ownership="full">
           <type name="TestObj" c:type="RegressTestObj*"/>
         </return-value>
         <parameters>
           <parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2768">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </parameter>
         </parameters>
       </constructor>
       <constructor name="new_callback"
                    c:identifier="regress_test_obj_new_callback">
+        <source-position filename="regress.h" line="1170"/>
         <return-value transfer-ownership="full">
           <type name="TestObj" c:type="RegressTestObj*"/>
         </return-value>
@@ -2995,6 +3537,7 @@ use it should be.</doc>
       <constructor name="new_from_file"
                    c:identifier="regress_test_obj_new_from_file"
                    throws="1">
+        <source-position filename="regress.h" line="824"/>
         <return-value transfer-ownership="full">
           <type name="TestObj" c:type="RegressTestObj*"/>
         </return-value>
@@ -3005,6 +3548,7 @@ use it should be.</doc>
         </parameters>
       </constructor>
       <function name="null_out" c:identifier="regress_test_obj_null_out">
+        <source-position filename="regress.h" line="946"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3015,13 +3559,16 @@ use it should be.</doc>
                      transfer-ownership="full"
                      optional="1"
                      allow-none="1">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3156">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj**"/>
           </parameter>
         </parameters>
       </function>
       <function name="static_method"
                 c:identifier="regress_test_obj_static_method">
+        <source-position filename="regress.h" line="854"/>
         <return-value transfer-ownership="none">
           <type name="gdouble" c:type="double"/>
         </return-value>
@@ -3033,6 +3580,7 @@ use it should be.</doc>
       </function>
       <function name="static_method_callback"
                 c:identifier="regress_test_obj_static_method_callback">
+        <source-position filename="regress.h" line="1167"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3047,6 +3595,7 @@ use it should be.</doc>
         </parameters>
       </function>
       <virtual-method name="allow_none_vfunc">
+        <source-position filename="regress.h" line="802"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3058,12 +3607,15 @@ use it should be.</doc>
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">Another object</doc>
+            <doc xml:space="preserve"
+                 filename="regress.h"
+                 line="800">Another object</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </parameter>
         </parameters>
       </virtual-method>
       <virtual-method name="complex_vfunc">
+        <source-position filename="regress.h" line="790"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3077,43 +3629,58 @@ use it should be.</doc>
         </parameters>
       </virtual-method>
       <virtual-method name="matrix" invoker="do_matrix">
-        <doc xml:space="preserve">This method is virtual.  Notably its name differs from the virtual
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="3130">This method is virtual.  Notably its name differs from the virtual
 slot name, which makes it useful for testing bindings handle this
 case.</doc>
+        <source-position filename="regress.h" line="796"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3132">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="somestr" transfer-ownership="none">
-            <doc xml:space="preserve">Meaningless string</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3133">Meaningless string</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
       </virtual-method>
       <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
-        <doc xml:space="preserve">This method is virtual.  Notably its name differs from the virtual
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="3130">This method is virtual.  Notably its name differs from the virtual
 slot name, which makes it useful for testing bindings handle this
 case.</doc>
+        <source-position filename="regress.h" line="939"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3132">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="somestr" transfer-ownership="none">
-            <doc xml:space="preserve">Meaningless string</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3133">Meaningless string</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
       </method>
       <method name="emit_sig_with_array_len_prop"
               c:identifier="regress_test_obj_emit_sig_with_array_len_prop">
+        <source-position filename="regress.h" line="842"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3125,6 +3692,7 @@ case.</doc>
       </method>
       <method name="emit_sig_with_foreign_struct"
               c:identifier="regress_test_obj_emit_sig_with_foreign_struct">
+        <source-position filename="regress.h" line="833"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3136,19 +3704,25 @@ case.</doc>
       </method>
       <method name="emit_sig_with_inout_int"
               c:identifier="regress_test_obj_emit_sig_with_inout_int">
-        <doc xml:space="preserve">The signal handler must increment the inout parameter by 1.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2858">The signal handler must increment the inout parameter by 1.</doc>
+        <source-position filename="regress.h" line="845"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">The object to emit the signal.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2860">The object to emit the signal.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="emit_sig_with_int64"
               c:identifier="regress_test_obj_emit_sig_with_int64">
+        <source-position filename="regress.h" line="836"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3160,6 +3734,7 @@ case.</doc>
       </method>
       <method name="emit_sig_with_obj"
               c:identifier="regress_test_obj_emit_sig_with_obj">
+        <source-position filename="regress.h" line="830"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3171,6 +3746,7 @@ case.</doc>
       </method>
       <method name="emit_sig_with_uint64"
               c:identifier="regress_test_obj_emit_sig_with_uint64">
+        <source-position filename="regress.h" line="839"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3181,18 +3757,22 @@ case.</doc>
         </parameters>
       </method>
       <method name="forced_method" c:identifier="regress_forced_method">
+        <source-position filename="regress.h" line="857"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2897">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="instance_method"
               c:identifier="regress_test_obj_instance_method">
+        <source-position filename="regress.h" line="848"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -3204,6 +3784,7 @@ case.</doc>
       </method>
       <method name="instance_method_callback"
               c:identifier="regress_test_obj_instance_method_callback">
+        <source-position filename="regress.h" line="1164"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3222,6 +3803,7 @@ case.</doc>
       </method>
       <method name="instance_method_full"
               c:identifier="regress_test_obj_instance_method_full">
+        <source-position filename="regress.h" line="851"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3233,55 +3815,71 @@ case.</doc>
       </method>
       <method name="name_conflict"
               c:identifier="regress_test_obj_name_conflict">
+        <source-position filename="regress.h" line="958"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3200">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="not_nullable_element_typed_gpointer_in"
               c:identifier="regress_test_obj_not_nullable_element_typed_gpointer_in">
+        <source-position filename="regress.h" line="953"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3187">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="input" transfer-ownership="none">
-            <doc xml:space="preserve">some uint8 array</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3188">some uint8 array</doc>
             <array length="1" zero-terminated="0" c:type="gpointer">
               <type name="guint8"/>
             </array>
           </parameter>
           <parameter name="count" transfer-ownership="none">
-            <doc xml:space="preserve">length of @input</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3189">length of @input</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
       <method name="not_nullable_typed_gpointer_in"
               c:identifier="regress_test_obj_not_nullable_typed_gpointer_in">
+        <source-position filename="regress.h" line="950"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3176">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="input" transfer-ownership="none">
-            <doc xml:space="preserve">some #GObject</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3177">some #GObject</doc>
             <type name="GObject.Object" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_bare" c:identifier="regress_test_obj_set_bare">
+        <source-position filename="regress.h" line="827"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3300,29 +3898,42 @@ case.</doc>
       <method name="skip_inout_param"
               c:identifier="regress_test_obj_skip_inout_param"
               throws="1">
-        <doc xml:space="preserve">Check that the out value is skipped</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="3094">Check that the out value is skipped</doc>
+        <source-position filename="regress.h" line="927"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3108">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3096">A #RegressTestObj.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
-            <doc xml:space="preserve">Parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3097">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3098">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none">
-            <doc xml:space="preserve">Other parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3099">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
@@ -3330,22 +3941,30 @@ case.</doc>
                      caller-allocates="0"
                      transfer-ownership="full"
                      skip="1">
-            <doc xml:space="preserve">Will be incremented.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3100">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3101">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3102">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3103">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -3353,18 +3972,27 @@ case.</doc>
       <method name="skip_out_param"
               c:identifier="regress_test_obj_skip_out_param"
               throws="1">
-        <doc xml:space="preserve">Check that the out value is skipped</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="3058">Check that the out value is skipped</doc>
+        <source-position filename="regress.h" line="915"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3072">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3060">A #RegressTestObj.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
-            <doc xml:space="preserve">Parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3061">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
@@ -3372,33 +4000,45 @@ case.</doc>
                      caller-allocates="0"
                      transfer-ownership="full"
                      skip="1">
-            <doc xml:space="preserve">Return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3062">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none">
-            <doc xml:space="preserve">Other parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3063">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Will be incremented.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3064">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3065">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3066">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3067">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -3406,51 +4046,72 @@ case.</doc>
       <method name="skip_param"
               c:identifier="regress_test_obj_skip_param"
               throws="1">
-        <doc xml:space="preserve">Check that a parameter is skipped</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="3022">Check that a parameter is skipped</doc>
+        <source-position filename="regress.h" line="903"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3036">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3024">A #RegressTestObj.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
-            <doc xml:space="preserve">Parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3025">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3026">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none" skip="1">
-            <doc xml:space="preserve">Other parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3027">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Will be incremented.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3028">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3029">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3030">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3031">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -3458,51 +4119,72 @@ case.</doc>
       <method name="skip_return_val"
               c:identifier="regress_test_obj_skip_return_val"
               throws="1">
-        <doc xml:space="preserve">Check that the return value is skipped</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2962">Check that the return value is skipped</doc>
+        <source-position filename="regress.h" line="885"/>
         <return-value transfer-ownership="none" skip="1">
-          <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="2976">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2964">a #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
-            <doc xml:space="preserve">Parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2965">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">A return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2966">A return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none">
-            <doc xml:space="preserve">Other parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2967">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Will be incremented.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2968">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
                      direction="out"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">Return value.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2969">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2970">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
-            <doc xml:space="preserve">Number.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2971">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -3510,31 +4192,43 @@ case.</doc>
       <method name="skip_return_val_no_out"
               c:identifier="regress_test_obj_skip_return_val_no_out"
               throws="1">
-        <doc xml:space="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2998">Check that the return value is skipped. Succeed if a is nonzero, otherwise
 raise an error.</doc>
+        <source-position filename="regress.h" line="897"/>
         <return-value transfer-ownership="none" skip="1">
-          <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3007">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">a #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3000">a #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
-            <doc xml:space="preserve">Parameter.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="3001">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
       </method>
       <method name="torture_signature_0"
               c:identifier="regress_test_obj_torture_signature_0">
+        <source-position filename="regress.h" line="865"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2907">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="x" transfer-ownership="none">
@@ -3569,13 +4263,18 @@ raise an error.</doc>
       <method name="torture_signature_1"
               c:identifier="regress_test_obj_torture_signature_1"
               throws="1">
-        <doc xml:space="preserve">This function throws an error if m is odd.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2930">This function throws an error if m is odd.</doc>
+        <source-position filename="regress.h" line="874"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A #RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2932">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="x" transfer-ownership="none">
@@ -3671,6 +4370,12 @@ raise an error.</doc>
       <property name="string" writable="1" transfer-ownership="none">
         <type name="utf8" c:type="gchar*"/>
       </property>
+      <property name="write-only"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
       <field name="parent_instance">
         <type name="GObject.Object" c:type="GObject"/>
       </field>
@@ -3716,6 +4421,7 @@ raise an error.</doc>
       </field>
       <field name="function_ptr">
         <callback name="function_ptr">
+          <source-position filename="regress.h" line="787"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -3742,7 +4448,9 @@ raise an error.</doc>
         </return-value>
       </glib:signal>
       <glib:signal name="sig-with-array-len-prop" when="last">
-        <doc xml:space="preserve">This test signal similar to GSettings::change-event.
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2358">This test signal similar to GSettings::change-event.
 You can use this with regress_test_obj_emit_sig_with_array_len_prop(), or
 raise from the introspection client language.</doc>
         <return-value transfer-ownership="none">
@@ -3753,26 +4461,34 @@ raise from the introspection client language.</doc>
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">numbers, or %NULL</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2361">numbers, or %NULL</doc>
             <array length="1" zero-terminated="0" c:type="gpointer">
               <type name="guint"/>
             </array>
           </parameter>
           <parameter name="len" transfer-ownership="none">
-            <doc xml:space="preserve">length of @arr, or 0</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2362">length of @arr, or 0</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="sig-with-array-prop" when="last">
-        <doc xml:space="preserve">This test signal is like TelepathyGlib's
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2338">This test signal is like TelepathyGlib's
  TpChannel:: group-members-changed-detailed:</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="arr" transfer-ownership="none">
-            <doc xml:space="preserve">numbers</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2341">numbers</doc>
             <array name="GLib.Array">
               <type name="guint"/>
             </array>
@@ -3785,13 +4501,17 @@ raise from the introspection client language.</doc>
         </return-value>
         <parameters>
           <parameter name="cr" transfer-ownership="none">
-            <doc xml:space="preserve">A cairo context.</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2444">A cairo context.</doc>
             <type name="cairo.Context"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="sig-with-hash-prop" when="last">
-        <doc xml:space="preserve">This test signal is like TelepathyGlib's
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2381">This test signal is like TelepathyGlib's
  TpAccount::status-changed</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -3806,7 +4526,9 @@ raise from the introspection client language.</doc>
         </parameters>
       </glib:signal>
       <glib:signal name="sig-with-inout-int" when="last">
-        <doc xml:space="preserve">This signal is modeled after GtkEditable::insert-text.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2551">This signal is modeled after GtkEditable::insert-text.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3815,7 +4537,9 @@ raise from the introspection client language.</doc>
                      direction="inout"
                      caller-allocates="0"
                      transfer-ownership="full">
-            <doc xml:space="preserve">The position, in characters, at which to
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2554">The position, in characters, at which to
     insert the new text. This is an in-out paramter. After the signal
     emission is finished, it should point after the newly inserted text.</doc>
             <type name="gint" c:type="gpointer"/>
@@ -3823,14 +4547,18 @@ raise from the introspection client language.</doc>
         </parameters>
       </glib:signal>
       <glib:signal name="sig-with-int64-prop" when="last">
-        <doc xml:space="preserve">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2492">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
 the introspection client langage.</doc>
         <return-value transfer-ownership="none">
           <type name="gint64" c:type="gint64"/>
         </return-value>
         <parameters>
           <parameter name="i" transfer-ownership="none">
-            <doc xml:space="preserve">an integer</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2495">an integer</doc>
             <type name="gint64" c:type="gint64"/>
           </parameter>
         </parameters>
@@ -3843,32 +4571,42 @@ the introspection client langage.</doc>
         </return-value>
         <parameters>
           <parameter name="i" transfer-ownership="none">
-            <doc xml:space="preserve">an integer</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2535">an integer</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="sig-with-obj" when="last">
-        <doc xml:space="preserve">Test transfer none GObject as a param (tests refcounting).
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2420">Test transfer none GObject as a param (tests refcounting).
 Use with regress_test_obj_emit_sig_with_obj</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="obj" transfer-ownership="none">
-            <doc xml:space="preserve">A newly created RegressTestObj</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2423">A newly created RegressTestObj</doc>
             <type name="GObject.Object"/>
           </parameter>
         </parameters>
       </glib:signal>
       <glib:signal name="sig-with-strv" when="last">
-        <doc xml:space="preserve">Test GStrv as a param.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2401">Test GStrv as a param.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="strs" transfer-ownership="none">
-            <doc xml:space="preserve">strings</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2404">strings</doc>
             <array>
               <type name="utf8"/>
             </array>
@@ -3876,14 +4614,18 @@ Use with regress_test_obj_emit_sig_with_obj</doc>
         </parameters>
       </glib:signal>
       <glib:signal name="sig-with-uint64-prop" when="last">
-        <doc xml:space="preserve">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="2512">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
 the introspection client langage.</doc>
         <return-value transfer-ownership="none">
           <type name="guint64" c:type="guint64"/>
         </return-value>
         <parameters>
           <parameter name="i" transfer-ownership="none">
-            <doc xml:space="preserve">an integer</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="2515">an integer</doc>
             <type name="guint64" c:type="guint64"/>
           </parameter>
         </parameters>
@@ -3910,21 +4652,27 @@ the introspection client langage.</doc>
     <record name="TestObjClass"
             c:type="RegressTestObjClass"
             glib:is-gtype-struct-for="TestObj">
+      <source-position filename="regress.h" line="812"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
       <field name="matrix">
         <callback name="matrix">
+          <source-position filename="regress.h" line="796"/>
           <return-value transfer-ownership="none">
             <type name="gint" c:type="int"/>
           </return-value>
           <parameters>
             <parameter name="obj" transfer-ownership="none">
-              <doc xml:space="preserve">A #RegressTestObj</doc>
+              <doc xml:space="preserve"
+                   filename="regress.c"
+                   line="3132">A #RegressTestObj</doc>
               <type name="TestObj" c:type="RegressTestObj*"/>
             </parameter>
             <parameter name="somestr" transfer-ownership="none">
-              <doc xml:space="preserve">Meaningless string</doc>
+              <doc xml:space="preserve"
+                   filename="regress.c"
+                   line="3133">Meaningless string</doc>
               <type name="utf8" c:type="const char*"/>
             </parameter>
           </parameters>
@@ -3932,6 +4680,7 @@ the introspection client langage.</doc>
       </field>
       <field name="allow_none_vfunc">
         <callback name="allow_none_vfunc">
+          <source-position filename="regress.h" line="802"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -3943,7 +4692,9 @@ the introspection client langage.</doc>
                        transfer-ownership="none"
                        nullable="1"
                        allow-none="1">
-              <doc xml:space="preserve">Another object</doc>
+              <doc xml:space="preserve"
+                   filename="regress.h"
+                   line="800">Another object</doc>
               <type name="TestObj" c:type="RegressTestObj*"/>
             </parameter>
           </parameters>
@@ -3961,6 +4712,7 @@ the introspection client langage.</doc>
       </field>
       <field name="_regress_reserved1" introspectable="0">
         <callback name="_regress_reserved1">
+          <source-position filename="regress.h" line="810"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -3968,6 +4720,7 @@ the introspection client langage.</doc>
       </field>
       <field name="_regress_reserved2" introspectable="0">
         <callback name="_regress_reserved2">
+          <source-position filename="regress.h" line="811"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -4002,6 +4755,7 @@ the introspection client langage.</doc>
       </function>
     </enumeration>
     <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
+      <source-position filename="regress.h" line="1401"/>
       <member name="public_enum_before"
               value="1"
               c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE">
@@ -4012,6 +4766,7 @@ the introspection client langage.</doc>
       </member>
     </bitfield>
     <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
+      <source-position filename="regress.h" line="1393"/>
       <field name="this_is_public_before" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -4023,6 +4778,7 @@ the introspection client langage.</doc>
       </field>
     </record>
     <record name="TestReferenceCounters" c:type="RegressTestReferenceCounters">
+      <source-position filename="regress.h" line="1503"/>
       <field name="refcount" writable="1">
         <type name="gint" c:type="grefcount"/>
       </field>
@@ -4031,6 +4787,7 @@ the introspection client langage.</doc>
       </field>
     </record>
     <enumeration name="TestReferenceEnum" c:type="RegressTestReferenceEnum">
+      <source-position filename="regress.h" line="417"/>
       <member name="0" value="4" c:identifier="REGRESS_TEST_REFERENCE_0">
       </member>
       <member name="1" value="2" c:identifier="REGRESS_TEST_REFERENCE_1">
@@ -4049,6 +4806,7 @@ the introspection client langage.</doc>
             glib:type-name="RegressTestSimpleBoxedA"
             glib:get-type="regress_test_simple_boxed_a_get_gtype"
             c:symbol-prefix="test_simple_boxed_a">
+      <source-position filename="regress.h" line="631"/>
       <field name="some_int" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -4062,6 +4820,7 @@ the introspection client langage.</doc>
         <type name="TestEnum" c:type="RegressTestEnum"/>
       </field>
       <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
+        <source-position filename="regress.h" line="638"/>
         <return-value transfer-ownership="full">
           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
         </return-value>
@@ -4072,6 +4831,7 @@ the introspection client langage.</doc>
         </parameters>
       </method>
       <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
+        <source-position filename="regress.h" line="641"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
@@ -4086,6 +4846,7 @@ the introspection client langage.</doc>
       </method>
       <function name="const_return"
                 c:identifier="regress_test_simple_boxed_a_const_return">
+        <source-position filename="regress.h" line="645"/>
         <return-value transfer-ownership="none">
           <type name="TestSimpleBoxedA"
                 c:type="const RegressTestSimpleBoxedA*"/>
@@ -4097,6 +4858,7 @@ the introspection client langage.</doc>
             glib:type-name="RegressTestSimpleBoxedB"
             glib:get-type="regress_test_simple_boxed_b_get_type"
             c:symbol-prefix="test_simple_boxed_b">
+      <source-position filename="regress.h" line="652"/>
       <field name="some_int8" writable="1">
         <type name="gint8" c:type="gint8"/>
       </field>
@@ -4104,6 +4866,7 @@ the introspection client langage.</doc>
         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
       </field>
       <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
+        <source-position filename="regress.h" line="659"/>
         <return-value transfer-ownership="full">
           <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
         </return-value>
@@ -4115,11 +4878,13 @@ the introspection client langage.</doc>
       </method>
     </record>
     <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
+      <source-position filename="regress.h" line="1072"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
     </callback>
     <record name="TestStructA" c:type="RegressTestStructA">
+      <source-position filename="regress.h" line="544"/>
       <field name="some_int" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -4133,25 +4898,33 @@ the introspection client langage.</doc>
         <type name="TestEnum" c:type="RegressTestEnum"/>
       </field>
       <method name="clone" c:identifier="regress_test_struct_a_clone">
-        <doc xml:space="preserve">Make a copy of a RegressTestStructA</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="1719">Make a copy of a RegressTestStructA</doc>
+        <source-position filename="regress.h" line="547"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="a" transfer-ownership="none">
-            <doc xml:space="preserve">the structure</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="1721">the structure</doc>
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </instance-parameter>
           <parameter name="a_out"
                      direction="out"
                      caller-allocates="1"
                      transfer-ownership="none">
-            <doc xml:space="preserve">the cloned structure</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="1722">the cloned structure</doc>
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </parameter>
         </parameters>
       </method>
       <function name="parse" c:identifier="regress_test_struct_a_parse">
+        <source-position filename="regress.h" line="551"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4160,17 +4933,22 @@ the introspection client langage.</doc>
                      direction="out"
                      caller-allocates="1"
                      transfer-ownership="none">
-            <doc xml:space="preserve">the structure that is to be filled</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="1735">the structure that is to be filled</doc>
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </parameter>
           <parameter name="string" transfer-ownership="none">
-            <doc xml:space="preserve">ignored</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="1736">ignored</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </function>
     </record>
     <record name="TestStructB" c:type="RegressTestStructB">
+      <source-position filename="regress.h" line="560"/>
       <field name="some_int8" writable="1">
         <type name="gint8" c:type="gint8"/>
       </field>
@@ -4178,26 +4956,34 @@ the introspection client langage.</doc>
         <type name="TestStructA" c:type="RegressTestStructA"/>
       </field>
       <method name="clone" c:identifier="regress_test_struct_b_clone">
-        <doc xml:space="preserve">Make a copy of a RegressTestStructB</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="1762">Make a copy of a RegressTestStructB</doc>
+        <source-position filename="regress.h" line="563"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="b" transfer-ownership="none">
-            <doc xml:space="preserve">the structure</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="1764">the structure</doc>
             <type name="TestStructB" c:type="RegressTestStructB*"/>
           </instance-parameter>
           <parameter name="b_out"
                      direction="out"
                      caller-allocates="1"
                      transfer-ownership="none">
-            <doc xml:space="preserve">the cloned structure</doc>
+            <doc xml:space="preserve"
+                 filename="regress.c"
+                 line="1765">the cloned structure</doc>
             <type name="TestStructB" c:type="RegressTestStructB*"/>
           </parameter>
         </parameters>
       </method>
     </record>
     <record name="TestStructC" c:type="RegressTestStructC">
+      <source-position filename="regress.h" line="571"/>
       <field name="another_int" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -4206,6 +4992,7 @@ the introspection client langage.</doc>
       </field>
     </record>
     <record name="TestStructD" c:type="RegressTestStructD">
+      <source-position filename="regress.h" line="590"/>
       <field name="array1" writable="1">
         <array c:type="RegressTestStructA**">
           <type name="TestStructA" c:type="RegressTestStructA*"/>
@@ -4231,6 +5018,7 @@ the introspection client langage.</doc>
       </field>
     </record>
     <record name="TestStructE" c:type="RegressTestStructE">
+      <source-position filename="regress.h" line="607"/>
       <field name="some_type" writable="1">
         <type name="GType" c:type="GType"/>
       </field>
@@ -4270,6 +5058,7 @@ the introspection client langage.</doc>
       </field>
     </union>
     <record name="TestStructF" c:type="RegressTestStructF">
+      <source-position filename="regress.h" line="619"/>
       <field name="ref_count" writable="1">
         <type name="gint" c:type="volatile gint"/>
       </field>
@@ -4293,6 +5082,7 @@ the introspection client langage.</doc>
       </field>
     </record>
     <record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
+      <source-position filename="regress.h" line="1406"/>
       <field name="just_int" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -4302,6 +5092,7 @@ the introspection client langage.</doc>
         </array>
       </field>
       <method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
+        <source-position filename="regress.h" line="1410"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4320,13 +5111,17 @@ the introspection client langage.</doc>
            glib:type-name="RegressTestSubObj"
            glib:get-type="regress_test_sub_obj_get_type"
            glib:type-struct="TestSubObjClass">
+      <source-position filename="regress.h" line="980"/>
+      <implements name="TestInterface"/>
       <constructor name="new" c:identifier="regress_test_sub_obj_new">
+        <source-position filename="regress.h" line="987"/>
         <return-value transfer-ownership="full">
           <type name="TestObj" c:type="RegressTestObj*"/>
         </return-value>
       </constructor>
       <method name="instance_method"
               c:identifier="regress_test_sub_obj_instance_method">
+        <source-position filename="regress.h" line="993"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -4337,6 +5132,7 @@ the introspection client langage.</doc>
         </parameters>
       </method>
       <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
+        <source-position filename="regress.h" line="990"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4346,13 +5142,26 @@ the introspection client langage.</doc>
           </instance-parameter>
         </parameters>
       </method>
+      <property name="boolean"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
       <field name="parent_instance">
         <type name="TestObj" c:type="RegressTestObj"/>
       </field>
+      <field name="number" readable="0" private="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="boolean" readable="0" private="1">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
     </class>
     <record name="TestSubObjClass"
             c:type="RegressTestSubObjClass"
             glib:is-gtype-struct-for="TestSubObj">
+      <source-position filename="regress.h" line="980"/>
       <field name="parent_class">
         <type name="TestObjClass" c:type="RegressTestObjClass"/>
       </field>
@@ -4364,13 +5173,16 @@ the introspection client langage.</doc>
            glib:type-name="RegressTestWi8021x"
            glib:get-type="regress_test_wi_802_1x_get_type"
            glib:type-struct="TestWi8021xClass">
+      <source-position filename="regress.h" line="1226"/>
       <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
+        <source-position filename="regress.h" line="1233"/>
         <return-value transfer-ownership="full">
           <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
         </return-value>
       </constructor>
       <function name="static_method"
                 c:identifier="regress_test_wi_802_1x_static_method">
+        <source-position filename="regress.h" line="1242"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -4382,6 +5194,7 @@ the introspection client langage.</doc>
       </function>
       <method name="get_testbool"
               c:identifier="regress_test_wi_802_1x_get_testbool">
+        <source-position filename="regress.h" line="1236"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
@@ -4393,6 +5206,7 @@ the introspection client langage.</doc>
       </method>
       <method name="set_testbool"
               c:identifier="regress_test_wi_802_1x_set_testbool">
+        <source-position filename="regress.h" line="1239"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4418,6 +5232,7 @@ the introspection client langage.</doc>
     <record name="TestWi8021xClass"
             c:type="RegressTestWi8021xClass"
             glib:is-gtype-struct-for="TestWi8021x">
+      <source-position filename="regress.h" line="1226"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
@@ -4425,10 +5240,12 @@ the introspection client langage.</doc>
     <constant name="UTF8_CONSTANT"
               value="const ♥ utf8"
               c:type="REGRESS_UTF8_CONSTANT">
+      <source-position filename="regress.h" line="1421"/>
       <type name="utf8" c:type="gchar*"/>
     </constant>
     <function name="aliased_caller_alloc"
               c:identifier="regress_aliased_caller_alloc">
+      <source-position filename="regress.h" line="1383"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4443,29 +5260,39 @@ the introspection client langage.</doc>
     </function>
     <function name="annotation_attribute_func"
               c:identifier="regress_annotation_attribute_func">
+      <source-position filename="annotation.h" line="229"/>
       <return-value transfer-ownership="none">
         <attribute name="some.other.annotation" value="value2"/>
         <attribute name="yet.another.annotation" value="another_value"/>
-        <doc xml:space="preserve">The return value.</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="764">The return value.</doc>
         <type name="gint" c:type="gint"/>
       </return-value>
       <parameters>
         <parameter name="object" transfer-ownership="none">
-          <doc xml:space="preserve">A #RegressAnnotationObject.</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="761">A #RegressAnnotationObject.</doc>
           <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
           <attribute name="some.annotation" value="value"/>
           <attribute name="another.annotation" value="blahvalue"/>
-          <doc xml:space="preserve">Some data.</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="762">Some data.</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="annotation_custom_destroy"
               c:identifier="regress_annotation_custom_destroy">
-      <doc xml:space="preserve">Test messing up the heuristic of closure/destroy-notification
+      <doc xml:space="preserve"
+           filename="annotation.c"
+           line="715">Test messing up the heuristic of closure/destroy-notification
 detection, and fixing it via annotations.</doc>
+      <source-position filename="annotation.h" line="217"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4475,7 +5302,9 @@ detection, and fixing it via annotations.</doc>
                    scope="notified"
                    closure="2"
                    destroy="1">
-          <doc xml:space="preserve">Destroy notification</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="717">Destroy notification</doc>
           <type name="AnnotationCallback" c:type="RegressAnnotationCallback"/>
         </parameter>
         <parameter name="destroy"
@@ -4495,12 +5324,16 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="annotation_get_source_file"
               c:identifier="regress_annotation_get_source_file">
+      <source-position filename="annotation.h" line="222"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">Source file</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="732">Source file</doc>
         <type name="filename" c:type="char*"/>
       </return-value>
     </function>
     <function name="annotation_init" c:identifier="regress_annotation_init">
+      <source-position filename="annotation.h" line="192"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4509,14 +5342,18 @@ detection, and fixing it via annotations.</doc>
                    direction="inout"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">The number of args.</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="646">The number of args.</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
         <parameter name="argv"
                    direction="inout"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">The arguments.</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="647">The arguments.</doc>
           <array length="0" zero-terminated="0" c:type="char***">
             <type name="utf8" c:type="char**"/>
           </array>
@@ -4525,24 +5362,30 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="annotation_invalid_regress_annotation"
               c:identifier="regress_annotation_invalid_regress_annotation">
+      <source-position filename="annotation.h" line="234"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="foo" transfer-ownership="none">
-          <doc xml:space="preserve">some text (e.g. example) or else</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="775">some text (e.g. example) or else</doc>
           <type name="gint" c:type="int"/>
         </parameter>
       </parameters>
     </function>
     <function name="annotation_ptr_array"
               c:identifier="regress_annotation_ptr_array">
+      <source-position filename="annotation.h" line="263"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="array" transfer-ownership="none">
-          <doc xml:space="preserve">the array</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="752">the array</doc>
           <array name="GLib.PtrArray" c:type="GPtrArray*">
             <type name="GObject.Value"/>
           </array>
@@ -4551,8 +5394,11 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="annotation_return_array"
               c:identifier="regress_annotation_return_array">
+      <source-position filename="annotation.h" line="196"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">The return value</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="659">The return value</doc>
         <array length="0" zero-terminated="0" c:type="char**">
           <type name="utf8"/>
         </array>
@@ -4562,39 +5408,51 @@ detection, and fixing it via annotations.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">Number of return values</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="657">Number of return values</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
       </parameters>
     </function>
     <function name="annotation_return_filename"
               c:identifier="regress_annotation_return_filename">
+      <source-position filename="annotation.h" line="275"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">An annotated filename</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="814">An annotated filename</doc>
         <type name="filename" c:type="gchar*"/>
       </return-value>
     </function>
     <function name="annotation_set_source_file"
               c:identifier="regress_annotation_set_source_file">
+      <source-position filename="annotation.h" line="225"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="fname" transfer-ownership="none">
-          <doc xml:space="preserve">Source file</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="742">Source file</doc>
           <type name="filename" c:type="const char*"/>
         </parameter>
       </parameters>
     </function>
     <function name="annotation_space_after_comment_bug631690"
               c:identifier="regress_annotation_space_after_comment_bug631690">
-      <doc xml:space="preserve">Explicitly test having a space after the ** here.</doc>
+      <doc xml:space="preserve"
+           filename="annotation.c"
+           line="801">Explicitly test having a space after the ** here.</doc>
+      <source-position filename="annotation.h" line="271"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
     </function>
     <function name="annotation_string_array_length"
               c:identifier="regress_annotation_string_array_length">
+      <source-position filename="annotation.h" line="209"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4611,8 +5469,11 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="annotation_string_zero_terminated"
               c:identifier="regress_annotation_string_zero_terminated">
+      <source-position filename="annotation.h" line="202"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">The return value</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="670">The return value</doc>
         <array c:type="char**">
           <type name="utf8"/>
         </array>
@@ -4620,6 +5481,7 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="annotation_string_zero_terminated_out"
               c:identifier="regress_annotation_string_zero_terminated_out">
+      <source-position filename="annotation.h" line="205"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4636,21 +5498,31 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="annotation_test_parsing_bug630862"
               c:identifier="regress_annotation_test_parsing_bug630862">
-      <doc xml:space="preserve">See https://bugzilla.gnome.org/show_bug.cgi?id=630862</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:space="preserve">An object, note the colon:in here</doc>
+      <doc xml:space="preserve"
+           filename="annotation.c"
+           line="787">See https://bugzilla.gnome.org/show_bug.cgi?id=630862</doc>
+      <source-position filename="annotation.h" line="267"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="792">An object, note the colon:in here</doc>
         <type name="GObject.Object" c:type="GObject*"/>
       </return-value>
     </function>
     <function name="annotation_transfer_floating"
               c:identifier="regress_annotation_transfer_floating">
+      <source-position filename="annotation.h" line="279"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">A floating object</doc>
+        <doc xml:space="preserve"
+             filename="annotation.c"
+             line="826">A floating object</doc>
         <type name="GObject.Object" c:type="GObject*"/>
       </return-value>
       <parameters>
         <parameter name="object" transfer-ownership="none">
-          <doc xml:space="preserve">an object</doc>
+          <doc xml:space="preserve"
+               filename="annotation.c"
+               line="824">an object</doc>
           <type name="GObject.Object" c:type="GObject*"/>
         </parameter>
       </parameters>
@@ -4658,6 +5530,7 @@ detection, and fixing it via annotations.</doc>
     <function name="annotation_versioned"
               c:identifier="regress_annotation_versioned"
               version="0.6">
+      <source-position filename="annotation.h" line="199"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4670,6 +5543,7 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="foo_async_ready_callback"
               c:identifier="regress_foo_async_ready_callback">
+      <source-position filename="foo.h" line="496"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4698,6 +5572,7 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="foo_destroy_notify_callback"
               c:identifier="regress_foo_destroy_notify_callback">
+      <source-position filename="foo.h" line="501"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4723,6 +5598,7 @@ detection, and fixing it via annotations.</doc>
     <function name="foo_enum_type_method"
               c:identifier="regress_foo_enum_type_method"
               moved-to="FooEnumType.method">
+      <source-position filename="foo.h" line="236"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -4735,6 +5611,7 @@ detection, and fixing it via annotations.</doc>
     <function name="foo_enum_type_returnv"
               c:identifier="regress_foo_enum_type_returnv"
               moved-to="FooEnumType.returnv">
+      <source-position filename="foo.h" line="240"/>
       <return-value transfer-ownership="none">
         <type name="FooEnumType" c:type="RegressFooEnumType"/>
       </return-value>
@@ -4752,6 +5629,7 @@ detection, and fixing it via annotations.</doc>
       </return-value>
     </function>
     <function name="foo_init" c:identifier="regress_foo_init">
+      <source-position filename="foo.h" line="125"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="gint"/>
       </return-value>
@@ -4759,6 +5637,7 @@ detection, and fixing it via annotations.</doc>
     <function name="foo_interface_static_method"
               c:identifier="regress_foo_interface_static_method"
               moved-to="FooInterface.static_method">
+      <source-position filename="foo.h" line="73"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4770,6 +5649,7 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="foo_method_external_references"
               c:identifier="regress_foo_method_external_references">
+      <source-position filename="foo.h" line="346"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4790,8 +5670,11 @@ detection, and fixing it via annotations.</doc>
     </function>
     <function name="foo_not_a_constructor_new"
               c:identifier="regress_foo_not_a_constructor_new">
-      <doc xml:space="preserve">This should be scanned as a top-level function, and shouldn't cause
+      <doc xml:space="preserve"
+           filename="foo.c"
+           line="789">This should be scanned as a top-level function, and shouldn't cause
 a "Can't find matching type for constructor" warning.</doc>
+      <source-position filename="foo.h" line="221"/>
       <return-value transfer-ownership="none">
         <type name="FooObject" c:type="RegressFooObject*"/>
       </return-value>
@@ -4800,8 +5683,11 @@ a "Can't find matching type for constructor" warning.</doc>
               c:identifier="regress_foo_rectangle_new"
               moved-to="FooRectangle.new"
               introspectable="0">
-      <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
+      <doc xml:space="preserve"
+           filename="foo.c"
+           line="537">This is a C convenience constructor; we have to (skip)
 it because it's not a boxed type.</doc>
+      <source-position filename="foo.h" line="357"/>
       <return-value>
         <type name="FooRectangle" c:type="RegressFooRectangle*"/>
       </return-value>
@@ -4823,14 +5709,19 @@ it because it's not a boxed type.</doc>
     <function name="foo_skip_me"
               c:identifier="regress_foo_skip_me"
               introspectable="0">
-      <doc xml:space="preserve">Does something that's only interesting from C and should not be
+      <doc xml:space="preserve"
+           filename="foo.c"
+           line="716">Does something that's only interesting from C and should not be
 exposed to language bindings.</doc>
+      <source-position filename="foo.h" line="556"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="fs" transfer-ownership="none">
-          <doc xml:space="preserve">a #RegressFooSkippable</doc>
+          <doc xml:space="preserve"
+               filename="foo.c"
+               line="718">a #RegressFooSkippable</doc>
           <type name="FooSkippable" c:type="RegressFooSkippable"/>
         </parameter>
       </parameters>
@@ -4838,6 +5729,7 @@ exposed to language bindings.</doc>
     <function name="foo_some_variant"
               c:identifier="regress_foo_some_variant"
               introspectable="0">
+      <source-position filename="foo.h" line="539"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4853,6 +5745,7 @@ exposed to language bindings.</doc>
     <function name="foo_some_variant_ptr"
               c:identifier="regress_foo_some_variant_ptr"
               introspectable="0">
+      <source-position filename="foo.h" line="542"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4866,6 +5759,7 @@ exposed to language bindings.</doc>
       </parameters>
     </function>
     <function name="foo_test_array" c:identifier="regress_foo_test_array">
+      <source-position filename="foo.h" line="467"/>
       <return-value transfer-ownership="container">
         <array name="GLib.Array" c:type="GArray*">
           <type name="utf8"/>
@@ -4874,6 +5768,7 @@ exposed to language bindings.</doc>
     </function>
     <function name="foo_test_const_char_param"
               c:identifier="regress_foo_test_const_char_param">
+      <source-position filename="foo.h" line="477"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4885,12 +5780,14 @@ exposed to language bindings.</doc>
     </function>
     <function name="foo_test_const_char_retval"
               c:identifier="regress_foo_test_const_char_retval">
+      <source-position filename="foo.h" line="471"/>
       <return-value transfer-ownership="none">
         <type name="utf8" c:type="const char*"/>
       </return-value>
     </function>
     <function name="foo_test_const_struct_param"
               c:identifier="regress_foo_test_const_struct_param">
+      <source-position filename="foo.h" line="480"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4902,12 +5799,14 @@ exposed to language bindings.</doc>
     </function>
     <function name="foo_test_const_struct_retval"
               c:identifier="regress_foo_test_const_struct_retval">
+      <source-position filename="foo.h" line="474"/>
       <return-value transfer-ownership="none">
         <type name="FooStruct" c:type="const RegressFooStruct*"/>
       </return-value>
     </function>
     <function name="foo_test_string_array"
               c:identifier="regress_foo_test_string_array">
+      <source-position filename="foo.h" line="459"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4921,6 +5820,7 @@ exposed to language bindings.</doc>
     </function>
     <function name="foo_test_string_array_with_g"
               c:identifier="regress_foo_test_string_array_with_g">
+      <source-position filename="foo.h" line="463"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4934,6 +5834,7 @@ exposed to language bindings.</doc>
     </function>
     <function name="foo_test_unsigned_qualifier"
               c:identifier="regress_foo_test_unsigned_qualifier">
+      <source-position filename="foo.h" line="452"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4945,6 +5846,7 @@ exposed to language bindings.</doc>
     </function>
     <function name="foo_test_unsigned_type"
               c:identifier="regress_foo_test_unsigned_type">
+      <source-position filename="foo.h" line="455"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4957,6 +5859,7 @@ exposed to language bindings.</doc>
     <function name="foo_test_varargs_callback"
               c:identifier="regress_foo_test_varargs_callback"
               introspectable="0">
+      <source-position filename="foo.h" line="485"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4972,6 +5875,7 @@ exposed to language bindings.</doc>
     <function name="foo_test_varargs_callback2"
               c:identifier="regress_foo_test_varargs_callback2"
               introspectable="0">
+      <source-position filename="foo.h" line="488"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4984,6 +5888,7 @@ exposed to language bindings.</doc>
     <function name="foo_test_varargs_callback3"
               c:identifier="regress_foo_test_varargs_callback3"
               introspectable="0">
+      <source-position filename="foo.h" line="491"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -4997,6 +5902,7 @@ exposed to language bindings.</doc>
       </parameters>
     </function>
     <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
+      <source-position filename="regress.h" line="943"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5005,13 +5911,16 @@ exposed to language bindings.</doc>
                    transfer-ownership="none"
                    nullable="1"
                    allow-none="1">
-          <doc xml:space="preserve">A #RegressTestObj</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3147">A #RegressTestObj</doc>
           <type name="TestObj" c:type="RegressTestObj*"/>
         </parameter>
       </parameters>
     </function>
     <function name="func_obj_nullable_in"
               c:identifier="regress_func_obj_nullable_in">
+      <source-position filename="regress.h" line="948"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5020,19 +5929,25 @@ exposed to language bindings.</doc>
                    transfer-ownership="none"
                    nullable="1"
                    allow-none="1">
-          <doc xml:space="preserve">A #RegressTestObj</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3167">A #RegressTestObj</doc>
           <type name="TestObj" c:type="RegressTestObj*"/>
         </parameter>
       </parameters>
     </function>
     <function name="get_variant" c:identifier="regress_get_variant">
+      <source-position filename="regress.h" line="1496"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">A new variant</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="4487">A new variant</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
     </function>
     <function name="global_get_flags_out"
               c:identifier="regress_global_get_flags_out">
+      <source-position filename="regress.h" line="442"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5041,25 +5956,34 @@ exposed to language bindings.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">A flags value</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="1624">A flags value</doc>
           <type name="TestFlags" c:type="RegressTestFlags*"/>
         </parameter>
       </parameters>
     </function>
     <function name="has_parameter_named_attrs"
               c:identifier="regress_has_parameter_named_attrs">
-      <doc xml:space="preserve">This test case mirrors GnomeKeyringPasswordSchema from
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="4447">This test case mirrors GnomeKeyringPasswordSchema from
 libgnome-keyring.</doc>
+      <source-position filename="regress.h" line="1436"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="foo" transfer-ownership="none">
-          <doc xml:space="preserve">some int</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="4449">some int</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="attributes" transfer-ownership="none">
-          <doc xml:space="preserve">list of attributes</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="4450">list of attributes</doc>
           <array zero-terminated="0" c:type="gpointer" fixed-size="32">
             <type name="guint32" c:type="gpointer"/>
           </array>
@@ -5068,6 +5992,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="introspectable_via_alias"
               c:identifier="regress_introspectable_via_alias">
+      <source-position filename="regress.h" line="1361"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5080,6 +6005,7 @@ libgnome-keyring.</doc>
     <function name="not_introspectable_via_alias"
               c:identifier="regress_not_introspectable_via_alias"
               introspectable="0">
+      <source-position filename="regress.h" line="1372"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5092,6 +6018,7 @@ libgnome-keyring.</doc>
     <function name="random_function_with_skipped_structure"
               c:identifier="regress_random_function_with_skipped_structure"
               introspectable="0">
+      <source-position filename="regress.h" line="1332"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5109,6 +6036,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="set_abort_on_error"
               c:identifier="regress_set_abort_on_error">
+      <source-position filename="regress.h" line="17"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5127,6 +6055,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_callback"
               c:identifier="regress_test_array_callback">
+      <source-position filename="regress.h" line="1127"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5138,6 +6067,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_fixed_out_objects"
               c:identifier="regress_test_array_fixed_out_objects">
+      <source-position filename="regress.h" line="861"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5146,7 +6076,9 @@ libgnome-keyring.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">An array of #RegressTestObj</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3209">An array of #RegressTestObj</doc>
           <array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
             <type name="TestObj" c:type="RegressTestObj**"/>
           </array>
@@ -5155,13 +6087,18 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_fixed_size_int_in"
               c:identifier="regress_test_array_fixed_size_int_in">
+      <source-position filename="regress.h" line="181"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">the sum of the items in @ints</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="828">the sum of the items in @ints</doc>
         <type name="gint" c:type="int"/>
       </return-value>
       <parameters>
         <parameter name="ints" transfer-ownership="none">
-          <doc xml:space="preserve">a list of 5 integers</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="826">a list of 5 integers</doc>
           <array zero-terminated="0" c:type="int*" fixed-size="5">
             <type name="gint" c:type="int"/>
           </array>
@@ -5170,6 +6107,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_fixed_size_int_out"
               c:identifier="regress_test_array_fixed_size_int_out">
+      <source-position filename="regress.h" line="184"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5178,7 +6116,9 @@ libgnome-keyring.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">a list of 5 integers ranging from 0 to 4</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="841">a list of 5 integers ranging from 0 to 4</doc>
           <array zero-terminated="0" c:type="int**" fixed-size="5">
             <type name="gint" c:type="int*"/>
           </array>
@@ -5187,8 +6127,11 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_fixed_size_int_return"
               c:identifier="regress_test_array_fixed_size_int_return">
+      <source-position filename="regress.h" line="187"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">a list of 5 integers ranging from 0 to 4</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="855">a list of 5 integers ranging from 0 to 4</doc>
         <array zero-terminated="0" c:type="int*" fixed-size="5">
           <type name="gint" c:type="int"/>
         </array>
@@ -5196,6 +6139,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_gint16_in"
               c:identifier="regress_test_array_gint16_in">
+      <source-position filename="regress.h" line="157"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5204,7 +6148,9 @@ libgnome-keyring.</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="ints" transfer-ownership="none">
-          <doc xml:space="preserve">List of ints</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="690">List of ints</doc>
           <array length="0" zero-terminated="0" c:type="gint16*">
             <type name="gint16" c:type="gint16"/>
           </array>
@@ -5213,6 +6159,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_gint32_in"
               c:identifier="regress_test_array_gint32_in">
+      <source-position filename="regress.h" line="160"/>
       <return-value transfer-ownership="none">
         <type name="gint32" c:type="gint32"/>
       </return-value>
@@ -5221,7 +6168,9 @@ libgnome-keyring.</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="ints" transfer-ownership="none">
-          <doc xml:space="preserve">List of ints</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="704">List of ints</doc>
           <array length="0" zero-terminated="0" c:type="gint32*">
             <type name="gint32" c:type="gint32"/>
           </array>
@@ -5230,6 +6179,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_gint64_in"
               c:identifier="regress_test_array_gint64_in">
+      <source-position filename="regress.h" line="163"/>
       <return-value transfer-ownership="none">
         <type name="gint64" c:type="gint64"/>
       </return-value>
@@ -5238,7 +6188,9 @@ libgnome-keyring.</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="ints" transfer-ownership="none">
-          <doc xml:space="preserve">List of ints</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="719">List of ints</doc>
           <array length="0" zero-terminated="0" c:type="gint64*">
             <type name="gint64" c:type="gint64"/>
           </array>
@@ -5247,6 +6199,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_gint8_in"
               c:identifier="regress_test_array_gint8_in">
+      <source-position filename="regress.h" line="154"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5255,7 +6208,9 @@ libgnome-keyring.</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="ints" transfer-ownership="none">
-          <doc xml:space="preserve">List of ints</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="676">List of ints</doc>
           <array length="0" zero-terminated="0" c:type="gint8*">
             <type name="gint8" c:type="gint8"/>
           </array>
@@ -5264,8 +6219,11 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_gtype_in"
               c:identifier="regress_test_array_gtype_in">
+      <source-position filename="regress.h" line="166"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">string representation of provided types</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="754">string representation of provided types</doc>
         <type name="utf8" c:type="char*"/>
       </return-value>
       <parameters>
@@ -5273,7 +6231,9 @@ libgnome-keyring.</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="types" transfer-ownership="none">
-          <doc xml:space="preserve">List of types</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="752">List of types</doc>
           <array length="0" zero-terminated="0" c:type="GType*">
             <type name="GType" c:type="GType"/>
           </array>
@@ -5282,6 +6242,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_inout_callback"
               c:identifier="regress_test_array_inout_callback">
+      <source-position filename="regress.h" line="1130"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5294,8 +6255,11 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_int_full_out"
               c:identifier="regress_test_array_int_full_out">
+      <source-position filename="regress.h" line="191"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">a new array of integers.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="887">a new array of integers.</doc>
         <array length="0" zero-terminated="0" c:type="int*">
           <type name="gint" c:type="int"/>
         </array>
@@ -5305,13 +6269,16 @@ libgnome-keyring.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">length of the returned array.</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="885">length of the returned array.</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_array_int_in"
               c:identifier="regress_test_array_int_in">
+      <source-position filename="regress.h" line="145"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5320,7 +6287,9 @@ libgnome-keyring.</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="ints" transfer-ownership="none">
-          <doc xml:space="preserve">List of ints</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="624">List of ints</doc>
           <array length="0" zero-terminated="0" c:type="int*">
             <type name="gint" c:type="int"/>
           </array>
@@ -5329,6 +6298,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_int_inout"
               c:identifier="regress_test_array_int_inout">
+      <source-position filename="regress.h" line="151"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5337,14 +6307,18 @@ libgnome-keyring.</doc>
                    direction="inout"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">the length of @ints</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="652">the length of @ints</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
         <parameter name="ints"
                    direction="inout"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="653">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
           <array length="0" zero-terminated="0" c:type="int**">
             <type name="gint" c:type="int*"/>
           </array>
@@ -5353,8 +6327,11 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_int_none_out"
               c:identifier="regress_test_array_int_none_out">
+      <source-position filename="regress.h" line="194"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">a static array of integers.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="904">a static array of integers.</doc>
         <array length="0" zero-terminated="0" c:type="int*">
           <type name="gint" c:type="int"/>
         </array>
@@ -5364,13 +6341,16 @@ libgnome-keyring.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">length of the returned array.</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="902">length of the returned array.</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_array_int_null_in"
               c:identifier="regress_test_array_int_null_in">
+      <source-position filename="regress.h" line="197"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5384,13 +6364,16 @@ libgnome-keyring.</doc>
           </array>
         </parameter>
         <parameter name="len" transfer-ownership="none">
-          <doc xml:space="preserve">length</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="917">length</doc>
           <type name="gint" c:type="int"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_array_int_null_out"
               c:identifier="regress_test_array_int_null_out">
+      <source-position filename="regress.h" line="200"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5409,13 +6392,16 @@ libgnome-keyring.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">length</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="928">length</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_array_int_out"
               c:identifier="regress_test_array_int_out">
+      <source-position filename="regress.h" line="148"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5424,14 +6410,18 @@ libgnome-keyring.</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">the length of @ints</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="637">the length of @ints</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
         <parameter name="ints"
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="638">a list of 5 integers, from 0 to 4 in consecutive order</doc>
           <array length="0" zero-terminated="0" c:type="int**">
             <type name="gint" c:type="int*"/>
           </array>
@@ -5440,7 +6430,10 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_struct_out"
               c:identifier="regress_test_array_struct_out">
-      <doc xml:space="preserve">This is similar to gdk_keymap_get_entries_for_keyval().</doc>
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="1745">This is similar to gdk_keymap_get_entries_for_keyval().</doc>
+      <source-position filename="regress.h" line="554"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5463,6 +6456,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_async_ready_callback"
               c:identifier="regress_test_async_ready_callback">
+      <source-position filename="regress.h" line="1160"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5477,6 +6471,7 @@ libgnome-keyring.</doc>
       </parameters>
     </function>
     <function name="test_boolean" c:identifier="regress_test_boolean">
+      <source-position filename="regress.h" line="28"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
@@ -5488,6 +6483,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_boolean_false"
               c:identifier="regress_test_boolean_false">
+      <source-position filename="regress.h" line="34"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
@@ -5499,6 +6495,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_boolean_true"
               c:identifier="regress_test_boolean_true">
+      <source-position filename="regress.h" line="31"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
@@ -5510,6 +6507,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_boxeds_not_a_method"
               c:identifier="regress_test_boxeds_not_a_method">
+      <source-position filename="regress.h" line="700"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5521,18 +6519,21 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_boxeds_not_a_static"
               c:identifier="regress_test_boxeds_not_a_static">
+      <source-position filename="regress.h" line="703"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
     </function>
     <function name="test_cairo_context_full_return"
               c:identifier="regress_test_cairo_context_full_return">
+      <source-position filename="regress.h" line="325"/>
       <return-value transfer-ownership="full">
         <type name="cairo.Context" c:type="cairo_t*"/>
       </return-value>
     </function>
     <function name="test_cairo_context_none_in"
               c:identifier="regress_test_cairo_context_none_in">
+      <source-position filename="regress.h" line="328"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5544,6 +6545,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_cairo_surface_full_out"
               c:identifier="regress_test_cairo_surface_full_out">
+      <source-position filename="regress.h" line="341"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5558,12 +6560,14 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_cairo_surface_full_return"
               c:identifier="regress_test_cairo_surface_full_return">
+      <source-position filename="regress.h" line="335"/>
       <return-value transfer-ownership="full">
         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
       </return-value>
     </function>
     <function name="test_cairo_surface_none_in"
               c:identifier="regress_test_cairo_surface_none_in">
+      <source-position filename="regress.h" line="338"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5575,11 +6579,13 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_cairo_surface_none_return"
               c:identifier="regress_test_cairo_surface_none_return">
+      <source-position filename="regress.h" line="332"/>
       <return-value transfer-ownership="none">
         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
       </return-value>
     </function>
     <function name="test_callback" c:identifier="regress_test_callback">
+      <source-position filename="regress.h" line="1121"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5595,6 +6601,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_callback_async"
               c:identifier="regress_test_callback_async">
+      <source-position filename="regress.h" line="1153"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5616,8 +6623,11 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_callback_destroy_notify"
               c:identifier="regress_test_callback_destroy_notify">
-      <doc xml:space="preserve">Notified - callback persists until a DestroyNotify delegate
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="3802">Notified - callback persists until a DestroyNotify delegate
 is invoked.</doc>
+      <source-position filename="regress.h" line="1140"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5643,8 +6653,11 @@ is invoked.</doc>
     </function>
     <function name="test_callback_destroy_notify_no_user_data"
               c:identifier="regress_test_callback_destroy_notify_no_user_data">
-      <doc xml:space="preserve">Adds a scope notified callback with no user data. This can invoke an error
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="3829">Adds a scope notified callback with no user data. This can invoke an error
 condition in bindings which needs to be tested.</doc>
+      <source-position filename="regress.h" line="1145"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5663,6 +6676,7 @@ condition in bindings which needs to be tested.</doc>
     </function>
     <function name="test_callback_return_full"
               c:identifier="regress_test_callback_return_full">
+      <source-position filename="regress.h" line="1137"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5675,24 +6689,33 @@ condition in bindings which needs to be tested.</doc>
     </function>
     <function name="test_callback_thaw_async"
               c:identifier="regress_test_callback_thaw_async">
+      <source-position filename="regress.h" line="1156"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
     </function>
     <function name="test_callback_thaw_notifications"
               c:identifier="regress_test_callback_thaw_notifications">
-      <doc xml:space="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="3843">Invokes all callbacks installed by #test_callback_destroy_notify(),
 adding up their return values, and removes them, invoking the
 corresponding destroy notfications.</doc>
+      <source-position filename="regress.h" line="1149"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">Sum of the return values of the invoked callbacks.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="3850">Sum of the return values of the invoked callbacks.</doc>
         <type name="gint" c:type="int"/>
       </return-value>
     </function>
     <function name="test_callback_user_data"
               c:identifier="regress_test_callback_user_data">
-      <doc xml:space="preserve">Call - callback parameter persists for the duration of the method
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="3771">Call - callback parameter persists for the duration of the method
 call and can be released on return.</doc>
+      <source-position filename="regress.h" line="1133"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5710,6 +6733,7 @@ call and can be released on return.</doc>
       </parameters>
     </function>
     <function name="test_closure" c:identifier="regress_test_closure">
+      <source-position filename="regress.h" line="307"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5721,6 +6745,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_closure_one_arg"
               c:identifier="regress_test_closure_one_arg">
+      <source-position filename="regress.h" line="310"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -5735,26 +6760,34 @@ call and can be released on return.</doc>
     </function>
     <function name="test_closure_variant"
               c:identifier="regress_test_closure_variant">
+      <source-position filename="regress.h" line="313"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">the return value of @closure</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="250">the return value of @closure</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
       <parameters>
         <parameter name="closure" transfer-ownership="none">
-          <doc xml:space="preserve">GClosure which takes one GVariant and returns a GVariant</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="247">GClosure which takes one GVariant and returns a GVariant</doc>
           <type name="GObject.Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="arg"
                    transfer-ownership="none"
                    nullable="1"
                    allow-none="1">
-          <doc xml:space="preserve">a GVariant passed as argument to @closure</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="248">a GVariant passed as argument to @closure</doc>
           <type name="GLib.Variant" c:type="GVariant*"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_create_fundamental_hidden_class_instance"
               c:identifier="regress_test_create_fundamental_hidden_class_instance">
+      <source-position filename="regress.h" line="1069"/>
       <return-value transfer-ownership="full">
         <type name="TestFundamentalObject"
               c:type="RegressTestFundamentalObject*"/>
@@ -5762,6 +6795,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_date_in_gvalue"
               c:identifier="regress_test_date_in_gvalue">
+      <source-position filename="regress.h" line="1299"/>
       <return-value transfer-ownership="full">
         <type name="GObject.Value" c:type="GValue*"/>
       </return-value>
@@ -5773,6 +6807,7 @@ call and can be released on return.</doc>
       </return-value>
     </function>
     <function name="test_double" c:identifier="regress_test_double">
+      <source-position filename="regress.h" line="88"/>
       <return-value transfer-ownership="none">
         <type name="gdouble" c:type="gdouble"/>
       </return-value>
@@ -5785,6 +6820,7 @@ call and can be released on return.</doc>
     <function name="test_enum_param"
               c:identifier="regress_test_enum_param"
               moved-to="TestEnum.param">
+      <source-position filename="regress.h" line="435"/>
       <return-value transfer-ownership="none">
         <type name="utf8" c:type="const gchar*"/>
       </return-value>
@@ -5803,14 +6839,18 @@ call and can be released on return.</doc>
     </function>
     <function name="test_filename_return"
               c:identifier="regress_test_filename_return">
+      <source-position filename="regress.h" line="116"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">list of strings</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="530">list of strings</doc>
         <type name="GLib.SList" c:type="GSList*">
           <type name="filename"/>
         </type>
       </return-value>
     </function>
     <function name="test_float" c:identifier="regress_test_float">
+      <source-position filename="regress.h" line="85"/>
       <return-value transfer-ownership="none">
         <type name="gfloat" c:type="gfloat"/>
       </return-value>
@@ -5822,6 +6862,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_garray_container_return"
               c:identifier="regress_test_garray_container_return">
+      <source-position filename="regress.h" line="298"/>
       <return-value transfer-ownership="container">
         <array name="GLib.PtrArray" c:type="GPtrArray*">
           <type name="utf8"/>
@@ -5830,6 +6871,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_garray_full_return"
               c:identifier="regress_test_garray_full_return">
+      <source-position filename="regress.h" line="301"/>
       <return-value transfer-ownership="full">
         <array name="GLib.PtrArray" c:type="GPtrArray*">
           <type name="utf8"/>
@@ -5838,6 +6880,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_gerror_callback"
               c:identifier="regress_test_gerror_callback">
+      <source-position filename="regress.h" line="1178"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5849,6 +6892,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_ghash_container_return"
               c:identifier="regress_test_ghash_container_return">
+      <source-position filename="regress.h" line="273"/>
       <return-value transfer-ownership="container">
         <type name="GLib.HashTable" c:type="GHashTable*">
           <type name="utf8"/>
@@ -5858,6 +6902,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_ghash_everything_return"
               c:identifier="regress_test_ghash_everything_return">
+      <source-position filename="regress.h" line="276"/>
       <return-value transfer-ownership="full">
         <type name="GLib.HashTable" c:type="GHashTable*">
           <type name="utf8"/>
@@ -5867,12 +6912,15 @@ call and can be released on return.</doc>
     </function>
     <function name="test_ghash_gvalue_in"
               c:identifier="regress_test_ghash_gvalue_in">
+      <source-position filename="regress.h" line="270"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="hash" transfer-ownership="none">
-          <doc xml:space="preserve">the hash table returned by
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="1342">the hash table returned by
 regress_test_ghash_gvalue_return().</doc>
           <type name="GLib.HashTable" c:type="GHashTable*">
             <type name="utf8"/>
@@ -5883,6 +6931,7 @@ regress_test_ghash_gvalue_return().</doc>
     </function>
     <function name="test_ghash_gvalue_return"
               c:identifier="regress_test_ghash_gvalue_return">
+      <source-position filename="regress.h" line="267"/>
       <return-value transfer-ownership="none">
         <type name="GLib.HashTable" c:type="GHashTable*">
           <type name="utf8"/>
@@ -5892,7 +6941,10 @@ regress_test_ghash_gvalue_return().</doc>
     </function>
     <function name="test_ghash_nested_everything_return"
               c:identifier="regress_test_ghash_nested_everything_return">
-      <doc xml:space="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="1467">Specify nested parameterized types directly with the (type ) annotation.</doc>
+      <source-position filename="regress.h" line="291"/>
       <return-value transfer-ownership="full">
         <type name="GLib.HashTable" c:type="GHashTable*">
           <type name="utf8"/>
@@ -5905,8 +6957,11 @@ regress_test_ghash_gvalue_return().</doc>
     </function>
     <function name="test_ghash_nested_everything_return2"
               c:identifier="regress_test_ghash_nested_everything_return2">
-      <doc xml:space="preserve">Another way of specifying nested parameterized types: using the
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="1484">Another way of specifying nested parameterized types: using the
 element-type annotation.</doc>
+      <source-position filename="regress.h" line="294"/>
       <return-value transfer-ownership="full">
         <type name="GLib.HashTable" c:type="GHashTable*">
           <type name="utf8"/>
@@ -5919,6 +6974,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_ghash_nothing_in"
               c:identifier="regress_test_ghash_nothing_in">
+      <source-position filename="regress.h" line="285"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5933,6 +6989,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_ghash_nothing_in2"
               c:identifier="regress_test_ghash_nothing_in2">
+      <source-position filename="regress.h" line="288"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5947,6 +7004,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_ghash_nothing_return"
               c:identifier="regress_test_ghash_nothing_return">
+      <source-position filename="regress.h" line="261"/>
       <return-value transfer-ownership="none">
         <type name="GLib.HashTable" c:type="const GHashTable*">
           <type name="utf8"/>
@@ -5956,6 +7014,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_ghash_nothing_return2"
               c:identifier="regress_test_ghash_nothing_return2">
+      <source-position filename="regress.h" line="264"/>
       <return-value transfer-ownership="none">
         <type name="GLib.HashTable" c:type="GHashTable*">
           <type name="utf8"/>
@@ -5965,6 +7024,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_ghash_null_in"
               c:identifier="regress_test_ghash_null_in">
+      <source-position filename="regress.h" line="279"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5982,6 +7042,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_ghash_null_out"
               c:identifier="regress_test_ghash_null_out">
+      <source-position filename="regress.h" line="282"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6001,6 +7062,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_ghash_null_return"
               c:identifier="regress_test_ghash_null_return">
+      <source-position filename="regress.h" line="258"/>
       <return-value transfer-ownership="none" nullable="1">
         <type name="GLib.HashTable" c:type="const GHashTable*">
           <type name="utf8"/>
@@ -6010,6 +7072,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_container_return"
               c:identifier="regress_test_glist_container_return">
+      <source-position filename="regress.h" line="211"/>
       <return-value transfer-ownership="container">
         <type name="GLib.List" c:type="GList*">
           <type name="utf8"/>
@@ -6018,6 +7081,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_everything_return"
               c:identifier="regress_test_glist_everything_return">
+      <source-position filename="regress.h" line="214"/>
       <return-value transfer-ownership="full">
         <type name="GLib.List" c:type="GList*">
           <type name="utf8"/>
@@ -6026,6 +7090,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_gtype_container_in"
               c:identifier="regress_test_glist_gtype_container_in">
+      <source-position filename="regress.h" line="217"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6039,6 +7104,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_nothing_in"
               c:identifier="regress_test_glist_nothing_in">
+      <source-position filename="regress.h" line="220"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6052,6 +7118,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_nothing_in2"
               c:identifier="regress_test_glist_nothing_in2">
+      <source-position filename="regress.h" line="223"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6065,6 +7132,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_nothing_return"
               c:identifier="regress_test_glist_nothing_return">
+      <source-position filename="regress.h" line="205"/>
       <return-value transfer-ownership="none">
         <type name="GLib.List" c:type="const GList*">
           <type name="utf8"/>
@@ -6073,6 +7141,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_nothing_return2"
               c:identifier="regress_test_glist_nothing_return2">
+      <source-position filename="regress.h" line="208"/>
       <return-value transfer-ownership="none">
         <type name="GLib.List" c:type="GList*">
           <type name="utf8"/>
@@ -6081,6 +7150,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_null_in"
               c:identifier="regress_test_glist_null_in">
+      <source-position filename="regress.h" line="226"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6097,6 +7167,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_glist_null_out"
               c:identifier="regress_test_glist_null_out">
+      <source-position filename="regress.h" line="229"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6115,6 +7186,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_container_return"
               c:identifier="regress_test_gslist_container_return">
+      <source-position filename="regress.h" line="239"/>
       <return-value transfer-ownership="container">
         <type name="GLib.SList" c:type="GSList*">
           <type name="utf8"/>
@@ -6123,6 +7195,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_everything_return"
               c:identifier="regress_test_gslist_everything_return">
+      <source-position filename="regress.h" line="242"/>
       <return-value transfer-ownership="full">
         <type name="GLib.SList" c:type="GSList*">
           <type name="utf8"/>
@@ -6131,6 +7204,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_nothing_in"
               c:identifier="regress_test_gslist_nothing_in">
+      <source-position filename="regress.h" line="245"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6144,6 +7218,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_nothing_in2"
               c:identifier="regress_test_gslist_nothing_in2">
+      <source-position filename="regress.h" line="248"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6157,6 +7232,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_nothing_return"
               c:identifier="regress_test_gslist_nothing_return">
+      <source-position filename="regress.h" line="233"/>
       <return-value transfer-ownership="none">
         <type name="GLib.SList" c:type="const GSList*">
           <type name="utf8"/>
@@ -6165,6 +7241,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_nothing_return2"
               c:identifier="regress_test_gslist_nothing_return2">
+      <source-position filename="regress.h" line="236"/>
       <return-value transfer-ownership="none">
         <type name="GLib.SList" c:type="GSList*">
           <type name="utf8"/>
@@ -6173,6 +7250,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_null_in"
               c:identifier="regress_test_gslist_null_in">
+      <source-position filename="regress.h" line="251"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6189,6 +7267,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_gslist_null_out"
               c:identifier="regress_test_gslist_null_out">
+      <source-position filename="regress.h" line="254"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6206,6 +7285,7 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_gtype" c:identifier="regress_test_gtype">
+      <source-position filename="regress.h" line="97"/>
       <return-value transfer-ownership="none">
         <type name="GType" c:type="GType"/>
       </return-value>
@@ -6216,44 +7296,62 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_gvariant_as" c:identifier="regress_test_gvariant_as">
+      <source-position filename="regress.h" line="362"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">New variant</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="453">New variant</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
     </function>
     <function name="test_gvariant_asv"
               c:identifier="regress_test_gvariant_asv">
+      <source-position filename="regress.h" line="356"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">New variant</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="424">New variant</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
     </function>
     <function name="test_gvariant_i" c:identifier="regress_test_gvariant_i">
+      <source-position filename="regress.h" line="350"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">New variant</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="402">New variant</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
     </function>
     <function name="test_gvariant_s" c:identifier="regress_test_gvariant_s">
+      <source-position filename="regress.h" line="353"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">New variant</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="413">New variant</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
     </function>
     <function name="test_gvariant_v" c:identifier="regress_test_gvariant_v">
+      <source-position filename="regress.h" line="359"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">New variant</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="442">New variant</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
     </function>
     <function name="test_hash_table_callback"
               c:identifier="regress_test_hash_table_callback">
+      <source-position filename="regress.h" line="1175"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="data" transfer-ownership="none">
-          <doc xml:space="preserve">GHashTable that gets passed to callback</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="3973">GHashTable that gets passed to callback</doc>
           <type name="GLib.HashTable" c:type="GHashTable*">
             <type name="utf8"/>
             <type name="gint"/>
@@ -6266,6 +7364,7 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_int" c:identifier="regress_test_int">
+      <source-position filename="regress.h" line="67"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="gint"/>
       </return-value>
@@ -6276,6 +7375,7 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_int16" c:identifier="regress_test_int16">
+      <source-position filename="regress.h" line="43"/>
       <return-value transfer-ownership="none">
         <type name="gint16" c:type="gint16"/>
       </return-value>
@@ -6286,6 +7386,7 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_int32" c:identifier="regress_test_int32">
+      <source-position filename="regress.h" line="49"/>
       <return-value transfer-ownership="none">
         <type name="gint32" c:type="gint32"/>
       </return-value>
@@ -6296,6 +7397,7 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_int64" c:identifier="regress_test_int64">
+      <source-position filename="regress.h" line="55"/>
       <return-value transfer-ownership="none">
         <type name="gint64" c:type="gint64"/>
       </return-value>
@@ -6306,6 +7408,7 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_int8" c:identifier="regress_test_int8">
+      <source-position filename="regress.h" line="37"/>
       <return-value transfer-ownership="none">
         <type name="gint8" c:type="gint8"/>
       </return-value>
@@ -6317,6 +7420,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_int_out_utf8"
               c:identifier="regress_test_int_out_utf8">
+      <source-position filename="regress.h" line="126"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6334,6 +7438,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_int_value_arg"
               c:identifier="regress_test_int_value_arg">
+      <source-position filename="regress.h" line="317"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -6344,6 +7449,7 @@ element-type annotation.</doc>
       </parameters>
     </function>
     <function name="test_long" c:identifier="regress_test_long">
+      <source-position filename="regress.h" line="73"/>
       <return-value transfer-ownership="none">
         <type name="glong" c:type="glong"/>
       </return-value>
@@ -6355,6 +7461,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_multi_callback"
               c:identifier="regress_test_multi_callback">
+      <source-position filename="regress.h" line="1124"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -6370,6 +7477,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_multi_double_args"
               c:identifier="regress_test_multi_double_args">
+      <source-position filename="regress.h" line="131"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6393,20 +7501,25 @@ element-type annotation.</doc>
     </function>
     <function name="test_multiline_doc_comments"
               c:identifier="regress_test_multiline_doc_comments">
-      <doc xml:space="preserve">This is a function.
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="4355">This is a function.
 
 It has multiple lines in the documentation.
 
 The sky is blue.
 
 You will give me your credit card number.</doc>
+      <source-position filename="regress.h" line="1313"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
     </function>
     <function name="test_nested_parameter"
               c:identifier="regress_test_nested_parameter">
-      <doc xml:space="preserve">&lt;informaltable&gt;
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="4371">&lt;informaltable&gt;
   &lt;tgroup cols="3"&gt;
     &lt;thead&gt;
       &lt;row&gt;
@@ -6434,18 +7547,22 @@ rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
 &lt;/informaltable&gt;
 
 What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
+      <source-position filename="regress.h" line="1316"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="a" transfer-ownership="none">
-          <doc xml:space="preserve">An integer</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="4373">An integer</doc>
           <type name="gint" c:type="int"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_noptr_callback"
               c:identifier="regress_test_noptr_callback">
+      <source-position filename="regress.h" line="1118"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6461,6 +7578,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     </function>
     <function name="test_null_gerror_callback"
               c:identifier="regress_test_null_gerror_callback">
+      <source-position filename="regress.h" line="1181"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6472,12 +7590,14 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     </function>
     <function name="test_null_strv_in_gvalue"
               c:identifier="regress_test_null_strv_in_gvalue">
+      <source-position filename="regress.h" line="1305"/>
       <return-value transfer-ownership="full">
         <type name="GObject.Value" c:type="GValue*"/>
       </return-value>
     </function>
     <function name="test_owned_gerror_callback"
               c:identifier="regress_test_owned_gerror_callback">
+      <source-position filename="regress.h" line="1184"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6490,17 +7610,20 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     </function>
     <function name="test_return_allow_none"
               c:identifier="regress_test_return_allow_none">
+      <source-position filename="regress.h" line="21"/>
       <return-value transfer-ownership="full" nullable="1">
         <type name="utf8" c:type="char*"/>
       </return-value>
     </function>
     <function name="test_return_nullable"
               c:identifier="regress_test_return_nullable">
+      <source-position filename="regress.h" line="24"/>
       <return-value transfer-ownership="full" nullable="1">
         <type name="utf8" c:type="char*"/>
       </return-value>
     </function>
     <function name="test_short" c:identifier="regress_test_short">
+      <source-position filename="regress.h" line="61"/>
       <return-value transfer-ownership="none">
         <type name="gshort" c:type="gshort"/>
       </return-value>
@@ -6513,12 +7636,14 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     <function name="test_simple_boxed_a_const_return"
               c:identifier="regress_test_simple_boxed_a_const_return"
               moved-to="TestSimpleBoxedA.const_return">
+      <source-position filename="regress.h" line="645"/>
       <return-value transfer-ownership="none">
         <type name="TestSimpleBoxedA" c:type="const RegressTestSimpleBoxedA*"/>
       </return-value>
     </function>
     <function name="test_simple_callback"
               c:identifier="regress_test_simple_callback">
+      <source-position filename="regress.h" line="1115"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6533,6 +7658,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
       </parameters>
     </function>
     <function name="test_size" c:identifier="regress_test_size">
+      <source-position filename="regress.h" line="82"/>
       <return-value transfer-ownership="none">
         <type name="gsize" c:type="gsize"/>
       </return-value>
@@ -6545,19 +7671,25 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     <function name="test_skip_unannotated_callback"
               c:identifier="regress_test_skip_unannotated_callback"
               introspectable="0">
-      <doc xml:space="preserve">Should not emit a warning:
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="4023">Should not emit a warning:
 https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
+      <source-position filename="regress.h" line="1188"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="callback" transfer-ownership="none">
-          <doc xml:space="preserve">No annotation here</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="4025">No annotation here</doc>
           <type name="TestCallback" c:type="RegressTestCallback"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_ssize" c:identifier="regress_test_ssize">
+      <source-position filename="regress.h" line="79"/>
       <return-value transfer-ownership="none">
         <type name="gssize" c:type="gssize"/>
       </return-value>
@@ -6570,6 +7702,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     <function name="test_struct_a_parse"
               c:identifier="regress_test_struct_a_parse"
               moved-to="TestStructA.parse">
+      <source-position filename="regress.h" line="551"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6578,16 +7711,21 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
                    direction="out"
                    caller-allocates="1"
                    transfer-ownership="none">
-          <doc xml:space="preserve">the structure that is to be filled</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="1735">the structure that is to be filled</doc>
           <type name="TestStructA" c:type="RegressTestStructA*"/>
         </parameter>
         <parameter name="string" transfer-ownership="none">
-          <doc xml:space="preserve">ignored</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="1736">ignored</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_strv_in" c:identifier="regress_test_strv_in">
+      <source-position filename="regress.h" line="142"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
@@ -6601,11 +7739,13 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_strv_in_gvalue"
               c:identifier="regress_test_strv_in_gvalue">
+      <source-position filename="regress.h" line="1302"/>
       <return-value transfer-ownership="full">
         <type name="GObject.Value" c:type="GValue*"/>
       </return-value>
     </function>
     <function name="test_strv_out" c:identifier="regress_test_strv_out">
+      <source-position filename="regress.h" line="172"/>
       <return-value transfer-ownership="full">
         <array c:type="char**">
           <type name="utf8"/>
@@ -6613,6 +7753,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </return-value>
     </function>
     <function name="test_strv_out_c" c:identifier="regress_test_strv_out_c">
+      <source-position filename="regress.h" line="175"/>
       <return-value transfer-ownership="none">
         <array c:type="const char* const*">
           <type name="utf8"/>
@@ -6621,6 +7762,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_strv_out_container"
               c:identifier="regress_test_strv_out_container">
+      <source-position filename="regress.h" line="169"/>
       <return-value transfer-ownership="container">
         <array c:type="const char**">
           <type name="utf8"/>
@@ -6628,6 +7770,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </return-value>
     </function>
     <function name="test_strv_outarg" c:identifier="regress_test_strv_outarg">
+      <source-position filename="regress.h" line="178"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6643,6 +7786,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_timet" c:identifier="regress_test_timet">
+      <source-position filename="regress.h" line="94"/>
       <return-value transfer-ownership="none">
         <type name="glong" c:type="time_t"/>
       </return-value>
@@ -6654,6 +7798,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_torture_signature_0"
               c:identifier="regress_test_torture_signature_0">
+      <source-position filename="regress.h" line="1270"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6690,7 +7835,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     <function name="test_torture_signature_1"
               c:identifier="regress_test_torture_signature_1"
               throws="1">
-      <doc xml:space="preserve">This function throws an error if m is odd.</doc>
+      <doc xml:space="preserve"
+           filename="regress.c"
+           line="4243">This function throws an error if m is odd.</doc>
+      <source-position filename="regress.h" line="1278"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
@@ -6726,6 +7874,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_torture_signature_2"
               c:identifier="regress_test_torture_signature_2">
+      <source-position filename="regress.h" line="1287"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6777,6 +7926,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_uint" c:identifier="regress_test_uint">
+      <source-position filename="regress.h" line="70"/>
       <return-value transfer-ownership="none">
         <type name="guint" c:type="guint"/>
       </return-value>
@@ -6787,6 +7937,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_uint16" c:identifier="regress_test_uint16">
+      <source-position filename="regress.h" line="46"/>
       <return-value transfer-ownership="none">
         <type name="guint16" c:type="guint16"/>
       </return-value>
@@ -6797,6 +7948,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_uint32" c:identifier="regress_test_uint32">
+      <source-position filename="regress.h" line="52"/>
       <return-value transfer-ownership="none">
         <type name="guint32" c:type="guint32"/>
       </return-value>
@@ -6807,6 +7959,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_uint64" c:identifier="regress_test_uint64">
+      <source-position filename="regress.h" line="58"/>
       <return-value transfer-ownership="none">
         <type name="guint64" c:type="guint64"/>
       </return-value>
@@ -6817,6 +7970,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_uint8" c:identifier="regress_test_uint8">
+      <source-position filename="regress.h" line="40"/>
       <return-value transfer-ownership="none">
         <type name="guint8" c:type="guint8"/>
       </return-value>
@@ -6827,6 +7981,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_ulong" c:identifier="regress_test_ulong">
+      <source-position filename="regress.h" line="76"/>
       <return-value transfer-ownership="none">
         <type name="gulong" c:type="gulong"/>
       </return-value>
@@ -6844,6 +7999,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </return-value>
     </function>
     <function name="test_unichar" c:identifier="regress_test_unichar">
+      <source-position filename="regress.h" line="91"/>
       <return-value transfer-ownership="none">
         <type name="gunichar" c:type="gunichar"/>
       </return-value>
@@ -6855,6 +8011,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_unsigned_enum_param"
               c:identifier="regress_test_unsigned_enum_param">
+      <source-position filename="regress.h" line="438"/>
       <return-value transfer-ownership="none">
         <type name="utf8" c:type="const gchar*"/>
       </return-value>
@@ -6865,6 +8022,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_ushort" c:identifier="regress_test_ushort">
+      <source-position filename="regress.h" line="64"/>
       <return-value transfer-ownership="none">
         <type name="gushort" c:type="gushort"/>
       </return-value>
@@ -6876,6 +8034,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_utf8_const_in"
               c:identifier="regress_test_utf8_const_in">
+      <source-position filename="regress.h" line="107"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6887,12 +8046,16 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_utf8_const_return"
               c:identifier="regress_test_utf8_const_return">
+      <source-position filename="regress.h" line="101"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">UTF-8 string</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="472">UTF-8 string</doc>
         <type name="utf8" c:type="const char*"/>
       </return-value>
     </function>
     <function name="test_utf8_inout" c:identifier="regress_test_utf8_inout">
+      <source-position filename="regress.h" line="113"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6907,13 +8070,17 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_utf8_nonconst_return"
               c:identifier="regress_test_utf8_nonconst_return">
+      <source-position filename="regress.h" line="104"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">UTF-8 string</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="484">UTF-8 string</doc>
         <type name="utf8" c:type="char*"/>
       </return-value>
     </function>
     <function name="test_utf8_null_in"
               c:identifier="regress_test_utf8_null_in">
+      <source-position filename="regress.h" line="119"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6928,6 +8095,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_utf8_null_out"
               c:identifier="regress_test_utf8_null_out">
+      <source-position filename="regress.h" line="122"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6943,6 +8111,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
       </parameters>
     </function>
     <function name="test_utf8_out" c:identifier="regress_test_utf8_out">
+      <source-position filename="regress.h" line="110"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6957,8 +8126,11 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_utf8_out_nonconst_return"
               c:identifier="regress_test_utf8_out_nonconst_return">
+      <source-position filename="regress.h" line="137"/>
       <return-value transfer-ownership="full">
-        <doc xml:space="preserve">a copy of "first"</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="586">a copy of "first"</doc>
         <type name="utf8" c:type="char*"/>
       </return-value>
       <parameters>
@@ -6966,13 +8138,16 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">a copy of "second"</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="584">a copy of "second"</doc>
           <type name="utf8" c:type="char**"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_utf8_out_out"
               c:identifier="regress_test_utf8_out_out">
+      <source-position filename="regress.h" line="134"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6981,14 +8156,18 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">a copy of "first"</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="572">a copy of "first"</doc>
           <type name="utf8" c:type="char**"/>
         </parameter>
         <parameter name="out1"
                    direction="out"
                    caller-allocates="0"
                    transfer-ownership="full">
-          <doc xml:space="preserve">a copy of "second"</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="573">a copy of "second"</doc>
           <type name="utf8" c:type="char**"/>
         </parameter>
       </parameters>
@@ -6996,6 +8175,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     <function name="test_value_get_fundamental_object"
               c:identifier="regress_test_value_get_fundamental_object"
               introspectable="0">
+      <source-position filename="regress.h" line="1043"/>
       <return-value>
         <type name="TestFundamentalObject"
               c:type="RegressTestFundamentalObject*"/>
@@ -7008,13 +8188,18 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_value_return"
               c:identifier="regress_test_value_return">
+      <source-position filename="regress.h" line="320"/>
       <return-value transfer-ownership="none">
-        <doc xml:space="preserve">the int wrapped in a GValue.</doc>
+        <doc xml:space="preserve"
+             filename="regress.c"
+             line="300">the int wrapped in a GValue.</doc>
         <type name="GObject.Value" c:type="const GValue*"/>
       </return-value>
       <parameters>
         <parameter name="i" transfer-ownership="none">
-          <doc xml:space="preserve">an int</doc>
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="298">an int</doc>
           <type name="gint" c:type="int"/>
         </parameter>
       </parameters>
@@ -7022,6 +8207,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     <function name="test_value_set_fundamental_object"
               c:identifier="regress_test_value_set_fundamental_object"
               introspectable="0">
+      <source-position filename="regress.h" line="1040"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -7047,6 +8233,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
   because it sucks. Use foobar instead.</doc-deprecated>
       <doc-stability xml:space="preserve">Maybe someday we will find the time
   to stabilize this function. Who knows?</doc-stability>
+      <source-position filename="regress.h" line="346"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
index a98ebb2..3223b0c 100644 (file)
@@ -16,6 +16,7 @@ and/or use gtk-doc annotations.  -->
     <enumeration name="DBusError"
                  c:type="SDBusError"
                  glib:error-domain="s-dbus-error">
+      <source-position filename="sletter.h" line="33"/>
       <member name="code1" value="1" c:identifier="S_DBUS_ERROR_CODE1">
       </member>
       <member name="code2" value="2" c:identifier="S_DBUS_ERROR_CODE2">
@@ -24,6 +25,7 @@ and/or use gtk-doc annotations.  -->
       </member>
     </enumeration>
     <record name="Point" c:type="SPoint">
+      <source-position filename="sletter.h" line="11"/>
       <field name="x" writable="1">
         <type name="gdouble" c:type="double"/>
       </field>
@@ -34,6 +36,7 @@ and/or use gtk-doc annotations.  -->
     <enumeration name="SpawnError"
                  c:type="SSpawnError"
                  glib:error-domain="s-spawn-error">
+      <source-position filename="sletter.h" line="22"/>
       <member name="code1" value="1" c:identifier="S_SPAWN_ERROR_CODE1">
       </member>
       <member name="code2" value="2" c:identifier="S_SPAWN_ERROR_CODE2">
@@ -47,6 +50,7 @@ and/or use gtk-doc annotations.  -->
       </return-value>
     </function>
     <function name="hello" c:identifier="s_hello">
+      <source-position filename="sletter.h" line="14"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
index db063d1..80fe0d4 100644 (file)
@@ -12,8 +12,10 @@ and/or use gtk-doc annotations.  -->
              c:identifier-prefixes="Symbolfilter"
              c:symbol-prefixes="symbolfilter">
     <record name="Object" c:type="SymbolfilterObject" disguised="1">
+      <source-position filename="symbolfilter.h" line="4"/>
       <method name="filterObjectFooMethod"
               c:identifier="SymbolfilterObjectFooMethod">
+        <source-position filename="symbolfilter.h" line="7"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -24,6 +26,7 @@ and/or use gtk-doc annotations.  -->
         </parameters>
       </method>
       <method name="filterObjectFree" c:identifier="SymbolfilterObjectFree">
+        <source-position filename="symbolfilter.h" line="8"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -36,6 +39,7 @@ and/or use gtk-doc annotations.  -->
       <function name="new"
                 c:identifier="SymbolfilterObjectNew"
                 introspectable="0">
+        <source-position filename="symbolfilter.h" line="6"/>
         <return-value>
           <type name="Object" c:type="SymbolfilterObject*"/>
         </return-value>
index 9bfd0d0..05df44b 100644 (file)
@@ -19,6 +19,7 @@ and/or use gtk-doc annotations.  -->
             glib:type-name="TypedefsBoxedWithAnonymousTypedef"
             glib:get-type="typedefs_boxed_with_anonymous_typedef_get_type"
             c:symbol-prefix="boxed_with_anonymous_typedef">
+      <source-position filename="typedefs.h" line="72"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -28,12 +29,14 @@ and/or use gtk-doc annotations.  -->
             glib:type-name="TypedefsBoxedWithHiddenStruct"
             glib:get-type="typedefs_boxed_with_hidden_struct_get_type"
             c:symbol-prefix="boxed_with_hidden_struct">
+      <source-position filename="typedefs.h" line="79"/>
     </record>
     <record name="BoxedWithTagAndTypedef"
             c:type="TypedefsBoxedWithTagAndTypedef"
             glib:type-name="TypedefsBoxedWithTagAndTypedef"
             glib:get-type="typedefs_boxed_with_tag_and_typedef_get_type"
             c:symbol-prefix="boxed_with_tag_and_typedef">
+      <source-position filename="typedefs.h" line="63"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -43,6 +46,7 @@ and/or use gtk-doc annotations.  -->
             glib:type-name="TypedefsBoxedWithTypedefAfter"
             glib:get-type="typedefs_boxed_with_typedef_after_get_type"
             c:symbol-prefix="boxed_with_typedef_after">
+      <source-position filename="typedefs.h" line="53"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -52,30 +56,35 @@ and/or use gtk-doc annotations.  -->
             glib:type-name="TypedefsBoxedWithTypedefBefore"
             glib:get-type="typedefs_boxed_with_typedef_before_get_type"
             c:symbol-prefix="boxed_with_typedef_before">
+      <source-position filename="typedefs.h" line="44"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
     </record>
     <record name="StructWithAnonymousTypedef"
             c:type="TypedefsStructWithAnonymousTypedef">
+      <source-position filename="typedefs.h" line="15"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
     </record>
     <record name="StructWithTagAndTypedef"
             c:type="TypedefsStructWithTagAndTypedef">
+      <source-position filename="typedefs.h" line="34"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
     </record>
     <record name="StructWithTypedefAfter"
             c:type="TypedefsStructWithTypedefAfter">
+      <source-position filename="typedefs.h" line="27"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
     </record>
     <record name="StructWithTypedefBefore"
             c:type="TypedefsStructWithTypedefBefore">
+      <source-position filename="typedefs.h" line="21"/>
       <field name="value" writable="1">
         <type name="gint" c:type="int"/>
       </field>
index 7eea9f7..2521efb 100644 (file)
@@ -15,11 +15,13 @@ and/or use gtk-doc annotations.  -->
              c:identifier-prefixes="Utility"
              c:symbol-prefixes="utility">
     <alias name="Glyph" c:type="UtilityGlyph">
+      <source-position filename="utility.h" line="26"/>
       <type name="guint32" c:type="guint32"/>
     </alias>
     <record name="Buffer" c:type="UtilityBuffer">
+      <source-position filename="utility.h" line="54"/>
       <field name="data" writable="1">
-        <doc xml:space="preserve">the data</doc>
+        <doc xml:space="preserve" filename="utility.c" line="10">the data</doc>
         <type name="gpointer"/>
       </field>
       <field name="length" writable="1">
@@ -27,10 +29,12 @@ and/or use gtk-doc annotations.  -->
       </field>
     </record>
     <union name="Byte" c:type="UtilityByte">
+      <source-position filename="utility.h" line="47"/>
       <field name="value" writable="1">
         <type name="guint8" c:type="guint8"/>
       </field>
       <record name="parts" c:type="parts">
+        <source-position filename="utility.h" line="46"/>
         <field name="first_nibble" writable="1" bits="4">
           <type name="guint8" c:type="guint8"/>
         </field>
@@ -40,6 +44,7 @@ and/or use gtk-doc annotations.  -->
       </record>
     </union>
     <enumeration name="EnumType" c:type="UtilityEnumType">
+      <source-position filename="utility.h" line="74"/>
       <member name="a" value="0" c:identifier="UTILITY_ENUM_A">
       </member>
       <member name="b" value="1" c:identifier="UTILITY_ENUM_B">
@@ -48,6 +53,7 @@ and/or use gtk-doc annotations.  -->
       </member>
     </enumeration>
     <callback name="FileFunc" c:type="UtilityFileFunc">
+      <source-position filename="utility.h" line="56"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -65,6 +71,7 @@ and/or use gtk-doc annotations.  -->
       </parameters>
     </callback>
     <bitfield name="FlagType" c:type="UtilityFlagType">
+      <source-position filename="utility.h" line="82"/>
       <member name="a" value="1" c:identifier="UTILITY_FLAG_A">
       </member>
       <member name="b" value="2" c:identifier="UTILITY_FLAG_B">
@@ -79,7 +86,9 @@ and/or use gtk-doc annotations.  -->
            glib:type-name="UtilityObject"
            glib:get-type="utility_object_get_type"
            glib:type-struct="ObjectClass">
+      <source-position filename="utility.h" line="23"/>
       <method name="watch_dir" c:identifier="utility_object_watch_dir">
+        <source-position filename="utility.h" line="63"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -115,11 +124,13 @@ and/or use gtk-doc annotations.  -->
     <record name="ObjectClass"
             c:type="UtilityObjectClass"
             glib:is-gtype-struct-for="Object">
+      <source-position filename="utility.h" line="23"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
     </record>
     <record name="Struct" c:type="UtilityStruct">
+      <source-position filename="utility.h" line="90"/>
       <field name="field" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -136,10 +147,12 @@ and/or use gtk-doc annotations.  -->
       </field>
     </record>
     <record name="TaggedValue" c:type="UtilityTaggedValue">
+      <source-position filename="utility.h" line="37"/>
       <field name="tag" writable="1">
         <type name="gint" c:type="int"/>
       </field>
       <union name="value" c:type="value">
+        <source-position filename="utility.h" line="36"/>
         <field name="v_pointer" writable="1">
           <type name="gpointer" c:type="gpointer"/>
         </field>
@@ -152,6 +165,7 @@ and/or use gtk-doc annotations.  -->
       </union>
     </record>
     <union name="Union" c:type="UtilityUnion">
+      <source-position filename="utility.h" line="97"/>
       <field name="pointer" writable="1">
         <type name="utf8" c:type="char*"/>
       </field>
@@ -163,6 +177,7 @@ and/or use gtk-doc annotations.  -->
       </field>
     </union>
     <function name="dir_foreach" c:identifier="utility_dir_foreach">
+      <source-position filename="utility.h" line="100"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
index 007ec86..3ceb088 100644 (file)
@@ -19,30 +19,41 @@ and/or use gtk-doc annotations.  -->
                glib:type-name="WarnLibWhatever"
                glib:get-type="warnlib_whatever_get_type"
                glib:type-struct="WhateverIface">
+      <source-position filename="warnlib.h" line="36"/>
       <virtual-method name="do_boo" invoker="do_boo">
-        <doc xml:space="preserve">Does boo.</doc>
+        <doc xml:space="preserve"
+             filename="warnlib.c"
+             line="35">Does boo.</doc>
+        <source-position filename="warnlib.h" line="35"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="self" transfer-ownership="none">
-            <doc xml:space="preserve">a WarnLibWhatever</doc>
+            <doc xml:space="preserve"
+                 filename="warnlib.c"
+                 line="37">a WarnLibWhatever</doc>
             <type name="Whatever" c:type="WarnLibWhatever*"/>
           </instance-parameter>
           <parameter name="x" transfer-ownership="none">
-            <doc xml:space="preserve">x parameter</doc>
+            <doc xml:space="preserve"
+                 filename="warnlib.c"
+                 line="38">x parameter</doc>
             <type name="gint" c:type="int"/>
           </parameter>
           <parameter name="y"
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
-            <doc xml:space="preserve">y parameter</doc>
+            <doc xml:space="preserve"
+                 filename="warnlib.c"
+                 line="39">y parameter</doc>
             <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </virtual-method>
       <virtual-method name="do_moo" invoker="do_moo">
+        <source-position filename="warnlib.h" line="33"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -62,13 +73,18 @@ and/or use gtk-doc annotations.  -->
         </parameters>
       </virtual-method>
       <method name="do_boo" c:identifier="warnlib_whatever_do_boo">
-        <doc xml:space="preserve">Does boo.</doc>
+        <doc xml:space="preserve"
+             filename="warnlib.c"
+             line="35">Does boo.</doc>
+        <source-position filename="warnlib.h" line="41"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <instance-parameter name="self" transfer-ownership="none">
-            <doc xml:space="preserve">a WarnLibWhatever</doc>
+            <doc xml:space="preserve"
+                 filename="warnlib.c"
+                 line="37">a WarnLibWhatever</doc>
             <type name="Whatever" c:type="WarnLibWhatever*"/>
           </instance-parameter>
           <parameter name="arg1" transfer-ownership="none">
@@ -83,6 +99,7 @@ and/or use gtk-doc annotations.  -->
         </parameters>
       </method>
       <method name="do_moo" c:identifier="warnlib_whatever_do_moo">
+        <source-position filename="warnlib.h" line="39"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -105,11 +122,13 @@ and/or use gtk-doc annotations.  -->
     <record name="WhateverIface"
             c:type="WarnLibWhateverIface"
             glib:is-gtype-struct-for="Whatever">
+      <source-position filename="warnlib.h" line="36"/>
       <field name="parent_iface">
         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
       </field>
       <field name="do_moo">
         <callback name="do_moo">
+          <source-position filename="warnlib.h" line="33"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -131,23 +150,30 @@ and/or use gtk-doc annotations.  -->
       </field>
       <field name="do_boo">
         <callback name="do_boo">
+          <source-position filename="warnlib.h" line="35"/>
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
           <parameters>
             <parameter name="self" transfer-ownership="none">
-              <doc xml:space="preserve">a WarnLibWhatever</doc>
+              <doc xml:space="preserve"
+                   filename="warnlib.c"
+                   line="37">a WarnLibWhatever</doc>
               <type name="Whatever" c:type="WarnLibWhatever*"/>
             </parameter>
             <parameter name="x" transfer-ownership="none">
-              <doc xml:space="preserve">x parameter</doc>
+              <doc xml:space="preserve"
+                   filename="warnlib.c"
+                   line="38">x parameter</doc>
               <type name="gint" c:type="int"/>
             </parameter>
             <parameter name="y"
                        transfer-ownership="none"
                        nullable="1"
                        allow-none="1">
-              <doc xml:space="preserve">y parameter</doc>
+              <doc xml:space="preserve"
+                   filename="warnlib.c"
+                   line="39">y parameter</doc>
               <type name="gpointer" c:type="gpointer"/>
             </parameter>
           </parameters>
@@ -157,6 +183,7 @@ and/or use gtk-doc annotations.  -->
     <function name="throw_unpaired"
               c:identifier="warnlib_throw_unpaired"
               throws="1">
+      <source-position filename="warnlib.h" line="15"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
index 4445808..fba28ff 100644 (file)
@@ -66,4 +66,5 @@ EXTRA_DIST = \
        gtkdoc/annotations/tester.h.xml \
        gtkdoc/annotations/tester.c.xml \
        gtkdoc/gobject/gobject.h.xml            \
-       gtkdoc/gobject/gobject.c.xml
+       gtkdoc/gobject/gobject.c.xml            \
+       meson.build
index c4e9440..e037c90 100644 (file)
@@ -385,8 +385,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -637,7 +641,8 @@ EXTRA_DIST = \
        gtkdoc/annotations/tester.h.xml \
        gtkdoc/annotations/tester.c.xml \
        gtkdoc/gobject/gobject.h.xml            \
-       gtkdoc/gobject/gobject.c.xml
+       gtkdoc/gobject/gobject.c.xml            \
+       meson.build
 
 all: all-am
 
diff --git a/tests/scanner/annotationparser/meson.build b/tests/scanner/annotationparser/meson.build
new file mode 100644 (file)
index 0000000..954dc28
--- /dev/null
@@ -0,0 +1,20 @@
+annotationparser_test_env = environment()
+annotationparser_test_env.append('PYTHONPATH', join_paths(meson.current_build_dir(), '../../../'))
+
+annotationparser_test_files = [
+  'test_patterns.py',
+]
+
+# FIXME: MSVC
+#   from giscanner._giscanner import SourceScanner as CSourceScanner
+#   ImportError: DLL load failed: The specified module could not be found.
+if cc.get_id() != 'msvc'
+  annotationparser_test_files += [
+    'test_parser.py',
+  ]
+endif
+
+foreach f : annotationparser_test_files
+  test(f, python, args: files(f), env: annotationparser_test_env)
+endforeach
+
index b676a50..368eb72 100644 (file)
@@ -25,14 +25,8 @@ test_parser.py
 Tests ensuring annotationparser.py continues to function correctly.
 '''
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import difflib
 import os
-import sys
 import subprocess
 import unittest
 import xml.etree.ElementTree as etree
@@ -41,11 +35,6 @@ from giscanner.annotationparser import GtkDocCommentBlockParser, GtkDocCommentBl
 from giscanner.ast import Namespace
 from giscanner.message import MessageLogger, WARNING, ERROR, FATAL
 
-if sys.version_info.major < 3:
-    encode_name = lambda s: s.encode('ascii')
-else:
-    encode_name = lambda s: s
-
 
 XML_NS = 'http://schemas.gnome.org/gobject-introspection/2013/test'
 XML_SCHEMA = os.path.abspath(os.path.join(os.path.dirname(__file__), 'tests.xsd'))
@@ -406,7 +395,7 @@ def create_test_case(logger, tests_dir, tests_file):
     for counter, test in enumerate(tests_tree.findall(ns('{}test'))):
         test_name = 'test_%03d' % (counter + 1)
         test_method = TestCommentBlock.__create_test__(logger, test)
-        test_method.__name__ = encode_name(test_name)
+        test_method.__name__ = test_name
         test_methods[test_name] = test_method
 
     # Dynamically generate a new subclass of TestCommentBlock in TitleCase
@@ -414,7 +403,7 @@ def create_test_case(logger, tests_dir, tests_file):
     test_class_name = os.path.relpath(tests_file[:-4], tests_dir)
     test_class_name = test_class_name.replace('/', ' ').replace('\\', ' ').replace('.', ' ')
     test_class_name = 'Test' + test_class_name.title().replace(' ', '')
-    return type(encode_name(test_class_name), (TestCommentBlock,), test_methods)
+    return type(test_class_name, (TestCommentBlock,), test_methods)
 
 
 def create_test_cases():
index 0a0e317..131d628 100644 (file)
@@ -29,12 +29,6 @@ should match, resulting symbolic groups are verified
 against the expected output.
 '''
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
-import sys
 import unittest
 
 from giscanner.annotationparser import (COMMENT_BLOCK_START_RE, COMMENT_BLOCK_END_RE,
@@ -43,11 +37,6 @@ from giscanner.annotationparser import (COMMENT_BLOCK_START_RE, COMMENT_BLOCK_EN
                                         SIGNAL_RE, PARAMETER_RE, TAG_RE,
                                         TAG_VALUE_VERSION_RE, TAG_VALUE_STABILITY_RE)
 
-if sys.version_info.major < 3:
-    encode_name = lambda s: s.encode('ascii')
-else:
-    encode_name = lambda s: s
-
 
 comment_start_tests = [
     (COMMENT_BLOCK_START_RE, '/**',
@@ -902,10 +891,10 @@ def create_test_case(tests_class_name, testcases):
     for counter, test in enumerate(testcases):
         test_name = 'test_%03d' % (counter + 1)
         test_method = create_test_method(test)
-        test_method.__name__ = encode_name(test_name)
+        test_method.__name__ = test_name
         test_methods[test_name] = test_method
 
-    return type(encode_name(tests_class_name), (unittest.TestCase,), test_methods)
+    return type(tests_class_name, (unittest.TestCase,), test_methods)
 
 
 def create_test_cases():
index ea7e9e5..525e5f0 100644 (file)
@@ -19,3 +19,5 @@ endif
 foreach f : scanner_test_files 
   test(f, python, args: files(f), env: scanner_test_env)
 endforeach
+
+subdir('annotationparser')
index 330a8d1..6f1c4c3 100644 (file)
@@ -2103,6 +2103,7 @@ enum
   PROP_TEST_OBJ_GTYPE,
   PROP_TEST_OBJ_NAME_CONFLICT,
   PROP_TEST_OBJ_BYTE_ARRAY,
+  PROP_TEST_OBJ_WRITE_ONLY,
 };
 
 static void
@@ -2169,6 +2170,11 @@ regress_test_obj_set_property (GObject      *object,
       self->byte_array = g_value_get_boxed (value);
       break;
 
+    case PROP_TEST_OBJ_WRITE_ONLY:
+      if (g_value_get_boolean (value))
+        self->some_int8 = 0;
+      break;
+
     default:
       /* We don't have any other property... */
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -2737,6 +2743,14 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
                                    PROP_TEST_OBJ_BYTE_ARRAY,
                                    pspec);
 
+  /**
+   * TestObj:write-only:
+   */
+  pspec = g_param_spec_boolean ("write-only", "Write-only property",
+                                "A write-only bool property that resets the value of TestObj:int to 0 when true",
+                                FALSE, G_PARAM_WRITABLE);
+  g_object_class_install_property (gobject_class, PROP_TEST_OBJ_WRITE_ONLY, pspec);
+
   klass->matrix = regress_test_obj_default_matrix;
 }
 
@@ -3214,12 +3228,82 @@ struct _CallbackInfo
   gpointer user_data;
 };
 
+static void
+regress_test_sub_obj_iface_init (RegressTestInterfaceIface *iface)
+{
+}
+
+enum {
+  PROP_TEST_SUB_OBJ_NUMBER = 1,
+  PROP_TEST_SUB_OBJ_BOOLEAN,
+};
+
+G_DEFINE_TYPE_WITH_CODE(RegressTestSubObj, regress_test_sub_obj,
+                        REGRESS_TEST_TYPE_OBJ,
+                        G_IMPLEMENT_INTERFACE(REGRESS_TEST_TYPE_INTERFACE,
+                                              regress_test_sub_obj_iface_init));
+
+
+static void
+regress_test_sub_obj_set_property (GObject      *object,
+                                   guint         property_id,
+                                   const GValue *value,
+                                   GParamSpec   *pspec)
+{
+  RegressTestSubObj *self = REGRESS_TEST_SUB_OBJECT (object);
+
+  switch (property_id)
+    {
+    case PROP_TEST_SUB_OBJ_NUMBER:
+      self->number = g_value_get_int (value);
+      break;
+
+    case PROP_TEST_SUB_OBJ_BOOLEAN:
+      self->boolean = g_value_get_boolean (value);
+      break;
+
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+    }
+}
+
+static void
+regress_test_sub_obj_get_property (GObject    *object,
+                                   guint       property_id,
+                                   GValue     *value,
+                                   GParamSpec *pspec)
+{
+  RegressTestSubObj *self = REGRESS_TEST_SUB_OBJECT (object);
+
+  switch (property_id)
+    {
+    case PROP_TEST_SUB_OBJ_NUMBER:
+      g_value_set_int (value, self->number);
+      break;
 
-G_DEFINE_TYPE(RegressTestSubObj, regress_test_sub_obj, REGRESS_TEST_TYPE_OBJ);
+    case PROP_TEST_SUB_OBJ_BOOLEAN:
+      g_value_set_boolean (value, self->boolean);
+      break;
+
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+    }
+}
 
 static void
 regress_test_sub_obj_class_init (RegressTestSubObjClass *klass)
 {
+  const guint flags = G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS;
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  gobject_class->get_property = regress_test_sub_obj_get_property;
+  gobject_class->set_property = regress_test_sub_obj_set_property;
+
+  g_object_class_install_property (gobject_class, PROP_TEST_SUB_OBJ_BOOLEAN,
+                                   g_param_spec_boolean ("boolean", "Boolean", "Boolean",
+                                                         TRUE, flags));
+
+  g_object_class_override_property (gobject_class, PROP_TEST_SUB_OBJ_NUMBER,
+                                    "number");
 }
 
 static void
@@ -3956,6 +4040,7 @@ G_DEFINE_INTERFACE (RegressTestInterface, regress_test_interface, G_TYPE_OBJECT)
 static void
 regress_test_interface_default_init(RegressTestInterfaceIface *iface)
 {
+  const guint flags = G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS;
   static gboolean initialized = FALSE;
   if (initialized)
     return;
@@ -3970,6 +4055,13 @@ regress_test_interface_default_init(RegressTestInterfaceIface *iface)
                 G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
                 G_TYPE_NONE, 1, G_TYPE_POINTER);
 
+  /**
+   * RegressTestInterface:number:
+   */
+  g_object_interface_install_property (iface,
+                                       g_param_spec_int ("number", "Number", "Number",
+                                                         0, 10, 0, flags));
+
   initialized = TRUE;
 }
 
index df5a0c2..66467d0 100644 (file)
@@ -969,6 +969,9 @@ typedef struct _RegressTestSubObjClass    RegressTestSubObjClass;
 struct _RegressTestSubObj
 {
   RegressTestObj parent_instance;
+  /*< private >*/
+  gint number;
+  gboolean boolean;
 };
 
 struct _RegressTestSubObjClass
index e81dedb..8b654e3 100644 (file)
 # Boston, MA 02111-1307, USA.
 #
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import contextlib
 import os
 import sys
@@ -88,9 +83,7 @@ class PkgConfigTest(unittest.TestCase):
         with pkg_config_script(s) as command:
             pkgconfig.libs(['a', 'b-42.0'], command=command)
 
-    @unittest.skipIf(
-        sys.version_info < (3, 0) or os.name == "nt",
-        "Python 2 defaults to ascii encoding in text file I/O and nothing is done to change that")
+    @unittest.skipIf(os.name == "nt", "FIXME")
     def test_non_ascii_output(self):
         with pkg_config_script("""print("-L'zażółć gęślą jaźń'")""") as command:
             flags = pkgconfig.cflags(['test-1.0'], command=command)
index c3e2889..f3fb0d2 100644 (file)
@@ -1,8 +1,3 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import unittest
 
 from giscanner.shlibs import resolve_from_ldd_output
index 831af48..c731049 100644 (file)
@@ -1,8 +1,3 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import unittest
 import tempfile
 import os
@@ -10,7 +5,20 @@ import os
 from giscanner.sourcescanner import SourceScanner
 
 
-two_typedefs_source = """
+class Test(unittest.TestCase):
+
+    def _parse_files(self, code, header=True):
+        scanner = SourceScanner()
+        tmp_fd, tmp_name = tempfile.mkstemp(suffix=".h" if header else ".c")
+        fileobj = os.fdopen(tmp_fd, 'wb')
+        with fileobj:
+            fileobj.write(code.encode("utf-8"))
+        scanner.parse_files([tmp_name])
+        os.unlink(tmp_name)
+        return scanner
+
+    def test_length_consistency(self):
+        scanner = self._parse_files("""
 /**
  * Spam:
  */
@@ -20,26 +28,55 @@ typedef struct _spam Spam;
  * Eggs:
  */
 typedef struct _eggs Eggs;
-"""
+""")
 
+        self.assertEqual(len(list(scanner.get_symbols())), 2)
+        self.assertEqual(len(list(scanner.get_symbols())), 2)
+        self.assertEqual(len(list(scanner.get_comments())), 2)
+        self.assertEqual(len(list(scanner.get_comments())), 2)
+        self.assertFalse(scanner.get_errors())
 
-class Test(unittest.TestCase):
-    def setUp(self):
-        self.ss = SourceScanner()
-        tmp_fd, tmp_name = tempfile.mkstemp()
-        file = os.fdopen(tmp_fd, 'wt')
-        file.write(two_typedefs_source)
-        file.close()
-
-        self.ss.parse_files([tmp_name])
-
-    def test_get_symbols_length_consistency(self):
-        self.assertEqual(len(list(self.ss.get_symbols())), 2)
-        self.assertEqual(len(list(self.ss.get_symbols())), 2)
-
-    def test_get_comments_length_consistency(self):
-        self.assertEqual(len(list(self.ss.get_comments())), 2)
-        self.assertEqual(len(list(self.ss.get_comments())), 2)
+    def test_parser_error(self):
+        scanner = self._parse_files("""
+void foo() {
+    a =
+}""")
+
+        errors = scanner.get_errors()
+        self.assertEqual(len(errors), 1)
+        self.assertTrue("syntax error" in errors[0])
+
+    def test_ignore_pragma(self):
+        """Pragma directive and __pragma keyword are ignored"""
+        scanner = self._parse_files("""
+#pragma warning(push)
+void test(void) {
+    __pragma(warning(push))
+    __pragma(warning(disable:6246))
+    __pragma(warning(pop))
+}
+#pragma warning(pop)
+""")
+        self.assertFalse(scanner.get_errors())
+
+    def test_ignore_typeof(self):
+        # https://gitlab.gnome.org/GNOME/gobject-introspection/merge_requests/71
+        scanner = self._parse_files("""
+/**
+* foo:
+*/
+void foo(int bar) {
+    bar = ((__typeof__(bar)) (foo) (bar));
+}
+""")
+        self.assertEqual(len(list(scanner.get_comments())), 1)
+        self.assertFalse(scanner.get_errors())
+
+    def test_empty_decl(self):
+        # https://gitlab.gnome.org/GNOME/gobject-introspection/issues/216
+        scanner = self._parse_files(";int foo;")
+        self.assertEqual(len(list(scanner.get_symbols())), 1)
+        self.assertFalse(scanner.get_errors())
 
 
 if __name__ == '__main__':
index c0fb2d6..27bfad5 100644 (file)
@@ -1,8 +1,3 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import unittest
 import tempfile
 import os
index 54b1fef..95d7603 100644 (file)
@@ -384,8 +384,12 @@ GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
+GIR_PC_DIR = @GIR_PC_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
 GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
+GI_MAJOR_VERSION = @GI_MAJOR_VERSION@
+GI_MICRO_VERSION = @GI_MICRO_VERSION@
+GI_MINOR_VERSION = @GI_MINOR_VERSION@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index f14590c..1f144e7 100644 (file)
@@ -28,8 +28,8 @@ warn_test_env.set(
   meson.build_root(),
   join_paths(meson.build_root(), 'giscanner'))
 
-# FIXME: Windows
-if host_system != 'windows'
+# FIXME: Glib as a subproject (used on Windows mostly).
+if glib_dep.type_name() == 'pkgconfig'
   foreach warn_fn : warn_tests
     test(
       'warn-' + warn_fn.split('.')[0], python,
index f17c888..afc78ce 100644 (file)
@@ -1,16 +1,7 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import os
 import sys
 import difflib
-
-if sys.version_info.major < 3:
-    import __builtin__ as builtins
-else:
-    import builtins
+import builtins
 
 path = os.getenv('UNINSTALLED_INTROSPECTION_SRCDIR', None)
 assert path is not None
@@ -18,6 +9,7 @@ sys.path.insert(0, path)
 
 # Not correct, but enough to get the tests going uninstalled
 builtins.__dict__['DATADIR'] = path
+builtins.__dict__['GIRDIR'] = ''
 
 from giscanner.annotationparser import GtkDocCommentBlockParser
 from giscanner.ast import Include, Namespace
@@ -86,7 +78,7 @@ def _diff(a, b):
 
 
 def _extract_expected(filename):
-    fd = open(filename, 'rU')
+    fd = open(filename, 'r')
     data = fd.read()
     fd.close()
 
index ed33d16..3b33f75 100755 (executable)
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301, USA.
 #
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
 
 import os
 import sys
 import sysconfig
+import builtins
 
-if sys.version_info.major < 3:
-    import __builtin__ as builtins
-else:
-    import builtins
 
 debug = os.getenv('GI_SCANNER_DEBUG')
 if debug:
@@ -60,6 +53,16 @@ if not os.path.isdir(os.path.join(datadir, 'gir-1.0')):
 
 builtins.__dict__['DATADIR'] = datadir
 
+# Respect gir_dir_prefix for meson and autotools
+girdir = ''
+# for meson
+if '@gir_dir_prefix@' and not '@gir_dir_prefix@'.startswith('@'):
+    girdir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@'))
+# for autotools
+elif '@GIR_DIR@' and not '@GIR_DIR@'.startswith('@'):
+    girdir = os.path.dirname(os.path.abspath('@GIR_DIR@'))
+builtins.__dict__['GIRDIR'] = girdir
+
 # Again, relative paths first so that the installation prefix is relocatable
 pylibdir = os.path.abspath(os.path.join(filedir, '..', 'lib', 'gobject-introspection'))
 
index 1552dc6..3d5c004 100644 (file)
@@ -20,6 +20,7 @@ foreach tool : tools
   tools_conf = configuration_data()
   tools_conf.set('libdir', libdir_abs)
   tools_conf.set('datarootdir', datadir_abs)
+  tools_conf.set('gir_dir_prefix', gir_dir_prefix)
   tools_conf.set('PYTHON_CMD', python_cmd)
 
   tools_conf.set('TOOL_MODULE', tool[1])