gobject-introspection 2.0.0-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +118 -0
- data/ext/gobject-introspection/depend +10 -0
- data/ext/gobject-introspection/extconf.rb +97 -0
- data/ext/gobject-introspection/gobject_introspection.def +5 -0
- data/ext/gobject-introspection/rb-gi-arg-info.c +151 -0
- data/ext/gobject-introspection/rb-gi-argument.c +1015 -0
- data/ext/gobject-introspection/rb-gi-base-info.c +218 -0
- data/ext/gobject-introspection/rb-gi-boxed-info.c +48 -0
- data/ext/gobject-introspection/rb-gi-callable-info.c +104 -0
- data/ext/gobject-introspection/rb-gi-callback-info.c +48 -0
- data/ext/gobject-introspection/rb-gi-constant-info.c +77 -0
- data/ext/gobject-introspection/rb-gi-constructor-info.c +120 -0
- data/ext/gobject-introspection/rb-gi-conversions.h +116 -0
- data/ext/gobject-introspection/rb-gi-enum-info.c +145 -0
- data/ext/gobject-introspection/rb-gi-field-info.c +153 -0
- data/ext/gobject-introspection/rb-gi-flags-info.c +48 -0
- data/ext/gobject-introspection/rb-gi-function-info.c +658 -0
- data/ext/gobject-introspection/rb-gi-interface-info.c +222 -0
- data/ext/gobject-introspection/rb-gi-loader.c +162 -0
- data/ext/gobject-introspection/rb-gi-method-info.c +109 -0
- data/ext/gobject-introspection/rb-gi-object-info.c +345 -0
- data/ext/gobject-introspection/rb-gi-private.h +110 -0
- data/ext/gobject-introspection/rb-gi-property-info.c +77 -0
- data/ext/gobject-introspection/rb-gi-registered-type-info.c +86 -0
- data/ext/gobject-introspection/rb-gi-repository.c +164 -0
- data/ext/gobject-introspection/rb-gi-signal-info.c +77 -0
- data/ext/gobject-introspection/rb-gi-struct-info.c +190 -0
- data/ext/gobject-introspection/rb-gi-type-info.c +143 -0
- data/ext/gobject-introspection/rb-gi-type-tag.c +43 -0
- data/ext/gobject-introspection/rb-gi-types.h +71 -0
- data/ext/gobject-introspection/rb-gi-union-info.c +206 -0
- data/ext/gobject-introspection/rb-gi-unresolved-info.c +48 -0
- data/ext/gobject-introspection/rb-gi-value-info.c +57 -0
- data/ext/gobject-introspection/rb-gi-vfunc-info.c +91 -0
- data/ext/gobject-introspection/rb-gobject-introspection.c +44 -0
- data/ext/gobject-introspection/rb-gobject-introspection.h +57 -0
- data/extconf.rb +71 -0
- data/lib/1.9/gobject_introspection.so +0 -0
- data/lib/2.0/gobject_introspection.so +0 -0
- data/lib/gobject-introspection.rb +52 -0
- data/lib/gobject-introspection/callable-info.rb +91 -0
- data/lib/gobject-introspection/collection-reader.rb +34 -0
- data/lib/gobject-introspection/interface-info.rb +32 -0
- data/lib/gobject-introspection/loader.rb +328 -0
- data/lib/gobject-introspection/object-info.rb +33 -0
- data/lib/gobject-introspection/repository.rb +32 -0
- data/lib/gobject-introspection/struct-info.rb +28 -0
- data/lib/gobject-introspection/union-info.rb +28 -0
- data/test/gobject-introspection-test-utils.rb +26 -0
- data/test/run-test.rb +45 -0
- data/test/test-arg-info.rb +68 -0
- data/test/test-base-info.rb +31 -0
- data/test/test-boxed-info.rb +21 -0
- data/test/test-callable-info.rb +49 -0
- data/test/test-callback-info.rb +29 -0
- data/test/test-constant-info.rb +24 -0
- data/test/test-enum-info.rb +56 -0
- data/test/test-field-type.rb +42 -0
- data/test/test-flags-info.rb +27 -0
- data/test/test-function-info.rb +37 -0
- data/test/test-interface-info.rb +97 -0
- data/test/test-loader.rb +30 -0
- data/test/test-object-info.rb +131 -0
- data/test/test-property-info.rb +38 -0
- data/test/test-registered-type-info.rb +35 -0
- data/test/test-repository.rb +59 -0
- data/test/test-signal-info.rb +37 -0
- data/test/test-struct-info.rb +57 -0
- data/test/test-type-info.rb +62 -0
- data/test/test-type-tag.rb +29 -0
- data/test/test-union-info.rb +21 -0
- data/test/test-value-info.rb +28 -0
- data/test/test-vfunc-info.rb +42 -0
- data/vendor/local/bin/g-ir-compiler.exe +0 -0
- data/vendor/local/bin/g-ir-generate.exe +0 -0
- data/vendor/local/bin/libgirepository-1.0-1.dll +0 -0
- data/vendor/local/include/gobject-introspection-1.0/giarginfo.h +52 -0
- data/vendor/local/include/gobject-introspection-1.0/gibaseinfo.h +89 -0
- data/vendor/local/include/gobject-introspection-1.0/gicallableinfo.h +74 -0
- data/vendor/local/include/gobject-introspection-1.0/giconstantinfo.h +46 -0
- data/vendor/local/include/gobject-introspection-1.0/gienuminfo.h +56 -0
- data/vendor/local/include/gobject-introspection-1.0/gifieldinfo.h +52 -0
- data/vendor/local/include/gobject-introspection-1.0/gifunctioninfo.h +77 -0
- data/vendor/local/include/gobject-introspection-1.0/giinterfaceinfo.h +68 -0
- data/vendor/local/include/gobject-introspection-1.0/giobjectinfo.h +137 -0
- data/vendor/local/include/gobject-introspection-1.0/gipropertyinfo.h +44 -0
- data/vendor/local/include/gobject-introspection-1.0/giregisteredtypeinfo.h +53 -0
- data/vendor/local/include/gobject-introspection-1.0/girepository.h +179 -0
- data/vendor/local/include/gobject-introspection-1.0/girffi.h +80 -0
- data/vendor/local/include/gobject-introspection-1.0/gisignalinfo.h +45 -0
- data/vendor/local/include/gobject-introspection-1.0/gistructinfo.h +53 -0
- data/vendor/local/include/gobject-introspection-1.0/gitypeinfo.h +56 -0
- data/vendor/local/include/gobject-introspection-1.0/gitypelib.h +55 -0
- data/vendor/local/include/gobject-introspection-1.0/gitypes.h +453 -0
- data/vendor/local/include/gobject-introspection-1.0/giunioninfo.h +57 -0
- data/vendor/local/include/gobject-introspection-1.0/givfuncinfo.h +56 -0
- data/vendor/local/lib/girepository-1.0/DBus-1.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/DBusGLib-1.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/GIRepository-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/GL-1.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/GLib-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/GModule-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/GObject-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/Gio-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/cairo-1.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/fontconfig-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/freetype2-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/libxml2-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/xfixes-4.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/xft-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/xlib-2.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/xrandr-1.3.typelib +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/__init__.py +24 -0
- data/vendor/local/lib/gobject-introspection/giscanner/__init__.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/__init__.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/annotationmain.py +74 -0
- data/vendor/local/lib/gobject-introspection/giscanner/annotationmain.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/annotationmain.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/annotationparser.py +1204 -0
- data/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/ast.py +1100 -0
- data/vendor/local/lib/gobject-introspection/giscanner/ast.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/ast.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/cachestore.py +196 -0
- data/vendor/local/lib/gobject-introspection/giscanner/cachestore.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/cachestore.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/codegen.py +140 -0
- data/vendor/local/lib/gobject-introspection/giscanner/codegen.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/codegen.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/docmain.py +60 -0
- data/vendor/local/lib/gobject-introspection/giscanner/docmain.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/docmain.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/class.tmpl +2 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/constructor.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/default.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/enum.tmpl +2 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/function.tmpl +61 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/method.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/namespace.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/property.tmpl +5 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/record.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/signal.tmpl +5 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/C/vfunc.tmpl +4 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/class.tmpl +18 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/constructor.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/default.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/enum.tmpl +13 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/function.tmpl +48 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/method.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/namespace.tmpl +2 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/property.tmpl +10 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/record.tmpl +2 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/signal.tmpl +37 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Gjs/vfunc.tmpl +27 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/class.tmpl +17 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/constructor.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/default.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/enum.tmpl +13 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/function.tmpl +53 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/method.tmpl +1 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/namespace.tmpl +2 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/property.tmpl +10 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/record.tmpl +2 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/signal.tmpl +42 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/Python/vfunc.tmpl +33 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/base.tmpl +29 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/class.tmpl +40 -0
- data/vendor/local/lib/gobject-introspection/giscanner/doctemplates/namespace.tmpl +19 -0
- data/vendor/local/lib/gobject-introspection/giscanner/docwriter.py +635 -0
- data/vendor/local/lib/gobject-introspection/giscanner/docwriter.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/docwriter.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/dumper.py +363 -0
- data/vendor/local/lib/gobject-introspection/giscanner/dumper.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/dumper.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/gdumpparser.py +551 -0
- data/vendor/local/lib/gobject-introspection/giscanner/gdumpparser.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/gdumpparser.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/girparser.py +581 -0
- data/vendor/local/lib/gobject-introspection/giscanner/girparser.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/girparser.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/girwriter.py +584 -0
- data/vendor/local/lib/gobject-introspection/giscanner/girwriter.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/girwriter.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.py +236 -0
- data/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/libtoolimporter.py +76 -0
- data/vendor/local/lib/gobject-introspection/giscanner/libtoolimporter.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/libtoolimporter.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/maintransformer.py +1337 -0
- data/vendor/local/lib/gobject-introspection/giscanner/maintransformer.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/maintransformer.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/message.py +185 -0
- data/vendor/local/lib/gobject-introspection/giscanner/message.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/message.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/odict.py +50 -0
- data/vendor/local/lib/gobject-introspection/giscanner/odict.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/odict.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/scannermain.py +497 -0
- data/vendor/local/lib/gobject-introspection/giscanner/scannermain.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/scannermain.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/sectionparser.py +78 -0
- data/vendor/local/lib/gobject-introspection/giscanner/sectionparser.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/sectionparser.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/shlibs.py +132 -0
- data/vendor/local/lib/gobject-introspection/giscanner/shlibs.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/shlibs.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/sourcescanner.py +324 -0
- data/vendor/local/lib/gobject-introspection/giscanner/sourcescanner.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/sourcescanner.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/testcodegen.py +119 -0
- data/vendor/local/lib/gobject-introspection/giscanner/testcodegen.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/testcodegen.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/transformer.py +999 -0
- data/vendor/local/lib/gobject-introspection/giscanner/transformer.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/transformer.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/utils.py +141 -0
- data/vendor/local/lib/gobject-introspection/giscanner/utils.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/utils.pyo +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/xmlwriter.py +197 -0
- data/vendor/local/lib/gobject-introspection/giscanner/xmlwriter.pyc +0 -0
- data/vendor/local/lib/gobject-introspection/giscanner/xmlwriter.pyo +0 -0
- data/vendor/local/lib/libgirepository-1.0.a +0 -0
- data/vendor/local/lib/libgirepository-1.0.dll.a +0 -0
- data/vendor/local/lib/libgirepository-1.0.la +41 -0
- data/vendor/local/lib/pkgconfig/gobject-introspection-1.0.pc +26 -0
- data/vendor/local/lib/pkgconfig/gobject-introspection-no-export-1.0.pc +23 -0
- data/vendor/local/share/aclocal/introspection.m4 +96 -0
- data/vendor/local/share/gir-1.0/DBus-1.0.gir +32 -0
- data/vendor/local/share/gir-1.0/DBusGLib-1.0.gir +18 -0
- data/vendor/local/share/gir-1.0/GIRepository-2.0.gir +3833 -0
- data/vendor/local/share/gir-1.0/GL-1.0.gir +31 -0
- data/vendor/local/share/gir-1.0/GLib-2.0.gir +44304 -0
- data/vendor/local/share/gir-1.0/GModule-2.0.gir +184 -0
- data/vendor/local/share/gir-1.0/GObject-2.0.gir +13947 -0
- data/vendor/local/share/gir-1.0/Gio-2.0.gir +73619 -0
- data/vendor/local/share/gir-1.0/cairo-1.0.gir +70 -0
- data/vendor/local/share/gir-1.0/fontconfig-2.0.gir +18 -0
- data/vendor/local/share/gir-1.0/freetype2-2.0.gir +22 -0
- data/vendor/local/share/gir-1.0/libxml2-2.0.gir +25 -0
- data/vendor/local/share/gir-1.0/xfixes-4.0.gir +10 -0
- data/vendor/local/share/gir-1.0/xft-2.0.gir +23 -0
- data/vendor/local/share/gir-1.0/xlib-2.0.gir +67 -0
- data/vendor/local/share/gir-1.0/xrandr-1.3.gir +16 -0
- data/vendor/local/share/gobject-introspection-1.0/Makefile.introspection +166 -0
- data/vendor/local/share/gobject-introspection-1.0/gdump.c +564 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/annotation.c +835 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/annotation.h +198 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/drawable.c +55 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/drawable.h +33 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/everything.c +1473 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/everything.h +428 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/foo.c +790 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/foo.h +437 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/gimarshallingtests.c +5256 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/gimarshallingtests.h +1158 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/regress.c +4009 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/regress.h +944 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/utility.c +45 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/utility.h +95 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/warnlib.c +33 -0
- data/vendor/local/share/gobject-introspection-1.0/tests/warnlib.h +36 -0
- data/vendor/local/share/license/gobject-introspection/AUTHORS +9 -0
- data/vendor/local/share/license/gobject-introspection/COPYING +12 -0
- data/vendor/local/share/man/man1/g-ir-compiler.1 +51 -0
- data/vendor/local/share/man/man1/g-ir-generate.1 +29 -0
- metadata +343 -0
@@ -0,0 +1,70 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0"
|
5
|
+
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
|
6
|
+
<package name="cairo-gobject"/>
|
7
|
+
<namespace name="cairo" version="1.0"
|
8
|
+
shared-library="libcairo-gobject-2.dll"
|
9
|
+
c:identifier-prefixes="cairo"
|
10
|
+
c:symbol-prefixes="cairo">
|
11
|
+
<record name="Context" c:type="cairo_t" foreign="1"
|
12
|
+
glib:type-name="CairoContext"
|
13
|
+
glib:get-type="cairo_gobject_context_get_type"/>
|
14
|
+
<record name="Surface" c:type="cairo_surface_t" foreign="1"
|
15
|
+
glib:type-name="CairoSurface"
|
16
|
+
glib:get-type="cairo_gobject_surface_get_type"/>
|
17
|
+
<record name="Matrix" c:type="cairo_matrix_t" foreign="1"/>
|
18
|
+
<record name="Pattern" c:type="cairo_pattern_t" foreign="1"
|
19
|
+
glib:type-name="CairoPattern"
|
20
|
+
glib:get-type="cairo_gobject_pattern_get_type"/>
|
21
|
+
<record name="Region" c:type="cairo_region_t" foreign="1"
|
22
|
+
glib:type-name="CairoRegion"
|
23
|
+
glib:get-type="cairo_gobject_region_get_type"/>
|
24
|
+
<enumeration name="Content" c:type="cairo_content_t"
|
25
|
+
glib:type-name="CairoContent"
|
26
|
+
glib:get-type="cairo_gobject_content_get_type">
|
27
|
+
<member name="COLOR"
|
28
|
+
value="4096"
|
29
|
+
c:identifier="CAIRO_CONTENT_COLOR"/>
|
30
|
+
<member name="ALPHA"
|
31
|
+
value="8192"
|
32
|
+
c:identifier="CAIRO_CONTENT_ALPHA"/>
|
33
|
+
<member name="COLOR_ALPHA"
|
34
|
+
value="12288"
|
35
|
+
c:identifier="CAIRO_CONTENT_COLOR_ALPHA"/>
|
36
|
+
</enumeration>
|
37
|
+
<record name="FontOptions" c:type="cairo_font_options_t" foreign="1"/>
|
38
|
+
<record name="FontType" c:type="cairo_font_type_t" foreign="1"/>
|
39
|
+
<record name="FontFace" c:type="cairo_font_face_t" foreign="1"
|
40
|
+
glib:type-name="CairoFontFace"
|
41
|
+
glib:get-type="cairo_gobject_font_face_get_type"/>
|
42
|
+
<record name="ScaledFont" c:type="cairo_scaled_font_t" foreign="1"
|
43
|
+
glib:type-name="CairoScaledFont"
|
44
|
+
glib:get-type="cairo_gobject_scaled_font_get_type"/>
|
45
|
+
<record name="Path" c:type="cairo_path_t" foreign="1"/>
|
46
|
+
<record name="RectangleInt" c:type="cairo_rectangle_int_t"
|
47
|
+
glib:type-name="CairoRectangleInt"
|
48
|
+
glib:get-type="cairo_gobject_rectangle_int_get_type">
|
49
|
+
<field name="x" writable="1">
|
50
|
+
<type name="gint" c:type="gint"/>
|
51
|
+
</field>
|
52
|
+
<field name="y" writable="1">
|
53
|
+
<type name="gint" c:type="gint"/>
|
54
|
+
</field>
|
55
|
+
<field name="width" writable="1">
|
56
|
+
<type name="gint" c:type="gint"/>
|
57
|
+
</field>
|
58
|
+
<field name="height" writable="1">
|
59
|
+
<type name="gint" c:type="gint"/>
|
60
|
+
</field>
|
61
|
+
</record>
|
62
|
+
<function name="image_surface_create" c:identifier="cairo_image_surface_create">
|
63
|
+
<return-value transfer-ownership="none">
|
64
|
+
<type name="none" c:type="void"/>
|
65
|
+
</return-value>
|
66
|
+
<parameters>
|
67
|
+
</parameters>
|
68
|
+
</function>
|
69
|
+
</namespace>
|
70
|
+
</repository>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0">
|
5
|
+
<namespace name="fontconfig" version="2.0"
|
6
|
+
c:identifier-prefixes="Fc"
|
7
|
+
c:symbol-prefixes="fc">
|
8
|
+
<record name="Pattern" c:type="FcPattern"/>
|
9
|
+
<record name="CharSet" c:type="FcCharSet"/>
|
10
|
+
<function name="init" c:identifier="FcInit">
|
11
|
+
<return-value transfer-ownership="none">
|
12
|
+
<type name="none" c:type="void"/>
|
13
|
+
</return-value>
|
14
|
+
<parameters>
|
15
|
+
</parameters>
|
16
|
+
</function>
|
17
|
+
</namespace>
|
18
|
+
</repository>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0">
|
5
|
+
<namespace name="freetype2" version="2.0"
|
6
|
+
c:identifier-prefixes="FT"
|
7
|
+
c:symbol-prefixes="FT">
|
8
|
+
<record name="Bitmap" c:type="FT_Bitmap"/>
|
9
|
+
<record name="Face" c:type="FT_Face"/>
|
10
|
+
<record name="Library" c:type="FT_Library"/>
|
11
|
+
<alias name="Int32" c:type="FT_Int32">
|
12
|
+
<type name="int32"/>
|
13
|
+
</alias>
|
14
|
+
<function name="library_version" c:identifier="FT_Library_Version">
|
15
|
+
<return-value transfer-ownership="none">
|
16
|
+
<type name="none" c:type="void"/>
|
17
|
+
</return-value>
|
18
|
+
<parameters>
|
19
|
+
</parameters>
|
20
|
+
</function>
|
21
|
+
</namespace>
|
22
|
+
</repository>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0">
|
5
|
+
<package name="libxml-2.0"/>
|
6
|
+
<namespace name="libxml2" version="2.0"
|
7
|
+
c:identifier-prefixes="xml"
|
8
|
+
c:symbol-prefixes="xml">
|
9
|
+
<record name="Node" c:type="xmlNode"/>
|
10
|
+
<record name="NodePtr" c:type="xmlNodePtr"/>
|
11
|
+
<record name="Doc" c:type="xmlDoc"/>
|
12
|
+
<record name="DocPtr" c:type="xmlDocPtr"/>
|
13
|
+
<record name="NsPtr" c:type="xmlNsPtr"/>
|
14
|
+
<record name="Char" c:type="xmlChar"/>
|
15
|
+
<record name="TextWriter" c:type="xmlTextWriterPtr"/>
|
16
|
+
<record name="TextReader" c:type="xmlTextReaderPtr"/>
|
17
|
+
<function name="dummy" c:identifier="dummy">
|
18
|
+
<return-value transfer-ownership="none">
|
19
|
+
<type name="none" c:type="void"/>
|
20
|
+
</return-value>
|
21
|
+
<parameters>
|
22
|
+
</parameters>
|
23
|
+
</function>
|
24
|
+
</namespace>
|
25
|
+
</repository>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0">
|
5
|
+
<namespace name="xfixes" version="4.0"
|
6
|
+
c:identifier-prefixes="X"
|
7
|
+
c:symbol-prefixes="X">
|
8
|
+
<record name="XserverRegion" c:type="XserverRegion"/>
|
9
|
+
</namespace>
|
10
|
+
</repository>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0">
|
5
|
+
<include name="xlib" version="2.0"/>
|
6
|
+
<namespace name="xft" version="2.0"
|
7
|
+
c:identifier-prefixes="Xft"
|
8
|
+
c:symbol-prefixes="Xft">
|
9
|
+
<record name="Color" c:type="XftColor"/>
|
10
|
+
<record name="Draw" c:type="XftDraw"/>
|
11
|
+
<record name="Font" c:type="XftFont"/>
|
12
|
+
<record name="GlyphSpec" c:type="XftGlyphSpec"/>
|
13
|
+
|
14
|
+
<function name="init" c:identifier="XftInit">
|
15
|
+
<return-value transfer-ownership="none">
|
16
|
+
<type name="none" c:type="void"/>
|
17
|
+
</return-value>
|
18
|
+
<parameters>
|
19
|
+
</parameters>
|
20
|
+
</function>
|
21
|
+
|
22
|
+
</namespace>
|
23
|
+
</repository>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0">
|
5
|
+
<namespace name="xlib" version="2.0"
|
6
|
+
c:identifier-prefixes=""
|
7
|
+
c:symbol-prefixes="X">
|
8
|
+
<alias name="Atom" c:type="Atom">
|
9
|
+
<type name="gulong" c:type="gulong"/>
|
10
|
+
</alias>
|
11
|
+
<alias name="Colormap" c:type="Colormap">
|
12
|
+
<type name="gulong" c:type="gulong"/>
|
13
|
+
</alias>
|
14
|
+
<alias name="Cursor" c:type="Cursor">
|
15
|
+
<type name="gulong" c:type="gulong"/>
|
16
|
+
</alias>
|
17
|
+
<record name="Display" c:type="Display"/>
|
18
|
+
<alias name="Drawable" c:type="Drawable">
|
19
|
+
<type name="gulong" c:type="gulong"/>
|
20
|
+
</alias>
|
21
|
+
<alias name="GC" c:type="GC">
|
22
|
+
<type name="gpointer" c:type="gpointer"/>
|
23
|
+
</alias>
|
24
|
+
<alias name="KeyCode" c:type="KeyCode">
|
25
|
+
<type name="guint8" c:type="guint8"/>
|
26
|
+
</alias>
|
27
|
+
<alias name="KeySym" c:type="KeySym">
|
28
|
+
<type name="gulong" c:type="gulong"/>
|
29
|
+
</alias>
|
30
|
+
<alias name="Picture" c:type="Picture">
|
31
|
+
<type name="gulong" c:type="gulong"/>
|
32
|
+
</alias>
|
33
|
+
<record name="Screen" c:type="Screen"/>
|
34
|
+
<alias name="Time" c:type="Time">
|
35
|
+
<type name="gulong" c:type="gulong"/>
|
36
|
+
</alias>
|
37
|
+
<record name="Visual" c:type="Visual"/>
|
38
|
+
<alias name="VisualID" c:type="VisualID">
|
39
|
+
<type name="gulong" c:type="gulong"/>
|
40
|
+
</alias>
|
41
|
+
<alias name="Window" c:type="Window">
|
42
|
+
<type name="gulong" c:type="gulong"/>
|
43
|
+
</alias>
|
44
|
+
<union name="XEvent" c:type="XEvent"/>
|
45
|
+
<record name="XConfigureEvent" c:type="XConfigureEvent"/>
|
46
|
+
<alias name="XID" c:type="XID">
|
47
|
+
<type name="gulong" c:type="gulong"/>
|
48
|
+
</alias>
|
49
|
+
<alias name="Pixmap" c:type="Pixmap">
|
50
|
+
<type name="gulong" c:type="gulong"/>
|
51
|
+
</alias>
|
52
|
+
<record name="XImage" c:type="XImage"/>
|
53
|
+
<record name="XFontStruct" c:type="XFontStruct"/>
|
54
|
+
<record name="XTrapezoid" c:type="XTrapezoid"/>
|
55
|
+
<record name="XVisualInfo" c:type="XVisualInfo"/>
|
56
|
+
<record name="XWindowAttributes" c:type="XWindowAttributes"/>
|
57
|
+
|
58
|
+
<function name="open_display" c:identifier="XOpenDisplay">
|
59
|
+
<return-value transfer-ownership="none">
|
60
|
+
<type name="none" c:type="void"/>
|
61
|
+
</return-value>
|
62
|
+
<parameters>
|
63
|
+
</parameters>
|
64
|
+
</function>
|
65
|
+
|
66
|
+
</namespace>
|
67
|
+
</repository>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<repository version="1.2"
|
3
|
+
xmlns="http://www.gtk.org/introspection/core/1.0"
|
4
|
+
xmlns:c="http://www.gtk.org/introspection/c/1.0">
|
5
|
+
<namespace name="xrandr" version="1.3"
|
6
|
+
c:identifier-prefixes="XRR"
|
7
|
+
c:symbol-prefixes="XRR">
|
8
|
+
<record name="ScreenSize" c:type="XRRScreenSize"/>
|
9
|
+
<record name="ScreenChangeNotifyEvent" c:type="XRRScreenChangeNotifyEvent"/>
|
10
|
+
<record name="NotifyEvent" c:type="XRRNotifyEvent"/>
|
11
|
+
<record name="ScreenResources" c:type="XRRScreenResources"/>
|
12
|
+
<record name="OutputChangeNotifyEvent" c:type="XRROutputChangeNotifyEvent"/>
|
13
|
+
<record name="CrtcChangeNotifyEvent" c:type="XRRCrtcChangeNotifyEvent"/>
|
14
|
+
<record name="OutputPropertyNotifyEvent" c:type="XRROutputPropertyNotifyEvent"/>
|
15
|
+
</namespace>
|
16
|
+
</repository>
|
@@ -0,0 +1,166 @@
|
|
1
|
+
# -*- Mode: make -*-
|
2
|
+
# Copyright 2009-2010 Johan Dahlin
|
3
|
+
#
|
4
|
+
# This file is free software; the author(s) gives unlimited
|
5
|
+
# permission to copy and/or distribute it, with or without
|
6
|
+
# modifications, as long as this notice is preserved.
|
7
|
+
#
|
8
|
+
# * Input variables:
|
9
|
+
#
|
10
|
+
# INTROSPECTION_GIRS - List of GIRS that should be generated
|
11
|
+
# INTROSPECTION_SCANNER - Command to invoke scanner, normally set by
|
12
|
+
# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
|
13
|
+
# INTROSPECTION_SCANNER_ARGS - Additional args to pass in to the scanner
|
14
|
+
# INTROSPECTION_SCANNER_ENV - Environment variables to set before running
|
15
|
+
# the scanner
|
16
|
+
# INTROSPECTION_COMPILER - Command to invoke compiler, normally set by
|
17
|
+
# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
|
18
|
+
# INTROSPECTION_COMPILER_ARGS - Additional args to pass in to the compiler
|
19
|
+
#
|
20
|
+
# * Simple tutorial
|
21
|
+
#
|
22
|
+
# Add this to configure.ac:
|
23
|
+
# -Wno-portability to AM_INIT_AUTOMAKE
|
24
|
+
# GOBJECT_INTROSPECTION_CHECK([0.6.7])
|
25
|
+
#
|
26
|
+
# Add this to Makefile.am where your library/program is built:
|
27
|
+
# include $(INTROSPECTION_MAKEFILE)
|
28
|
+
# INTROSPECTION_GIRS = YourLib-1.0.gir
|
29
|
+
# YourLib-1.0.gir: libyourlib.la
|
30
|
+
# YourLib_1_0_gir_NAMESPACE = YourLib
|
31
|
+
# YourLib_1_0_gir_VERSION = 1.0
|
32
|
+
# YourLib_1_0_gir_LIBS = libyourlib.la
|
33
|
+
# YourLib_1_0_gir_FILES = $(libyourlib_1_0_SOURCES)
|
34
|
+
# girdir = $(datadir)/gir-1.0
|
35
|
+
# dist_gir_DATA = YourLib-1.0.gir
|
36
|
+
# typelibdir = $(libdir)/girepository-1.0
|
37
|
+
# typelib_DATA = YourLib-1.0.typelib
|
38
|
+
# CLEANFILES = $(dist_gir_DATA) $(typelib_DATA)
|
39
|
+
#
|
40
|
+
|
41
|
+
# Make sure the required variables are set, these should under normal
|
42
|
+
# circumstances come from introspection.m4
|
43
|
+
$(if $(INTROSPECTION_SCANNER),,$(error Need to define INTROSPECTION_SCANNER))
|
44
|
+
$(if $(INTROSPECTION_COMPILER),,$(error Need to define INTROSPECTION_COMPILER))
|
45
|
+
|
46
|
+
# Private functions
|
47
|
+
|
48
|
+
## Transform the gir filename to something which can reference through a variable
|
49
|
+
## without automake/make complaining, eg Gtk-2.0.gir -> Gtk_2_0_gir
|
50
|
+
_gir_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1))))
|
51
|
+
|
52
|
+
# Namespace and Version is either fetched from the gir filename
|
53
|
+
# or the _NAMESPACE/_VERSION variable combo
|
54
|
+
_gir_namespace = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1)))))
|
55
|
+
_gir_version = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=))))
|
56
|
+
|
57
|
+
# _PROGRAM is an optional variable which needs it's own --program argument
|
58
|
+
_gir_program = $(if $($(_gir_name)_PROGRAM),--program=$($(_gir_name)_PROGRAM))
|
59
|
+
|
60
|
+
# Variables which provides a list of things
|
61
|
+
_gir_libraries = $(foreach lib,$($(_gir_name)_LIBS),--library=$(lib))
|
62
|
+
_gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg))
|
63
|
+
_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include))
|
64
|
+
_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg))
|
65
|
+
|
66
|
+
# Reuse the LIBTOOL variable from automake if it's set, but
|
67
|
+
# work around MSYS weirdness: When running g-ir-scanner, MSYS changes
|
68
|
+
# a command-line argument --libtool="/bin/sh ../../libtool" into
|
69
|
+
# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path
|
70
|
+
# because we already "know" where the libtool configure produced is.
|
71
|
+
_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)"))
|
72
|
+
|
73
|
+
# Macros for AM_SILENT_RULES prettiness
|
74
|
+
_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1)
|
75
|
+
|
76
|
+
_gir_silent_scanner_prefix = $(_gir_silent_scanner_prefix_$(V))
|
77
|
+
_gir_silent_scanner_prefix_ = $(_gir_silent_scanner_prefix_$(_gir_verbosity))
|
78
|
+
_gir_silent_scanner_prefix_0 = @echo " GISCAN $(1)";
|
79
|
+
_gir_silent_scanner_opts = $(_gir_silent_scanner_opts_$(V))
|
80
|
+
_gir_silent_scanner_opts_ = $(_gir_silent_scanner_opts_$(_gir_verbosity))
|
81
|
+
_gir_silent_scanner_opts_0 = --quiet
|
82
|
+
|
83
|
+
_gir_silent_compiler = $(_gir_silent_compiler_$(V))
|
84
|
+
_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity))
|
85
|
+
_gir_silent_compiler_0 = @echo " GICOMP $(1)";
|
86
|
+
|
87
|
+
#
|
88
|
+
# Creates a GIR by scanning C headers/sources
|
89
|
+
# $(1) - Name of the gir file (output)
|
90
|
+
#
|
91
|
+
# If output is Gtk-2.0.gir then you should name the variables like
|
92
|
+
# Gtk_2_0_gir_NAMESPACE, Gtk_2_0_gir_VERSION etc.
|
93
|
+
# Required variables:
|
94
|
+
# FILES - C sources and headers which should be scanned
|
95
|
+
#
|
96
|
+
# One of these variables are required:
|
97
|
+
# LIBS - Library where the symbol represented in the gir can be found
|
98
|
+
# PROGRAM - Program where the symbol represented in the gir can be found
|
99
|
+
#
|
100
|
+
# Optional variables
|
101
|
+
# NAMESPACE - Namespace of the gir, first letter capital,
|
102
|
+
# rest should be lower case, for instance: 'Gtk', 'Clutter', 'ClutterGtk'.
|
103
|
+
# If not present the namespace will be fetched from the gir filename,
|
104
|
+
# the part before the first dash. For 'Gtk-2.0', namespace will be 'Gtk'.
|
105
|
+
# VERSION - Version of the gir, if not present, will be fetched from gir
|
106
|
+
# filename, the part after the first dash. For 'Gtk-2.0', version will be '2.0'.
|
107
|
+
# LIBTOOL - Command to invoke libtool, usually set by automake
|
108
|
+
# SCANNERFLAGS - Flags to pass in to the scanner, see g-ir-scanner(1) for a list
|
109
|
+
# CFLAGS - Flags to pass in to the parser when scanning headers
|
110
|
+
# LDFLAGS - Linker flags used by the scanner
|
111
|
+
# PACKAGES - list of pkg-config names which cflags are required to parse
|
112
|
+
# the headers of this gir
|
113
|
+
# INCLUDES - Gir files to include without the .gir suffix, for instance
|
114
|
+
# GLib-2.0, Gtk-2.0. This is needed for all libraries which you depend on that
|
115
|
+
# provides introspection information.
|
116
|
+
# EXPORT_PACKAGES - list of pkg-config names that are provided by this gir.
|
117
|
+
# By default the names in the PACKAGES variable will be used.
|
118
|
+
#
|
119
|
+
|
120
|
+
define introspection-scanner
|
121
|
+
|
122
|
+
# Basic sanity check, to make sure required variables are set
|
123
|
+
$(if $($(_gir_name)_FILES),,$(error Need to define $(_gir_name)_FILES))
|
124
|
+
$(if $(or $(findstring --header-only,$($(_gir_name)_SCANNERFLAGS)),
|
125
|
+
$($(_gir_name)_LIBS),
|
126
|
+
$($(_gir_name)_PROGRAM)),,
|
127
|
+
$(error Need to define $(_gir_name)_LIBS or $(_gir_name)_PROGRAM))
|
128
|
+
|
129
|
+
# Only dependencies we know are actually filenames goes into _FILES, make
|
130
|
+
# sure these are built before running the scanner. Libraries and programs
|
131
|
+
# needs to be added manually.
|
132
|
+
$(1): $$($(_gir_name)_FILES)
|
133
|
+
@ $(MKDIR_P) $(dir $(1))
|
134
|
+
$(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \
|
135
|
+
$(INTROSPECTION_SCANNER_ARGS) \
|
136
|
+
--namespace=$(_gir_namespace) \
|
137
|
+
--nsversion=$(_gir_version) \
|
138
|
+
$(_gir_libtool) \
|
139
|
+
$(_gir_packages) \
|
140
|
+
$(_gir_includes) \
|
141
|
+
$(_gir_export_packages) \
|
142
|
+
$(_gir_program) \
|
143
|
+
$(_gir_libraries) \
|
144
|
+
$($(_gir_name)_SCANNERFLAGS) \
|
145
|
+
--cflags-begin \
|
146
|
+
$($(_gir_name)_CFLAGS) \
|
147
|
+
--cflags-end \
|
148
|
+
$($(_gir_name)_LDFLAGS) \
|
149
|
+
$$^ \
|
150
|
+
--output $(1)
|
151
|
+
endef
|
152
|
+
|
153
|
+
$(foreach gir,$(INTROSPECTION_GIRS),$(eval $(call introspection-scanner,$(gir))))
|
154
|
+
|
155
|
+
#
|
156
|
+
# Compiles a gir into a typelib
|
157
|
+
# $(1): gir filename (input)
|
158
|
+
# $(2): typelib filename (output)
|
159
|
+
#
|
160
|
+
define introspection-compiler
|
161
|
+
$(_gir_silent_compiler) $(INTROSPECTION_COMPILER) $(INTROSPECTION_COMPILER_ARGS) --includedir=. $(1) -o $(2)
|
162
|
+
endef
|
163
|
+
|
164
|
+
# Simple rule to compile a typelib.
|
165
|
+
%.typelib: %.gir
|
166
|
+
$(call introspection-compiler,$<,$@)
|
@@ -0,0 +1,564 @@
|
|
1
|
+
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
2
|
+
* GObject introspection: Dump introspection data
|
3
|
+
*
|
4
|
+
* Copyright (C) 2008 Colin Walters <walters@verbum.org>
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the
|
18
|
+
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
19
|
+
* Boston, MA 02111-1307, USA.
|
20
|
+
*/
|
21
|
+
|
22
|
+
#include <stdlib.h>
|
23
|
+
|
24
|
+
#include <glib.h>
|
25
|
+
#include <glib-object.h>
|
26
|
+
#include <gio/gio.h>
|
27
|
+
|
28
|
+
/* This file is both compiled into libgirepository.so, and installed
|
29
|
+
* on the filesystem. But for the dumper, we want to avoid linking
|
30
|
+
* to libgirepository; see
|
31
|
+
* https://bugzilla.gnome.org/show_bug.cgi?id=630342
|
32
|
+
*/
|
33
|
+
#ifdef G_IREPOSITORY_COMPILATION
|
34
|
+
#include "config.h"
|
35
|
+
#include "girepository.h"
|
36
|
+
#endif
|
37
|
+
|
38
|
+
#include <string.h>
|
39
|
+
|
40
|
+
static void
|
41
|
+
escaped_printf (GOutputStream *out, const char *fmt, ...)
|
42
|
+
{
|
43
|
+
char *str;
|
44
|
+
va_list args;
|
45
|
+
gsize written;
|
46
|
+
GError *error = NULL;
|
47
|
+
|
48
|
+
va_start (args, fmt);
|
49
|
+
|
50
|
+
str = g_markup_vprintf_escaped (fmt, args);
|
51
|
+
if (!g_output_stream_write_all (out, str, strlen (str), &written, NULL, &error))
|
52
|
+
{
|
53
|
+
g_critical ("failed to write to iochannel: %s", error->message);
|
54
|
+
g_clear_error (&error);
|
55
|
+
}
|
56
|
+
g_free (str);
|
57
|
+
|
58
|
+
va_end (args);
|
59
|
+
}
|
60
|
+
|
61
|
+
static void
|
62
|
+
goutput_write (GOutputStream *out, const char *str)
|
63
|
+
{
|
64
|
+
gsize written;
|
65
|
+
GError *error = NULL;
|
66
|
+
if (!g_output_stream_write_all (out, str, strlen (str), &written, NULL, &error))
|
67
|
+
{
|
68
|
+
g_critical ("failed to write to iochannel: %s", error->message);
|
69
|
+
g_clear_error (&error);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
typedef GType (*GetTypeFunc)(void);
|
74
|
+
typedef GQuark (*ErrorQuarkFunc)(void);
|
75
|
+
|
76
|
+
static GType
|
77
|
+
invoke_get_type (GModule *self, const char *symbol, GError **error)
|
78
|
+
{
|
79
|
+
GetTypeFunc sym;
|
80
|
+
GType ret;
|
81
|
+
|
82
|
+
if (!g_module_symbol (self, symbol, (void**)&sym))
|
83
|
+
{
|
84
|
+
g_set_error (error,
|
85
|
+
G_IO_ERROR,
|
86
|
+
G_IO_ERROR_FAILED,
|
87
|
+
"Failed to find symbol '%s'", symbol);
|
88
|
+
return G_TYPE_INVALID;
|
89
|
+
}
|
90
|
+
|
91
|
+
ret = sym ();
|
92
|
+
if (ret == G_TYPE_INVALID)
|
93
|
+
{
|
94
|
+
g_set_error (error,
|
95
|
+
G_IO_ERROR,
|
96
|
+
G_IO_ERROR_FAILED,
|
97
|
+
"Function '%s' returned G_TYPE_INVALID", symbol);
|
98
|
+
}
|
99
|
+
return ret;
|
100
|
+
}
|
101
|
+
|
102
|
+
static GQuark
|
103
|
+
invoke_error_quark (GModule *self, const char *symbol, GError **error)
|
104
|
+
{
|
105
|
+
ErrorQuarkFunc sym;
|
106
|
+
|
107
|
+
if (!g_module_symbol (self, symbol, (void**)&sym))
|
108
|
+
{
|
109
|
+
g_set_error (error,
|
110
|
+
G_IO_ERROR,
|
111
|
+
G_IO_ERROR_FAILED,
|
112
|
+
"Failed to find symbol '%s'", symbol);
|
113
|
+
return G_TYPE_INVALID;
|
114
|
+
}
|
115
|
+
|
116
|
+
return sym ();
|
117
|
+
}
|
118
|
+
|
119
|
+
static void
|
120
|
+
dump_properties (GType type, GOutputStream *out)
|
121
|
+
{
|
122
|
+
guint i;
|
123
|
+
guint n_properties;
|
124
|
+
GParamSpec **props;
|
125
|
+
|
126
|
+
if (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
|
127
|
+
{
|
128
|
+
GObjectClass *klass;
|
129
|
+
klass = g_type_class_ref (type);
|
130
|
+
props = g_object_class_list_properties (klass, &n_properties);
|
131
|
+
}
|
132
|
+
else
|
133
|
+
{
|
134
|
+
void *klass;
|
135
|
+
klass = g_type_default_interface_ref (type);
|
136
|
+
props = g_object_interface_list_properties (klass, &n_properties);
|
137
|
+
}
|
138
|
+
|
139
|
+
for (i = 0; i < n_properties; i++)
|
140
|
+
{
|
141
|
+
GParamSpec *prop;
|
142
|
+
|
143
|
+
prop = props[i];
|
144
|
+
if (prop->owner_type != type)
|
145
|
+
continue;
|
146
|
+
|
147
|
+
escaped_printf (out, " <property name=\"%s\" type=\"%s\" flags=\"%d\"/>\n",
|
148
|
+
prop->name, g_type_name (prop->value_type), prop->flags);
|
149
|
+
}
|
150
|
+
g_free (props);
|
151
|
+
}
|
152
|
+
|
153
|
+
static void
|
154
|
+
dump_signals (GType type, GOutputStream *out)
|
155
|
+
{
|
156
|
+
guint i;
|
157
|
+
guint n_sigs;
|
158
|
+
guint *sig_ids;
|
159
|
+
|
160
|
+
sig_ids = g_signal_list_ids (type, &n_sigs);
|
161
|
+
for (i = 0; i < n_sigs; i++)
|
162
|
+
{
|
163
|
+
guint sigid;
|
164
|
+
GSignalQuery query;
|
165
|
+
guint j;
|
166
|
+
|
167
|
+
sigid = sig_ids[i];
|
168
|
+
g_signal_query (sigid, &query);
|
169
|
+
|
170
|
+
escaped_printf (out, " <signal name=\"%s\" return=\"%s\"",
|
171
|
+
query.signal_name, g_type_name (query.return_type));
|
172
|
+
|
173
|
+
if (query.signal_flags & G_SIGNAL_RUN_FIRST)
|
174
|
+
escaped_printf (out, " when=\"first\"");
|
175
|
+
else if (query.signal_flags & G_SIGNAL_RUN_LAST)
|
176
|
+
escaped_printf (out, " when=\"last\"");
|
177
|
+
else if (query.signal_flags & G_SIGNAL_RUN_CLEANUP)
|
178
|
+
escaped_printf (out, " when=\"cleanup\"");
|
179
|
+
#if GLIB_CHECK_VERSION(2, 29, 15)
|
180
|
+
else if (query.signal_flags & G_SIGNAL_MUST_COLLECT)
|
181
|
+
escaped_printf (out, " when=\"must-collect\"");
|
182
|
+
#endif
|
183
|
+
if (query.signal_flags & G_SIGNAL_NO_RECURSE)
|
184
|
+
escaped_printf (out, " no-recurse=\"1\"");
|
185
|
+
|
186
|
+
if (query.signal_flags & G_SIGNAL_DETAILED)
|
187
|
+
escaped_printf (out, " detailed=\"1\"");
|
188
|
+
|
189
|
+
if (query.signal_flags & G_SIGNAL_ACTION)
|
190
|
+
escaped_printf (out, " action=\"1\"");
|
191
|
+
|
192
|
+
if (query.signal_flags & G_SIGNAL_NO_HOOKS)
|
193
|
+
escaped_printf (out, " no-hooks=\"1\"");
|
194
|
+
|
195
|
+
goutput_write (out, ">\n");
|
196
|
+
|
197
|
+
for (j = 0; j < query.n_params; j++)
|
198
|
+
{
|
199
|
+
escaped_printf (out, " <param type=\"%s\"/>\n",
|
200
|
+
g_type_name (query.param_types[j]));
|
201
|
+
}
|
202
|
+
goutput_write (out, " </signal>\n");
|
203
|
+
}
|
204
|
+
}
|
205
|
+
|
206
|
+
static void
|
207
|
+
dump_object_type (GType type, const char *symbol, GOutputStream *out)
|
208
|
+
{
|
209
|
+
guint n_interfaces;
|
210
|
+
guint i;
|
211
|
+
GType *interfaces;
|
212
|
+
|
213
|
+
escaped_printf (out, " <class name=\"%s\" get-type=\"%s\"",
|
214
|
+
g_type_name (type), symbol);
|
215
|
+
if (type != G_TYPE_OBJECT)
|
216
|
+
{
|
217
|
+
GString *parent_str;
|
218
|
+
GType parent;
|
219
|
+
gboolean first = TRUE;
|
220
|
+
|
221
|
+
parent = g_type_parent (type);
|
222
|
+
parent_str = g_string_new ("");
|
223
|
+
while (parent != G_TYPE_INVALID)
|
224
|
+
{
|
225
|
+
if (first)
|
226
|
+
first = FALSE;
|
227
|
+
else
|
228
|
+
g_string_append_c (parent_str, ',');
|
229
|
+
g_string_append (parent_str, g_type_name (parent));
|
230
|
+
parent = g_type_parent (parent);
|
231
|
+
}
|
232
|
+
|
233
|
+
escaped_printf (out, " parents=\"%s\"", parent_str->str);
|
234
|
+
|
235
|
+
g_string_free (parent_str, TRUE);
|
236
|
+
}
|
237
|
+
|
238
|
+
if (G_TYPE_IS_ABSTRACT (type))
|
239
|
+
escaped_printf (out, " abstract=\"1\"");
|
240
|
+
goutput_write (out, ">\n");
|
241
|
+
|
242
|
+
interfaces = g_type_interfaces (type, &n_interfaces);
|
243
|
+
for (i = 0; i < n_interfaces; i++)
|
244
|
+
{
|
245
|
+
GType itype = interfaces[i];
|
246
|
+
escaped_printf (out, " <implements name=\"%s\"/>\n",
|
247
|
+
g_type_name (itype));
|
248
|
+
}
|
249
|
+
dump_properties (type, out);
|
250
|
+
dump_signals (type, out);
|
251
|
+
goutput_write (out, " </class>\n");
|
252
|
+
}
|
253
|
+
|
254
|
+
static void
|
255
|
+
dump_interface_type (GType type, const char *symbol, GOutputStream *out)
|
256
|
+
{
|
257
|
+
guint n_interfaces;
|
258
|
+
guint i;
|
259
|
+
GType *interfaces;
|
260
|
+
|
261
|
+
escaped_printf (out, " <interface name=\"%s\" get-type=\"%s\">\n",
|
262
|
+
g_type_name (type), symbol);
|
263
|
+
|
264
|
+
interfaces = g_type_interface_prerequisites (type, &n_interfaces);
|
265
|
+
for (i = 0; i < n_interfaces; i++)
|
266
|
+
{
|
267
|
+
GType itype = interfaces[i];
|
268
|
+
if (itype == G_TYPE_OBJECT)
|
269
|
+
{
|
270
|
+
/* Treat this as implicit for now; in theory GInterfaces are
|
271
|
+
* supported on things like GstMiniObject, but right now
|
272
|
+
* the introspection system only supports GObject.
|
273
|
+
* http://bugzilla.gnome.org/show_bug.cgi?id=559706
|
274
|
+
*/
|
275
|
+
continue;
|
276
|
+
}
|
277
|
+
escaped_printf (out, " <prerequisite name=\"%s\"/>\n",
|
278
|
+
g_type_name (itype));
|
279
|
+
}
|
280
|
+
dump_properties (type, out);
|
281
|
+
dump_signals (type, out);
|
282
|
+
goutput_write (out, " </interface>\n");
|
283
|
+
}
|
284
|
+
|
285
|
+
static void
|
286
|
+
dump_boxed_type (GType type, const char *symbol, GOutputStream *out)
|
287
|
+
{
|
288
|
+
escaped_printf (out, " <boxed name=\"%s\" get-type=\"%s\"/>\n",
|
289
|
+
g_type_name (type), symbol);
|
290
|
+
}
|
291
|
+
|
292
|
+
static void
|
293
|
+
dump_flags_type (GType type, const char *symbol, GOutputStream *out)
|
294
|
+
{
|
295
|
+
guint i;
|
296
|
+
GFlagsClass *klass;
|
297
|
+
|
298
|
+
klass = g_type_class_ref (type);
|
299
|
+
escaped_printf (out, " <flags name=\"%s\" get-type=\"%s\">\n",
|
300
|
+
g_type_name (type), symbol);
|
301
|
+
|
302
|
+
for (i = 0; i < klass->n_values; i++)
|
303
|
+
{
|
304
|
+
GFlagsValue *value = &(klass->values[i]);
|
305
|
+
|
306
|
+
escaped_printf (out, " <member name=\"%s\" nick=\"%s\" value=\"%d\"/>\n",
|
307
|
+
value->value_name, value->value_nick, value->value);
|
308
|
+
}
|
309
|
+
goutput_write (out, " </flags>\n");
|
310
|
+
}
|
311
|
+
|
312
|
+
static void
|
313
|
+
dump_enum_type (GType type, const char *symbol, GOutputStream *out)
|
314
|
+
{
|
315
|
+
guint i;
|
316
|
+
GEnumClass *klass;
|
317
|
+
|
318
|
+
klass = g_type_class_ref (type);
|
319
|
+
escaped_printf (out, " <enum name=\"%s\" get-type=\"%s\">\n",
|
320
|
+
g_type_name (type), symbol);
|
321
|
+
|
322
|
+
for (i = 0; i < klass->n_values; i++)
|
323
|
+
{
|
324
|
+
GEnumValue *value = &(klass->values[i]);
|
325
|
+
|
326
|
+
escaped_printf (out, " <member name=\"%s\" nick=\"%s\" value=\"%d\"/>\n",
|
327
|
+
value->value_name, value->value_nick, value->value);
|
328
|
+
}
|
329
|
+
goutput_write (out, " </enum>");
|
330
|
+
}
|
331
|
+
|
332
|
+
static void
|
333
|
+
dump_fundamental_type (GType type, const char *symbol, GOutputStream *out)
|
334
|
+
{
|
335
|
+
guint n_interfaces;
|
336
|
+
guint i;
|
337
|
+
GType *interfaces;
|
338
|
+
GString *parent_str;
|
339
|
+
GType parent;
|
340
|
+
gboolean first = TRUE;
|
341
|
+
|
342
|
+
|
343
|
+
escaped_printf (out, " <fundamental name=\"%s\" get-type=\"%s\"",
|
344
|
+
g_type_name (type), symbol);
|
345
|
+
|
346
|
+
if (G_TYPE_IS_ABSTRACT (type))
|
347
|
+
escaped_printf (out, " abstract=\"1\"");
|
348
|
+
|
349
|
+
if (G_TYPE_IS_INSTANTIATABLE (type))
|
350
|
+
escaped_printf (out, " instantiatable=\"1\"");
|
351
|
+
|
352
|
+
parent = g_type_parent (type);
|
353
|
+
parent_str = g_string_new ("");
|
354
|
+
while (parent != G_TYPE_INVALID)
|
355
|
+
{
|
356
|
+
if (first)
|
357
|
+
first = FALSE;
|
358
|
+
else
|
359
|
+
g_string_append_c (parent_str, ',');
|
360
|
+
if (!g_type_name (parent))
|
361
|
+
break;
|
362
|
+
g_string_append (parent_str, g_type_name (parent));
|
363
|
+
parent = g_type_parent (parent);
|
364
|
+
}
|
365
|
+
|
366
|
+
if (parent_str->len > 0)
|
367
|
+
escaped_printf (out, " parents=\"%s\"", parent_str->str);
|
368
|
+
g_string_free (parent_str, TRUE);
|
369
|
+
|
370
|
+
goutput_write (out, ">\n");
|
371
|
+
|
372
|
+
interfaces = g_type_interfaces (type, &n_interfaces);
|
373
|
+
for (i = 0; i < n_interfaces; i++)
|
374
|
+
{
|
375
|
+
GType itype = interfaces[i];
|
376
|
+
escaped_printf (out, " <implements name=\"%s\"/>\n",
|
377
|
+
g_type_name (itype));
|
378
|
+
}
|
379
|
+
goutput_write (out, " </fundamental>\n");
|
380
|
+
}
|
381
|
+
|
382
|
+
static void
|
383
|
+
dump_type (GType type, const char *symbol, GOutputStream *out)
|
384
|
+
{
|
385
|
+
switch (g_type_fundamental (type))
|
386
|
+
{
|
387
|
+
case G_TYPE_OBJECT:
|
388
|
+
dump_object_type (type, symbol, out);
|
389
|
+
break;
|
390
|
+
case G_TYPE_INTERFACE:
|
391
|
+
dump_interface_type (type, symbol, out);
|
392
|
+
break;
|
393
|
+
case G_TYPE_BOXED:
|
394
|
+
dump_boxed_type (type, symbol, out);
|
395
|
+
break;
|
396
|
+
case G_TYPE_FLAGS:
|
397
|
+
dump_flags_type (type, symbol, out);
|
398
|
+
break;
|
399
|
+
case G_TYPE_ENUM:
|
400
|
+
dump_enum_type (type, symbol, out);
|
401
|
+
break;
|
402
|
+
case G_TYPE_POINTER:
|
403
|
+
/* GValue, etc. Just skip them. */
|
404
|
+
break;
|
405
|
+
default:
|
406
|
+
dump_fundamental_type (type, symbol, out);
|
407
|
+
break;
|
408
|
+
}
|
409
|
+
}
|
410
|
+
|
411
|
+
static void
|
412
|
+
dump_error_quark (GQuark quark, const char *symbol, GOutputStream *out)
|
413
|
+
{
|
414
|
+
escaped_printf (out, " <error-quark function=\"%s\" domain=\"%s\"/>\n",
|
415
|
+
symbol, g_quark_to_string (quark));
|
416
|
+
}
|
417
|
+
|
418
|
+
/**
|
419
|
+
* g_irepository_dump:
|
420
|
+
* @arg: Comma-separated pair of input and output filenames
|
421
|
+
* @error: a %GError
|
422
|
+
*
|
423
|
+
* Argument specified is a comma-separated pair of filenames; i.e. of
|
424
|
+
* the form "input.txt,output.xml". The input file should be a
|
425
|
+
* UTF-8 Unix-line-ending text file, with each line containing the name
|
426
|
+
* of a GType _get_type function.
|
427
|
+
*
|
428
|
+
* The output file should already exist, but be empty. This function will
|
429
|
+
* overwrite its contents.
|
430
|
+
*
|
431
|
+
* Returns: %TRUE on success, %FALSE on error
|
432
|
+
*/
|
433
|
+
#ifndef G_IREPOSITORY_COMPILATION
|
434
|
+
static gboolean
|
435
|
+
dump_irepository (const char *arg, GError **error) G_GNUC_UNUSED;
|
436
|
+
static gboolean
|
437
|
+
dump_irepository (const char *arg, GError **error)
|
438
|
+
#else
|
439
|
+
gboolean
|
440
|
+
g_irepository_dump (const char *arg, GError **error)
|
441
|
+
#endif
|
442
|
+
{
|
443
|
+
GHashTable *output_types;
|
444
|
+
char **args;
|
445
|
+
GFile *input_file;
|
446
|
+
GFile *output_file;
|
447
|
+
GFileInputStream *input;
|
448
|
+
GFileOutputStream *output;
|
449
|
+
GDataInputStream *in;
|
450
|
+
GModule *self;
|
451
|
+
gboolean caught_error = FALSE;
|
452
|
+
|
453
|
+
self = g_module_open (NULL, 0);
|
454
|
+
if (!self)
|
455
|
+
{
|
456
|
+
g_set_error (error,
|
457
|
+
G_IO_ERROR,
|
458
|
+
G_IO_ERROR_FAILED,
|
459
|
+
"failed to open self: %s",
|
460
|
+
g_module_error ());
|
461
|
+
return FALSE;
|
462
|
+
}
|
463
|
+
|
464
|
+
args = g_strsplit (arg, ",", 2);
|
465
|
+
|
466
|
+
input_file = g_file_new_for_path (args[0]);
|
467
|
+
output_file = g_file_new_for_path (args[1]);
|
468
|
+
|
469
|
+
input = g_file_read (input_file, NULL, error);
|
470
|
+
if (input == NULL)
|
471
|
+
return FALSE;
|
472
|
+
|
473
|
+
output = g_file_replace (output_file, NULL, FALSE, 0, NULL, error);
|
474
|
+
if (output == NULL)
|
475
|
+
{
|
476
|
+
g_input_stream_close (G_INPUT_STREAM (input), NULL, NULL);
|
477
|
+
return FALSE;
|
478
|
+
}
|
479
|
+
|
480
|
+
goutput_write (G_OUTPUT_STREAM (output), "<?xml version=\"1.0\"?>\n");
|
481
|
+
goutput_write (G_OUTPUT_STREAM (output), "<dump>\n");
|
482
|
+
|
483
|
+
output_types = g_hash_table_new (NULL, NULL);
|
484
|
+
|
485
|
+
in = g_data_input_stream_new (G_INPUT_STREAM (input));
|
486
|
+
g_object_unref (input);
|
487
|
+
|
488
|
+
while (TRUE)
|
489
|
+
{
|
490
|
+
gsize len;
|
491
|
+
char *line = g_data_input_stream_read_line (in, &len, NULL, NULL);
|
492
|
+
const char *function;
|
493
|
+
|
494
|
+
if (line == NULL || *line == '\0')
|
495
|
+
{
|
496
|
+
g_free (line);
|
497
|
+
break;
|
498
|
+
}
|
499
|
+
|
500
|
+
g_strchomp (line);
|
501
|
+
|
502
|
+
if (strncmp (line, "get-type:", strlen ("get-type:")) == 0)
|
503
|
+
{
|
504
|
+
GType type;
|
505
|
+
|
506
|
+
function = line + strlen ("get-type:");
|
507
|
+
|
508
|
+
type = invoke_get_type (self, function, error);
|
509
|
+
|
510
|
+
if (type == G_TYPE_INVALID)
|
511
|
+
{
|
512
|
+
g_printerr ("Invalid GType function: '%s'\n", function);
|
513
|
+
caught_error = TRUE;
|
514
|
+
g_free (line);
|
515
|
+
break;
|
516
|
+
}
|
517
|
+
|
518
|
+
if (g_hash_table_lookup (output_types, (gpointer) type))
|
519
|
+
goto next;
|
520
|
+
g_hash_table_insert (output_types, (gpointer) type, (gpointer) type);
|
521
|
+
|
522
|
+
dump_type (type, function, G_OUTPUT_STREAM (output));
|
523
|
+
}
|
524
|
+
else if (strncmp (line, "error-quark:", strlen ("error-quark:")) == 0)
|
525
|
+
{
|
526
|
+
GQuark quark;
|
527
|
+
function = line + strlen ("error-quark:");
|
528
|
+
quark = invoke_error_quark (self, function, error);
|
529
|
+
|
530
|
+
if (quark == 0)
|
531
|
+
{
|
532
|
+
g_printerr ("Invalid error quark function: '%s'\n", function);
|
533
|
+
caught_error = TRUE;
|
534
|
+
g_free (line);
|
535
|
+
break;
|
536
|
+
}
|
537
|
+
|
538
|
+
dump_error_quark (quark, function, G_OUTPUT_STREAM (output));
|
539
|
+
}
|
540
|
+
|
541
|
+
|
542
|
+
next:
|
543
|
+
g_free (line);
|
544
|
+
}
|
545
|
+
|
546
|
+
g_hash_table_destroy (output_types);
|
547
|
+
|
548
|
+
goutput_write (G_OUTPUT_STREAM (output), "</dump>\n");
|
549
|
+
|
550
|
+
{
|
551
|
+
GError **ioerror;
|
552
|
+
/* Avoid overwriting an earlier set error */
|
553
|
+
if (caught_error)
|
554
|
+
ioerror = NULL;
|
555
|
+
else
|
556
|
+
ioerror = error;
|
557
|
+
if (!g_input_stream_close (G_INPUT_STREAM (in), NULL, ioerror))
|
558
|
+
return FALSE;
|
559
|
+
if (!g_output_stream_close (G_OUTPUT_STREAM (output), NULL, ioerror))
|
560
|
+
return FALSE;
|
561
|
+
}
|
562
|
+
|
563
|
+
return !caught_error;
|
564
|
+
}
|