Imported Upstream version 1.41.91 82/94082/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 27 Oct 2016 05:15:36 +0000 (14:15 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 27 Oct 2016 05:15:46 +0000 (14:15 +0900)
Change-Id: I50bb831bd491216e1a9b680a08f4b77db7e589ef
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
126 files changed:
Makefile-girepository.am
Makefile-giscanner.am
Makefile-msvcproj.am
Makefile.in
build/Makefile.in
build/gi-tests-msvc.mak
build/win32/Makefile.am
build/win32/Makefile.in
build/win32/Regress.def [deleted file]
build/win32/annotation.def [deleted file]
build/win32/everything.def [deleted file]
build/win32/foo.def [deleted file]
build/win32/gettype.def [deleted file]
build/win32/gimarshallingtests.def [deleted file]
build/win32/gtkfrob.def [deleted file]
build/win32/sletter.def [deleted file]
build/win32/testinherit.def [deleted file]
build/win32/utility.def [deleted file]
build/win32/vs10/Makefile.in
build/win32/vs10/gi-install.props
build/win32/vs10/girepository.vcxproj
build/win32/vs10/girepository.vcxproj.filters
build/win32/vs10/girepository.vcxproj.filtersin
build/win32/vs10/girepository.vcxprojin
build/win32/vs11/Makefile.in
build/win32/vs11/gi-install.props
build/win32/vs11/girepository.vcxproj
build/win32/vs11/girepository.vcxproj.filters
build/win32/vs12/Makefile.in
build/win32/vs12/gi-install.props
build/win32/vs12/girepository.vcxproj
build/win32/vs12/girepository.vcxproj.filters
build/win32/vs9/Makefile.in
build/win32/vs9/gi-install.vsprops
build/win32/vs9/girepository.vcproj
build/win32/vs9/girepository.vcprojin
config.h.in
config.h.win32
config.h.win32.in
configure
configure.ac
docs/Makefile.in
docs/reference/Makefile.in
docs/reference/html/index.html
docs/reference/version.xml
gir/gio-2.0.c
gir/glib-2.0.c
gir/gobject-2.0.c
girepository/giarginfo.h
girepository/gibaseinfo.h
girepository/gicallableinfo.h
girepository/giconstantinfo.h
girepository/gienuminfo.h
girepository/gifieldinfo.h
girepository/gifunctioninfo.h
girepository/giinterfaceinfo.h
girepository/giobjectinfo.h
girepository/gipropertyinfo.h
girepository/giregisteredtypeinfo.h
girepository/girepository.h
girepository/girepository.symbols [deleted file]
girepository/girffi.h
girepository/gisignalinfo.h
girepository/gistructinfo.h
girepository/gitypeinfo.h
girepository/gitypelib-internal.h
girepository/gitypelib.h
girepository/gitypes.h
girepository/giunioninfo.h
girepository/giversionmacros.h [new file with mode: 0644]
girepository/givfuncinfo.h
giscanner/cachestore.py
giscanner/ccompiler.py [new file with mode: 0644]
giscanner/dumper.py
giscanner/scannerlexer.l
giscanner/scannermain.py
giscanner/shlibs.py
gobject-introspection-1.0.pc
gobject-introspection-no-export-1.0.pc
scannerlexer.c
scannerparser.c
scannerparser.h
tests/Makefile.am
tests/Makefile.in
tests/gimarshallingtests.c
tests/gimarshallingtests.h
tests/gitestmacros.h [new file with mode: 0644]
tests/offsets/Makefile.am
tests/offsets/Makefile.in
tests/repository/Makefile.in
tests/repository/gitestrepo.c
tests/repository/gitestthrows.c
tests/repository/gitypelibtest.c
tests/scanner/Makefile.am
tests/scanner/Makefile.in
tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackArrayInOut.page [new file with mode: 0644]
tests/scanner/Regress-1.0-C-expected/Regress.test_array_inout_callback.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackArrayInOut.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_inout_callback.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackArrayInOut.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Python-expected/Regress.test_array_inout_callback.page [new file with mode: 0644]
tests/scanner/Regress-1.0-expected.gir
tests/scanner/Regress-1.0-sections-expected.txt
tests/scanner/annotation.c
tests/scanner/annotation.h
tests/scanner/annotationparser/Makefile.in
tests/scanner/barapp.c
tests/scanner/barapp.h
tests/scanner/drawable.c
tests/scanner/drawable.h
tests/scanner/foo.c
tests/scanner/foo.h
tests/scanner/gettype.c
tests/scanner/gettype.h
tests/scanner/gtkfrob.c
tests/scanner/gtkfrob.h
tests/scanner/regress.c
tests/scanner/regress.h
tests/scanner/sletter.c
tests/scanner/sletter.h
tests/scanner/typedefs.c
tests/scanner/typedefs.h
tests/scanner/utility.c
tests/scanner/utility.h
tests/scanner/warnlib.h
tests/warn/Makefile.in

index 1f956ed..8a857d6 100644 (file)
@@ -22,6 +22,7 @@ girepo_HEADERS =                                      \
        girepository/gitypelib.h                        \
        girepository/gitypes.h                          \
        girepository/giunioninfo.h                      \
+       girepository/giversionmacros.h          \
        girepository/givfuncinfo.h
 
 lib_LTLIBRARIES += libgirepository-1.0.la
@@ -43,7 +44,11 @@ libgirepository_internals_la_SOURCES =                               \
        girepository/girwriter.c                                \
        girepository/girwriter.h
 
-libgirepository_internals_la_CFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+libgirepository_internals_la_CFLAGS =  \
+       $(GIREPO_CFLAGS)        \
+       $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
+       -I$(top_srcdir)/girepository
+
 libgirepository_internals_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS)
 
 libgirepository_1_0_la_SOURCES =                       \
@@ -72,12 +77,15 @@ libgirepository_1_0_la_SOURCES =                    \
        girepository/giunioninfo.c                      \
        girepository/givfuncinfo.c
 
-libgirepository_1_0_la_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -DG_IREPOSITORY_COMPILATION
+libgirepository_1_0_la_CPPFLAGS =      \
+       $(GIREPO_CFLAGS)        \
+       $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
+       -I$(top_srcdir)/girepository    \
+       -DG_IREPOSITORY_COMPILATION
 libgirepository_1_0_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS)
 libgirepository_1_0_la_LDFLAGS = \
        $(EXTRA_LINK_FLAGS) \
-       -no-undefined -version-number 1:0:0 \
-       -export-symbols $(srcdir)/girepository/girepository.symbols
+       -no-undefined -version-number 1:0:0
 
 gdumpdir = $(datadir)/gobject-introspection-1.0/
 gdump_DATA = girepository/gdump.c
index bccd815..c2273cd 100644 (file)
@@ -31,6 +31,7 @@ pkgpyexec_PYTHON =                    \
        giscanner/annotationparser.py   \
        giscanner/ast.py                \
        giscanner/cachestore.py         \
+       giscanner/ccompiler.py          \
        giscanner/codegen.py            \
        giscanner/docmain.py            \
        giscanner/docwriter.py          \
index 6e5b796..cdfbd48 100644 (file)
@@ -199,7 +199,6 @@ GENERATED_MSVC_FILES =      \
        config.h.win32
 
 EXTRA_DIST +=  \
-       ./girepository/girepository.symbols     \
        $(GENERATED_MSVC_FILES)
 
 CLEANFILES += $(GENERATED_MSVC_FILES)
index 009121d..038b5c6 100644 (file)
@@ -755,6 +755,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -890,9 +891,9 @@ EXTRA_DIST = girepository/docs.c $(STATIC_GIRSOURCES) \
        gir/cairo-1.0.gir.in gir/glib-2.0.c gir/gmodule-2.0.c \
        gir/gobject-2.0.c gir/gio-2.0.c tools/g-ir-scanner.in \
        tools/g-ir-annotation-tool.in tools/g-ir-doc-tool.in \
-       ./girepository/girepository.symbols $(GENERATED_MSVC_FILES) \
-       COPYING.LGPL COPYING.GPL CONTRIBUTORS $(pkgconfig_DATA) \
-       $(man_MANS) $(m4_DATA) misc/pep8.py misc/pyflakes.py
+       $(GENERATED_MSVC_FILES) COPYING.LGPL COPYING.GPL CONTRIBUTORS \
+       $(pkgconfig_DATA) $(man_MANS) $(m4_DATA) misc/pep8.py \
+       misc/pyflakes.py
 lib_LTLIBRARIES = libgirepository-1.0.la
 noinst_LTLIBRARIES = libgirepository-internals.la \
        libgirepository-gthash.la libgiscanner.la
@@ -1072,6 +1073,7 @@ girepo_HEADERS = \
        girepository/gitypelib.h                        \
        girepository/gitypes.h                          \
        girepository/giunioninfo.h                      \
+       girepository/giversionmacros.h          \
        girepository/givfuncinfo.h
 
 libgirepository_gthash_la_SOURCES = \
@@ -1090,7 +1092,11 @@ libgirepository_internals_la_SOURCES = \
        girepository/girwriter.c                                \
        girepository/girwriter.h
 
-libgirepository_internals_la_CFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository
+libgirepository_internals_la_CFLAGS = \
+       $(GIREPO_CFLAGS)        \
+       $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
+       -I$(top_srcdir)/girepository
+
 libgirepository_internals_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS)
 libgirepository_1_0_la_SOURCES = \
        girepository/gdump.c                            \
@@ -1118,12 +1124,16 @@ libgirepository_1_0_la_SOURCES = \
        girepository/giunioninfo.c                      \
        girepository/givfuncinfo.c
 
-libgirepository_1_0_la_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -DG_IREPOSITORY_COMPILATION
+libgirepository_1_0_la_CPPFLAGS = \
+       $(GIREPO_CFLAGS)        \
+       $(GI_HIDDEN_VISIBILITY_CFLAGS)  \
+       -I$(top_srcdir)/girepository    \
+       -DG_IREPOSITORY_COMPILATION
+
 libgirepository_1_0_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS)
 libgirepository_1_0_la_LDFLAGS = \
        $(EXTRA_LINK_FLAGS) \
-       -no-undefined -version-number 1:0:0 \
-       -export-symbols $(srcdir)/girepository/girepository.symbols
+       -no-undefined -version-number 1:0:0
 
 gdumpdir = $(datadir)/gobject-introspection-1.0/
 gdump_DATA = girepository/gdump.c
@@ -1150,6 +1160,7 @@ pkgpyexec_PYTHON = \
        giscanner/annotationparser.py   \
        giscanner/ast.py                \
        giscanner/cachestore.py         \
+       giscanner/ccompiler.py          \
        giscanner/codegen.py            \
        giscanner/docmain.py            \
        giscanner/docwriter.py          \
index 6b696ca..b688c01 100644 (file)
@@ -221,6 +221,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index fffdfc9..9a22d46 100644 (file)
@@ -93,7 +93,7 @@ gitestrepo.exe gitestthrows.exe gitypelibtest.exe:
        @-if exist $@.manifest @mt /manifest $@.manifest /outputresource:$@;1
 
 barapp.exe:
-       $(CC) $(CFLAGS) /I..\girepository ..\tests\scanner\$*.c $(LDFLAGS) girepository-$(GI_APIVERSION).lib
+       $(CC) $(CFLAGS) /I..\girepository -I..\tests ..\tests\scanner\$*.c $(LDFLAGS) girepository-$(GI_APIVERSION).lib
        @-if exist $@.manifest @mt /manifest $@.manifest /outputresource:$@;1
 
 gitestoffsets.exe: gitestoffsets.c
@@ -132,7 +132,7 @@ Offsets-$(GI_APIVERSION).gir: offsets.dll
 SLetter-$(GI_APIVERSION).gir: sletter.dll
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all --reparse-validate        \
        --namespace=SLetter --nsversion=$(GI_APIVERSION) \
-       --no-libtool -I..       \
+       --no-libtool -I..\tests -I..    \
        --add-include-path=. --include=Gio-$(GLIB_APIVERSION)   \
        --identifier-prefix=S --c-include="sletter.h" --warn-error      \
        --library=$* --output=$@        \
@@ -141,7 +141,7 @@ SLetter-$(GI_APIVERSION).gir: sletter.dll
 Utility-$(GI_APIVERSION).gir: utility.dll
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all --reparse-validate        \
        --namespace=Utility --nsversion=$(GI_APIVERSION)        \
-       --no-libtool -I.. --pkg=gobject-$(GLIB_APIVERSION)      \
+       --no-libtool -I..\tests -I.. --pkg=gobject-$(GLIB_APIVERSION)   \
        --add-include-path=. --include=GObject-$(GLIB_APIVERSION)       \
        --c-include="utility.h" --warn-error    \
        --library=$* --output=$@ \
@@ -150,7 +150,7 @@ Utility-$(GI_APIVERSION).gir: utility.dll
 GtkFrob-$(GI_APIVERSION).gir: gtkfrob.dll
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all --reparse-validate        \
        --namespace=GtkFrob --nsversion=$(GI_APIVERSION)        \
-       --no-libtool -I.. --pkg=gobject-$(GLIB_APIVERSION)      \
+       --no-libtool -I..\tests -I.. --pkg=gobject-$(GLIB_APIVERSION)   \
        --add-include-path=. --include=GObject-$(GLIB_APIVERSION)       \
        --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error   \
        --library=$* --output=$@ \
@@ -159,7 +159,7 @@ GtkFrob-$(GI_APIVERSION).gir: gtkfrob.dll
 GetType-$(GI_APIVERSION).gir: gettype.dll
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all --reparse-validate        \
        --namespace=GetType --nsversion=$(GI_APIVERSION)        \
-       --no-libtool -I.. --pkg=gobject-$(GLIB_APIVERSION)      \
+       --no-libtool -I..\tests -I.. --pkg=gobject-$(GLIB_APIVERSION)   \
        --add-include-path=. --include=GObject-$(GLIB_APIVERSION)       \
        --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype     \
        --library=$* --output=$@ \
@@ -168,7 +168,7 @@ GetType-$(GI_APIVERSION).gir: gettype.dll
 Typedefs-$(GI_APIVERSION).gir: typedefs.dll
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all --reparse-validate        \
        --namespace=Typedefs --nsversion=$(GI_APIVERSION)       \
-       --no-libtool -I.. --pkg=gobject-$(GLIB_APIVERSION)      \
+       --no-libtool -I..\tests -I.. --pkg=gobject-$(GLIB_APIVERSION)   \
        --add-include-path=. --include=GObject-$(GLIB_APIVERSION)       \
        --c-include="typedefs.h" --identifier-prefix=Typedefs --symbol-prefix=typedefs  \
        --library=$* --output=$@ \
@@ -177,7 +177,7 @@ Typedefs-$(GI_APIVERSION).gir: typedefs.dll
 WarnLib-$(GI_APIVERSION).gir: warnlib.dll
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all --reparse-validate        \
        --namespace=WarnLib --nsversion=$(GI_APIVERSION)        \
-       --no-libtool -I..       \
+       --no-libtool -I..\tests -I..    \
        --add-include-path=. --include=Gio-$(GLIB_APIVERSION)   \
        --c-include="warnlib.h" --symbol-prefix=warnlib_        \
        --library=$* --output=$@ \
@@ -186,7 +186,7 @@ WarnLib-$(GI_APIVERSION).gir: warnlib.dll
 Regress-$(GI_APIVERSION).gir: Utility-$(GI_APIVERSION).gir regress.dll
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all   \
        --namespace=Regress --nsversion=$(GI_APIVERSION)        \
-       --no-libtool -I..       \
+       --no-libtool -I..\tests -I..    \
        --add-include-path=. --include=Gio-$(GLIB_APIVERSION)   \
        --include=Utility-$(GI_APIVERSION) --include=cairo-$(GI_APIVERSION)     \
        --c-include="regress.h" --warn-error    \
@@ -201,7 +201,7 @@ Bar-$(GI_APIVERSION).gir: Utility-$(GI_APIVERSION).gir barapp.exe
        $(PYTHON2) $(G_IR_SCANNER_CURRENT) --warn-all   \
        --namespace=Bar --nsversion=$(GI_APIVERSION)    \
        --program=barapp        \
-       --no-libtool -I.. --pkg=gobject-$(GLIB_APIVERSION)      \
+       --no-libtool -I..\tests -I.. --pkg=gobject-$(GLIB_APIVERSION)   \
        --add-include-path=. --include=GObject-$(GLIB_APIVERSION)       \
        --accept-unprefixed     \
        --output=$@     \
index cfebe0c..31f582f 100644 (file)
@@ -4,14 +4,3 @@ SUBDIRS =      \
        vs11    \
        vs12
 
-EXTRA_DIST = \
-       annotation.def  \
-       everything.def  \
-       foo.def \
-       gettype.def     \
-       gimarshallingtests.def  \
-       gtkfrob.def     \
-       Regress.def     \
-       sletter.def     \
-       testinherit.def \
-       utility.def
index bcc13f2..41293fb 100644 (file)
@@ -221,6 +221,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -354,18 +355,6 @@ SUBDIRS = \
        vs11    \
        vs12
 
-EXTRA_DIST = \
-       annotation.def  \
-       everything.def  \
-       foo.def \
-       gettype.def     \
-       gimarshallingtests.def  \
-       gtkfrob.def     \
-       Regress.def     \
-       sletter.def     \
-       testinherit.def \
-       utility.def
-
 all: all-recursive
 
 .SUFFIXES:
diff --git a/build/win32/Regress.def b/build/win32/Regress.def
deleted file mode 100644 (file)
index 693f053..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-EXPORTS
-regress_set_abort_on_error
-regress_test_boolean
-regress_test_boolean_true
-regress_test_boolean_false
-regress_test_int8
-regress_test_uint8
-regress_test_int16
-regress_test_uint16
-regress_test_int32
-regress_test_uint32
-regress_test_int64
-regress_test_uint64
-regress_test_short
-regress_test_ushort
-regress_test_int
-regress_test_uint
-regress_test_long
-regress_test_ulong
-regress_test_ssize
-regress_test_size
-regress_test_float
-regress_test_double
-regress_test_unichar
-regress_test_timet
-regress_test_gtype
-regress_test_utf8_const_return
-regress_test_utf8_nonconst_return
-regress_test_utf8_const_in
-regress_test_utf8_out
-regress_test_utf8_inout
-regress_test_filename_return
-regress_test_utf8_null_in
-regress_test_utf8_null_out
-
-regress_test_int_out_utf8
-
-
-regress_test_multi_double_args
-regress_test_utf8_out_out
-regress_test_utf8_out_nonconst_return
-
-
-regress_test_strv_in
-regress_test_array_int_in
-regress_test_array_int_out
-regress_test_array_int_inout
-regress_test_array_gint8_in
-regress_test_array_gint16_in
-regress_test_array_gint32_in
-regress_test_array_gint64_in
-regress_test_array_gtype_in
-regress_test_strv_out_container
-regress_test_strv_out
-regress_test_strv_out_c
-regress_test_strv_outarg
-regress_test_array_fixed_size_int_in
-regress_test_array_fixed_size_int_out
-regress_test_array_fixed_size_int_return
-
-
-regress_test_array_int_full_out
-regress_test_array_int_none_out
-regress_test_array_int_null_in
-regress_test_array_int_null_out
-
-
-regress_test_glist_nothing_return
-regress_test_glist_nothing_return2
-regress_test_glist_container_return
-regress_test_glist_everything_return
-regress_test_glist_nothing_in
-regress_test_glist_nothing_in2
-regress_test_glist_null_in
-regress_test_glist_null_out
-
-
-regress_test_gslist_nothing_return
-regress_test_gslist_nothing_return2
-regress_test_gslist_container_return
-regress_test_gslist_everything_return
-regress_test_gslist_nothing_in
-regress_test_gslist_nothing_in2
-regress_test_gslist_null_in
-regress_test_gslist_null_out
-
-
-regress_test_ghash_null_return
-regress_test_ghash_nothing_return
-regress_test_ghash_nothing_return2
-regress_test_ghash_gvalue_return
-regress_test_ghash_gvalue_in
-regress_test_ghash_container_return
-regress_test_ghash_everything_return
-regress_test_ghash_null_in
-regress_test_ghash_null_out
-regress_test_ghash_nothing_in
-regress_test_ghash_nothing_in2
-regress_test_ghash_nested_everything_return
-regress_test_ghash_nested_everything_return2
-
-
-regress_test_garray_container_return
-regress_test_garray_full_return
-
-
-
-
-regress_test_closure
-regress_test_closure_one_arg
-regress_test_closure_variant
-
-
-regress_test_int_value_arg
-regress_test_value_return
-
-
-regress_test_cairo_context_full_return
-regress_test_cairo_context_none_in
-
-regress_test_cairo_surface_none_return
-regress_test_cairo_surface_full_return
-regress_test_cairo_surface_none_in
-regress_test_cairo_surface_full_out
-
-regress_test_gvariant_i
-regress_test_gvariant_s
-regress_test_gvariant_asv
-regress_test_gvariant_v
-regress_test_gvariant_as
-regress_test_enum_get_type
-regress_test_enum_unsigned_get_type
-regress_test_flags_get_type
-
-
-regress_test_enum_param
-regress_test_unsigned_enum_param
-
-regress_global_get_flags_out
-regress_test_struct_a_clone
-regress_test_struct_a_parse
-
-regress_test_struct_b_clone
-
-
-regress_test_simple_boxed_a_get_gtype
-regress_test_simple_boxed_a_copy
-regress_test_simple_boxed_a_equals
-regress_test_simple_boxed_a_const_return
-
-regress_test_simple_boxed_b_get_type
-regress_test_simple_boxed_b_copy
-
-regress_test_boxed_get_type
-regress_test_boxed_new
-regress_test_boxed_new_alternative_constructor1
-regress_test_boxed_new_alternative_constructor2
-regress_test_boxed_new_alternative_constructor3
-
-regress_test_boxed_copy
-
-
-regress_test_boxed_b_get_type
-regress_test_boxed_b_new
-regress_test_boxed_b_copy
-
-regress_test_boxed_c_get_type
-regress_test_boxed_c_new
-
-regress_test_boxed_d_get_type
-regress_test_boxed_d_new
-regress_test_boxed_d_copy
-regress_test_boxed_d_free
-regress_test_boxed_d_get_magic
-
-regress_test_obj_get_type
-regress_test_obj_new
-regress_constructor
-regress_test_obj_new_from_file
-regress_test_obj_set_bare
-regress_test_obj_emit_sig_with_obj
-regress_test_obj_emit_sig_with_foreign_struct
-regress_test_obj_emit_sig_with_int64
-regress_test_obj_emit_sig_with_uint64
-regress_test_obj_instance_method
-regress_test_obj_static_method
-regress_forced_method
-
-regress_test_array_fixed_out_objects
-regress_test_obj_torture_signature_0
-regress_test_obj_torture_signature_1
-regress_test_obj_skip_return_val
-regress_test_obj_skip_return_val_no_out
-regress_test_obj_skip_param
-regress_test_obj_skip_out_param
-regress_test_obj_skip_inout_param
-regress_test_obj_do_matrix
-regress_func_obj_null_in
-regress_test_obj_null_out
-regress_test_sub_obj_get_type
-regress_test_sub_obj_new
-regress_test_sub_obj_unset_bare
-regress_test_sub_obj_instance_method
-regress_test_skip_unannotated_callback
-
-regress_test_fundamental_object_get_type
-regress_test_fundamental_object_ref
-regress_test_fundamental_object_unref
-regress_test_value_set_fundamental_object
-regress_test_value_get_fundamental_object
-regress_test_fundamental_sub_object_get_type
-
-regress_test_fundamental_sub_object_new
-
-
-regress_test_simple_callback
-regress_test_callback
-regress_test_multi_callback
-regress_test_array_callback
-regress_test_callback_user_data
-regress_test_callback_destroy_notify
-regress_test_callback_destroy_notify_no_user_data
-regress_test_callback_thaw_notifications
-
-regress_test_callback_async
-regress_test_callback_thaw_async
-
-regress_test_async_ready_callback
-
-regress_test_obj_instance_method_callback
-regress_test_obj_static_method_callback
-regress_test_obj_new_callback
-regress_test_hash_table_callback
-regress_test_gerror_callback
-regress_test_null_gerror_callback
-regress_test_owned_gerror_callback
-regress_test_interface_get_type
-
-regress_test_wi_802_1x_get_type
-regress_test_wi_802_1x_new
-regress_test_wi_802_1x_get_testbool
-regress_test_wi_802_1x_set_testbool
-regress_test_wi_802_1x_static_method
-
-regress_test_floating_get_type
-regress_test_floating_new
-
-regress_test_torture_signature_0
-regress_test_torture_signature_1
-regress_test_torture_signature_2
-regress_test_date_in_gvalue
-regress_test_strv_in_gvalue
-
-regress_test_multiline_doc_comments
-regress_test_nested_parameter
-
-regress_introspectable_via_alias
-regress_not_introspectable_via_alias
-regress_aliased_caller_alloc
-
-regress_atest_error_quark
-regress_test_def_error_quark
-regress_test_unconventional_error_quark
-regress_test_abc_error_quark
-regress_test_error_quark
-regress_test_boxed_c_get_type
-regress_test_unconventional_error_get_type
-regress_test_abc_error_get_type
-regress_test_error_get_type
-
-
-regress_test_versioning
diff --git a/build/win32/annotation.def b/build/win32/annotation.def
deleted file mode 100644 (file)
index 2745228..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-EXPORTS
-regress_annotation_object_get_type
-regress_annotation_object_method
-regress_annotation_object_out
-regress_annotation_object_create_object
-regress_annotation_object_allow_none
-regress_annotation_object_notrans
-regress_annotation_object_inout
-regress_annotation_object_inout2
-regress_annotation_object_inout3
-regress_annotation_object_in
-regress_annotation_object_calleeowns
-regress_annotation_object_calleesowns
-regress_annotation_object_get_strings
-regress_annotation_object_get_hash
-regress_annotation_object_with_voidp
-regress_annotation_object_get_objects
-regress_annotation_object_use_buffer
-regress_annotation_object_compute_sum
-regress_annotation_object_compute_sum_n
-regress_annotation_object_compute_sum_nz
-regress_annotation_object_parse_args
-regress_annotation_object_string_out
-regress_annotation_object_foreach
-regress_annotation_object_set_data
-regress_annotation_object_set_data2
-regress_annotation_object_set_data3
-regress_annotation_object_do_not_use
-regress_annotation_object_watch
-regress_annotation_object_watch_full
-regress_annotation_object_hidden_self
-regress_annotation_init
-regress_annotation_return_array
-regress_annotation_versioned
-regress_annotation_string_zero_terminated
-regress_annotation_string_zero_terminated_out
-regress_annotation_string_array_length
-regress_annotation_object_extra_annos
-regress_annotation_custom_destroy
-regress_annotation_get_source_file
-regress_annotation_set_source_file
-regress_annotation_attribute_func
-regress_annotation_invalid_regress_annotation
-regress_annotation_ptr_array
-regress_annotation_test_parsing_bug630862
-regress_annotation_space_after_comment_bug631690
-regress_annotation_return_filename
-regress_annotation_transfer_floating
diff --git a/build/win32/everything.def b/build/win32/everything.def
deleted file mode 100644 (file)
index e15f2fd..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-EXPORTS
-everything_nullfunc
-everything_const_return_gboolean
-everything_const_return_gint8
-everything_const_return_guint8
-everything_const_return_gint16
-everything_const_return_guint16
-everything_const_return_gint32
-everything_const_return_guint32
-everything_const_return_gint64
-everything_const_return_guint64
-everything_const_return_gchar
-everything_const_return_gshort
-everything_const_return_gushort
-everything_const_return_gint
-everything_const_return_guint
-everything_const_return_glong
-everything_const_return_gulong
-everything_const_return_gsize
-everything_const_return_gssize
-everything_const_return_gintptr
-everything_const_return_guintptr
-everything_const_return_gfloat
-everything_const_return_gdouble
-everything_const_return_gunichar
-everything_const_return_GType
-everything_const_return_utf8
-everything_const_return_filename
-everything_oneparam_gboolean
-everything_oneparam_gint8
-everything_oneparam_guint8
-everything_oneparam_gint16
-everything_oneparam_guint16
-everything_oneparam_gint32
-everything_oneparam_guint32
-everything_oneparam_gint64
-everything_oneparam_guint64
-everything_oneparam_gchar
-everything_oneparam_gshort
-everything_oneparam_gushort
-everything_oneparam_gint
-everything_oneparam_guint
-everything_oneparam_glong
-everything_oneparam_gulong
-everything_oneparam_gsize
-everything_oneparam_gssize
-everything_oneparam_gintptr
-everything_oneparam_guintptr
-everything_oneparam_gfloat
-everything_oneparam_gdouble
-everything_oneparam_gunichar
-everything_oneparam_GType
-everything_oneparam_utf8
-everything_oneparam_filename
-everything_one_outparam_gboolean
-everything_one_outparam_gint8
-everything_one_outparam_guint8
-everything_one_outparam_gint16
-everything_one_outparam_guint16
-everything_one_outparam_gint32
-everything_one_outparam_guint32
-everything_one_outparam_gint64
-everything_one_outparam_guint64
-everything_one_outparam_gchar
-everything_one_outparam_gshort
-everything_one_outparam_gushort
-everything_one_outparam_gint
-everything_one_outparam_guint
-everything_one_outparam_glong
-everything_one_outparam_gulong
-everything_one_outparam_gsize
-everything_one_outparam_gssize
-everything_one_outparam_gintptr
-everything_one_outparam_guintptr
-everything_one_outparam_gfloat
-everything_one_outparam_gdouble
-everything_one_outparam_gunichar
-everything_one_outparam_GType
-everything_one_outparam_utf8
-everything_one_outparam_filename
-everything_passthrough_one_gboolean
-everything_passthrough_one_gint8
-everything_passthrough_one_guint8
-everything_passthrough_one_gint16
-everything_passthrough_one_guint16
-everything_passthrough_one_gint32
-everything_passthrough_one_guint32
-everything_passthrough_one_gint64
-everything_passthrough_one_guint64
-everything_passthrough_one_gchar
-everything_passthrough_one_gshort
-everything_passthrough_one_gushort
-everything_passthrough_one_gint
-everything_passthrough_one_guint
-everything_passthrough_one_glong
-everything_passthrough_one_gulong
-everything_passthrough_one_gsize
-everything_passthrough_one_gssize
-everything_passthrough_one_gintptr
-everything_passthrough_one_guintptr
-everything_passthrough_one_gfloat
-everything_passthrough_one_gdouble
-everything_passthrough_one_gunichar
-everything_passthrough_one_GType
-everything_passthrough_one_utf8
-everything_passthrough_one_filename
diff --git a/build/win32/foo.def b/build/win32/foo.def
deleted file mode 100644 (file)
index cba3e2a..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-EXPORTS
-regress_foo_interface_do_regress_foo
-regress_foo_interface_static_method
-regress_foo_sub_interface_get_type
-regress_foo_sub_interface_do_bar
-regress_foo_sub_interface_do_baz
-regress_foo_init
-regress_foo_object_get_type
-regress_foo_object_new
-regress_foo_object_external_type
-regress_foo_object_new_as_super
-regress_foo_object_take_all
-regress_foo_object_new_cookie
-regress_foo_object_is_it_time_yet
-regress_foo_object_get_name
-regress_foo_object_dup_name
-regress_foo_object_read
-regress_foo_object_skipped_method
-regress_foo_subobject_get_type
-regress_foo_object_get_default
-regress_foo_buffer_get_type
-regress_foo_buffer_some_method
-regress_foo_other_object_get_type
-regress_foo_not_a_constructor_new
-regress_foo_enum_type_get_type
-regress_foo_flags_type_get_type
-regress_foo_boxed_get_type
-regress_foo_boxed_new
-regress_foo_boxed_method
-regress_foo_dbus_data_get_type
-regress_foo_rectangle_add
-regress_foo_rectangle_new
-regress_foo_brect_get_type
-regress_foo_bunion_get_type
-regress_foo_test_string_array
-regress_foo_test_string_array_with_g
-regress_foo_test_array
-regress_foo_test_varargs_callback
-regress_foo_test_varargs_callback2
-regress_foo_test_varargs_callback3
-regress_foo_error_get_type
-regress_foo_error_quark
-regress_foo_some_variant
-regress_foo_skip_me
-regress_foo_foreign_struct_new
-regress_foo_foreign_struct_copy
-regress_foo_object_append_new_stack_layer
-regress_foo_interface_get_type
diff --git a/build/win32/gettype.def b/build/win32/gettype.def
deleted file mode 100644 (file)
index 401cb33..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-EXPORTS
-gettype_object_get_type
-gettype_object_new
-gettype_object_nonmeta1_get_type
-gettype_object_nonmeta2_get_type
-gettype_object_nonmeta_get_gtype
diff --git a/build/win32/gimarshallingtests.def b/build/win32/gimarshallingtests.def
deleted file mode 100644 (file)
index 3c91c79..0000000
+++ /dev/null
@@ -1,588 +0,0 @@
-EXPORTS
-gi_marshalling_tests_boolean_return_true
-gi_marshalling_tests_boolean_return_false
-gi_marshalling_tests_boolean_in_true
-gi_marshalling_tests_boolean_in_false
-gi_marshalling_tests_boolean_out_true
-gi_marshalling_tests_boolean_out_false
-gi_marshalling_tests_boolean_inout_true_false
-gi_marshalling_tests_boolean_inout_false_true
-
-gi_marshalling_tests_int8_return_max
-gi_marshalling_tests_int8_return_min
-gi_marshalling_tests_int8_in_max
-gi_marshalling_tests_int8_in_min
-gi_marshalling_tests_int8_out_max
-gi_marshalling_tests_int8_out_min
-gi_marshalling_tests_int8_inout_max_min
-gi_marshalling_tests_int8_inout_min_max
-gi_marshalling_tests_uint8_return
-gi_marshalling_tests_uint8_in
-gi_marshalling_tests_uint8_out
-gi_marshalling_tests_uint8_inout
-gi_marshalling_tests_int16_return_max
-gi_marshalling_tests_int16_return_min
-gi_marshalling_tests_int16_in_max
-gi_marshalling_tests_int16_in_min
-gi_marshalling_tests_int16_out_max
-gi_marshalling_tests_int16_out_min
-gi_marshalling_tests_int16_inout_max_min
-gi_marshalling_tests_int16_inout_min_max
-gi_marshalling_tests_uint16_return
-gi_marshalling_tests_uint16_in
-gi_marshalling_tests_uint16_out
-gi_marshalling_tests_uint16_inout
-gi_marshalling_tests_int32_return_max
-gi_marshalling_tests_int32_return_min
-
-gi_marshalling_tests_int32_in_max
-gi_marshalling_tests_int32_in_min
-
-gi_marshalling_tests_int32_out_max
-gi_marshalling_tests_int32_out_min
-
-gi_marshalling_tests_int32_inout_max_min
-gi_marshalling_tests_int32_inout_min_max
-
-
-gi_marshalling_tests_uint32_return
-
-gi_marshalling_tests_uint32_in
-
-gi_marshalling_tests_uint32_out
-gi_marshalling_tests_uint32_inout
-
-
-gi_marshalling_tests_int64_return_max
-gi_marshalling_tests_int64_return_min
-
-gi_marshalling_tests_int64_in_max
-gi_marshalling_tests_int64_in_min
-
-gi_marshalling_tests_int64_out_max
-gi_marshalling_tests_int64_out_min
-
-gi_marshalling_tests_int64_inout_max_min
-gi_marshalling_tests_int64_inout_min_max
-
-
-gi_marshalling_tests_uint64_return
-
-gi_marshalling_tests_uint64_in
-
-gi_marshalling_tests_uint64_out
-gi_marshalling_tests_uint64_inout
-
-
-gi_marshalling_tests_short_return_max
-gi_marshalling_tests_short_return_min
-
-gi_marshalling_tests_short_in_max
-gi_marshalling_tests_short_in_min
-
-gi_marshalling_tests_short_out_max
-gi_marshalling_tests_short_out_min
-
-gi_marshalling_tests_short_inout_max_min
-gi_marshalling_tests_short_inout_min_max
-
-
-gi_marshalling_tests_ushort_return
-
-gi_marshalling_tests_ushort_in
-
-gi_marshalling_tests_ushort_out
-gi_marshalling_tests_ushort_inout
-
-
-gi_marshalling_tests_int_return_max
-gi_marshalling_tests_int_return_min
-
-gi_marshalling_tests_int_in_max
-gi_marshalling_tests_int_in_min
-
-gi_marshalling_tests_int_out_max
-gi_marshalling_tests_int_out_min
-
-gi_marshalling_tests_int_inout_max_min
-gi_marshalling_tests_int_inout_min_max
-
-
-gi_marshalling_tests_uint_return
-
-gi_marshalling_tests_uint_in
-
-gi_marshalling_tests_uint_out
-gi_marshalling_tests_uint_inout
-
-
-gi_marshalling_tests_long_return_max
-gi_marshalling_tests_long_return_min
-
-gi_marshalling_tests_long_in_max
-gi_marshalling_tests_long_in_min
-
-gi_marshalling_tests_long_out_max
-gi_marshalling_tests_long_out_min
-
-gi_marshalling_tests_long_inout_max_min
-gi_marshalling_tests_long_inout_min_max
-
-
-gi_marshalling_tests_ulong_return
-
-gi_marshalling_tests_ulong_in
-
-gi_marshalling_tests_ulong_out
-gi_marshalling_tests_ulong_inout
-
-
-gi_marshalling_tests_ssize_return_max
-gi_marshalling_tests_ssize_return_min
-
-gi_marshalling_tests_ssize_in_max
-gi_marshalling_tests_ssize_in_min
-
-gi_marshalling_tests_ssize_out_max
-gi_marshalling_tests_ssize_out_min
-
-gi_marshalling_tests_ssize_inout_max_min
-gi_marshalling_tests_ssize_inout_min_max
-
-
-gi_marshalling_tests_size_return
-
-gi_marshalling_tests_size_in
-
-gi_marshalling_tests_size_out
-gi_marshalling_tests_size_inout
-gi_marshalling_tests_float_return
-
-gi_marshalling_tests_float_in
-
-gi_marshalling_tests_float_out
-
-gi_marshalling_tests_float_inout
-
-
-gi_marshalling_tests_double_return
-
-gi_marshalling_tests_double_in
-
-gi_marshalling_tests_double_out
-
-gi_marshalling_tests_double_inout
-
-gi_marshalling_tests_time_t_return
-
-gi_marshalling_tests_time_t_in
-
-gi_marshalling_tests_time_t_out
-
-gi_marshalling_tests_time_t_inout
-
-gi_marshalling_tests_gtype_return
-
-gi_marshalling_tests_gtype_string_return
-
-gi_marshalling_tests_gtype_in
-
-gi_marshalling_tests_gtype_string_in
-
-gi_marshalling_tests_gtype_out
-
-gi_marshalling_tests_gtype_string_out
-
-gi_marshalling_tests_gtype_inout
-
-gi_marshalling_tests_utf8_none_return
-gi_marshalling_tests_utf8_full_return
-
-gi_marshalling_tests_utf8_none_in
-gi_marshalling_tests_utf8_none_out
-gi_marshalling_tests_utf8_full_out
-
-gi_marshalling_tests_utf8_dangling_out
-
-gi_marshalling_tests_utf8_none_inout
-gi_marshalling_tests_utf8_full_inout
-gi_marshalling_tests_utf8_as_uint8array_in
-
-gi_marshalling_tests_filename_list_return
-
-
-gi_marshalling_tests_enum_returnv
-
-gi_marshalling_tests_enum_in
-
-gi_marshalling_tests_enum_out
-
-gi_marshalling_tests_enum_inout
-
-
-gi_marshalling_tests_genum_get_type
-gi_marshalling_tests_genum_returnv
-
-gi_marshalling_tests_genum_in
-
-gi_marshalling_tests_genum_out
-
-gi_marshalling_tests_genum_inout
-
-gi_marshalling_tests_flags_get_type
-
-gi_marshalling_tests_flags_returnv
-
-gi_marshalling_tests_flags_in
-gi_marshalling_tests_flags_in_zero
-
-gi_marshalling_tests_flags_out
-
-gi_marshalling_tests_flags_inout
-
-gi_marshalling_tests_no_type_flags_returnv
-
-gi_marshalling_tests_no_type_flags_in
-gi_marshalling_tests_no_type_flags_in_zero
-
-gi_marshalling_tests_no_type_flags_out
-
-gi_marshalling_tests_no_type_flags_inout
-
-gi_marshalling_tests_init_function
-
-gi_marshalling_tests_array_fixed_int_return
-gi_marshalling_tests_array_fixed_short_return
-
-gi_marshalling_tests_array_fixed_int_in
-gi_marshalling_tests_array_fixed_short_in
-
-gi_marshalling_tests_array_fixed_out
-
-gi_marshalling_tests_array_fixed_out_struct
-
-gi_marshalling_tests_array_fixed_inout
-
-gi_marshalling_tests_array_in_nonzero_nonlen
-
-gi_marshalling_tests_array_return
-gi_marshalling_tests_array_return_etc
-
-gi_marshalling_tests_array_in
-gi_marshalling_tests_array_in_len_before
-gi_marshalling_tests_array_in_len_zero_terminated
-gi_marshalling_tests_array_string_in
-gi_marshalling_tests_array_uint8_in
-gi_marshalling_tests_array_struct_in
-gi_marshalling_tests_array_struct_take_in
-gi_marshalling_tests_array_struct_value_in
-gi_marshalling_tests_array_simple_struct_in
-gi_marshalling_tests_multi_array_key_value_in
-gi_marshalling_tests_array_enum_in
-gi_marshalling_tests_array_in_guint64_len
-gi_marshalling_tests_array_in_guint8_len
-
-gi_marshalling_tests_array_out
-gi_marshalling_tests_array_out_etc
-
-gi_marshalling_tests_array_inout
-gi_marshalling_tests_array_inout_etc
-
-
-gi_marshalling_tests_array_zero_terminated_return
-gi_marshalling_tests_array_zero_terminated_return_null
-gi_marshalling_tests_array_zero_terminated_return_struct
-
-gi_marshalling_tests_array_zero_terminated_in
-
-gi_marshalling_tests_array_zero_terminated_out
-
-gi_marshalling_tests_array_zero_terminated_inout
-
-gi_marshalling_tests_array_gvariant_none_in
-
-gi_marshalling_tests_array_gvariant_container_in
-
-gi_marshalling_tests_array_gvariant_full_in
-
-
-gi_marshalling_tests_garray_int_none_return
-gi_marshalling_tests_garray_uint64_none_return
-gi_marshalling_tests_garray_utf8_none_return
-gi_marshalling_tests_garray_utf8_container_return
-gi_marshalling_tests_garray_utf8_full_return
-
-gi_marshalling_tests_garray_int_none_in
-gi_marshalling_tests_garray_uint64_none_in
-gi_marshalling_tests_garray_utf8_none_in
-
-gi_marshalling_tests_garray_utf8_none_out
-gi_marshalling_tests_garray_utf8_container_out
-gi_marshalling_tests_garray_utf8_full_out
-gi_marshalling_tests_garray_utf8_full_out_caller_allocated
-
-gi_marshalling_tests_garray_utf8_none_inout
-gi_marshalling_tests_garray_utf8_container_inout
-gi_marshalling_tests_garray_utf8_full_inout
-
-
-gi_marshalling_tests_gptrarray_utf8_none_return
-gi_marshalling_tests_gptrarray_utf8_container_return
-gi_marshalling_tests_gptrarray_utf8_full_return
-
-gi_marshalling_tests_gptrarray_utf8_none_in
-
-gi_marshalling_tests_gptrarray_utf8_none_out
-gi_marshalling_tests_gptrarray_utf8_container_out
-gi_marshalling_tests_gptrarray_utf8_full_out
-
-gi_marshalling_tests_gptrarray_utf8_none_inout
-gi_marshalling_tests_gptrarray_utf8_container_inout
-gi_marshalling_tests_gptrarray_utf8_full_inout
-
-
-gi_marshalling_tests_bytearray_full_return
-gi_marshalling_tests_bytearray_none_in
-
-
-gi_marshalling_tests_gstrv_return
-gi_marshalling_tests_gstrv_in
-gi_marshalling_tests_gstrv_out
-gi_marshalling_tests_gstrv_inout
-
-
-
-gi_marshalling_tests_glist_int_none_return
-gi_marshalling_tests_glist_uint32_none_return
-gi_marshalling_tests_glist_utf8_none_return
-gi_marshalling_tests_glist_utf8_container_return
-gi_marshalling_tests_glist_utf8_full_return
-
-gi_marshalling_tests_glist_int_none_in
-gi_marshalling_tests_glist_uint32_none_in
-gi_marshalling_tests_glist_utf8_none_in
-
-gi_marshalling_tests_glist_utf8_none_out
-gi_marshalling_tests_glist_utf8_container_out
-gi_marshalling_tests_glist_utf8_full_out
-
-gi_marshalling_tests_glist_utf8_none_inout
-gi_marshalling_tests_glist_utf8_container_inout
-gi_marshalling_tests_glist_utf8_full_inout
-
-
-
-gi_marshalling_tests_gslist_int_none_return
-gi_marshalling_tests_gslist_utf8_none_return
-gi_marshalling_tests_gslist_utf8_container_return
-gi_marshalling_tests_gslist_utf8_full_return
-
-gi_marshalling_tests_gslist_int_none_in
-gi_marshalling_tests_gslist_utf8_none_in
-
-gi_marshalling_tests_gslist_utf8_none_out
-gi_marshalling_tests_gslist_utf8_container_out
-gi_marshalling_tests_gslist_utf8_full_out
-
-gi_marshalling_tests_gslist_utf8_none_inout
-gi_marshalling_tests_gslist_utf8_container_inout
-gi_marshalling_tests_gslist_utf8_full_inout
-
-
-
-gi_marshalling_tests_ghashtable_int_none_return
-gi_marshalling_tests_ghashtable_utf8_none_return
-gi_marshalling_tests_ghashtable_utf8_container_return
-gi_marshalling_tests_ghashtable_utf8_full_return
-
-gi_marshalling_tests_ghashtable_int_none_in
-gi_marshalling_tests_ghashtable_utf8_none_in
-
-gi_marshalling_tests_ghashtable_utf8_none_out
-gi_marshalling_tests_ghashtable_utf8_container_out
-gi_marshalling_tests_ghashtable_utf8_full_out
-
-gi_marshalling_tests_ghashtable_utf8_none_inout
-gi_marshalling_tests_ghashtable_utf8_container_inout
-gi_marshalling_tests_ghashtable_utf8_full_inout
-
-gi_marshalling_tests_gvalue_return
-
-gi_marshalling_tests_gvalue_in
-gi_marshalling_tests_gvalue_in_with_type
-gi_marshalling_tests_gvalue_int64_in
-gi_marshalling_tests_gvalue_int64_out
-
-gi_marshalling_tests_gvalue_in_enum
-
-gi_marshalling_tests_gvalue_out
-gi_marshalling_tests_gvalue_out_caller_allocates
-
-gi_marshalling_tests_gvalue_inout
-
-gi_marshalling_tests_gvalue_flat_array
-
-gi_marshalling_tests_return_gvalue_flat_array
-
-gi_marshalling_tests_gvalue_flat_array_round_trip
-gi_marshalling_tests_gclosure_in
-gi_marshalling_tests_gclosure_return
-
-
-gi_marshalling_tests_callback_return_value_only
-
-
-gi_marshalling_tests_callback_one_out_parameter
-
-
-gi_marshalling_tests_callback_multiple_out_parameters
-
-
-gi_marshalling_tests_callback_return_value_and_one_out_parameter
-
-gi_marshalling_tests_callback_return_value_and_multiple_out_parameters
-gi_marshalling_tests_pointer_in_return
-
-
-gi_marshalling_tests_simple_struct_returnv
-
-gi_marshalling_tests_simple_struct_inv
-
-gi_marshalling_tests_simple_struct_method
-
-gi_marshalling_tests_pointer_struct_get_type
-
-gi_marshalling_tests_pointer_struct_returnv
-
-gi_marshalling_tests_pointer_struct_inv
-
-gi_marshalling_tests_boxed_struct_get_type
-
-gi_marshalling_tests_boxed_struct_new
-
-gi_marshalling_tests_boxed_struct_returnv
-
-gi_marshalling_tests_boxed_struct_inv
-
-gi_marshalling_tests_boxed_struct_out
-
-gi_marshalling_tests_boxed_struct_inout
-gi_marshalling_tests_union_get_type
-
-gi_marshalling_tests_union_returnv
-
-gi_marshalling_tests_union_inv
-
-
-gi_marshalling_tests_union_method
-gi_marshalling_tests_object_get_type
-gi_marshalling_tests_object_static_method
-gi_marshalling_tests_object_method
-gi_marshalling_tests_object_overridden_method
-gi_marshalling_tests_object_new
-
-gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_none
-gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_full
-gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_none
-gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_full
-gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_none
-gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_full
-
-gi_marshalling_tests_object_method_array_in
-gi_marshalling_tests_object_method_array_out
-gi_marshalling_tests_object_method_array_inout
-gi_marshalling_tests_object_method_array_return
-
-gi_marshalling_tests_object_method_int8_in
-gi_marshalling_tests_object_method_int8_out
-gi_marshalling_tests_object_method_int8_arg_and_out_caller
-gi_marshalling_tests_object_method_int8_arg_and_out_callee
-gi_marshalling_tests_object_method_str_arg_out_ret
-gi_marshalling_tests_object_method_with_default_implementation
-;gi_marshalling_tests_object_method_variant_array_in ;unimplemented
-
-gi_marshalling_tests_object_vfunc_return_value_only
-gi_marshalling_tests_object_vfunc_one_out_parameter
-gi_marshalling_tests_object_vfunc_multiple_out_parameters
-gi_marshalling_tests_object_vfunc_caller_allocated_out_parameter
-gi_marshalling_tests_object_vfunc_array_out_parameter
-gi_marshalling_tests_object_vfunc_return_value_and_one_out_parameter
-gi_marshalling_tests_object_vfunc_return_value_and_multiple_out_parameters
-gi_marshalling_tests_object_vfunc_meth_with_error
-
-gi_marshalling_tests_object_none_return
-gi_marshalling_tests_object_full_return
-
-gi_marshalling_tests_object_none_in
-
-
-gi_marshalling_tests_object_none_out
-gi_marshalling_tests_object_full_out
-
-gi_marshalling_tests_object_none_inout
-gi_marshalling_tests_object_full_inout
-
-gi_marshalling_tests_object_int8_in
-gi_marshalling_tests_object_int8_out
-
-gi_marshalling_tests_object_vfunc_with_callback
-gi_marshalling_tests_object_call_vfunc_with_callback
-
-
-
-
-gi_marshalling_tests_sub_object_get_type
-
-gi_marshalling_tests_sub_object_sub_method
-gi_marshalling_tests_sub_object_overwritten_method
-gi_marshalling_tests_sub_sub_object_get_type
-gi_marshalling_tests_interface_get_type
-
-gi_marshalling_tests_interface_test_int8_in
-
-gi_marshalling_tests_test_interface_test_int8_in
-
-gi_marshalling_tests_interface2_get_type
-
-
-gi_marshalling_tests_int_out_out
-gi_marshalling_tests_int_three_in_three_out
-gi_marshalling_tests_int_return_out
-
-
-gi_marshalling_tests_gerror
-gi_marshalling_tests_gerror_array_in
-gi_marshalling_tests_gerror_out
-gi_marshalling_tests_gerror_out_transfer_none
-gi_marshalling_tests_gerror_return
-
-gi_marshalling_tests_overrides_struct_get_type
-
-gi_marshalling_tests_overrides_struct_new
-
-gi_marshalling_tests_overrides_struct_method
-
-gi_marshalling_tests_overrides_struct_returnv
-gi_marshalling_tests_overrides_object_get_type
-
-gi_marshalling_tests_overrides_object_new
-
-gi_marshalling_tests_overrides_object_method
-
-gi_marshalling_tests_overrides_object_returnv
-gi_marshalling_tests_properties_object_get_type
-gi_marshalling_tests_properties_object_new
-gi_marshalling_tests_interface3_get_type
-gi_marshalling_tests_interface3_test_variant_array_in
-
-gi_marshalling_tests_param_spec_return
-gi_marshalling_tests_param_spec_out
-gi_marshalling_tests_param_spec_in_bool
-
-gi_marshalling_tests_gbytes_full_return
-gi_marshalling_tests_gbytes_none_in
-
-gi_marshalling_tests_int_two_in_utf8_two_in_with_allow_none
-gi_marshalling_tests_int_one_in_utf8_two_in_one_allows_none
-gi_marshalling_tests_array_in_utf8_two_in
-gi_marshalling_tests_array_in_utf8_two_in_out_of_order
diff --git a/build/win32/gtkfrob.def b/build/win32/gtkfrob.def
deleted file mode 100644 (file)
index 79dce04..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORTS
-gtk_frob_language_manager_get_default
diff --git a/build/win32/sletter.def b/build/win32/sletter.def
deleted file mode 100644 (file)
index a4a547e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-EXPORTS
-s_hello
-s_spawn_error_quark
-s_dbus_error_quark
diff --git a/build/win32/testinherit.def b/build/win32/testinherit.def
deleted file mode 100644 (file)
index 8881dab..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-EXPORTS
-regress_test_inherit_drawable_get_type
-regress_test_inherit_drawable_do_foo
-regress_test_inherit_drawable_get_origin
-regress_test_inherit_drawable_get_size
-regress_test_inherit_drawable_do_foo_maybe_throw
diff --git a/build/win32/utility.def b/build/win32/utility.def
deleted file mode 100644 (file)
index e0614fe..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-EXPORTS
-utility_object_get_type
-utility_object_watch_dir
-utility_dir_foreach
index f58e541..8f3b08f 100644 (file)
@@ -161,6 +161,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index 5bc6e2e..31440ff 100644 (file)
@@ -37,6 +37,7 @@ copy ..\..\..\girepository\gitypeinfo.h $(CopyDir)\include\gobject-introspection
 copy ..\..\..\girepository\gitypelib.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\gitypes.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\giunioninfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
+copy ..\..\..\girepository\giversionmacros.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\givfuncinfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner\collections
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates
@@ -48,6 +49,7 @@ copy ..\..\..\giscanner\annotationmain.py $(CopyDir)\lib\gobject-introspection\g
 copy ..\..\..\giscanner\annotationparser.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\ast.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\cachestore.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\ccompiler.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\codegen.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\docmain.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\docwriter.py $(CopyDir)\lib\gobject-introspection\giscanner
index 6d5ef27..49920bf 100644 (file)
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -91,7 +91,6 @@
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     <ClCompile Include="..\..\..\girepository\gthash.c" />
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
     <ProjectReference Include="gi-prebuild.vcxproj">
       <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
index e8564db..71d1877 100644 (file)
@@ -38,7 +38,4 @@
     <ClCompile Include="..\..\..\girepository\givfuncinfo.c"><Filter>Sources</Filter></ClCompile>
     <ClCompile Include="..\..\..\girepository\gthash.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols"><Filter>Resource Files</Filter></CustomBuild>
-  </ItemGroup>
 </Project>
index c0245dc..8e9255d 100644 (file)
@@ -17,7 +17,4 @@
   <ItemGroup>
 #include "girepository.vs10.sourcefiles.filters"
   </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols"><Filter>Resource Files</Filter></CustomBuild>
-  </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 76702e9..fd2d414 100644 (file)
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -91,7 +91,6 @@
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
 #include "girepository.vs10.sourcefiles"
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
     <ProjectReference Include="gi-prebuild.vcxproj">
       <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index b1afcd4..47c5052 100644 (file)
@@ -171,6 +171,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index 5bc6e2e..31440ff 100644 (file)
@@ -37,6 +37,7 @@ copy ..\..\..\girepository\gitypeinfo.h $(CopyDir)\include\gobject-introspection
 copy ..\..\..\girepository\gitypelib.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\gitypes.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\giunioninfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
+copy ..\..\..\girepository\giversionmacros.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\givfuncinfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner\collections
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates
@@ -48,6 +49,7 @@ copy ..\..\..\giscanner\annotationmain.py $(CopyDir)\lib\gobject-introspection\g
 copy ..\..\..\giscanner\annotationparser.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\ast.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\cachestore.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\ccompiler.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\codegen.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\docmain.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\docwriter.py $(CopyDir)\lib\gobject-introspection\giscanner
index 41c0f04..d953ea9 100644 (file)
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -91,7 +91,6 @@
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     <ClCompile Include="..\..\..\girepository\gthash.c" />
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
     <ProjectReference Include="gi-prebuild.vcxproj">
       <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
index e8564db..71d1877 100644 (file)
@@ -38,7 +38,4 @@
     <ClCompile Include="..\..\..\girepository\givfuncinfo.c"><Filter>Sources</Filter></ClCompile>
     <ClCompile Include="..\..\..\girepository\gthash.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols"><Filter>Resource Files</Filter></CustomBuild>
-  </ItemGroup>
 </Project>
index 8ed5dea..b4ce330 100644 (file)
@@ -171,6 +171,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index 5bc6e2e..31440ff 100644 (file)
@@ -37,6 +37,7 @@ copy ..\..\..\girepository\gitypeinfo.h $(CopyDir)\include\gobject-introspection
 copy ..\..\..\girepository\gitypelib.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\gitypes.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\giunioninfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
+copy ..\..\..\girepository\giversionmacros.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 copy ..\..\..\girepository\givfuncinfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner\collections
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner\doctemplates
@@ -48,6 +49,7 @@ copy ..\..\..\giscanner\annotationmain.py $(CopyDir)\lib\gobject-introspection\g
 copy ..\..\..\giscanner\annotationparser.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\ast.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\cachestore.py $(CopyDir)\lib\gobject-introspection\giscanner
+copy ..\..\..\giscanner\ccompiler.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\codegen.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\docmain.py $(CopyDir)\lib\gobject-introspection\giscanner
 copy ..\..\..\giscanner\docwriter.py $(CopyDir)\lib\gobject-introspection\giscanner
index 5cba546..dab6e1f 100644 (file)
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="gi-gen-srcs.props" />
+    <Import Project="gi-build-defines.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
@@ -91,7 +91,6 @@
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
     <Link>
       <AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>$(IntDir)girepository.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
     <ClCompile Include="..\..\..\girepository\gthash.c" />
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating $(DefDir)\girepository.def...</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGIRDef)</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(DefDir)\girepository.def;%(Outputs)</Outputs>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
     <ProjectReference Include="gi-prebuild.vcxproj">
       <Project>{2093d218-190e-4194-9421-3ba7cbf33b11}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
index e8564db..71d1877 100644 (file)
@@ -38,7 +38,4 @@
     <ClCompile Include="..\..\..\girepository\givfuncinfo.c"><Filter>Sources</Filter></ClCompile>
     <ClCompile Include="..\..\..\girepository\gthash.c"><Filter>Sources</Filter></ClCompile>
   </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\..\girepository\girepository.symbols"><Filter>Resource Files</Filter></CustomBuild>
-  </ItemGroup>
 </Project>
index 390ddba..ae5c5fb 100644 (file)
@@ -161,6 +161,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index 7484846..b7e37a7 100644 (file)
@@ -37,6 +37,7 @@ copy ..\..\..\girepository\gitypeinfo.h $(CopyDir)\include\gobject-introspection
 copy ..\..\..\girepository\gitypelib.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository&#x0D;&#x0A;
 copy ..\..\..\girepository\gitypes.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository&#x0D;&#x0A;
 copy ..\..\..\girepository\giunioninfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository&#x0D;&#x0A;
+copy ..\..\..\girepository\giversionmacros.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository&#x0D;&#x0A;
 copy ..\..\..\girepository\givfuncinfo.h $(CopyDir)\include\gobject-introspection-$(ApiVersion)\girepository&#x0D;&#x0A;
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 mkdir $(CopyDir)\lib\gobject-introspection\giscanner\collections&#x0D;&#x0A;
@@ -49,6 +50,7 @@ copy ..\..\..\giscanner\annotationmain.py $(CopyDir)\lib\gobject-introspection\g
 copy ..\..\..\giscanner\annotationparser.py $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 copy ..\..\..\giscanner\ast.py $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 copy ..\..\..\giscanner\cachestore.py $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
+copy ..\..\..\giscanner\ccompiler.py $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 copy ..\..\..\giscanner\codegen.py $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 copy ..\..\..\giscanner\docmain.py $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
 copy ..\..\..\giscanner\docwriter.py $(CopyDir)\lib\gobject-introspection\giscanner&#x0D;&#x0A;
index fa1ea0f..670498c 100644 (file)
@@ -22,7 +22,7 @@
   <Configuration
    Name="Debug|Win32"
    ConfigurationType="2"
-   InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+   InheritedPropertySheets=".\gi-build-defines.vsprops"
    CharacterSet="2"
    >
    <Tool
@@ -42,7 +42,6 @@
     AdditionalDependencies="libffi.lib"
     OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
     LinkIncremental="2"
-    ModuleDefinitionFile="$(IntDir)\girepository.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -52,7 +51,7 @@
   <Configuration
    Name="Release|Win32"
    ConfigurationType="2"
-   InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+   InheritedPropertySheets=".\gi-build-defines.vsprops"
    CharacterSet="2"
    WholeProgramOptimization="1"
    >
@@ -73,7 +72,6 @@
     AdditionalDependencies="libffi.lib"
     OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
     LinkIncremental="1"
-    ModuleDefinitionFile="$(IntDir)\girepository.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     OptimizeReferences="2"
@@ -85,7 +83,7 @@
   <Configuration
    Name="Debug|x64"
    ConfigurationType="2"
-   InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+   InheritedPropertySheets=".\gi-build-defines.vsprops"
    CharacterSet="2"
    >
    <Tool
     AdditionalDependencies="libffi.lib"
     OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
     LinkIncremental="2"
-    ModuleDefinitionFile="$(IntDir)\girepository.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
   <Configuration
    Name="Release|x64"
    ConfigurationType="2"
-   InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+   InheritedPropertySheets=".\gi-build-defines.vsprops"
    CharacterSet="2"
    WholeProgramOptimization="1"
    >
     AdditionalDependencies="libffi.lib"
     OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
     LinkIncremental="1"
-    ModuleDefinitionFile="$(IntDir)\girepository.def"
     GenerateDebugInformation="true"
     SubSystem="2"
     OptimizeReferences="2"
    Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
    UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
    >
-   <File RelativePath="..\..\..\girepository\girepository.symbols">
-    <FileConfiguration Name="Debug|Win32">
-     <Tool
-      Name="VCCustomBuildTool"
-      Description="Generating $(DefDir)\girepository.def..."
-      CommandLine="$(GenerateGIRDef)"
-      Outputs="$(DefDir)\girepository.def"
-     />
-    </FileConfiguration>
-    <FileConfiguration Name="Release|Win32">
-     <Tool
-      Name="VCCustomBuildTool"
-      Description="Generating $(DefDir)\girepository.def..."
-      CommandLine="$(GenerateGIRDef)"
-      Outputs="$(DefDir)\girepository.def"
-     />
-    </FileConfiguration>
-    <FileConfiguration Name="Debug|x64">
-     <Tool
-      Name="VCCustomBuildTool"
-      Description="Generating $(DefDir)\girepository.def..."
-      CommandLine="$(GenerateGIRDef)"
-      Outputs="$(DefDir)\girepository.def"
-     />
-    </FileConfiguration>
-    <FileConfiguration Name="Release|x64">
-     <Tool
-      Name="VCCustomBuildTool"
-      Description="Generating $(DefDir)\girepository.def..."
-      CommandLine="$(GenerateGIRDef)"
-      Outputs="$(DefDir)\girepository.def"
-     />
-    </FileConfiguration>
-   </File>
   </Filter>
  </Files>
  <Globals>
index 37f7377..b7d4063 100644 (file)
@@ -22,7 +22,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
@@ -42,7 +42,6 @@
                                AdditionalDependencies="libffi.lib"
                                OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="$(IntDir)\girepository.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -52,7 +51,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
@@ -73,7 +72,6 @@
                                AdditionalDependencies="libffi.lib"
                                OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="$(IntDir)\girepository.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
@@ -85,7 +83,7 @@
                <Configuration
                        Name="Debug|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        >
                        <Tool
                                AdditionalDependencies="libffi.lib"
                                OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="$(IntDir)\girepository.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\gi-gen-srcs.vsprops"
+                       InheritedPropertySheets=".\gi-build-defines.vsprops"
                        CharacterSet="2"
                        WholeProgramOptimization="1"
                        >
                                AdditionalDependencies="libffi.lib"
                                OutputFile="$(OutDir)\$(LibGIDllPrefix)$(ProjectName)$(LibGIDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="$(IntDir)\girepository.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
                        Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
                        UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
                        >
-                       <File RelativePath="..\..\..\girepository\girepository.symbols">
-                               <FileConfiguration Name="Debug|Win32">
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="Generating $(DefDir)\girepository.def..."
-                                               CommandLine="$(GenerateGIRDef)"
-                                               Outputs="$(DefDir)\girepository.def"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration Name="Release|Win32">
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="Generating $(DefDir)\girepository.def..."
-                                               CommandLine="$(GenerateGIRDef)"
-                                               Outputs="$(DefDir)\girepository.def"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration Name="Debug|x64">
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="Generating $(DefDir)\girepository.def..."
-                                               CommandLine="$(GenerateGIRDef)"
-                                               Outputs="$(DefDir)\girepository.def"
-                                       />
-                               </FileConfiguration>
-                               <FileConfiguration Name="Release|x64">
-                                       <Tool
-                                               Name="VCCustomBuildTool"
-                                               Description="Generating $(DefDir)\girepository.def..."
-                                               CommandLine="$(GenerateGIRDef)"
-                                               Outputs="$(DefDir)\girepository.def"
-                                       />
-                               </FileConfiguration>
-                       </File>
                </Filter>
        </Files>
        <Globals>
index d140ff1..d024984 100644 (file)
    `char[]'. */
 #undef YYTEXT_POINTER
 
+/* defines how to decorate public symbols while building */
+#undef _GI_EXTERN
+
 /* Define to empty if `const' does not conform to ANSI C. */
 #undef const
index 1b69755..c433755 100644 (file)
@@ -96,7 +96,7 @@
 #define PACKAGE_NAME "gobject-introspection"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "gojbect-introspection 1.41.4"
+#define PACKAGE_STRING "gojbect-introspection 1.41.91"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gobject-introspection"
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.41.4"
+#define PACKAGE_VERSION "1.41.91"
 
 /* Define to the platform's shared library suffix */
 #define SHLIB_SUFFIX ".dll"
 #define STDC_HEADERS 1
 
 /* Version number of package */
-#define VERSION "1.41.4"
+#define VERSION "1.41.91"
 
 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
    `char[]'. */
 #define YYTEXT_POINTER 1
 
+/* defines how to decorate public symbols while building */
+#ifdef _MSC_VER
+#define _GI_EXTERN __declspec (dllexport) extern
+#else
+#define _GI_EXTERN __attribute__((visibility("default"))) __declspec (dllexport) extern
+#endif
+
 /* Define to empty if `const' does not conform to ANSI C. */
 /* #undef const */
index 3bc66f2..f6e12cc 100644 (file)
    `char[]'. */
 #define YYTEXT_POINTER 1
 
+/* defines how to decorate public symbols while building */
+#ifdef _MSC_VER
+#define _GI_EXTERN __declspec (dllexport) extern
+#else
+#define _GI_EXTERN __attribute__((visibility("default"))) __declspec (dllexport) extern
+#endif
+
 /* Define to empty if `const' does not conform to ANSI C. */
 /* #undef const */
index ff393b5..cd761c7 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.41.4.
+# Generated by GNU Autoconf 2.69 for gobject-introspection 1.41.91.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=glib&component=introspection>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gobject-introspection'
 PACKAGE_TARNAME='gobject-introspection'
-PACKAGE_VERSION='1.41.4'
-PACKAGE_STRING='gobject-introspection 1.41.4'
+PACKAGE_VERSION='1.41.91'
+PACKAGE_STRING='gobject-introspection 1.41.91'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=glib&component=introspection'
 PACKAGE_URL=''
 
@@ -636,6 +636,7 @@ ac_subst_vars='am__EXEEXT_FALSE
 am__EXEEXT_TRUE
 LTLIBOBJS
 EXTRA_LINK_FLAGS
+GI_HIDDEN_VISIBILITY_CFLAGS
 GLIBSRC
 WITH_GLIBSRC_FALSE
 WITH_GLIBSRC_TRUE
@@ -1429,7 +1430,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.41.4 to adapt to many kinds of systems.
+\`configure' configures gobject-introspection 1.41.91 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1500,7 +1501,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gobject-introspection 1.41.4:";;
+     short | recursive ) echo "Configuration of gobject-introspection 1.41.91:";;
    esac
   cat <<\_ACEOF
 
@@ -1654,7 +1655,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gobject-introspection configure 1.41.4
+gobject-introspection configure 1.41.91
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2206,7 +2207,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.41.4, which was
+It was created by gobject-introspection $as_me 1.41.91, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3074,7 +3075,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gobject-introspection'
- VERSION='1.41.4'
+ VERSION='1.41.91'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3347,7 +3348,7 @@ AM_BACKSLASH='\'
 
 
 # Used in docs/reference/version.xml
-GI_VERSION=1.41.4
+GI_VERSION=1.41.91
 
 
 # Check for Win32
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIBSRC" >&5
 $as_echo "$GLIBSRC" >&6; }
 
+GI_HIDDEN_VISIBILITY_CFLAGS=""
+case "$host" in
+  *-*-mingw*)
+
+$as_echo "#define _GI_EXTERN __attribute__((visibility(\"default\"))) __declspec(dllexport) extern" >>confdefs.h
+
+    CFLAGS="${CFLAGS} -fvisibility=hidden"
+    ;;
+  *)
+        SAVED_CFLAGS="${CFLAGS}"
+    CFLAGS="-fvisibility=hidden"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fvisibility=hidden compiler flag" >&5
+$as_echo_n "checking for -fvisibility=hidden compiler flag... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+int main (void) { return 0; }
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+                   enable_fvisibility_hidden=yes
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                   enable_fvisibility_hidden=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    CFLAGS="${SAVED_CFLAGS}"
+
+    if test "${enable_fvisibility_hidden}" = "yes"; then :
+
+
+$as_echo "#define _GI_EXTERN __attribute__((visibility(\"default\"))) extern" >>confdefs.h
+
+      GI_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
+
+fi
+    ;;
+esac
+
+
 # Check whether --enable-Bsymbolic was given.
 if test "${enable_Bsymbolic+set}" = set; then :
   enableval=$enable_Bsymbolic;
@@ -15463,7 +15512,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.41.4, which was
+This file was extended by gobject-introspection $as_me 1.41.91, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15529,7 +15578,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.41.4
+gobject-introspection config.status 1.41.91
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index a21b31c..17924b1 100644 (file)
@@ -4,7 +4,7 @@
 dnl the gi version number
 m4_define(gi_major_version, 1)
 m4_define(gi_minor_version, 41)
-m4_define(gi_micro_version, 4)
+m4_define(gi_micro_version, 91)
 m4_define(gi_version, gi_major_version.gi_minor_version.gi_micro_version)
 
 AC_PREREQ([2.63])
@@ -292,6 +292,39 @@ AC_SUBST(GLIBSRC)
 AC_MSG_RESULT([$GLIBSRC])
 
 dnl
+dnl Check for -fvisibility=hidden to determine if we can do GNU-style
+dnl visibility attributes for symbol export control
+dnl
+GI_HIDDEN_VISIBILITY_CFLAGS=""
+case "$host" in
+  *-*-mingw*)
+    dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport)
+    AC_DEFINE([_GI_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern],
+              [defines how to decorate public symbols while building])
+    CFLAGS="${CFLAGS} -fvisibility=hidden"
+    ;;
+  *)
+    dnl on other compilers, check if we can do -fvisibility=hidden
+    SAVED_CFLAGS="${CFLAGS}"
+    CFLAGS="-fvisibility=hidden"
+    AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
+    AC_TRY_COMPILE([], [int main (void) { return 0; }],
+                   AC_MSG_RESULT(yes)
+                   enable_fvisibility_hidden=yes,
+                   AC_MSG_RESULT(no)
+                   enable_fvisibility_hidden=no)
+    CFLAGS="${SAVED_CFLAGS}"
+
+    AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [
+      AC_DEFINE([_GI_EXTERN], [__attribute__((visibility("default"))) extern],
+                [defines how to decorate public symbols while building])
+      GI_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
+    ])
+    ;;
+esac
+AC_SUBST(GI_HIDDEN_VISIBILITY_CFLAGS)
+
+dnl
 dnl Check for -Bsymbolic-functions linker flag used to avoid
 dnl intra-library PLT jumps, if available.
 dnl
index 8a62de0..23cda95 100644 (file)
@@ -221,6 +221,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index c487cbb..4d6da18 100644 (file)
@@ -168,6 +168,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index 70818ea..08594bb 100644 (file)
@@ -15,7 +15,7 @@
 <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.41.4
+      This document is for GObject Introspection version 1.41.91
 .
       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>.
index ca7079f..ba8a8ee 100644 (file)
 
 
 /**
+ * GUnixMountType:
+ * @G_UNIX_MOUNT_TYPE_UNKNOWN: Unknown UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_FLOPPY: Floppy disk UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_CDROM: CDROM UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_NFS: Network File System (NFS) UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_ZIP: ZIP UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_JAZ: JAZZ UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_MEMSTICK: Memory Stick UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_CF: Compact Flash UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_SM: Smart Media UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_SDMMC: SD/MMC UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_IPOD: iPod UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_CAMERA: Digital camera UNIX mount type.
+ * @G_UNIX_MOUNT_TYPE_HD: Hard drive UNIX mount type.
+ *
+ * Types of UNIX mounts.
+ */
+
+
+/**
  * GUnixOutputStream:close-fd:
  *
  * Whether to close the file descriptor when the stream is closed.
 
 
 /**
+ * _g_dbus_initialize:
+ *
+ * Does various one-time init things such as
+ *
+ *  - registering the G_DBUS_ERROR error domain
+ *  - parses the G_DBUS_DEBUG environment variable
+ */
+
+
+/**
+ * _g_file_attribute_value_as_string:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Converts a #GFileAttributeValue to a string for display.
+ * The returned string should be freed when no longer needed.
+ *
+ * Returns: a string from the @attr, %NULL on error, or "<invalid>"
+ * if @attr is of type %G_FILE_ATTRIBUTE_TYPE_INVALID.
+ */
+
+
+/**
+ * _g_file_attribute_value_clear:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Clears the value of @attr and sets its type to
+ * %G_FILE_ATTRIBUTE_TYPE_INVALID.
+ */
+
+
+/**
+ * _g_file_attribute_value_free:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Frees the memory used by @attr.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_boolean:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the boolean value from a file attribute value. If the value is not the
+ * right type then %FALSE will be returned.
+ *
+ * Returns: the boolean value contained within the attribute, or %FALSE.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_byte_string:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the byte string from a file attribute value. If the value is not the
+ * right type then %NULL will be returned.
+ *
+ * Returns: the byte string contained within the attribute or %NULL.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_int32:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the signed 32-bit integer from a file attribute value. If the value
+ * is not the right type then 0 will be returned.
+ *
+ * Returns: the signed 32-bit integer from the attribute, or 0.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_int64:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the signed 64-bit integer from a file attribute value. If the value
+ * is not the right type then 0 will be returned.
+ *
+ * Returns: the signed 64-bit integer from the attribute, or 0.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_object:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the GObject from a file attribute value. If the value
+ * is not the right type then %NULL will be returned.
+ *
+ * Returns: the GObject from the attribute, or %NULL.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_string:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the string from a file attribute value. If the value is not the
+ * right type then %NULL will be returned.
+ *
+ * Returns: the UTF-8 string value contained within the attribute, or %NULL.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_uint32:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the unsigned 32-bit integer from a file attribute value. If the value
+ * is not the right type then 0 will be returned.
+ *
+ * Returns: the unsigned 32-bit integer from the attribute, or 0.
+ */
+
+
+/**
+ * _g_file_attribute_value_get_uint64:
+ * @attr: a #GFileAttributeValue.
+ *
+ * Gets the unsigned 64-bit integer from a file attribute value. If the value
+ * is not the right type then 0 will be returned.
+ *
+ * Returns: the unsigned 64-bit integer from the attribute, or 0.
+ */
+
+
+/**
+ * _g_file_attribute_value_new:
+ *
+ * Creates a new file attribute.
+ *
+ * Returns: a #GFileAttributeValue.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_boolean:
+ * @attr: a #GFileAttributeValue.
+ * @value: a #gboolean to set within the type.
+ *
+ * Sets the attribute value to the given boolean value.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_byte_string:
+ * @attr: a #GFileAttributeValue.
+ * @string: a byte string to set within the type.
+ *
+ * Sets the attribute value to a given byte string.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_int32:
+ * @attr: a #GFileAttributeValue.
+ * @value: a #gint32 to set within the type.
+ *
+ * Sets the attribute value to the given signed 32-bit integer.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_int64:
+ * @attr: a #GFileAttributeValue.
+ * @value: a #gint64 to set within the type.
+ *
+ * Sets the attribute value to a given signed 64-bit integer.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_object:
+ * @attr: a #GFileAttributeValue.
+ * @obj: a #GObject.
+ *
+ * Sets the attribute to contain the value @obj.
+ * The @attr references the GObject internally.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_string:
+ * @attr: a #GFileAttributeValue.
+ * @string: a UTF-8 string to set within the type.
+ *
+ * Sets the attribute value to a given UTF-8 string.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_uint32:
+ * @attr: a #GFileAttributeValue.
+ * @value: a #guint32 to set within the type.
+ *
+ * Sets the attribute value to the given unsigned 32-bit integer.
+ */
+
+
+/**
+ * _g_file_attribute_value_set_uint64:
+ * @attr: a #GFileAttributeValue.
+ * @value: a #guint64 to set within the type.
+ *
+ * Sets the attribute value to a given unsigned 64-bit integer.
+ */
+
+
+/**
  * _g_freedesktop_dbus_call_add_match:
  * @proxy: A #_GFreedesktopDBusProxy.
  * @arg_rule: Argument to pass with the method invocation.
 
 
 /**
+ * _g_win32_mount_new:
+ * @volume_monitor: a #GVolumeMonitor.
+ * @path: a win32 path.
+ * @volume: usually NULL
+ *
+ * Returns: a #GWin32Mount for the given win32 path.
+ */
+
+
+/**
  * g_action_activate:
  * @action: a #GAction
  * @parameter: (allow-none): the parameter to the activation
 
 
 /**
+ * g_application_add_main_option:
+ * @application: the #GApplication
+ * @long_name: the long name of an option used to specify it in a commandline
+ * @short_name: the short name of an option
+ * @flags: flags from #GOptionFlags
+ * @arg: the type of the option, as a #GOptionArg
+ * @description: the description for the option in `--help` output
+ * @arg_description: (nullable): the placeholder to use for the extra argument
+ *    parsed by the option in `--help` output
+ *
+ * Add an option to be handled by @application.
+ *
+ * Calling this function is the equivalent of calling
+ * g_application_add_main_option_entries() with a single #GOptionEntry
+ * that has its arg_data member set to %NULL.
+ *
+ * The parsed arguments will be packed into a #GVariantDict which
+ * is passed to #GApplication::handle-local-options. If
+ * %G_APPLICATION_HANDLES_COMMAND_LINE is set, then it will also
+ * be sent to the primary instance. See
+ * g_application_add_main_option_entries() for more details.
+ *
+ * See #GOptionEntry for more documentation of the arguments.
+ *
+ * Since: 2.42
+ */
+
+
+/**
  * g_application_add_main_option_entries:
  * @application: a #GApplication
  * @entries: (array zero-terminated=1) (element-type GOptionEntry): a
 
 
 /**
+ * g_file_attribute_value_dup:
+ * @other: a #GFileAttributeValue to duplicate.
+ *
+ * Duplicates a file attribute.
+ *
+ * Returns: a duplicate of the @other.
+ */
+
+
+/**
+ * g_file_attribute_value_set:
+ * @attr: a #GFileAttributeValue to set the value in.
+ * @new_value: a #GFileAttributeValue to get the value from.
+ *
+ * Sets an attribute's value from another attribute.
+ */
+
+
+/**
  * g_file_copy:
  * @source: input #GFile
  * @destination: destination #GFile
 
 
 /**
+ * g_resource_new_from_table:
+ * @table: (transfer full): a GvdbTable
+ *
+ * Returns: (transfer full): a new #GResource for @table
+ */
+
+
+/**
  * g_resource_open_stream:
  * @resource: A #GResource
  * @path: A pathname inside the resource
 
 
 /**
+ * g_unix_mount_guess_type:
+ * @mount_entry: a #GUnixMount.
+ *
+ * Guesses the type of a unix mount. If the mount type cannot be
+ * determined, returns %G_UNIX_MOUNT_TYPE_UNKNOWN.
+ *
+ * Returns: a #GUnixMountType.
+ */
+
+
+/**
  * g_unix_mount_is_readonly:
  * @mount_entry: a #GUnixMount.
  *
 
 
 /**
+ * g_unix_mount_point_guess_type:
+ * @mount_point: a #GUnixMountPoint.
+ *
+ * Guesses the type of a unix mount point.
+ * If the mount type cannot be determined,
+ * returns %G_UNIX_MOUNT_TYPE_UNKNOWN.
+ *
+ * Returns: a #GUnixMountType.
+ */
+
+
+/**
  * g_unix_mount_point_is_loopback:
  * @mount_point: a #GUnixMountPoint.
  *
  */
 
 
+/**
+ * get_viewable_logical_drives:
+ *
+ * Returns the list of logical and viewable drives as defined by
+ * GetLogicalDrives() and the registry keys
+ * Software\Microsoft\Windows\CurrentVersion\Policies\Explorer under
+ * HKLM or HKCU. If neither key exists the result of
+ * GetLogicalDrives() is returned.
+ *
+ * Returns: bitmask with same meaning as returned by GetLogicalDrives()
+ */
+
+
 
 /************************************************************/
 /* THIS FILE IS GENERATED DO NOT EDIT */
index 8737137..de9db6b 100644 (file)
  * Otherwise, the variable is destroyed using @destroy and the
  * pointer is set to %NULL.
  *
- * This function is threadsafe and modifies the pointer atomically,
- * using memory barriers where needed.
- *
  * A macro is also included that allows this function to be used without
  * pointer casts.
  *
index 96506b9..57765db 100644 (file)
  * Otherwise, the reference count of the object is decreased and the
  * pointer is set to %NULL.
  *
- * This function is threadsafe and modifies the pointer atomically,
- * using memory barriers where needed.
- *
  * A macro is also included that allows this function to be used without
  * pointer casts.
  *
index 4045ab9..0cd1f79 100644 (file)
@@ -40,17 +40,41 @@ G_BEGIN_DECLS
 #define GI_IS_ARG_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_ARG)
 
+
+GI_AVAILABLE_IN_ALL
 GIDirection            g_arg_info_get_direction          (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_arg_info_is_return_value        (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_arg_info_is_optional            (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_arg_info_is_caller_allocates    (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_arg_info_may_be_null            (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_arg_info_is_skip                (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITransfer             g_arg_info_get_ownership_transfer (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIScopeType            g_arg_info_get_scope              (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint                   g_arg_info_get_closure            (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint                   g_arg_info_get_destroy            (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITypeInfo *           g_arg_info_get_type               (GIArgInfo *info);
+
+GI_AVAILABLE_IN_ALL
 void                   g_arg_info_load_type              (GIArgInfo *info,
                                                           GITypeInfo *type);
 G_END_DECLS
index a49dd50..52471df 100644 (file)
@@ -66,23 +66,49 @@ typedef struct {
 
 #define GI_TYPE_BASE_INFO      (g_base_info_gtype_get_type ())
 
+
+GI_AVAILABLE_IN_ALL
 GType                  g_base_info_gtype_get_type   (void) G_GNUC_CONST;
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *           g_base_info_ref              (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 void                   g_base_info_unref            (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 GIInfoType             g_base_info_get_type         (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 const gchar *          g_base_info_get_name         (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 const gchar *          g_base_info_get_namespace    (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_base_info_is_deprecated    (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 const gchar *          g_base_info_get_attribute    (GIBaseInfo   *info,
                                                      const gchar  *name);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_base_info_iterate_attributes (GIBaseInfo      *info,
                                                        GIAttributeIter *iterator,
                                                        char           **name,
                                                        char          **value);
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *           g_base_info_get_container    (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 GITypelib *             g_base_info_get_typelib      (GIBaseInfo   *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_base_info_equal            (GIBaseInfo   *info1,
                                                      GIBaseInfo   *info2);
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *           g_info_new                   (GIInfoType    type,
                                                     GIBaseInfo   *container,
                                                     GITypelib     *typelib,
index f273d29..065ff91 100644 (file)
@@ -43,26 +43,52 @@ G_BEGIN_DECLS
      (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_SIGNAL) || \
      (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_VFUNC))
 
+
+GI_AVAILABLE_IN_1_34
 gboolean               g_callable_info_is_method (GICallableInfo *info);
+
+GI_AVAILABLE_IN_1_34
 gboolean               g_callable_info_can_throw_gerror (GICallableInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITypeInfo *           g_callable_info_get_return_type (GICallableInfo *info);
+
+GI_AVAILABLE_IN_ALL
 void                   g_callable_info_load_return_type (GICallableInfo *info,
                                                          GITypeInfo     *type);
+
+GI_AVAILABLE_IN_ALL
 const gchar *          g_callable_info_get_return_attribute (GICallableInfo *info,
                                                              const gchar    *name);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_callable_info_iterate_return_attributes (GICallableInfo  *info,
                                                                   GIAttributeIter *iterator,
                                                                   char           **name,
                                                                   char          **value);
+
+GI_AVAILABLE_IN_ALL
 GITransfer             g_callable_info_get_caller_owns (GICallableInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_callable_info_may_return_null (GICallableInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_callable_info_skip_return     (GICallableInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint                   g_callable_info_get_n_args      (GICallableInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIArgInfo *            g_callable_info_get_arg         (GICallableInfo *info,
                                                         gint            n);
+
+GI_AVAILABLE_IN_ALL
 void                   g_callable_info_load_arg        (GICallableInfo *info,
                                                         gint            n,
                                                         GIArgInfo      *arg);
+
+GI_AVAILABLE_IN_1_34
 gboolean               g_callable_info_invoke          (GICallableInfo   *info,
                                                         gpointer          function,
                                                         const GIArgument *in_args,
@@ -73,6 +99,8 @@ gboolean               g_callable_info_invoke          (GICallableInfo   *info,
                                                         gboolean          is_method,
                                                         gboolean          throws,
                                                         GError          **error);
+
+GI_AVAILABLE_IN_1_42
 GITransfer             g_callable_info_get_instance_ownership_transfer (GICallableInfo *info);
 
 G_END_DECLS
index 2ce1dca..c958c8f 100644 (file)
@@ -40,9 +40,15 @@ G_BEGIN_DECLS
 #define GI_IS_CONSTANT_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_CONSTANT)
 
+
+GI_AVAILABLE_IN_ALL
 GITypeInfo * g_constant_info_get_type (GIConstantInfo *info);
+
+GI_AVAILABLE_IN_ALL
 void         g_constant_info_free_value(GIConstantInfo *info,
                                         GIArgument      *value);
+
+GI_AVAILABLE_IN_ALL
 gint         g_constant_info_get_value(GIConstantInfo *info,
                                       GIArgument      *value);
 G_END_DECLS
index 257e4c1..3f990e6 100644 (file)
@@ -50,15 +50,29 @@ G_BEGIN_DECLS
 #define GI_IS_VALUE_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_VALUE)
 
+
+GI_AVAILABLE_IN_ALL
 gint           g_enum_info_get_n_values      (GIEnumInfo  *info);
+
+GI_AVAILABLE_IN_ALL
 GIValueInfo  * g_enum_info_get_value         (GIEnumInfo  *info,
                                              gint         n);
+
+GI_AVAILABLE_IN_ALL
 gint              g_enum_info_get_n_methods     (GIEnumInfo  *info);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo  * g_enum_info_get_method        (GIEnumInfo  *info,
                                                 gint         n);
+
+GI_AVAILABLE_IN_ALL
 GITypeTag      g_enum_info_get_storage_type  (GIEnumInfo  *info);
+
+GI_AVAILABLE_IN_ALL
 const gchar *  g_enum_info_get_error_domain  (GIEnumInfo  *info);
 
+
+GI_AVAILABLE_IN_ALL
 gint64         g_value_info_get_value        (GIValueInfo *info);
 
 G_END_DECLS
index 56a2e22..1b95b71 100644 (file)
@@ -41,13 +41,25 @@ G_BEGIN_DECLS
 #define GI_IS_FIELD_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_FIELD)
 
+
+GI_AVAILABLE_IN_ALL
 GIFieldInfoFlags       g_field_info_get_flags      (GIFieldInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint                   g_field_info_get_size       (GIFieldInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint                   g_field_info_get_offset     (GIFieldInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITypeInfo *           g_field_info_get_type       (GIFieldInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_field_info_get_field      (GIFieldInfo     *field_info,
                                                    gpointer         mem,
                                                    GIArgument       *value);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_field_info_set_field      (GIFieldInfo     *field_info,
                                                    gpointer         mem,
                                                    const GIArgument *value);
index 7987c92..e82eec6 100644 (file)
@@ -40,9 +40,17 @@ G_BEGIN_DECLS
 #define GI_IS_FUNCTION_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_FUNCTION)
 
+
+GI_AVAILABLE_IN_ALL
 const gchar *           g_function_info_get_symbol     (GIFunctionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfoFlags     g_function_info_get_flags      (GIFunctionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIPropertyInfo *        g_function_info_get_property   (GIFunctionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIVFuncInfo *           g_function_info_get_vfunc      (GIFunctionInfo *info);
 
 /**
@@ -51,6 +59,8 @@ GIVFuncInfo *           g_function_info_get_vfunc      (GIFunctionInfo *info);
  * TODO
  */
 #define G_INVOKE_ERROR (g_invoke_error_quark ())
+
+GI_AVAILABLE_IN_ALL
 GQuark g_invoke_error_quark (void);
 
 /**
@@ -72,6 +82,8 @@ typedef enum
   G_INVOKE_ERROR_ARGUMENT_MISMATCH
 } GInvokeError;
 
+
+GI_AVAILABLE_IN_ALL
 gboolean              g_function_info_invoke         (GIFunctionInfo *info,
                                                      const GIArgument  *in_args,
                                                      int               n_in_args,
index ec33a63..c8cb815 100644 (file)
@@ -40,31 +40,63 @@ G_BEGIN_DECLS
 #define GI_IS_INTERFACE_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_INTERFACE)
 
+
+GI_AVAILABLE_IN_ALL
 gint             g_interface_info_get_n_prerequisites (GIInterfaceInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *     g_interface_info_get_prerequisite    (GIInterfaceInfo *info,
                                                       gint             n);
+
+GI_AVAILABLE_IN_ALL
 gint             g_interface_info_get_n_properties    (GIInterfaceInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIPropertyInfo * g_interface_info_get_property        (GIInterfaceInfo *info,
                                                       gint             n);
+
+GI_AVAILABLE_IN_ALL
 gint             g_interface_info_get_n_methods       (GIInterfaceInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo * g_interface_info_get_method          (GIInterfaceInfo *info,
                                                       gint             n);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo * g_interface_info_find_method         (GIInterfaceInfo *info,
                                                       const gchar     *name);
+
+GI_AVAILABLE_IN_ALL
 gint             g_interface_info_get_n_signals       (GIInterfaceInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GISignalInfo *   g_interface_info_get_signal          (GIInterfaceInfo *info,
                                                       gint             n);
+
+GI_AVAILABLE_IN_1_34
 GISignalInfo *   g_interface_info_find_signal         (GIInterfaceInfo *info,
                                                        const gchar  *name);
+
+GI_AVAILABLE_IN_ALL
 gint             g_interface_info_get_n_vfuncs        (GIInterfaceInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIVFuncInfo *    g_interface_info_get_vfunc           (GIInterfaceInfo *info,
                                                       gint             n);
+
+GI_AVAILABLE_IN_ALL
 GIVFuncInfo *    g_interface_info_find_vfunc          (GIInterfaceInfo *info,
                                                        const gchar     *name);
+
+GI_AVAILABLE_IN_ALL
 gint             g_interface_info_get_n_constants     (GIInterfaceInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIConstantInfo * g_interface_info_get_constant        (GIInterfaceInfo *info,
                                                       gint             n);
 
+
+GI_AVAILABLE_IN_ALL
 GIStructInfo *   g_interface_info_get_iface_struct    (GIInterfaceInfo *info);
 
 G_END_DECLS
index 0620677..dac95ab 100644 (file)
@@ -77,60 +77,126 @@ typedef void * (*GIObjectInfoGetValueFunction) (const GValue *value);
 #define GI_IS_OBJECT_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_OBJECT)
 
+
+GI_AVAILABLE_IN_ALL
 const gchar *     g_object_info_get_type_name   (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 const gchar *     g_object_info_get_type_init   (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean          g_object_info_get_abstract     (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean          g_object_info_get_fundamental  (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIObjectInfo *    g_object_info_get_parent       (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint              g_object_info_get_n_interfaces (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIInterfaceInfo * g_object_info_get_interface    (GIObjectInfo *info,
                                                  gint          n);
+
+GI_AVAILABLE_IN_ALL
 gint              g_object_info_get_n_fields     (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFieldInfo *     g_object_info_get_field        (GIObjectInfo *info,
                                                  gint          n);
+
+GI_AVAILABLE_IN_ALL
 gint              g_object_info_get_n_properties (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIPropertyInfo *  g_object_info_get_property     (GIObjectInfo *info,
                                                  gint          n);
+
+GI_AVAILABLE_IN_ALL
 gint              g_object_info_get_n_methods    (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo *  g_object_info_get_method       (GIObjectInfo *info,
                                                  gint          n);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo *  g_object_info_find_method      (GIObjectInfo *info,
                                                  const gchar  *name);
 
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo *  g_object_info_find_method_using_interfaces (GIObjectInfo  *info,
                                                              const gchar   *name,
                                                              GIObjectInfo **implementor);
 
+
+GI_AVAILABLE_IN_ALL
 gint              g_object_info_get_n_signals    (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GISignalInfo *    g_object_info_get_signal       (GIObjectInfo *info,
                                                  gint          n);
 
+
+GI_AVAILABLE_IN_ALL
 GISignalInfo *    g_object_info_find_signal      (GIObjectInfo *info,
                                                  const gchar  *name);
 
+
+GI_AVAILABLE_IN_ALL
 gint              g_object_info_get_n_vfuncs     (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIVFuncInfo *     g_object_info_get_vfunc        (GIObjectInfo *info,
                                                  gint          n);
+
+GI_AVAILABLE_IN_ALL
 GIVFuncInfo *     g_object_info_find_vfunc       (GIObjectInfo *info,
                                                   const gchar  *name);
+
+GI_AVAILABLE_IN_1_32
 GIVFuncInfo *     g_object_info_find_vfunc_using_interfaces (GIObjectInfo  *info,
                                                                const gchar   *name,
                                                                GIObjectInfo **implementor);
+
+GI_AVAILABLE_IN_ALL
 gint              g_object_info_get_n_constants  (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIConstantInfo *  g_object_info_get_constant     (GIObjectInfo *info,
                                                  gint          n);
+
+GI_AVAILABLE_IN_ALL
 GIStructInfo *    g_object_info_get_class_struct (GIObjectInfo *info);
 
+
+GI_AVAILABLE_IN_ALL
 const char *                 g_object_info_get_ref_function               (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIObjectInfoRefFunction      g_object_info_get_ref_function_pointer       (GIObjectInfo *info);
 
+
+GI_AVAILABLE_IN_ALL
 const char *                 g_object_info_get_unref_function             (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIObjectInfoUnrefFunction    g_object_info_get_unref_function_pointer     (GIObjectInfo *info);
 
+
+GI_AVAILABLE_IN_ALL
 const char *                 g_object_info_get_set_value_function         (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIObjectInfoSetValueFunction g_object_info_get_set_value_function_pointer (GIObjectInfo *info);
 
+
+GI_AVAILABLE_IN_ALL
 const char *                 g_object_info_get_get_value_function         (GIObjectInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIObjectInfoGetValueFunction g_object_info_get_get_value_function_pointer (GIObjectInfo *info);
 
 
index 7644664..7f9c89a 100644 (file)
@@ -40,8 +40,14 @@ G_BEGIN_DECLS
 #define GI_IS_PROPERTY_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_PROPERTY)
 
+
+GI_AVAILABLE_IN_ALL
 GParamFlags  g_property_info_get_flags (GIPropertyInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITypeInfo * g_property_info_get_type  (GIPropertyInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITransfer   g_property_info_get_ownership_transfer (GIPropertyInfo *info);
 
 G_END_DECLS
index e5db25b..efc4a77 100644 (file)
@@ -48,8 +48,13 @@ G_BEGIN_DECLS
      (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_UNION) || \
      (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_BOXED))
 
+GI_AVAILABLE_IN_ALL
 const gchar *          g_registered_type_info_get_type_name (GIRegisteredTypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 const gchar *          g_registered_type_info_get_type_init (GIRegisteredTypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GType                  g_registered_type_info_get_g_type    (GIRegisteredTypeInfo *info);
 
 G_END_DECLS
index dea250d..dcc34ce 100644 (file)
@@ -45,6 +45,7 @@
 #include <gitypelib.h>
 #include <gitypes.h>
 #include <giunioninfo.h>
+#include <giversionmacros.h>
 #include <givfuncinfo.h>
 
 G_BEGIN_DECLS
@@ -92,57 +93,99 @@ typedef enum
 
 /* Repository */
 
+GI_AVAILABLE_IN_ALL
 GType         g_irepository_get_type      (void) G_GNUC_CONST;
+
+GI_AVAILABLE_IN_ALL
 GIRepository *g_irepository_get_default   (void);
+
+GI_AVAILABLE_IN_ALL
 void          g_irepository_prepend_search_path (const char *directory);
+
+GI_AVAILABLE_IN_1_36
 void          g_irepository_prepend_library_path (const char *directory);
+
+GI_AVAILABLE_IN_ALL
 GSList *      g_irepository_get_search_path     (void);
+
+GI_AVAILABLE_IN_ALL
 const char *  g_irepository_load_typelib  (GIRepository *repository,
                                           GITypelib     *typelib,
                                           GIRepositoryLoadFlags flags,
                                           GError      **error);
+
+GI_AVAILABLE_IN_ALL
 gboolean      g_irepository_is_registered (GIRepository *repository,
                                           const gchar  *namespace_,
                                           const gchar  *version);
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *  g_irepository_find_by_name  (GIRepository *repository,
                                           const gchar  *namespace_,
                                           const gchar  *name);
+
+GI_AVAILABLE_IN_ALL
 GList *       g_irepository_enumerate_versions (GIRepository *repository,
                                                const gchar  *namespace_);
+
+GI_AVAILABLE_IN_ALL
 GITypelib *    g_irepository_require       (GIRepository *repository,
                                           const gchar  *namespace_,
                                           const gchar  *version,
                                           GIRepositoryLoadFlags flags,
                                           GError      **error);
+
+GI_AVAILABLE_IN_ALL
 GITypelib *    g_irepository_require_private (GIRepository  *repository,
                                             const gchar   *typelib_dir,
                                             const gchar   *namespace_,
                                             const gchar   *version,
                                             GIRepositoryLoadFlags flags,
                                             GError       **error);
+
+GI_AVAILABLE_IN_ALL
 gchar      ** g_irepository_get_dependencies (GIRepository *repository,
                                              const gchar  *namespace_);
+
+GI_AVAILABLE_IN_ALL
 gchar      ** g_irepository_get_loaded_namespaces (GIRepository *repository);
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *  g_irepository_find_by_gtype (GIRepository *repository,
                                           GType         gtype);
+
+GI_AVAILABLE_IN_ALL
 gint          g_irepository_get_n_infos   (GIRepository *repository,
                                           const gchar  *namespace_);
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *  g_irepository_get_info      (GIRepository *repository,
                                           const gchar  *namespace_,
                                           gint          index);
+
+GI_AVAILABLE_IN_ALL
 GIEnumInfo *  g_irepository_find_by_error_domain (GIRepository *repository,
                                                  GQuark        domain);
+
+GI_AVAILABLE_IN_ALL
 const gchar * g_irepository_get_typelib_path   (GIRepository *repository,
                                                const gchar  *namespace_);
+GI_AVAILABLE_IN_ALL
 const gchar * g_irepository_get_shared_library (GIRepository *repository,
                                                const gchar  *namespace_);
+GI_AVAILABLE_IN_ALL
 const gchar * g_irepository_get_c_prefix (GIRepository *repository,
                                           const gchar  *namespace_);
+GI_AVAILABLE_IN_ALL
 const gchar * g_irepository_get_version (GIRepository *repository,
                                         const gchar  *namespace_);
 
+
+GI_AVAILABLE_IN_ALL
 GOptionGroup * g_irepository_get_option_group (void);
 
+
+GI_AVAILABLE_IN_ALL
 gboolean       g_irepository_dump  (const char *arg, GError **error);
 
 /**
@@ -175,11 +218,13 @@ typedef enum
  */
 #define G_IREPOSITORY_ERROR (g_irepository_error_quark ())
 
+GI_AVAILABLE_IN_ALL
 GQuark g_irepository_error_quark (void);
 
 
 /* Global utility functions */
 
+GI_AVAILABLE_IN_ALL
 void gi_cclosure_marshal_generic (GClosure       *closure,
                                   GValue         *return_gvalue,
                                   guint           n_param_values,
diff --git a/girepository/girepository.symbols b/girepository/girepository.symbols
deleted file mode 100644 (file)
index 48fb0d9..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-g_arg_info_get_closure
-g_arg_info_get_destroy
-g_arg_info_get_direction
-g_arg_info_get_ownership_transfer
-g_arg_info_get_scope
-g_arg_info_get_type
-g_arg_info_is_caller_allocates
-g_arg_info_is_optional
-g_arg_info_is_return_value
-g_arg_info_is_skip
-g_arg_info_load_type
-g_arg_info_may_be_null
-g_base_info_equal
-g_base_info_get_attribute
-g_base_info_get_container
-g_base_info_get_name
-g_base_info_get_namespace
-g_base_info_get_type
-g_base_info_get_typelib
-g_base_info_gtype_get_type
-g_base_info_is_deprecated
-g_base_info_iterate_attributes
-g_base_info_ref
-g_base_info_unref
-g_info_new
-g_callable_info_can_throw_gerror
-g_callable_info_get_arg
-g_callable_info_get_caller_owns
-g_callable_info_get_instance_ownership_transfer
-g_callable_info_get_n_args
-g_callable_info_get_return_attribute
-g_callable_info_get_return_type
-g_callable_info_invoke
-g_callable_info_iterate_return_attributes
-g_callable_info_is_method
-g_callable_info_load_arg
-g_callable_info_load_return_type
-g_callable_info_may_return_null
-g_callable_info_skip_return
-g_constant_info_free_value
-g_constant_info_get_type
-g_constant_info_get_value
-g_enum_info_get_error_domain
-g_enum_info_get_method
-g_enum_info_get_n_methods
-g_enum_info_get_n_values
-g_enum_info_get_storage_type
-g_enum_info_get_value
-g_value_info_get_value
-g_field_info_get_field
-g_field_info_get_flags
-g_field_info_get_offset
-g_field_info_get_size
-g_field_info_get_type
-g_field_info_set_field
-g_function_info_get_flags
-g_function_info_get_property
-g_function_info_get_symbol
-g_function_info_get_vfunc
-g_function_info_invoke
-g_invoke_error_quark
-g_interface_info_find_method
-g_interface_info_find_signal
-g_interface_info_find_vfunc
-g_interface_info_get_constant
-g_interface_info_get_iface_struct
-g_interface_info_get_method
-g_interface_info_get_n_constants
-g_interface_info_get_n_methods
-g_interface_info_get_n_prerequisites
-g_interface_info_get_n_properties
-g_interface_info_get_prerequisite
-g_interface_info_get_n_signals
-g_interface_info_get_n_vfuncs
-g_interface_info_get_property
-g_interface_info_get_signal
-g_interface_info_get_vfunc
-g_object_info_find_method
-g_object_info_find_method_using_interfaces
-g_object_info_find_signal
-g_object_info_find_vfunc
-g_object_info_find_vfunc_using_interfaces
-g_object_info_get_abstract
-g_object_info_get_class_struct
-g_object_info_get_constant
-g_object_info_get_field
-g_object_info_get_fundamental
-g_object_info_get_get_value_function
-g_object_info_get_get_value_function_pointer
-g_object_info_get_interface
-g_object_info_get_method
-g_object_info_get_n_constants
-g_object_info_get_n_fields
-g_object_info_get_n_interfaces
-g_object_info_get_n_methods
-g_object_info_get_n_properties
-g_object_info_get_n_signals
-g_object_info_get_n_vfuncs
-g_object_info_get_parent
-g_object_info_get_property
-g_object_info_get_ref_function
-g_object_info_get_ref_function_pointer
-g_object_info_get_set_value_function
-g_object_info_get_set_value_function_pointer
-g_object_info_get_signal
-g_object_info_get_type_init
-g_object_info_get_type_name
-g_object_info_get_unref_function
-g_object_info_get_unref_function_pointer
-g_object_info_get_vfunc
-g_property_info_get_flags
-g_property_info_get_ownership_transfer
-g_property_info_get_type
-g_registered_type_info_get_g_type
-g_registered_type_info_get_type_init
-g_registered_type_info_get_type_name
-gi_cclosure_marshal_generic
-g_irepository_dump
-g_irepository_enumerate_versions
-g_irepository_error_quark
-g_irepository_find_by_error_domain
-g_irepository_find_by_gtype
-g_irepository_find_by_name
-g_irepository_get_c_prefix
-g_irepository_get_default
-g_irepository_get_dependencies
-g_irepository_get_info
-g_irepository_get_loaded_namespaces
-g_irepository_get_n_infos
-g_irepository_get_option_group
-g_irepository_get_search_path
-g_irepository_get_shared_library
-g_irepository_get_type
-g_irepository_get_typelib_path
-g_irepository_get_version
-g_irepository_is_registered
-g_irepository_load_typelib
-g_irepository_prepend_library_path
-g_irepository_prepend_search_path
-g_irepository_require
-g_irepository_require_private
-gi_type_info_extract_ffi_return_value
-gi_type_tag_get_ffi_type
-g_callable_info_free_closure
-g_callable_info_prepare_closure
-g_function_info_prep_invoker
-g_function_invoker_destroy
-g_function_invoker_new_for_address
-g_type_info_get_ffi_type
-g_signal_info_get_class_closure
-g_signal_info_get_flags
-g_signal_info_true_stops_emit
-g_struct_info_find_method
-g_struct_info_get_alignment
-g_struct_info_get_field
-g_struct_info_get_method
-g_struct_info_get_n_fields
-g_struct_info_get_n_methods
-g_struct_info_get_size
-g_struct_info_is_foreign
-g_struct_info_is_gtype_struct
-g_type_info_is_pointer
-g_type_info_is_zero_terminated
-g_type_info_get_array_fixed_size
-g_type_info_get_array_length
-g_type_info_get_array_type
-g_type_info_get_interface
-g_type_info_get_param_type
-g_type_info_get_tag
-g_type_tag_to_string
-g_info_type_to_string
-g_typelib_check_sanity
-g_typelib_error_quark
-g_typelib_free
-g_typelib_get_namespace
-g_typelib_new_from_const_memory
-g_typelib_new_from_mapped_file
-g_typelib_new_from_memory
-g_typelib_symbol
-g_typelib_validate
-g_union_info_find_method
-g_union_info_get_alignment
-g_union_info_get_discriminator
-g_union_info_get_discriminator_offset
-g_union_info_get_discriminator_type
-g_union_info_get_field
-g_union_info_get_method
-g_union_info_get_n_fields
-g_union_info_get_n_methods
-g_union_info_get_size
-g_union_info_is_discriminated
-g_vfunc_info_get_address
-g_vfunc_info_get_invoker
-g_vfunc_info_get_flags
-g_vfunc_info_get_offset
-g_vfunc_info_get_signal
-g_vfunc_info_invoke
index 50cabb1..d8a5736 100644 (file)
@@ -64,30 +64,38 @@ struct _GIFunctionInvoker {
  */
 typedef GIArgument GIFFIReturnValue;
 
+GI_AVAILABLE_IN_ALL
 ffi_type *    gi_type_tag_get_ffi_type            (GITypeTag type_tag, gboolean is_pointer);
 
+GI_AVAILABLE_IN_ALL
 ffi_type *    g_type_info_get_ffi_type            (GITypeInfo           *info);
 
+GI_AVAILABLE_IN_1_32
 void          gi_type_info_extract_ffi_return_value (GITypeInfo                  *return_info,
                                                      GIFFIReturnValue            *ffi_value,
                                                      GIArgument                  *arg);
 
+GI_AVAILABLE_IN_ALL
 gboolean      g_function_info_prep_invoker        (GIFunctionInfo       *info,
                                                    GIFunctionInvoker    *invoker,
                                                    GError              **error);
 
+GI_AVAILABLE_IN_1_32
 gboolean      g_function_invoker_new_for_address  (gpointer              addr,
                                                    GICallableInfo       *info,
                                                    GIFunctionInvoker    *invoker,
                                                    GError              **error);
 
+GI_AVAILABLE_IN_ALL
 void          g_function_invoker_destroy          (GIFunctionInvoker    *invoker);
 
 
+GI_AVAILABLE_IN_ALL
 ffi_closure * g_callable_info_prepare_closure     (GICallableInfo       *callable_info,
                                                    ffi_cif              *cif,
                                                    GIFFIClosureCallback  callback,
                                                    gpointer              user_data);
+GI_AVAILABLE_IN_ALL
 void          g_callable_info_free_closure        (GICallableInfo       *callable_info,
                                                    ffi_closure          *closure);
 
index 8502610..047aeb6 100644 (file)
@@ -41,8 +41,14 @@ G_BEGIN_DECLS
 #define GI_IS_SIGNAL_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_SIGNAL)
 
+
+GI_AVAILABLE_IN_ALL
 GSignalFlags  g_signal_info_get_flags         (GISignalInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIVFuncInfo * g_signal_info_get_class_closure (GISignalInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean      g_signal_info_true_stops_emit   (GISignalInfo *info);
 
 G_END_DECLS
index 4300534..2651311 100644 (file)
@@ -40,17 +40,35 @@ G_BEGIN_DECLS
 #define GI_IS_STRUCT_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_STRUCT)
 
+
+GI_AVAILABLE_IN_ALL
 gint             g_struct_info_get_n_fields    (GIStructInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFieldInfo *    g_struct_info_get_field       (GIStructInfo *info,
                                                gint          n);
+
+GI_AVAILABLE_IN_ALL
 gint             g_struct_info_get_n_methods   (GIStructInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo * g_struct_info_get_method      (GIStructInfo *info,
                                                gint          n);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo * g_struct_info_find_method     (GIStructInfo *info,
                                                const gchar  *name);
+
+GI_AVAILABLE_IN_ALL
 gsize            g_struct_info_get_size        (GIStructInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gsize            g_struct_info_get_alignment   (GIStructInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean         g_struct_info_is_gtype_struct (GIStructInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean         g_struct_info_is_foreign      (GIStructInfo *info);
 
 G_END_DECLS
index 7591799..4d5679c 100644 (file)
@@ -48,17 +48,36 @@ G_BEGIN_DECLS
  */
 #define G_TYPE_TAG_IS_BASIC(tag) (tag < GI_TYPE_TAG_ARRAY || tag == GI_TYPE_TAG_UNICHAR)
 
+GI_AVAILABLE_IN_ALL
 const gchar*           g_type_tag_to_string            (GITypeTag   type);
+
+GI_AVAILABLE_IN_ALL
 const gchar*           g_info_type_to_string           (GIInfoType  type);
 
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_type_info_is_pointer          (GITypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITypeTag              g_type_info_get_tag             (GITypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITypeInfo *           g_type_info_get_param_type      (GITypeInfo *info,
                                                        gint       n);
+
+GI_AVAILABLE_IN_ALL
 GIBaseInfo *           g_type_info_get_interface       (GITypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint                   g_type_info_get_array_length    (GITypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint                   g_type_info_get_array_fixed_size(GITypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gboolean               g_type_info_is_zero_terminated  (GITypeInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIArrayType            g_type_info_get_array_type      (GITypeInfo *info);
 
 G_END_DECLS
index 5ccb617..e367cfa 100644 (file)
@@ -1217,6 +1217,8 @@ DirEntry *g_typelib_get_dir_entry_by_error_domain (GITypelib *typelib,
 gboolean  g_typelib_matches_gtype_name_prefix (GITypelib *typelib,
                                               const gchar *gtype_name);
 
+
+GI_AVAILABLE_IN_ALL
 void      g_typelib_check_sanity (void);
 
 /**
@@ -1259,6 +1261,8 @@ typedef enum
 
 GQuark g_typelib_error_quark (void);
 
+
+GI_AVAILABLE_IN_ALL
 gboolean g_typelib_validate (GITypelib  *typelib,
                             GError    **error);
 
index 0726bf1..7d0a665 100644 (file)
@@ -29,6 +29,8 @@
 
 #include <glib.h>
 
+#include <giversionmacros.h>
+
 G_BEGIN_DECLS
 
 /**
@@ -46,19 +48,29 @@ G_BEGIN_DECLS
  */
 typedef struct _GITypelib GITypelib;
 
+GI_AVAILABLE_IN_ALL
 GITypelib *    g_typelib_new_from_memory       (guint8        *memory,
                                                gsize          len,
                                               GError       **error);
+
+GI_AVAILABLE_IN_ALL
 GITypelib *    g_typelib_new_from_const_memory (const guint8  *memory,
                                                gsize          len,
                                               GError       **error);
+
+GI_AVAILABLE_IN_ALL
 GITypelib *    g_typelib_new_from_mapped_file  (GMappedFile   *mfile,
                                               GError       **error);
+
+GI_AVAILABLE_IN_ALL
 void          g_typelib_free                  (GITypelib     *typelib);
 
+GI_AVAILABLE_IN_ALL
 gboolean      g_typelib_symbol                (GITypelib     *typelib,
                                                const gchar  *symbol_name,
                                                gpointer     *symbol);
+
+GI_AVAILABLE_IN_ALL
 const gchar * g_typelib_get_namespace         (GITypelib     *typelib);
 
 
index cb8cb34..b96ae0b 100644 (file)
@@ -27,6 +27,8 @@
 #error "Only <girepository.h> can be included directly."
 #endif
 
+#include <giversionmacros.h>
+
 G_BEGIN_DECLS
 
 #ifndef __GTK_DOC_IGNORE__
index 5359346..62951b8 100644 (file)
@@ -40,20 +40,41 @@ G_BEGIN_DECLS
 #define GI_IS_UNION_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_UNION)
 
+GI_AVAILABLE_IN_ALL
 gint             g_union_info_get_n_fields             (GIUnionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFieldInfo *    g_union_info_get_field                (GIUnionInfo *info,
                                                        gint         n);
+
+GI_AVAILABLE_IN_ALL
 gint             g_union_info_get_n_methods            (GIUnionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo * g_union_info_get_method               (GIUnionInfo *info,
                                                        gint         n);
+
+GI_AVAILABLE_IN_ALL
 gboolean         g_union_info_is_discriminated         (GIUnionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint             g_union_info_get_discriminator_offset (GIUnionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GITypeInfo *     g_union_info_get_discriminator_type   (GIUnionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIConstantInfo * g_union_info_get_discriminator        (GIUnionInfo *info,
                                                        gint         n);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo * g_union_info_find_method              (GIUnionInfo *info,
                                                        const gchar *name);
+
+GI_AVAILABLE_IN_ALL
 gsize            g_union_info_get_size                 (GIUnionInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gsize            g_union_info_get_alignment            (GIUnionInfo *info);
 
 G_END_DECLS
diff --git a/girepository/giversionmacros.h b/girepository/giversionmacros.h
new file mode 100644 (file)
index 0000000..15c8847
--- /dev/null
@@ -0,0 +1,128 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
+ * GObject introspection: Versioning and export macros
+ *
+ * Copyright (C) 2014 Chun-wei Fan
+ *
+ * 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 <glib.h>
+
+#ifndef __GIVERSIONMACROS_H__
+#define __GIVERSIONMACROS_H__
+
+#if !defined (__GIREPOSITORY_H_INSIDE__) && !defined (GI_COMPILATION)
+#error "Only <girepository.h> can be included directly."
+#endif
+
+#ifndef _GI_EXTERN
+#define _GI_EXTERN extern
+#endif
+
+#define GI_AVAILABLE_IN_ALL _GI_EXTERN
+
+/* XXX: Every new stable minor release should add a set of macros here
+ *
+ * We are using the GLib versions here as the G-I minor versions
+ * need to be in sync with the GLib minor versions.  Api's added
+ * at or before 1.30 are marked as GI_AVAILABLE_IN_ALL
+ */
+
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_32
+# define GI_DEPRECATED_IN_1_32                GLIB_DEPRECATED
+# define GI_DEPRECATED_IN_1_32_FOR(f)         GLIB_DEPRECATED_FOR(f)
+#else
+# define GI_DEPRECATED_IN_1_32                _GI_EXTERN
+# define GI_DEPRECATED_IN_1_32_FOR(f)         _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_32
+# define GI_AVAILABLE_IN_1_32                 GLIB_UNAVAILABLE(2, 32)
+#else
+# define GI_AVAILABLE_IN_1_32                 _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_34
+# define GI_DEPRECATED_IN_1_34                GLIB_DEPRECATED
+# define GI_DEPRECATED_IN_1_34_FOR(f)         GLIB_DEPRECATED_FOR(f)
+#else
+# define GI_DEPRECATED_IN_1_34                _GI_EXTERN
+# define GI_DEPRECATED_IN_1_34_FOR(f)         _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_34
+# define GI_AVAILABLE_IN_1_34                 GLIB_UNAVAILABLE(2, 34)
+#else
+# define GI_AVAILABLE_IN_1_34                 _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_36
+# define GI_DEPRECATED_IN_1_36                GLIB_DEPRECATED
+# define GI_DEPRECATED_IN_1_36_FOR(f)         GLIB_DEPRECATED_FOR(f)
+#else
+# define GI_DEPRECATED_IN_1_36                _GI_EXTERN
+# define GI_DEPRECATED_IN_1_36_FOR(f)         _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_36
+# define GI_AVAILABLE_IN_1_36                 GLIB_UNAVAILABLE(2, 36)
+#else
+# define GI_AVAILABLE_IN_1_36                 _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_38
+# define GI_DEPRECATED_IN_1_38                GLIB_DEPRECATED
+# define GI_DEPRECATED_IN_1_38_FOR(f)         GLIB_DEPRECATED_FOR(f)
+#else
+# define GI_DEPRECATED_IN_1_38                _GI_EXTERN
+# define GI_DEPRECATED_IN_1_38_FOR(f)         _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+# define GI_AVAILABLE_IN_1_38                 GLIB_UNAVAILABLE(2, 38)
+#else
+# define GI_AVAILABLE_IN_1_38                 _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_40
+# define GI_DEPRECATED_IN_1_40                GLIB_DEPRECATED
+# define GI_DEPRECATED_IN_1_40_FOR(f)         GLIB_DEPRECATED_FOR(f)
+#else
+# define GI_DEPRECATED_IN_1_40                _GI_EXTERN
+# define GI_DEPRECATED_IN_1_40_FOR(f)         _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_40
+# define GI_AVAILABLE_IN_1_40                 GLIB_UNAVAILABLE(2, 40)
+#else
+# define GI_AVAILABLE_IN_1_40                 _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_42
+# define GI_DEPRECATED_IN_1_42                GLIB_DEPRECATED
+# define GI_DEPRECATED_IN_1_42_FOR(f)         GLIB_DEPRECATED_FOR(f)
+#else
+# define GI_DEPRECATED_IN_1_42                _GI_EXTERN
+# define GI_DEPRECATED_IN_1_42_FOR(f)         _GI_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_42
+# define GI_AVAILABLE_IN_1_42                 GLIB_UNAVAILABLE(2, 42)
+#else
+# define GI_AVAILABLE_IN_1_42                 _GI_EXTERN
+#endif
+
+#endif /* __GIVERSIONMACROS_H__ */
\ No newline at end of file
index f22517a..7258806 100644 (file)
@@ -40,13 +40,24 @@ G_BEGIN_DECLS
 #define GI_IS_VFUNC_INFO(info) \
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_VFUNC)
 
+GI_AVAILABLE_IN_ALL
 GIVFuncInfoFlags  g_vfunc_info_get_flags   (GIVFuncInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gint              g_vfunc_info_get_offset  (GIVFuncInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GISignalInfo *    g_vfunc_info_get_signal  (GIVFuncInfo *info);
+
+GI_AVAILABLE_IN_ALL
 GIFunctionInfo *  g_vfunc_info_get_invoker (GIVFuncInfo *info);
+
+GI_AVAILABLE_IN_ALL
 gpointer          g_vfunc_info_get_address (GIVFuncInfo *info,
                                             GType        implementor_gtype,
                                             GError     **error);
+
+GI_AVAILABLE_IN_ALL
 gboolean          g_vfunc_info_invoke      (GIVFuncInfo      *info,
                                             GType             implementor,
                                             const GIArgument *in_args,
index bcac078..0dbf1fb 100644 (file)
@@ -45,10 +45,7 @@ def _get_versionhash():
 def _get_cachedir():
     if 'GI_SCANNER_DISABLE_CACHE' in os.environ:
         return None
-    if os.name == 'nt' and 'MSYSTEM' not in os.environ:
-        homedir = os.environ.get('HOMEPATH')
-    else:
-        homedir = os.environ.get('HOME')
+    homedir = os.path.expanduser('~')
     if homedir is None:
         return None
     if not os.path.exists(homedir):
diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py
new file mode 100644 (file)
index 0000000..63110a2
--- /dev/null
@@ -0,0 +1,202 @@
+# -*- Mode: Python -*-
+# GObject-Introspection - a framework for introspecting GObject libraries
+# Copyright (C) 2014  Chun-wei Fan
+#
+# 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.
+#
+
+import os
+import subprocess
+import sys
+import distutils
+
+from distutils.msvccompiler import MSVCCompiler
+from distutils.cygwinccompiler import Mingw32CCompiler
+from distutils.sysconfig import customize_compiler
+
+from . import utils
+
+
+class CCompiler(object):
+
+    compiler_cmd = ''
+    compiler = None
+    _cflags_no_deprecation_warnings = ''
+
+    def __init__(self, compiler_name=None):
+        pass
+
+    def get_internal_link_flags(self,
+                                args,
+                                libtool,
+                                libraries,
+                                libpaths,
+                                pkgconfig_msvc_flags,
+                                ns,
+                                ns_version):
+        # An "internal" link is where the library to be introspected
+        # is being built in the current directory.
+
+        # Search the current directory first
+        # (This flag is not supported nor needed for Visual C++)
+        if pkgconfig_msvc_flags == '':
+            args.append('-L.')
+
+        # https://bugzilla.gnome.org/show_bug.cgi?id=625195
+        if not libtool:
+            # We don't have -Wl,-rpath for Visual C++, and that's
+            # going to cause a problem.  Instead, link to internal
+            # libraries by deducing the .lib file name using
+            # the namespace name and version
+            if pkgconfig_msvc_flags:
+                if ns_version:
+                    args.append(str.lower(ns) +
+                                '-' +
+                                ns_version + '.lib')
+                else:
+                    args.append(str.lower(ns) + '.lib')
+            else:
+                args.append('-Wl,-rpath=.')
+
+        # Ensure libraries are always linked as we are going to use ldd to work
+        # out their names later
+        if not libtool and pkgconfig_msvc_flags == '':
+            args.append('-Wl,--no-as-needed')
+
+        for library in libraries:
+            # Visual C++: We have the needed .lib files now, and we need to link
+            # to .lib files, not the .dll as the --library option specifies the
+            # .dll(s) the .gir file refers to
+            if pkgconfig_msvc_flags == '':
+                if library.endswith(".la"):  # explicitly specified libtool library
+                    args.append(library)
+                else:
+                    args.append('-l' + library)
+
+        for library_path in libpaths:
+            # Not used/needed on Visual C++, and -Wl,-rpath options
+            # will cause grief
+            if pkgconfig_msvc_flags == '':
+                args.append('-L' + library_path)
+                if os.path.isabs(library_path):
+                    if libtool:
+                        args.append('-rpath')
+                        args.append(library_path)
+                    else:
+                        args.append('-Wl,-rpath=' + library_path)
+
+    def get_external_link_flags(self, args, libraries, pkgconfig_msvc_flags):
+        # An "external" link is where the library to be introspected
+        # is installed on the system; this case is used for the scanning
+        # of GLib in gobject-introspection itself.
+
+        for library in libraries:
+            # The --library option on Windows pass in the .dll file(s) the
+            # .gir files refer to, so don't link to them on Visual C++
+            if pkgconfig_msvc_flags == '':
+                if library.endswith(".la"):  # explicitly specified libtool library
+                    args.append(library)
+                else:
+                    args.append('-l' + library)
+
+    def resolve_windows_libs(self, libraries, options):
+        args = []
+        compiler_cmd = os.environ.get('CC', 'cc')
+        libsearch = []
+
+        # When we are using Visual C++...
+        if 'cl.exe' in compiler_cmd or 'cl' in compiler_cmd:
+            # The search path of the .lib's on Visual C++
+            # is dependent on the LIB environmental variable,
+            # so just query for that
+            is_msvc = True
+            libpath = os.environ.get('LIB')
+            libsearch = libpath.split(';')
+
+            # Use the dumpbin utility that's included in
+            # every Visual C++ installation to find out which
+            # DLL the library gets linked to
+            args.append('dumpbin.exe')
+            args.append('-symbols')
+
+        # When we are not using Visual C++ (i.e. we are using GCC)...
+        else:
+            is_msvc = False
+            libtool = get_libtool_command(options)
+            if libtool:
+                args.append(which(os.environ.get('SHELL', 'sh.exe')))
+                args.extend(libtool)
+                args.append('--mode=execute')
+            # FIXME: it could have prefix (i686-w64-mingw32-dlltool.exe)
+            args.extend(['dlltool.exe', '--identify'])
+            proc = subprocess.Popen([compiler_cmd, '-print-search-dirs'],
+                                    stdout=subprocess.PIPE)
+            o, e = proc.communicate()
+            for line in o.splitlines():
+                if line.startswith('libraries: '):
+                    libsearch = line[len('libraries: '):].split(';')
+
+        shlibs = []
+        not_resolved = []
+        for lib in libraries:
+            found = False
+            candidates = [
+                'lib%s.dll.a' % lib,
+                'lib%s.a' % lib,
+                '%s.dll.a' % lib,
+                '%s.a' % lib,
+                '%s.lib' % lib,
+            ]
+            for l in libsearch:
+                if found:
+                    break
+                if l.startswith('='):
+                    l = l[1:]
+                for c in candidates:
+                    if found:
+                        break
+                    implib = os.path.join(l, c)
+                    if os.path.exists(implib):
+                        proc = subprocess.Popen(args + [implib],
+                                                stdout=subprocess.PIPE)
+                        o, e = proc.communicate()
+                        for line in o.splitlines():
+                            if is_msvc:
+                                # On Visual Studio, dumpbin -symbols something.lib gives the
+                                # filename of DLL without the '.dll' extension that something.lib
+                                # links to, in the line that contains
+                                # __IMPORT_DESCRIPTOR_<dll_filename_that_something.lib_links_to>
+
+                                if '__IMPORT_DESCRIPTOR_' in line:
+                                    line_tokens = line.split()
+                                    for item in line_tokens:
+                                        if item.startswith('__IMPORT_DESCRIPTOR_'):
+                                            shlibs.append(item[20:] + '.dll')
+                                            found = True
+                                            break
+                                if found:
+                                    break
+                            else:
+                                shlibs.append(line)
+                                found = True
+                                break
+            if not found:
+                not_resolved.append(lib)
+        if len(not_resolved) > 0:
+            raise SystemExit(
+                "ERROR: can't resolve libraries to shared libraries: " +
+                ", ".join(not_resolved))
+        return shlibs
index ce11961..45a09fc 100644 (file)
@@ -27,6 +27,7 @@ import tempfile
 
 from .gdumpparser import IntrospectionBinary
 from . import utils
+from .ccompiler import CCompiler
 
 # bugzilla.gnome.org/558436
 # Compile a binary program which is then linked to a library
@@ -287,10 +288,23 @@ class DumpCompiler(object):
                     "Could not find object file: %s" % (source, ))
         args.extend(list(sources))
 
+        cc = CCompiler()
+
         if not self._options.external_library:
-            self._add_link_internal_args(args, libtool)
+            cc.get_internal_link_flags(args,
+                                       libtool,
+                                       self._options.libraries,
+                                       self._options.library_paths,
+                                       self._pkgconfig_msvc_flags,
+                                       self._options.namespace_name,
+                                       self._options.namespace_version)
+            args.extend(self._run_pkgconfig('--libs'))
+
         else:
-            self._add_link_external_args(args)
+            args.extend(self._run_pkgconfig('--libs'))
+            cc.get_external_link_flags(args,
+                                       self._options.libraries,
+                                       self._pkgconfig_msvc_flags)
 
         if not self._options.quiet:
             print "g-ir-scanner: link: %s" % (
@@ -317,75 +331,6 @@ class DumpCompiler(object):
             if msys:
                 os.remove(tf_name)
 
-    def _add_link_internal_args(self, args, libtool):
-        # An "internal" link is where the library to be introspected
-        # is being built in the current directory.
-
-        # Search the current directory first
-        # (This flag is not supported nor needed for Visual C++)
-        if self._pkgconfig_msvc_flags == '':
-            args.append('-L.')
-
-        # https://bugzilla.gnome.org/show_bug.cgi?id=625195
-        if not libtool:
-            # We don't have -Wl,-rpath for Visual C++, and that's
-            # going to cause a problem.  Instead, link to internal
-            # libraries by deducing the .lib file name using
-            # the namespace name and version
-            if self._pkgconfig_msvc_flags:
-                if self._options.namespace_version:
-                    args.append(str.lower(self._options.namespace_name) +
-                                '-' +
-                                self._options.namespace_version + '.lib')
-                else:
-                    args.append(str.lower(self._options.namespace_name) + '.lib')
-            else:
-                args.append('-Wl,-rpath=.')
-
-        # Ensure libraries are always linked as we are going to use ldd to work
-        # out their names later
-        if not libtool and self._pkgconfig_msvc_flags == '':
-            args.append('-Wl,--no-as-needed')
-
-        for library in self._options.libraries:
-            # Visual C++: We have the needed .lib files now, and we need to link
-            # to .lib files, not the .dll as the --library option specifies the
-            # .dll(s) the .gir file refers to
-            if self._pkgconfig_msvc_flags == '':
-                if library.endswith(".la"):  # explicitly specified libtool library
-                    args.append(library)
-                else:
-                    args.append('-l' + library)
-
-        for library_path in self._options.library_paths:
-            # Not used/needed on Visual C++, and -Wl,-rpath options
-            # will cause grief
-            if self._pkgconfig_msvc_flags == '':
-                args.append('-L' + library_path)
-                if os.path.isabs(library_path):
-                    if libtool:
-                        args.append('-rpath')
-                        args.append(library_path)
-                    else:
-                        args.append('-Wl,-rpath=' + library_path)
-
-        args.extend(self._run_pkgconfig('--libs'))
-
-    def _add_link_external_args(self, args):
-        # An "external" link is where the library to be introspected
-        # is installed on the system; this case is used for the scanning
-        # of GLib in gobject-introspection itself.
-
-        args.extend(self._run_pkgconfig('--libs'))
-        for library in self._options.libraries:
-            # The --library option on Windows pass in the .dll file(s) the
-            # .gir files refer to, so don't link to them on Visual C++
-            if self._pkgconfig_msvc_flags == '':
-                if library.endswith(".la"):  # explicitly specified libtool library
-                    args.append(library)
-                else:
-                    args.append('-l' + library)
-
 
 def compile_introspection_binary(options, get_type_functions,
                                  error_quark_functions):
index 941154d..e35e9d5 100644 (file)
@@ -55,7 +55,7 @@ extern int yylex (GISourceScanner *scanner);
 static int yywrap (void);
 static void parse_comment (GISourceScanner *scanner);
 static void parse_trigraph (GISourceScanner *scanner);
-static void process_linemarks (GISourceScanner *scanner);
+static void process_linemarks (GISourceScanner *scanner, gboolean has_line);
 static int check_identifier (GISourceScanner *scanner, const char *);
 static int parse_ignored_macro (void);
 static void print_error (GISourceScanner *scanner);
@@ -98,7 +98,8 @@ stringtext                            ([^\\\"])|(\\.)
 "#endif".*"\n"                         { return ENDIF_COND; }
 "#pragma ".*"\n"                       { /* Ignore pragma. */ }
 
-"# "[0-9]+" ".*"\n"                    { process_linemarks(scanner); }
+"# "[0-9]+" ".*"\n"                    { process_linemarks(scanner, FALSE); }
+"#line "[0-9]+" ".*"\n"                        { process_linemarks(scanner, TRUE); }
 "#"                                    { }
 "{"                                    { return '{'; }
 "<%"                                   { return '{'; }
@@ -171,6 +172,14 @@ stringtext                         ([^\\\"])|(\\.)
 "__volatile"                           { return VOLATILE; }
 "__volatile__"                         { return VOLATILE; }
 "_Bool"                                        { return BOOL; }
+"typedef char __static_assert_t".*"\n" { /* Ignore */ }
+"__cdecl"                              { /* Ignore */ }
+"__declspec(deprecated(".*"))"         { /* Ignore */ }
+"__declspec"[\t ]*"("[a-z\t ]+")"      { /* Ignore */ }
+"__stdcall"                            { /* ignore */ }
+"__w64"                                        { /* ignore */ }
+"__int64"                              { return INT; }
+
 
 "G_GINT64_CONSTANT"                    { return INTL_CONST; }
 "G_GUINT64_CONSTANT"                   { return INTUL_CONST; }
@@ -389,13 +398,17 @@ _realpath (const char *path)
  **/
 
 static void
-process_linemarks (GISourceScanner *scanner)
+process_linemarks (GISourceScanner *scanner, gboolean has_line)
 {
        char escaped_filename[1025];
        char *filename;
-        char *real;
+       char *real;
+
+       if (has_line)
+               sscanf(yytext, "#line %d \"%1024[^\"]\"", &lineno, escaped_filename);
+       else
+               sscanf(yytext, "# %d \"%1024[^\"]\"", &lineno, escaped_filename);
 
-       sscanf(yytext, "# %d \"%1024[^\"]\"", &lineno, escaped_filename);
        filename = g_strcompress (escaped_filename);
 
         real = _realpath (filename);
index ac34030..c3706f2 100755 (executable)
@@ -199,7 +199,8 @@ match the namespace prefix.""")
     group = get_preprocessor_option_group(parser)
     parser.add_option_group(group)
 
-    if os.environ.get('MSYSTEM') == 'MINGW32':
+    msystemenv = os.environ.get('MSYSTEM')
+    if msystemenv and msystemenv.startswith('MINGW'):
         group = get_windows_option_group(parser)
         parser.add_option_group(group)
 
index ec974fa..1ad75ee 100644 (file)
@@ -25,6 +25,7 @@ import re
 import subprocess
 
 from .utils import get_libtool_command, extract_libtool_shlib, which
+from .ccompiler import CCompiler
 
 
 # For .la files, the situation is easy.
@@ -89,92 +90,8 @@ def _resolve_non_libtool(options, binary, libraries):
             binary.args[0] = old_argdir
 
     if os.name == 'nt':
-        args = []
-        compiler_cmd = os.environ.get('CC', 'cc')
-        libsearch = []
-
-        # When we are using Visual C++...
-        if 'cl.exe' in compiler_cmd or 'cl' in compiler_cmd:
-            # The search path of the .lib's on Visual C++
-            # is dependent on the LIB environmental variable,
-            # so just query for that
-            is_msvc = True
-            libpath = os.environ.get('LIB')
-            libsearch = libpath.split(';')
-
-            # Use the dumpbin utility that's included in
-            # every Visual C++ installation to find out which
-            # DLL the library gets linked to
-            args.append('dumpbin.exe')
-            args.append('-symbols')
-
-        # When we are not using Visual C++ (i.e. we are using GCC)...
-        else:
-            is_msvc = False
-            libtool = get_libtool_command(options)
-            if libtool:
-                args.append(which(os.environ.get('SHELL', 'sh.exe')))
-                args.extend(libtool)
-                args.append('--mode=execute')
-            # FIXME: it could have prefix (i686-w64-mingw32-dlltool.exe)
-            args.extend(['dlltool.exe', '--identify'])
-            proc = subprocess.Popen([compiler_cmd, '-print-search-dirs'],
-                                    stdout=subprocess.PIPE)
-            o, e = proc.communicate()
-            for line in o.splitlines():
-                if line.startswith('libraries: '):
-                    libsearch = line[len('libraries: '):].split(';')
-
-        shlibs = []
-        not_resolved = []
-        for lib in libraries:
-            found = False
-            candidates = [
-                'lib%s.dll.a' % lib,
-                'lib%s.a' % lib,
-                '%s.dll.a' % lib,
-                '%s.a' % lib,
-                '%s.lib' % lib,
-            ]
-            for l in libsearch:
-                if found:
-                    break
-                if l.startswith('='):
-                    l = l[1:]
-                for c in candidates:
-                    if found:
-                        break
-                    implib = os.path.join(l, c)
-                    if os.path.exists(implib):
-                        proc = subprocess.Popen(args + [implib],
-                                                stdout=subprocess.PIPE)
-                        o, e = proc.communicate()
-                        for line in o.splitlines():
-                            if is_msvc:
-                                # On Visual Studio, dumpbin -symbols something.lib gives the
-                                # filename of DLL without the '.dll' extension that something.lib
-                                # links to, in the line that contains
-                                # __IMPORT_DESCRIPTOR_<dll_filename_that_something.lib_links_to>
-
-                                if '__IMPORT_DESCRIPTOR_' in line:
-                                    line_tokens = line.split()
-                                    for item in line_tokens:
-                                        if item.startswith('__IMPORT_DESCRIPTOR_'):
-                                            shlibs.append(item[20:] + '.dll')
-                                            found = True
-                                            break
-                                if found:
-                                    break
-                            else:
-                                shlibs.append(line)
-                                found = True
-                                break
-            if not found:
-                not_resolved.append(lib)
-        if len(not_resolved) > 0:
-            raise SystemExit(
-                "ERROR: can't resolve libraries to shared libraries: " +
-                ", ".join(not_resolved))
+        cc = CCompiler()
+        shlibs = cc.resolve_windows_libs(libraries, options)
 
     else:
         args = []
index 3724ecf..ff10b4e 100644 (file)
@@ -21,4 +21,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.41.4
+Version: 1.41.91
index 8217656..25809d1 100644 (file)
@@ -20,4 +20,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.41.4
+Version: 1.41.91
index 8d3aa7e..a5de7ac 100644 (file)
@@ -360,8 +360,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 147
-#define YY_END_OF_BUFFER 148
+#define YY_NUM_RULES 155
+#define YY_END_OF_BUFFER 156
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -369,112 +369,117 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_acclist[917] =
+static yyconst flex_int16_t yy_acclist[971] =
     {   0,
-      148,  146,  147,    3,  146,  147,    1,  147,   44,  146,
-      147,  146,  147,   19,  146,  147,   39,  146,  147,   41,
-      146,  147,  146,  147,   28,  146,  147,   29,  146,  147,
-       37,  146,  147,   35,  146,  147,   68,  146,  147,   36,
-      146,  147,   34,  146,  147,   38,  146,  147,  139,  146,
-      147,  139,  146,  147,   31,  146,  147,   30,  146,  147,
-       46,  146,  147,   45,  146,  147,   47,  146,  147,   33,
-      146,  147,   96,  136,  146,  147,   96,  136,  146,  147,
-       96,  136,  146,  147,   96,  136,  146,  147,   96,  136,
-      146,  147,   24,  146,  147,  146,  147,   26,  146,  147,
-
-       40,  146,  147,   96,  136,  146,  147,   96,  136,  146,
-      147,   96,  136,  146,  147,   96,  136,  146,  147,   96,
-      136,  146,  147,   96,  136,  146,  147,   96,  136,  146,
-      147,   96,  136,  146,  147,   96,  136,  146,  147,   96,
-      136,  146,  147,   96,  136,  146,  147,   96,  136,  146,
-      147,   96,  136,  146,  147,   96,  136,  146,  147,   96,
-      136,  146,  147,   96,  136,  146,  147,   20,  146,  147,
-       42,  146,  147,   22,  146,  147,   43,  146,  147,    3,
-        1,   61,  144,   52,   23,   64,   54,  142,   50,   66,
-       48,   67,   49,   69,  140,    4,    6,   51,  140,  138,
-
-      139,  139,  139,  139,   27,   21,   25,   56,   62,   60,
-       63,   57,   96,  136,   96,  136,   96,  136,   96,  136,
-        2,   53,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  105,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      113,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   55,   65,   32,  140,
-        6,  138,  139,  138,  139,  141,  139,  139,  139,  137,
-
-       58,   59,   96,  136,   96,  136,  145,  143,   96,  136,
-       96,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,   97,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  111,  136,   96,  136,   96,  136,   96,  115,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-
-      136,   96,  136,   96,  136,  140,  138,  139,  138,  139,
-      138,  139,  141,  139,  137,  137,   96,  136,   96,  136,
-       96,  136,   92,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,   98,  136,   96,  136,   96,  100,  136,   96,
-      101,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  107,  136,   96,  108,  136,   96,  136,   96,  136,
-       96,  136,   96,  112,  136,   96,  136,   96,  120,  136,
-       96,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-
-       96,  136,   96,  136,   96,  136,   96,  136,   94,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  133,  136,
-       96,  136,   96,  136,   18,   13,  138,  139,  137,  137,
-      137,   93,   96,  136,   96,  136,   96,  136,   89,   96,
-      136,   96,  136,   73,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   96,  136,   96,   99,
-      136,   96,  102,  136,   96,  136,   96,  136,   96,  136,
-       96,  136,   95,   96,  136,   96,  110,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   96,  124,  136,   96,
-
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  131,  136,   96,  136,   96,  136,   96,  135,
-      136,   15,  137,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  106,  136,
-       96,  109,  136,   96,  114,  136,   96,  136,   96,  136,
-       96,  123,  136,   96,  125,  136,   96,  126,  136,   96,
-      127,  136,   96,  128,  136,   96,  129,  136,   96,  136,
-       96,  136,   96,  136,   14,   16,    5,   96,  136,   96,
-
-      136,   96,  136,   74,   96,  136,   96,  136,   77,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   96,  104,  136,   96,  136,   96,  136,   96,  130,
-      136,   96,  136,   96,  136,   12,   96,  136,   96,  136,
-       96,  136,   96,  136,   96,  136,   80,   96,  136,   96,
-      119,  136,   96,  136,   96,  136,   96,  136,   86,   96,
-      136,   96,  136,   96,  136,   96,  103,  136,   96,  121,
-      136,   96,  122,  136,   96,  132,  136,   96,  134,  136,
-        8,   11,   17,   96,  136,   96,  136,   82,   96,  136,
-
-       96,  136,   96,  136,   96,  136,   96,  136,   81,   96,
-      136,   96,  136,   96,  136,   96,  118,  136,   96,  136,
-        7,    8,   96,  136,   96,  136,   96,  136,   96,  136,
-       79,   96,  136,   96,  117,  136,   84,   96,  136,   83,
-       96,  136,   96,  136,   87,   96,  136,   96,  136,   96,
-      136,   76,   96,  136,   96,  136,   96,  136,   96,  116,
-      136,   96,  136,   96,  136,   96,  136,   96,  136,   96,
-      136,   85,   96,  136,   88,   96,  136,   96,  136,   96,
-      136,   75,   96,  136,   78,   96,  136,   96,  136,   96,
-      136,   70,   96,  136,   96,  136,   96,  136,   96,  136,
-
-       71,   90,   96,  136,   96,  136,   91,   96,  136,   72,
-        9,    9,   12,   10,   10,   11
+      156,  154,  155,    3,  154,  155,    1,  155,   45,  154,
+      155,  154,  155,   20,  154,  155,   40,  154,  155,   42,
+      154,  155,  154,  155,   29,  154,  155,   30,  154,  155,
+       38,  154,  155,   36,  154,  155,   69,  154,  155,   37,
+      154,  155,   35,  154,  155,   39,  154,  155,  147,  154,
+      155,  147,  154,  155,   32,  154,  155,   31,  154,  155,
+       47,  154,  155,   46,  154,  155,   48,  154,  155,   34,
+      154,  155,  104,  144,  154,  155,  104,  144,  154,  155,
+      104,  144,  154,  155,  104,  144,  154,  155,  104,  144,
+      154,  155,   25,  154,  155,  154,  155,   27,  154,  155,
+
+       41,  154,  155,  104,  144,  154,  155,  104,  144,  154,
+      155,  104,  144,  154,  155,  104,  144,  154,  155,  104,
+      144,  154,  155,  104,  144,  154,  155,  104,  144,  154,
+      155,  104,  144,  154,  155,  104,  144,  154,  155,  104,
+      144,  154,  155,  104,  144,  154,  155,  104,  144,  154,
+      155,  104,  144,  154,  155,  104,  144,  154,  155,  104,
+      144,  154,  155,  104,  144,  154,  155,   21,  154,  155,
+       43,  154,  155,   23,  154,  155,   44,  154,  155,    3,
+        1,   62,  152,   53,   24,   65,   55,  150,   51,   67,
+       49,   68,   50,   70,  148,    4,    6,   52,  148,  146,
+
+      147,  147,  147,  147,   28,   22,   26,   57,   63,   61,
+       64,   58,  104,  144,  104,  144,  104,  144,  104,  144,
+        2,   54,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  113,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      121,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,   56,   66,   33,  148,
+        6,  146,  147,  146,  147,  149,  147,  147,  147,  145,
+
+       59,   60,  104,  144,  104,  144,  153,  151,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  105,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  119,  144,  104,  144,
+      104,  144,  104,  123,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  148,
+      146,  147,  146,  147,  146,  147,  149,  147,  145,  145,
+      104,  144,  104,  144,  104,  144,  100,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  106,  144,  104,  144,  104,  108,
+      144,  104,  109,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  115,  144,  104,  116,  144,  104,  144,
+      104,  144,  104,  144,  104,  120,  144,  104,  144,  104,
+
+      128,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      102,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      141,  144,  104,  144,  104,  144,   18,   13,  146,  147,
+      145,  145,  145,  101,  104,  144,  104,  144,  104,  144,
+       90,  104,  144,  104,  144,   74,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,   96,  104,  144,  104,
+      107,  144,  104,  110,  144,  104,  144,  104,  144,  104,
+
+      144,  104,  144,  103,  104,  144,  104,  118,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,  104,  132,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  139,  144,  104,  144,  104,  144,  104,
+      143,  144,   15,  145,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  114,  144,  104,
+      117,  144,  104,  122,  144,  104,  144,  104,  144,  104,
+
+      131,  144,  104,  133,  144,  104,  134,  144,  104,  135,
+      144,  104,  136,  144,  104,  137,  144,  104,  144,  104,
+      144,  104,  144,   14,   16,    5,  104,  144,  104,  144,
+      104,  144,   75,  104,  144,  104,  144,   92,  104,  144,
+       78,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,   97,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  112,  144,  104,  144,  104,  144,  104,  138,  144,
+      104,  144,  104,  144,   12,  104,  144,  104,  144,  104,
+      144,  104,  144,  104,  144,  104,  144,   81,  104,  144,
+
+      104,  127,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,   87,  104,  144,  104,  144,  104,  144,  104,  111,
+      144,  104,  129,  144,  104,  130,  144,  104,  140,  144,
+      104,  142,  144,    8,   11,   19,   17,  104,  144,  104,
+      144,   83,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,  104,  144,   82,  104,  144,  104,  144,  104,
+      144,   95,  104,  144,  104,  126,  144,  104,  144,    7,
+        8,  104,  144,  104,  144,  104,  144,  104,  144,  104,
+      144,   80,  104,  144,  104,  125,  144,   85,  104,  144,
+       84,  104,  144,  104,  144,   88,  104,  144,  104,  144,
+
+      104,  144,   77,  104,  144,  104,  144,  104,  144,  104,
+      124,  144,  104,  144,  104,  144,  104,  144,  104,  144,
+      104,  144,   86,  104,  144,   89,  104,  144,  104,  144,
+      104,  144,   76,  104,  144,   94,   79,  104,  144,  104,
+      144,  104,  144,   71,  104,  144,  104,  144,  104,  144,
+      104,  144,   72,   98,  104,  144,  104,  144,   99,  104,
+      144,   73,    9,    9,   12,   10,   10,   11,   93,   91
     } ;
 
-static yyconst flex_int16_t yy_accept[599] =
+static yyconst flex_int16_t yy_accept[675] =
     {   0,
         1,    1,    1,    2,    4,    7,    9,   12,   14,   17,
        20,   23,   25,   28,   31,   34,   37,   40,   43,   46,
@@ -482,66 +487,74 @@ static yyconst flex_int16_t yy_accept[599] =
        81,   85,   89,   93,   96,   98,  101,  104,  108,  112,
       116,  120,  124,  128,  132,  136,  140,  144,  148,  152,
       156,  160,  164,  168,  171,  174,  177,  180,  181,  182,
-      183,  183,  184,  184,  184,  184,  184,  184,  184,  185,
-      186,  187,  188,  188,  189,  189,  190,  191,  192,  193,
-      194,  195,  195,  196,  197,  198,  199,  200,  202,  203,
-      203,  204,  205,  205,  206,  207,  208,  209,  210,  211,
-
-      212,  213,  215,  217,  219,  219,  219,  221,  222,  223,
-      225,  227,  229,  231,  233,  235,  237,  239,  241,  243,
-      246,  248,  250,  252,  254,  256,  258,  260,  263,  265,
-      267,  269,  271,  273,  275,  277,  279,  281,  283,  285,
-      287,  288,  289,  289,  289,  289,  289,  289,  289,  290,
-      290,  291,  291,  291,  292,  294,  296,  296,  297,  298,
-      299,  300,  301,  302,  303,  305,  307,  307,  308,  308,
-      308,  309,  309,  311,  313,  315,  317,  319,  321,  323,
-      325,  327,  329,  331,  333,  335,  338,  340,  342,  344,
-      346,  348,  350,  352,  354,  356,  358,  360,  362,  365,
-
-      367,  369,  372,  374,  376,  378,  380,  382,  384,  386,
-      388,  390,  392,  394,  396,  398,  400,  402,  404,  406,
-      406,  406,  406,  406,  406,  406,  406,  406,  406,  406,
-      407,  407,  409,  411,  413,  414,  415,  416,  417,  419,
-      421,  423,  426,  428,  430,  432,  434,  436,  438,  440,
-      442,  444,  446,  448,  450,  452,  455,  457,  460,  463,
-      465,  467,  469,  471,  474,  477,  479,  481,  483,  486,
-      488,  491,  493,  495,  497,  499,  501,  503,  505,  507,
-      509,  512,  514,  516,  518,  521,  523,  525,  525,  526,
-      526,  526,  526,  526,  526,  527,  527,  527,  527,  527,
-
-      529,  530,  531,  532,  535,  537,  539,  542,  544,  547,
-      549,  551,  553,  555,  557,  559,  561,  563,  565,  567,
-      569,  572,  575,  577,  579,  581,  583,  586,  589,  591,
-      593,  595,  597,  600,  602,  604,  606,  608,  610,  612,
-      615,  617,  619,  622,  622,  622,  622,  623,  623,  623,
-      623,  623,  623,  623,  624,  626,  628,  630,  630,  632,
-      634,  636,  638,  640,  642,  644,  646,  648,  650,  652,
-      654,  656,  658,  661,  664,  667,  669,  671,  674,  677,
-      680,  683,  686,  689,  691,  693,  695,  695,  695,  696,
-      696,  697,  697,  697,  697,  697,  698,  700,  702,  704,
-
-      704,  707,  709,  712,  714,  716,  718,  720,  722,  724,
-      726,  728,  730,  732,  735,  737,  739,  742,  744,  746,
-      746,  746,  746,  746,  747,  747,  747,  747,  747,  749,
-      751,  753,  753,  753,  755,  757,  760,  763,  765,  767,
-      769,  772,  774,  776,  779,  782,  785,  788,  791,  792,
-      792,  792,  792,  792,  792,  793,  793,  793,  794,  796,
-      798,  801,  801,  801,  801,  803,  805,  807,  809,  812,
-      814,  816,  819,  821,  822,  823,  823,  823,  823,  823,
-      825,  827,  827,  827,  827,  829,  831,  834,  837,  840,
-      843,  845,  848,  848,  848,  848,  848,  850,  852,  852,
-
-      852,  852,  855,  857,  859,  862,  864,  864,  864,  864,
-      864,  866,  868,  868,  868,  868,  870,  872,  875,  878,
-      878,  878,  878,  878,  880,  882,  882,  882,  882,  885,
-      888,  888,  888,  888,  888,  890,  892,  893,  893,  893,
-      893,  893,  893,  893,  895,  897,  897,  897,  897,  897,
-      897,  897,  899,  901,  901,  902,  902,  902,  902,  902,
-      905,  907,  907,  907,  907,  907,  907,  910,  910,  910,
-      910,  910,  910,  910,  910,  910,  910,  910,  911,  911,
-      911,  911,  911,  911,  911,  912,  912,  912,  914,  914,
-      914,  914,  914,  915,  915,  915,  917,  917
-
+      183,  183,  184,  184,  184,  184,  184,  184,  184,  184,
+      185,  186,  187,  188,  188,  189,  189,  190,  191,  192,
+      193,  194,  195,  195,  196,  197,  198,  199,  200,  202,
+      203,  203,  204,  205,  205,  206,  207,  208,  209,  210,
+
+      211,  212,  213,  215,  217,  219,  219,  219,  221,  222,
+      223,  225,  227,  229,  231,  233,  235,  237,  239,  241,
+      243,  246,  248,  250,  252,  254,  256,  258,  260,  263,
+      265,  267,  269,  271,  273,  275,  277,  279,  281,  283,
+      285,  287,  288,  289,  289,  289,  289,  289,  289,  289,
+      289,  290,  290,  291,  291,  291,  292,  294,  296,  296,
+      297,  298,  299,  300,  301,  302,  303,  305,  307,  307,
+      308,  308,  308,  309,  309,  311,  313,  315,  317,  319,
+      321,  323,  325,  327,  329,  331,  333,  335,  337,  339,
+      342,  344,  346,  348,  350,  352,  354,  356,  358,  360,
+
+      362,  364,  366,  369,  371,  373,  376,  378,  380,  382,
+      384,  386,  388,  390,  392,  394,  396,  398,  400,  402,
+      404,  406,  408,  410,  410,  410,  410,  410,  410,  410,
+      410,  410,  410,  410,  410,  411,  411,  413,  415,  417,
+      418,  419,  420,  421,  423,  425,  427,  430,  432,  434,
+      436,  438,  440,  442,  444,  446,  448,  450,  452,  454,
+      456,  458,  460,  462,  464,  467,  469,  472,  475,  477,
+      479,  481,  483,  486,  489,  491,  493,  495,  498,  500,
+      503,  505,  507,  509,  511,  513,  515,  517,  519,  521,
+      524,  526,  528,  530,  533,  535,  537,  537,  538,  538,
+
+      538,  538,  538,  538,  539,  539,  539,  539,  539,  539,
+      541,  542,  543,  544,  547,  549,  551,  554,  556,  559,
+      561,  563,  565,  567,  569,  571,  573,  575,  577,  579,
+      581,  583,  585,  587,  590,  593,  596,  598,  600,  602,
+      604,  607,  610,  612,  614,  616,  618,  621,  623,  625,
+      627,  629,  631,  633,  636,  638,  640,  643,  643,  643,
+      643,  644,  644,  644,  644,  644,  644,  644,  644,  645,
+      647,  649,  651,  651,  653,  655,  657,  659,  661,  663,
+      665,  667,  669,  671,  673,  675,  677,  679,  681,  683,
+      685,  687,  690,  693,  696,  698,  700,  703,  706,  709,
+
+      712,  715,  718,  720,  722,  724,  724,  724,  725,  725,
+      726,  726,  726,  726,  726,  726,  727,  729,  731,  733,
+      733,  736,  738,  741,  744,  746,  748,  750,  752,  755,
+      757,  759,  761,  763,  765,  767,  769,  771,  774,  776,
+      778,  781,  783,  785,  785,  785,  785,  785,  786,  786,
+      786,  786,  786,  786,  788,  790,  792,  792,  792,  794,
+      796,  798,  801,  804,  806,  808,  810,  812,  815,  817,
+      819,  822,  825,  828,  828,  831,  834,  835,  835,  835,
+      835,  835,  835,  836,  836,  836,  837,  837,  838,  840,
+      842,  845,  845,  845,  845,  847,  849,  851,  853,  855,
+
+      858,  860,  862,  865,  868,  870,  870,  871,  872,  872,
+      872,  872,  872,  874,  876,  876,  876,  876,  878,  880,
+      882,  885,  888,  891,  894,  896,  899,  899,  899,  899,
+      899,  899,  901,  903,  903,  903,  903,  906,  906,  906,
+      908,  910,  913,  915,  915,  915,  915,  915,  915,  917,
+      919,  919,  919,  919,  921,  921,  921,  921,  923,  926,
+      929,  929,  929,  929,  929,  929,  931,  933,  933,  933,
+      933,  936,  937,  937,  940,  940,  940,  940,  940,  940,
+      942,  944,  945,  945,  945,  945,  945,  945,  945,  945,
+      945,  947,  949,  949,  949,  949,  949,  949,  949,  949,
+
+      949,  951,  953,  953,  954,  954,  954,  954,  954,  954,
+      954,  957,  959,  959,  959,  959,  959,  959,  959,  959,
+      962,  962,  962,  962,  962,  962,  962,  962,  962,  962,
+      962,  962,  962,  962,  962,  963,  963,  963,  963,  963,
+      963,  963,  963,  963,  963,  963,  964,  964,  964,  966,
+      966,  966,  966,  966,  966,  966,  967,  967,  967,  969,
+      969,  969,  969,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  971,  971
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -557,9 +570,9 @@ static yyconst flex_int32_t yy_ec[256] =
        41,   46,   47,   48,   49,   41,   41,   50,   41,   41,
        51,   52,   53,   54,   55,    1,   56,   57,   58,   59,
 
-       60,   61,   62,   63,   64,   41,   65,   66,   67,   68,
-       69,   70,   41,   71,   72,   73,   74,   75,   76,   77,
-       78,   79,   80,   81,   82,   83,    1,    1,    1,    1,
+       60,   61,   62,   63,   64,   65,   66,   67,   68,   69,
+       70,   71,   65,   72,   73,   74,   75,   76,   77,   78,
+       79,   80,   81,   82,   83,   84,    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,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -576,164 +589,182 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[84] =
+static yyconst flex_int32_t yy_meta[85] =
     {   0,
         1,    2,    3,    1,    2,    1,    1,    1,    1,    1,
-        1,    4,    1,    1,    1,    2,    1,    1,    1,    5,
-        5,    5,    5,    5,    5,    5,    5,    1,    1,    1,
-        2,    1,    1,    6,    6,    6,    6,    6,    6,    7,
-        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        1,    1,    1,    1,    7,    6,    6,    6,    6,    6,
-        6,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        7,    7,    7,    7,    7,    7,    7,    7,    7,    1,
-        1,    1,    1
+        1,    4,    1,    1,    1,    5,    1,    1,    1,    6,
+        6,    6,    6,    6,    6,    6,    6,    1,    1,    1,
+        5,    1,    1,    7,    7,    7,    7,    7,    7,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        1,    1,    1,    1,    8,    9,    9,    9,    9,    9,
+        9,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+        1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[621] =
+static yyconst flex_int16_t yy_base[701] =
     {   0,
-        0,    0,  969,  970,   82,    0,  937,   78,   83,   58,
-       81,   81,  970,  970,  936,   78,  970,   79,   77,   94,
-      136,  196,  934,  970,   96,  934,   75,  970,    0,  930,
-      908,  107,  916,  970,  958,  970,  929,   84,   43,  888,
-       60,   62,   68,   82,  889,   76,  888,  896,  102,   93,
-      887,  885,  890,  970,   89,  970,  970,  178,    0,  970,
-      125,  970,  949,  167,  891,   84,  889,  878,  970,  970,
-      970,  970,   83,  970,  945,  970,  970,  970,  970,  970,
-      970,  929,  251,  167,    0,  970,    0,  158,    0,  226,
-      162,  133,    0,  970,  970,  970,  915,  970,  970,  970,
-
-      914,    0,  901,  903,  148,  129,  893,  970,  970,  872,
-      871,  224,  872,  865,  877,  864,  879,  866,  872,  858,
-      859,  856,  856,  862,  858,  855,  852,    0,  160,  856,
-      165,  854,  105,  159,  858,  847,  850,   77,  140,  855,
-      970,  970,  280,  857,  131,  858,  250,  860,  970,  299,
-      970,  885,    0,    0,  217,  188,  307,  315,   72,  970,
-      197,  300,  970,  970,  867,  215,  235,  970,  910,  157,
-      970,  909,  873,  841,  838,  186,  839,  830,  838,  836,
-      844,  839,  824,  837,  831,    0,  830,  842,  837,  825,
-      195,  839,  837,  833,  825,  831,  818,  833,    0,  819,
-
-      823,    0,  824,  821,  811,  809,  811,  813,  820,  806,
-      804,  804,  816,  815,  805,  809,  813,  815,  804,  866,
-      804,  806,  806,  801,  861,  803,  803,  799,  362,  370,
-      828,  124,  970,  301,  970,  970,  303,  302,  821,  814,
-      815,    0,  790,  795,  787,  780,  784,  778,  213,  782,
-      777,  786,  777,  778,  779,    0,  779,    0,    0,  770,
-      778,  767,  774,    0,    0,  768,  778,  764,    0,  768,
-        0,  763,  763,  762,  759,  771,  761,  765,  770,  769,
-        0,  767,  757,  762,    0,  750,  762,  818,  970,  752,
-      814,  815,  756,  813,  970,  754,  754,  746,  345,  970,
-
-      195,  970,  305,    0,  764,  767,    0,  737,  351,  738,
-      736,  747,  742,  784,  736,  730,  734,  741,  727,  743,
-        0,    0,  730,  731,  736,  727,    0,    0,  734,  720,
-      728,  723,    0,  731,  728,  730,  714,  723,  725,    0,
-      716,  719,    0,  722,  778,  777,  970,  776,  308,  717,
-      721,  762,  756,  970,  749,  725,  698,  358,  716,  706,
-      696,  700,  699,  744,  691,  693,  703,  693,  740,  687,
-      685,  685,    0,    0,    0,  697,  698,    0,    0,    0,
-        0,    0,    0,  694,  694,  687,  747,  748,  970,  747,
-      970,  359,  370,  396,  744,  970,  724,  722,  675,  676,
-
-      398,  687,    0,  671,  682,  715,  674,  675,  679,  676,
-      714,  671,  674,    0,  662,  659,    0,  672,  670,    0,
-      674,  725,  402,  970,  226,  406,  413,  724,  671,  701,
-      656,  657,  415,  648,  657,  665,  664,  652,  659,  661,
-        0,  689,  648,    0,    0,    0,    0,    0,  701,  672,
-      407,  656,  707,  419,  970,  375,  706,  970,  672,  652,
-        0,  650,  650,  635,  630,  633,  646,  627,    0,  626,
-      643,  642,  636,  970,  683,  652,  396,  653,  409,  647,
-      655,  617,  614,  622,  627,  618,    0,    0,  630,    0,
-      611,  628,  627,  377,  639,  420,  636,  634,  614,  608,
-
-      620,  620,  619,  618,    0,  617,  624,  424,  615,  423,
-      622,  624,  601,  600,  592,  609,  608,    0,    0,  626,
-      431,  614,  425,  612,  612,  598,  601,  592,    0,    0,
-      621,  426,  618,  437,  619,  604,  970,  578,  584,  605,
-      432,  521,  441,  510,  498,  444,  444,  459,  436,  457,
-      438,  451,  454,  431,  970,  458,  439,  451,  440,    0,
-      445,  427,  440,  262,  447,  443,    0,  428,  424,  434,
-      423,  442,  410,  404,  445,  324,  447,  970,  449,  453,
-      315,  450,  362,  354,  970,  348,  312,  970,  461,  489,
-      290,  258,  970,  222,  209,  970,  970,  505,  512,  519,
-
-      522,  529,  532,  538,  545,  551,  558,  565,  572,  579,
-      586,  593,  595,  602,  609,  613,  620,  627,  634,  641
+        0,    0, 1170, 1171,   83,    0, 1138,   79,   84,   59,
+       82,   82, 1171, 1171, 1137,   79, 1171,   80,   78,   95,
+      138,  199, 1135, 1171,   97, 1135,   76, 1171,    0, 1131,
+     1109,  108, 1117, 1171, 1159, 1171, 1130,   85,   43, 1088,
+       67,   62,   69,   79, 1089,   72, 1088, 1097,  103,   45,
+     1087, 1085, 1091, 1171,   90, 1171, 1171,  148,    0, 1171,
+      132, 1171, 1150,  169, 1092,  101, 1090, 1086, 1077, 1171,
+     1171, 1171, 1171,  131, 1171, 1145, 1171, 1171, 1171, 1171,
+     1171, 1171, 1129,  255,  152,    0, 1171,    0,  136,    0,
+      229,  161,  102,    0, 1171, 1171, 1171, 1115, 1171, 1171,
+
+     1171, 1114,    0, 1101, 1103,  166,  160, 1093, 1171, 1171,
+     1071, 1070,  227, 1071, 1064, 1077, 1063, 1079, 1065, 1072,
+     1057, 1058, 1055, 1055, 1061, 1057, 1054, 1051,    0,  132,
+     1055,  135, 1053,  153,  171, 1058, 1046, 1049,  165,  111,
+     1055, 1171, 1171,  285, 1057,  166, 1058,  202, 1047, 1059,
+     1171,  303, 1171, 1084,    0,    0,  198,  191,  311,  319,
+      125, 1171,  197,  246, 1171, 1171, 1066,  218,  262, 1171,
+     1109,  220, 1171, 1108, 1072, 1039, 1036,  128,  198, 1047,
+     1028, 1036, 1034, 1043,  171, 1023, 1037, 1030, 1074,    0,
+     1028, 1041, 1036, 1023,  189, 1038, 1036, 1032, 1023, 1030,
+
+     1016, 1032,    0, 1017, 1022,    0, 1023, 1020, 1009, 1007,
+     1009, 1011, 1019, 1004, 1002, 1002, 1015, 1014, 1003, 1008,
+     1012, 1014, 1002, 1065, 1003, 1005, 1005, 1000, 1060, 1002,
+     1002, 1000,  997,  327,  344, 1026,  306, 1171,  317, 1171,
+     1171,  329,  318, 1019, 1012, 1013,    0,  987,  993,  984,
+      977,  990,  980,  990,  973,  289,  977,  972,  982,  984,
+      971,  972,  973, 1015,    0,  972,    0,    0,  963,  972,
+      960,  967,    0,    0,  961,  972,  957,    0,  961,    0,
+      956,  956,  955,  952,  965,  954,  959,  964,  963,    0,
+      961,  950,  956,    0,  943,  956, 1012, 1171,  945, 1008,
+
+     1009,  950, 1007, 1171,  948,  948, 1002,  938,  374, 1171,
+      324, 1171,  331,    0,  957,  960,    0,  929,  387,  930,
+      943,  927,  932,  938,  933,  263,  927,  921,  925,  935,
+      932,  917,  934,    0,    0,    0,  920,  921,  927,  917,
+        0,    0,  925,  910,  919,  913,    0,  922,  919,  921,
+      904,  914,  916,    0,  906,  910,    0,  913,  969,  968,
+     1171,  967,  388,  908,  392,  912,  953,  947, 1171,  940,
+      916,  888,  398,  907,  897,  893,  885,  885,  888,  887,
+      933,  930,  878,  880,  891,  894,  879,  927,  873,  871,
+      871,    0,    0,    0,  884,  885,    0,    0,    0,    0,
+
+        0,    0,  881,  881,  873,  934,  935, 1171,  934, 1171,
+      392,  404,  418,  405,  931, 1171,  911,  909,  861,  862,
+      431,  874,    0,    0,  859,  856,  868,  901,    0,  859,
+      861,  865,  856,  861,  899,  856,  859,    0,  846,  843,
+      911,  856,  854,    0,  858,  909,  435, 1171,  379,  439,
+      443,  908,  907,  854,  884,  838,  839,  447,  830,  844,
+      839,  847,  846,  833,  841,  843,  830,    0,  870,  828,
+        0,    0,    0,  836,    0,    0,  881,  852,  418,  836,
+      887,  451, 1171,  405,  886, 1171,  885, 1171,  851,  831,
+        0,  829,  829,  813,  808,  823,  810,  824,  804,    0,
+
+      803,  821,    0,  820,  814,  810, 1171,  860,  829,  419,
+      830,  436,  824,  832,  793,  790,  798,  804,  460,  794,
+        0,    0,  807,    0,  787,  805,  803,  803,  440,  815,
+      421,  812,  810,  790,  783,  796,  796,  465,  791,  794,
+      793,    0,  792,  774,  798,  354,  789,  452,  796,  798,
+      774,  773,  765,  783,    0,  824,  257,  781,    0,    0,
+      830,  798,  447,  786,  454,  784,  784,  770,  773,  764,
+        0, 1171,  306,    0,  772,  792,  463,  789,  468,  790,
+      775, 1171,  748,  754,  455,  765,  775,  461,  784,  466,
+      773,  782,  751,  754,  460,  740,  768,  472,  767,  475,
+
+      762,  765,  741, 1171,  466,  733,  768,  477,  761,  478,
+        0,  756,  743,  469,  746,  755,  482,  762,  483,    0,
+      727,  471,  663,  681,  484,  689,  485,  679,  476,  669,
+      677,  488,  670,  489, 1171,  483,  565,  506,  527,  567,
+      496,  500,  544,  586,  551, 1171,  547,  545, 1171,  532,
+      544,  528,  484,  535,  530, 1171,  523,  515, 1171,  504,
+      501,  437,  490,  420,  335,  303,  285,  242,  218,  229,
+       92, 1171, 1171,  551,  561,  571,  576,  586,  591,  600,
+      610,  619,  629,  639,  649,  659,  669,  679,  683,  693,
+      703,  713,  720,  729,  739,  749,  759,  769,  779,  789
+
     } ;
 
-static yyconst flex_int16_t yy_def[621] =
+static yyconst flex_int16_t yy_def[701] =
     {   0,
-      597,    1,  597,  597,  597,  598,  597,  599,  597,  597,
-      597,  600,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  601,  601,
-      601,  601,  601,  597,  597,  597,  597,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  597,  597,  597,  597,  597,  598,  597,
-      599,  597,  599,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  600,  597,  600,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  602,  597,   83,   21,   22,  597,
-      597,  597,  603,  597,  597,  597,  597,  597,  597,  597,
-
-      597,  601,  601,  601,  604,  605,  601,  597,  597,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  606,  602,  597,  597,  597,  597,  597,  597,
-      597,  603,  597,  597,  601,  601,  604,  597,  604,  605,
-      597,  605,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  607,
-      597,  597,  597,  597,  608,  597,  597,  597,  597,  597,
-      606,  597,  597,  597,  597,  597,  597,  597,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  607,  597,  597,
-      597,  609,  597,  608,  597,  597,  597,  597,  597,  597,
-
-      597,  597,  597,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  597,  610,  609,  597,  611,  597,  597,
-      597,  597,  597,  597,  601,  601,  601,  597,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  597,  610,  597,  611,
-      597,  597,  612,  597,  597,  597,  601,  601,  601,  597,
-
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  601,  613,
-      597,  612,  612,  597,  612,  597,  614,  615,  601,  601,
-      601,  597,  597,  601,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  601,  601,  601,  601,  601,  616,  597,
-      612,  597,  614,  614,  597,  614,  615,  597,  601,  601,
-      601,  597,  597,  597,  601,  601,  601,  601,  601,  601,
-      601,  601,  601,  597,  616,  597,  612,  597,  614,  601,
-      601,  597,  597,  597,  601,  601,  601,  601,  601,  601,
-      601,  601,  597,  612,  597,  614,  601,  601,  597,  597,
-
-      597,  601,  601,  601,  601,  601,  597,  612,  597,  614,
-      601,  601,  597,  597,  597,  601,  601,  601,  601,  597,
-      612,  597,  614,  601,  601,  597,  597,  597,  601,  601,
-      597,  612,  597,  614,  601,  601,  597,  597,  597,  597,
-      612,  597,  614,  601,  601,  597,  597,  597,  612,  597,
-      614,  601,  601,  597,  597,  597,  612,  597,  614,  601,
-      601,  597,  597,  612,  597,  614,  601,  597,  597,  612,
-      597,  614,  597,  597,  612,  597,  614,  597,  617,  618,
-      597,  614,  617,  617,  597,  618,  618,  597,  619,  620,
-      619,  619,  597,  620,  620,  597,    0,  597,  597,  597,
-
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597
+      673,    1,  673,  673,  673,  674,  673,  675,  673,  673,
+      673,  676,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  677,  677,
+      677,  677,  677,  673,  673,  673,  673,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  673,  673,  673,  673,  673,  674,  673,
+      675,  673,  675,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  676,  673,  676,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  678,  673,   84,   21,   22,
+      673,  673,  673,  679,  673,  673,  673,  673,  673,  673,
+
+      673,  673,  677,  677,  677,  680,  681,  677,  673,  673,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  682,  678,  673,  673,  673,  673,
+      673,  673,  673,  679,  673,  673,  677,  677,  680,  673,
+      680,  681,  673,  681,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  683,  673,  673,  673,  673,  684,  673,
+      673,  673,  673,  673,  673,  682,  673,  673,  673,  673,
+      673,  673,  673,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  683,  673,  673,  673,
+
+      685,  673,  684,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  673,  686,  685,
+      673,  687,  673,  673,  673,  673,  673,  673,  673,  677,
+      677,  677,  673,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+
+      677,  677,  677,  677,  677,  673,  686,  673,  687,  673,
+      673,  688,  673,  673,  673,  673,  677,  677,  677,  673,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  689,  673,  688,  688,  673,  688,  673,
+      690,  691,  692,  677,  677,  677,  673,  673,  677,  677,
+      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
+      677,  677,  677,  673,  677,  677,  693,  673,  688,  673,
+      690,  690,  673,  690,  691,  673,  692,  673,  677,  677,
+      677,  673,  673,  673,  677,  677,  677,  677,  677,  677,
+
+      677,  677,  677,  677,  677,  673,  673,  693,  673,  688,
+      673,  690,  677,  677,  673,  673,  673,  677,  677,  677,
+      677,  677,  677,  677,  677,  677,  673,  673,  688,  673,
+      690,  677,  677,  673,  673,  673,  677,  673,  694,  677,
+      677,  677,  677,  673,  673,  688,  673,  690,  677,  677,
+      673,  673,  673,  677,  694,  694,  694,  677,  677,  677,
+      673,  673,  688,  673,  690,  677,  677,  673,  673,  673,
+      677,  673,  694,  677,  673,  673,  688,  673,  690,  677,
+      677,  673,  673,  673,  694,  673,  673,  688,  673,  690,
+      677,  677,  673,  673,  694,  673,  673,  688,  673,  690,
+
+      677,  677,  673,  673,  694,  673,  673,  688,  673,  690,
+      677,  677,  673,  694,  673,  673,  688,  673,  690,  677,
+      673,  694,  673,  673,  688,  673,  690,  673,  694,  673,
+      673,  688,  673,  690,  673,  694,  673,  695,  696,  673,
+      690,  694,  673,  695,  695,  673,  696,  696,  673,  697,
+      698,  699,  673,  697,  697,  673,  698,  698,  673,  699,
+      699,  673,  699,  673,  673,  673,  673,  673,  673,  700,
+      700,  673,    0,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673
+
     } ;
 
-static yyconst flex_int16_t yy_nxt[1054] =
+static yyconst flex_int16_t yy_nxt[1256] =
     {   0,
         4,    5,    6,    5,    5,    7,    8,    9,   10,   11,
        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
@@ -741,119 +772,141 @@ static yyconst flex_int16_t yy_nxt[1054] =
        26,   27,   28,   29,   29,   29,   29,   29,   30,   31,
        29,   29,   32,   29,   29,   29,   29,   33,   29,   29,
        34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
-       44,   45,   29,   46,   29,   47,   29,   29,   29,   29,
-       48,   49,   50,   51,   52,   53,   29,   29,   29,   54,
-       55,   56,   57,   58,   62,   58,   58,   64,   69,   70,
-       71,   74,   77,   74,   82,   79,   83,   83,   83,   83,
-
-       83,   83,   83,   83,   95,  100,  101,   84,   78,   80,
-       81,   72,   85,  105,  113,  116,  114,  106,  110,  141,
-      160,  119,  117,   96,   86,   97,   98,  111,  118,   63,
-      120,   62,   75,  121,   75,  122,  128,  124,  112,  171,
-      215,   65,   66,  129,  123,  160,   67,  125,  216,  145,
-      126,  146,   68,   87,  168,   88,   88,   88,   88,   88,
-       88,   89,   89,  136,  132,  133,  208,  171,  152,  142,
-      137,  152,  233,   90,  134,  161,   63,  135,   91,   58,
-      172,   58,   58,  209,   92,   93,  143,  143,  143,  143,
-      143,  143,  143,  143,  222,   90,  153,  233,  161,  169,
-
-      155,   91,  223,  217,  159,  218,  156,  597,  172,   92,
-      160,  596,   93,   87,  210,   89,   89,   89,   89,   89,
-       89,   89,   89,  155,  596,  201,  204,  159,  424,  211,
-      234,  156,  202,   90,  597,  160,  205,  206,   91,  236,
-      157,  168,  157,  302,   92,  158,  158,  158,  158,  158,
-      158,  158,  158,  234,  225,   90,  240,  245,  246,  232,
-      593,   91,  236,  241,  424,  233,  260,  261,  302,   92,
-       83,   83,   83,   83,   83,   83,   83,   83,  313,  176,
-      451,  177,  232,  178,  220,  314,  169,  179,  150,  151,
-      233,  180,  593,  151,  181,  182,  183,  184,  185,  143,
-
-      143,  143,  143,  143,  143,  143,  143,  570,  226,  392,
-      150,  151,  393,  229,  588,  229,  151,  227,  230,  230,
-      230,  230,  230,  230,  230,  230,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  237,  300,  303,  301,  352,  354,  238,  352,
-      588,  302,  358,  235,  358,  358,  585,  235,  353,  358,
-      392,  358,  358,  392,  585,  237,  300,  303,  301,  589,
-      354,  423,  424,  238,  423,  235,  302,  455,  581,  424,
-      235,  230,  230,  230,  230,  230,  230,  230,  230,  230,
-      230,  230,  230,  230,  230,  230,  230,  426,  424,  433,
-
-      427,  433,  433,  423,  424,  359,  423,  426,  151,  424,
-      426,  455,  151,  421,  454,  455,  433,  454,  433,  433,
-      454,  455,  455,  454,  425,  455,  424,  455,  424,  479,
-      151,  508,  400,  424,  424,  151,  424,  494,  424,  455,
-      455,  424,  455,  455,  455,  455,  477,  424,  496,  455,
-      584,  585,  455,  584,  587,  588,  425,  587,  579,  541,
-      452,  510,  592,  593,  578,  592,  532,  456,  576,  463,
-      521,  534,  543,  456,  551,  549,  564,  523,  574,  557,
-      572,  559,  573,  566,  571,  569,  568,  577,  575,  464,
-      595,  596,  567,  595,  565,  563,  562,  561,  560,  580,
-
-      558,  582,  556,  555,  590,   59,   59,  554,   59,   59,
-       59,   59,   61,   61,   61,   61,   61,   61,   61,   73,
-       73,   73,   73,   73,   73,   73,  102,  102,  102,  154,
-      154,  553,  154,  154,  154,  154,  162,  162,  167,  167,
-      167,  167,  167,  167,  167,  170,  170,  170,  170,  170,
-      170,  170,  231,  552,  550,  231,  231,  231,  288,  288,
-      288,  288,  288,  288,  288,  294,  294,  294,  294,  294,
-      294,  294,  346,  346,  346,  346,  346,  346,  346,  388,
-      388,  388,  388,  388,  388,  388,  390,  390,  390,  390,
-      390,  390,  390,  422,  422,  422,  422,  422,  422,  422,
-
-      449,  449,  453,  453,  453,  453,  453,  453,  453,  457,
-      457,  457,  457,  457,  457,  457,  475,  475,  475,  475,
-      583,  583,  583,  583,  583,  583,  583,  586,  586,  586,
-      586,  586,  586,  586,  591,  591,  591,  591,  591,  591,
-      591,  594,  594,  594,  594,  594,  594,  594,  548,  547,
-      546,  545,  544,  542,  540,  539,  538,  537,  536,  535,
-      533,  531,  530,  529,  528,  527,  526,  525,  524,  522,
-      520,  519,  518,  517,  516,  515,  514,  513,  512,  511,
-      509,  507,  506,  505,  504,  503,  502,  501,  500,  499,
-      498,  497,  495,  493,  474,  492,  491,  490,  489,  488,
-
-      487,  486,  485,  484,  483,  482,  481,  480,  458,  455,
-      478,  476,  474,  473,  472,  471,  470,  469,  468,  467,
-      466,  465,  462,  461,  460,  459,  458,  424,  450,  448,
-      447,  446,  445,  444,  443,  442,  441,  440,  439,  438,
-      437,  436,  435,  434,  432,  431,  430,  429,  428,  391,
-      389,  420,  419,  418,  417,  416,  415,  414,  413,  412,
-      411,  410,  409,  408,  407,  406,  405,  404,  403,  402,
-      401,  399,  398,  397,  396,  353,  395,  394,  391,  347,
-      389,  387,  386,  385,  384,  383,  382,  381,  380,  379,
-      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
-
-      368,  367,  366,  365,  364,  363,  362,  361,  360,  357,
-      356,  355,  351,  350,  349,  295,  348,  347,  345,  344,
-      289,  343,  342,  341,  340,  339,  338,  337,  336,  335,
-      334,  333,  332,  331,  330,  329,  328,  327,  326,  325,
-      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
-      312,  311,  310,  309,  308,  307,  306,  305,  304,  299,
-      298,  297,  296,  295,  293,  292,  291,  290,  289,  287,
-      286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
-      276,  275,  274,  273,  272,  271,  270,  269,  268,  267,
-      266,  265,  264,  263,  262,  259,  258,  257,  256,  255,
-
-      254,  253,  252,  251,  250,  249,  248,  247,  244,  243,
-      242,  597,  597,  239,  153,  228,  224,  221,  219,  214,
-      213,  212,  207,  203,  200,  199,  198,  197,  196,  195,
-      194,  193,  192,  191,  190,  189,  188,  187,  186,  175,
-      174,  173,  166,  165,  164,  163,  149,  597,  148,  147,
-      144,  597,  140,  139,  138,  131,  130,  127,  115,  109,
-      108,  107,  104,  103,   99,   94,   76,   60,  597,    3,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597
+       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,  672,   83,   80,   84,   84,   84,
+
+       84,   84,   84,   84,   84,   96,  101,  102,   85,   79,
+       81,   82,   73,   86,  106,  114,  137,  115,  107,  111,
+      142,  120,  117,  138,   97,   87,   98,   99,  112,  118,
+       63,  121,  129,   76,  125,  122,  119,  123,   62,  113,
+      130,   75,   65,   66,  163,  126,  124,   67,  127,   58,
+       68,   58,   58,  154,   69,   88,  154,   89,   89,   89,
+       89,   89,   89,   90,   90,  133,  134,  146,  163,  147,
+      173,  143,  170,  162,  221,   91,  135,  222,  157,  136,
+       92,  155,   76,   63,  158,  673,   93,   94,  144,  144,
+      144,  144,  144,  144,  144,  144,  208,   91,  205,  162,
+
+      250,  251,  157,  161,   92,  206,  229,  209,  210,  162,
+      158,  174,   93,  673,  212,   94,   88,  171,   90,   90,
+       90,   90,   90,   90,   90,   90,  214,  161,  219,  226,
+      173,  672,  213,  239,  259,  162,   91,  220,  227,  241,
+      237,   92,  215,  159,  260,  159,  238,   93,  160,  160,
+      160,  160,  160,  160,  160,  160,  252,  239,   91,  245,
+      230,  269,  270,  241,  237,   92,  246,  253,  170,  572,
+      231,  174,  238,   93,   84,   84,   84,   84,   84,   84,
+       84,   84,  178,  381,  179,  180,  181,  382,  242,  224,
+      182,  670,  152,  153,  243,  183,  669,  153,  184,  185,
+
+      186,  187,  188,  189,  144,  144,  144,  144,  144,  144,
+      144,  144,  242,  171,  152,  153,  573,  234,  572,  234,
+      243,  153,  235,  235,  235,  235,  235,  235,  235,  235,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  235,  235,  235,  235,
+      235,  235,  235,  235,  238,  325,  448,  240,  668,  310,
+      313,  240,  326,  235,  235,  235,  235,  235,  235,  235,
+      235,  311,  312,  369,  667,  367,  585,  312,  367,  240,
+      238,  448,  153,  310,  313,  240,  153,  368,  373,  411,
+      373,  373,  412,  411,  666,  311,  411,  369,  312,  373,
+
+      563,  373,  373,  312,  153,  447,  448,  483,  447,  452,
+      153,  414,  414,  414,  414,  414,  414,  414,  414,  450,
+      448,  448,  451,  483,  414,  414,  414,  414,  414,  414,
+      414,  414,  458,  479,  458,  458,  447,  448,  483,  447,
+      450,  374,  448,  450,  482,  483,  445,  482,  458,  448,
+      458,  458,  482,  483,  483,  482,  483,  510,  449,  512,
+      529,  538,  548,  448,  538,  448,  538,  572,  483,  538,
+      483,  539,  572,  420,  448,  531,  555,  483,  572,  448,
+      483,  572,  577,  572,  448,  483,  448,  483,  572,  449,
+      448,  483,  665,  480,  546,  572,  588,  484,  483,  600,
+
+      579,  493,  663,  590,  598,  484,  565,  645,  646,  664,
+      645,  652,  572,  663,  617,  608,  661,  659,  610,  605,
+      627,  619,  494,  614,  622,  659,  595,  625,  648,  649,
+      634,  648,  656,  655,  656,  636,  655,  656,  632,  662,
+      661,  642,  639,  641,  629,  658,  659,  649,  658,  649,
+      651,   59,   59,  646,   59,   59,   59,   59,   59,   59,
+       59,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   74,   74,   74,   74,   74,   74,   74,   74,   74,
+       74,  103,  103,  103,  103,  103,  156,  156,  646,  156,
+      156,  156,  156,  156,  156,  156,  164,  164,  653,  164,
+
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+      236,  650,  643,  236,  236,  236,  236,  236,  236,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  303,
+      303,  303,  303,  303,  303,  303,  303,  303,  303,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  409,
+      409,  409,  409,  409,  409,  409,  409,  409,  409,  446,
+      446,  446,  446,  446,  446,  446,  446,  446,  446,  477,
+      477,  477,  477,  481,  481,  481,  481,  481,  481,  481,
+
+      481,  481,  481,  485,  485,  485,  485,  485,  485,  485,
+      485,  485,  485,  487,  487,  487,  487,  487,  487,  487,
+      487,  487,  487,  508,  640,  508,  508,  508,  508,  508,
+      556,  638,  637,  635,  633,  631,  630,  556,  556,  644,
+      644,  644,  644,  644,  644,  644,  644,  644,  644,  647,
+      647,  647,  647,  647,  647,  647,  647,  647,  647,  654,
+      654,  654,  654,  654,  654,  654,  654,  654,  654,  657,
+      657,  657,  657,  657,  657,  657,  657,  657,  657,  660,
+      660,  628,  660,  660,  660,  660,  660,  660,  660,  671,
+      671,  671,  671,  671,  671,  671,  671,  671,  671,  626,
+
+      624,  623,  621,  620,  618,  616,  615,  613,  612,  611,
+      609,  607,  606,  604,  603,  602,  601,  599,  597,  596,
+      594,  593,  592,  591,  589,  587,  586,  584,  583,  582,
+      581,  580,  578,  576,  575,  574,  572,  571,  570,  569,
+      568,  567,  566,  564,  562,  561,  560,  559,  558,  557,
+      554,  553,  552,  551,  550,  549,  547,  545,  544,  543,
+      542,  541,  540,  537,  536,  535,  534,  533,  532,  530,
+      528,  507,  527,  526,  525,  524,  523,  522,  521,  520,
+      519,  518,  517,  516,  515,  514,  513,  488,  486,  483,
+      511,  509,  507,  506,  505,  504,  503,  502,  501,  500,
+
+      499,  498,  497,  496,  495,  492,  491,  490,  489,  488,
+      486,  448,  478,  476,  475,  474,  473,  472,  471,  470,
+      469,  468,  467,  466,  465,  464,  463,  462,  461,  460,
+      459,  457,  456,  455,  454,  453,  410,  408,  444,  443,
+      442,  441,  440,  439,  438,  437,  436,  435,  434,  433,
+      432,  431,  430,  429,  428,  427,  426,  425,  424,  423,
+      422,  421,  419,  418,  417,  416,  368,  415,  413,  410,
+      361,  408,  406,  405,  404,  403,  402,  401,  400,  399,
+      398,  397,  396,  395,  394,  393,  392,  391,  390,  389,
+      388,  387,  386,  385,  384,  383,  380,  379,  378,  377,
+
+      376,  375,  372,  371,  370,  366,  365,  364,  363,  304,
+      362,  361,  359,  358,  298,  357,  356,  355,  354,  353,
+      352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
+      342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
+      332,  331,  330,  329,  328,  327,  324,  323,  322,  321,
+      320,  319,  318,  317,  316,  315,  314,  309,  308,  307,
+      306,  305,  304,  302,  301,  300,  299,  298,  296,  295,
+      294,  293,  292,  291,  290,  289,  288,  287,  286,  285,
+      284,  283,  282,  281,  280,  279,  278,  277,  276,  275,
+      274,  273,  272,  271,  268,  267,  266,  265,  264,  263,
+
+      262,  261,  258,  257,  256,  255,  254,  249,  248,  247,
+      673,  673,  244,  155,  233,  232,  228,  225,  223,  218,
+      217,  216,  211,  207,  204,  203,  202,  201,  200,  199,
+      198,  197,  196,  195,  194,  193,  192,  191,  190,  177,
+      176,  175,  168,  167,  166,  165,  151,  673,  150,  149,
+      148,  145,  673,  141,  140,  139,  132,  131,  128,  116,
+      110,  109,  108,  105,  104,  100,   95,   77,   60,  673,
+        3,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673
     } ;
 
-static yyconst flex_int16_t yy_chk[1054] =
+static yyconst flex_int16_t yy_chk[1256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -863,114 +916,136 @@ static yyconst flex_int16_t yy_chk[1054] =
         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,    1,    1,    1,    1,    1,
-        1,    1,    1,    5,    8,    5,    5,    9,   10,   10,
-       11,   12,   16,   73,   19,   18,   19,   19,   19,   19,
-
-       19,   19,   19,   19,   25,   27,   27,   20,   16,   18,
-       18,   11,   20,   32,   39,   41,   39,   32,   38,   55,
-      159,   42,   41,   25,   20,   25,   25,   38,   41,    8,
-       42,   61,   12,   43,   73,   43,   46,   44,   38,  106,
-      138,    9,    9,   46,   43,  159,    9,   44,  138,   66,
-       44,   66,    9,   21,  105,   21,   21,   21,   21,   21,
-       21,   21,   21,   50,   49,   49,  133,  170,   84,   55,
-       50,   84,  232,   21,   49,   92,   61,   49,   21,   58,
-      106,   58,   58,  133,   21,   21,   64,   64,   64,   64,
-       64,   64,   64,   64,  145,   21,   84,  232,   92,  105,
-
-       88,   21,  145,  139,   91,  139,   88,   88,  170,   21,
-       91,  595,   21,   22,  134,   22,   22,   22,   22,   22,
-       22,   22,   22,   88,  594,  129,  131,   91,  425,  134,
-      156,   88,  129,   22,   88,   91,  131,  131,   22,  161,
-       90,  167,   90,  301,   22,   90,   90,   90,   90,   90,
-       90,   90,   90,  156,  147,   22,  166,  176,  176,  155,
-      592,   22,  161,  166,  564,  155,  191,  191,  301,   22,
-       83,   83,   83,   83,   83,   83,   83,   83,  249,  112,
-      425,  112,  155,  112,  143,  249,  167,  112,   83,   83,
-      155,  112,  591,   83,  112,  112,  112,  112,  112,  143,
-
-      143,  143,  143,  143,  143,  143,  143,  564,  147,  349,
-       83,   83,  349,  150,  587,  150,   83,  147,  150,  150,
-      150,  150,  150,  150,  150,  150,  157,  157,  157,  157,
-      157,  157,  157,  157,  158,  158,  158,  158,  158,  158,
-      158,  158,  162,  234,  238,  237,  299,  303,  162,  299,
-      586,  237,  309,  158,  309,  309,  584,  158,  299,  358,
-      392,  358,  358,  392,  583,  162,  234,  238,  237,  581,
-      303,  393,  393,  162,  393,  158,  237,  456,  576,  494,
-      158,  229,  229,  229,  229,  229,  229,  229,  229,  230,
-      230,  230,  230,  230,  230,  230,  230,  394,  477,  401,
-
-      394,  401,  401,  423,  423,  309,  423,  426,  230,  451,
-      426,  479,  230,  392,  427,  427,  433,  427,  433,  433,
-      454,  454,  496,  454,  393,  510,  508,  523,  532,  456,
-      230,  494,  358,  521,  541,  230,  570,  477,  549,  534,
-      551,  557,  559,  543,  572,  566,  451,  575,  479,  577,
-      579,  579,  582,  579,  580,  580,  423,  580,  574,  532,
-      426,  496,  589,  589,  573,  589,  521,  427,  571,  433,
-      508,  523,  534,  454,  543,  541,  557,  510,  569,  549,
-      566,  551,  568,  559,  565,  563,  562,  572,  570,  433,
-      590,  590,  561,  590,  558,  556,  554,  553,  552,  575,
-
-      550,  577,  548,  547,  582,  598,  598,  546,  598,  598,
-      598,  598,  599,  599,  599,  599,  599,  599,  599,  600,
-      600,  600,  600,  600,  600,  600,  601,  601,  601,  602,
-      602,  545,  602,  602,  602,  602,  603,  603,  604,  604,
-      604,  604,  604,  604,  604,  605,  605,  605,  605,  605,
-      605,  605,  606,  544,  542,  606,  606,  606,  607,  607,
-      607,  607,  607,  607,  607,  608,  608,  608,  608,  608,
-      608,  608,  609,  609,  609,  609,  609,  609,  609,  610,
-      610,  610,  610,  610,  610,  610,  611,  611,  611,  611,
-      611,  611,  611,  612,  612,  612,  612,  612,  612,  612,
-
-      613,  613,  614,  614,  614,  614,  614,  614,  614,  615,
-      615,  615,  615,  615,  615,  615,  616,  616,  616,  616,
-      617,  617,  617,  617,  617,  617,  617,  618,  618,  618,
-      618,  618,  618,  618,  619,  619,  619,  619,  619,  619,
-      619,  620,  620,  620,  620,  620,  620,  620,  540,  539,
-      538,  536,  535,  533,  531,  528,  527,  526,  525,  524,
-      522,  520,  517,  516,  515,  514,  513,  512,  511,  509,
-      507,  506,  504,  503,  502,  501,  500,  499,  498,  497,
-      495,  493,  492,  491,  489,  486,  485,  484,  483,  482,
-      481,  480,  478,  476,  475,  473,  472,  471,  470,  468,
-
-      467,  466,  465,  464,  463,  462,  460,  459,  457,  453,
-      452,  450,  449,  443,  442,  440,  439,  438,  437,  436,
-      435,  434,  432,  431,  430,  429,  428,  422,  421,  419,
-      418,  416,  415,  413,  412,  411,  410,  409,  408,  407,
-      406,  405,  404,  402,  400,  399,  398,  397,  395,  390,
-      388,  387,  386,  385,  384,  377,  376,  372,  371,  370,
-      369,  368,  367,  366,  365,  364,  363,  362,  361,  360,
-      359,  357,  356,  355,  353,  352,  351,  350,  348,  346,
-      345,  344,  342,  341,  339,  338,  337,  336,  335,  334,
-      332,  331,  330,  329,  326,  325,  324,  323,  320,  319,
-
-      318,  317,  316,  315,  314,  313,  312,  311,  310,  308,
-      306,  305,  298,  297,  296,  294,  293,  292,  291,  290,
-      288,  287,  286,  284,  283,  282,  280,  279,  278,  277,
-      276,  275,  274,  273,  272,  270,  268,  267,  266,  263,
-      262,  261,  260,  257,  255,  254,  253,  252,  251,  250,
-      248,  247,  246,  245,  244,  243,  241,  240,  239,  231,
-      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
-      218,  217,  216,  215,  214,  213,  212,  211,  210,  209,
-      208,  207,  206,  205,  204,  203,  201,  200,  198,  197,
-      196,  195,  194,  193,  192,  190,  189,  188,  187,  185,
-
-      184,  183,  182,  181,  180,  179,  178,  177,  175,  174,
-      173,  172,  169,  165,  152,  148,  146,  144,  140,  137,
-      136,  135,  132,  130,  127,  126,  125,  124,  123,  122,
-      121,  120,  119,  118,  117,  116,  115,  114,  113,  111,
-      110,  107,  104,  103,  101,   97,   82,   75,   68,   67,
-       65,   63,   53,   52,   51,   48,   47,   45,   40,   37,
-       35,   33,   31,   30,   26,   23,   15,    7,    3,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
-      597,  597,  597
+        1,    1,    1,    1,    5,    8,    5,    5,    9,   10,
+       10,   11,   12,   16,  671,   19,   18,   19,   19,   19,
+
+       19,   19,   19,   19,   19,   25,   27,   27,   20,   16,
+       18,   18,   11,   20,   32,   39,   50,   39,   32,   38,
+       55,   42,   41,   50,   25,   20,   25,   25,   38,   41,
+        8,   42,   46,   12,   44,   43,   41,   43,   61,   38,
+       46,   74,    9,    9,   93,   44,   43,    9,   44,   58,
+        9,   58,   58,   85,    9,   21,   85,   21,   21,   21,
+       21,   21,   21,   21,   21,   49,   49,   66,   93,   66,
+      107,   55,  106,  161,  140,   21,   49,  140,   89,   49,
+       21,   85,   74,   61,   89,   89,   21,   21,   64,   64,
+       64,   64,   64,   64,   64,   64,  132,   21,  130,  161,
+
+      178,  178,   89,   92,   21,  130,  148,  132,  132,   92,
+       89,  107,   21,   89,  134,   21,   22,  106,   22,   22,
+       22,   22,   22,   22,   22,   22,  135,   92,  139,  146,
+      172,  670,  134,  158,  185,   92,   22,  139,  146,  163,
+      157,   22,  135,   91,  185,   91,  157,   22,   91,   91,
+       91,   91,   91,   91,   91,   91,  179,  158,   22,  168,
+      148,  195,  195,  163,  157,   22,  168,  179,  169,  557,
+      148,  172,  157,   22,   84,   84,   84,   84,   84,   84,
+       84,   84,  113,  326,  113,  113,  113,  326,  164,  144,
+      113,  669,   84,   84,  164,  113,  668,   84,  113,  113,
+
+      113,  113,  113,  113,  144,  144,  144,  144,  144,  144,
+      144,  144,  164,  169,   84,   84,  557,  152,  573,  152,
+      164,   84,  152,  152,  152,  152,  152,  152,  152,  152,
+      159,  159,  159,  159,  159,  159,  159,  159,  160,  160,
+      160,  160,  160,  160,  160,  160,  234,  234,  234,  234,
+      234,  234,  234,  234,  237,  256,  546,  160,  667,  239,
+      243,  160,  256,  235,  235,  235,  235,  235,  235,  235,
+      235,  242,  311,  313,  666,  309,  573,  242,  309,  160,
+      237,  449,  235,  239,  243,  160,  235,  309,  319,  363,
+      319,  319,  363,  411,  665,  242,  411,  313,  311,  373,
+
+      546,  373,  373,  242,  235,  412,  412,  484,  412,  414,
+      235,  365,  365,  365,  365,  365,  365,  365,  365,  413,
+      479,  510,  413,  531,  414,  414,  414,  414,  414,  414,
+      414,  414,  421,  449,  421,  421,  447,  447,  512,  447,
+      450,  319,  529,  450,  451,  451,  411,  451,  458,  563,
+      458,  458,  482,  482,  548,  482,  565,  479,  412,  484,
+      510,  519,  531,  588,  519,  577,  538,  585,  590,  538,
+      579,  519,  595,  373,  598,  512,  538,  600,  605,  608,
+      610,  614,  563,  622,  617,  619,  625,  627,  629,  447,
+      632,  634,  664,  450,  529,  636,  577,  451,  641,  590,
+
+      565,  458,  663,  579,  588,  482,  548,  638,  638,  662,
+      638,  642,  642,  661,  608,  598,  660,  658,  600,  595,
+      619,  610,  458,  605,  614,  657,  585,  617,  639,  639,
+      627,  639,  655,  650,  650,  629,  650,  654,  625,  653,
+      652,  636,  632,  634,  622,  651,  651,  648,  651,  647,
+      641,  674,  674,  645,  674,  674,  674,  674,  674,  674,
+      674,  675,  675,  675,  675,  675,  675,  675,  675,  675,
+      675,  676,  676,  676,  676,  676,  676,  676,  676,  676,
+      676,  677,  677,  677,  677,  677,  678,  678,  644,  678,
+      678,  678,  678,  678,  678,  678,  679,  679,  643,  679,
+
+      680,  680,  680,  680,  680,  680,  680,  680,  680,  680,
+      681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
+      682,  640,  637,  682,  682,  682,  682,  682,  682,  683,
+      683,  683,  683,  683,  683,  683,  683,  683,  683,  684,
+      684,  684,  684,  684,  684,  684,  684,  684,  684,  685,
+      685,  685,  685,  685,  685,  685,  685,  685,  685,  686,
+      686,  686,  686,  686,  686,  686,  686,  686,  686,  687,
+      687,  687,  687,  687,  687,  687,  687,  687,  687,  688,
+      688,  688,  688,  688,  688,  688,  688,  688,  688,  689,
+      689,  689,  689,  690,  690,  690,  690,  690,  690,  690,
+
+      690,  690,  690,  691,  691,  691,  691,  691,  691,  691,
+      691,  691,  691,  692,  692,  692,  692,  692,  692,  692,
+      692,  692,  692,  693,  633,  693,  693,  693,  693,  693,
+      694,  631,  630,  628,  626,  624,  623,  694,  694,  695,
+      695,  695,  695,  695,  695,  695,  695,  695,  695,  696,
+      696,  696,  696,  696,  696,  696,  696,  696,  696,  697,
+      697,  697,  697,  697,  697,  697,  697,  697,  697,  698,
+      698,  698,  698,  698,  698,  698,  698,  698,  698,  699,
+      699,  621,  699,  699,  699,  699,  699,  699,  699,  700,
+      700,  700,  700,  700,  700,  700,  700,  700,  700,  618,
+
+      616,  615,  613,  612,  609,  607,  606,  603,  602,  601,
+      599,  597,  596,  594,  593,  592,  591,  589,  587,  586,
+      584,  583,  581,  580,  578,  576,  575,  570,  569,  568,
+      567,  566,  564,  562,  561,  558,  556,  554,  553,  552,
+      551,  550,  549,  547,  545,  544,  543,  541,  540,  539,
+      537,  536,  535,  534,  533,  532,  530,  528,  527,  526,
+      525,  523,  520,  518,  517,  516,  515,  514,  513,  511,
+      509,  508,  506,  505,  504,  502,  501,  499,  498,  497,
+      496,  495,  494,  493,  492,  490,  489,  487,  485,  481,
+      480,  478,  477,  474,  470,  469,  467,  466,  465,  464,
+
+      463,  462,  461,  460,  459,  457,  456,  455,  454,  453,
+      452,  446,  445,  443,  442,  441,  440,  439,  437,  436,
+      435,  434,  433,  432,  431,  430,  428,  427,  426,  425,
+      422,  420,  419,  418,  417,  415,  409,  407,  406,  405,
+      404,  403,  396,  395,  391,  390,  389,  388,  387,  386,
+      385,  384,  383,  382,  381,  380,  379,  378,  377,  376,
+      375,  374,  372,  371,  370,  368,  367,  366,  364,  362,
+      360,  359,  358,  356,  355,  353,  352,  351,  350,  349,
+      348,  346,  345,  344,  343,  340,  339,  338,  337,  333,
+      332,  331,  330,  329,  328,  327,  325,  324,  323,  322,
+
+      321,  320,  318,  316,  315,  308,  307,  306,  305,  303,
+      302,  301,  300,  299,  297,  296,  295,  293,  292,  291,
+      289,  288,  287,  286,  285,  284,  283,  282,  281,  279,
+      277,  276,  275,  272,  271,  270,  269,  266,  264,  263,
+      262,  261,  260,  259,  258,  257,  255,  254,  253,  252,
+      251,  250,  249,  248,  246,  245,  244,  236,  233,  232,
+      231,  230,  229,  228,  227,  226,  225,  224,  223,  222,
+      221,  220,  219,  218,  217,  216,  215,  214,  213,  212,
+      211,  210,  209,  208,  207,  205,  204,  202,  201,  200,
+      199,  198,  197,  196,  194,  193,  192,  191,  189,  188,
+
+      187,  186,  184,  183,  182,  181,  180,  177,  176,  175,
+      174,  171,  167,  154,  150,  149,  147,  145,  141,  138,
+      137,  136,  133,  131,  128,  127,  126,  125,  124,  123,
+      122,  121,  120,  119,  118,  117,  116,  115,  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,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
+      673,  673,  673,  673,  673
     } ;
 
 extern int yy_flex_debug;
@@ -1048,11 +1123,11 @@ extern int yylex (GISourceScanner *scanner);
 static int yywrap (void);
 static void parse_comment (GISourceScanner *scanner);
 static void parse_trigraph (GISourceScanner *scanner);
-static void process_linemarks (GISourceScanner *scanner);
+static void process_linemarks (GISourceScanner *scanner, gboolean has_line);
 static int check_identifier (GISourceScanner *scanner, const char *);
 static int parse_ignored_macro (void);
 static void print_error (GISourceScanner *scanner);
-#line 1056 "scannerlexer.c"
+#line 1131 "scannerlexer.c"
 
 #define INITIAL 0
 
@@ -1235,7 +1310,7 @@ YY_DECL
 #line 73 "giscanner/scannerlexer.l"
 
 
-#line 1239 "scannerlexer.c"
+#line 1314 "scannerlexer.c"
 
        if ( !(yy_init) )
                {
@@ -1293,14 +1368,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 >= 598 )
+                               if ( yy_current_state >= 674 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        *(yy_state_ptr)++ = yy_current_state;
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 970 );
+               while ( yy_base[yy_current_state] != 1171 );
 
 yy_find_action:
                yy_current_state = *--(yy_state_ptr);
@@ -1432,17 +1507,18 @@ case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
 #line 101 "giscanner/scannerlexer.l"
-{ process_linemarks(scanner); }
+{ process_linemarks(scanner, FALSE); }
        YY_BREAK
 case 19:
+/* rule 19 can match eol */
 YY_RULE_SETUP
 #line 102 "giscanner/scannerlexer.l"
-{ }
+{ process_linemarks(scanner, TRUE); }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
 #line 103 "giscanner/scannerlexer.l"
-{ return '{'; }
+{ }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
@@ -1452,7 +1528,7 @@ YY_RULE_SETUP
 case 22:
 YY_RULE_SETUP
 #line 105 "giscanner/scannerlexer.l"
-{ return '}'; }
+{ return '{'; }
        YY_BREAK
 case 23:
 YY_RULE_SETUP
@@ -1462,7 +1538,7 @@ YY_RULE_SETUP
 case 24:
 YY_RULE_SETUP
 #line 107 "giscanner/scannerlexer.l"
-{ return '['; }
+{ return '}'; }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
@@ -1472,7 +1548,7 @@ YY_RULE_SETUP
 case 26:
 YY_RULE_SETUP
 #line 109 "giscanner/scannerlexer.l"
-{ return ']'; }
+{ return '['; }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
@@ -1482,217 +1558,217 @@ YY_RULE_SETUP
 case 28:
 YY_RULE_SETUP
 #line 111 "giscanner/scannerlexer.l"
-{ return '('; }
+{ return ']'; }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
 #line 112 "giscanner/scannerlexer.l"
-{ return ')'; }
+{ return '('; }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
 #line 113 "giscanner/scannerlexer.l"
-{ return ';'; }
+{ return ')'; }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
 #line 114 "giscanner/scannerlexer.l"
-{ return ':'; }
+{ return ';'; }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
 #line 115 "giscanner/scannerlexer.l"
-{ return ELLIPSIS; }
+{ return ':'; }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
 #line 116 "giscanner/scannerlexer.l"
-{ return '?'; }
+{ return ELLIPSIS; }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
 #line 117 "giscanner/scannerlexer.l"
-{ return '.'; }
+{ return '?'; }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
 #line 118 "giscanner/scannerlexer.l"
-{ return '+'; }
+{ return '.'; }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
 #line 119 "giscanner/scannerlexer.l"
-{ return '-'; }
+{ return '+'; }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
 #line 120 "giscanner/scannerlexer.l"
-{ return '*'; }
+{ return '-'; }
        YY_BREAK
 case 38:
 YY_RULE_SETUP
 #line 121 "giscanner/scannerlexer.l"
-{ return '/'; }
+{ return '*'; }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
 #line 122 "giscanner/scannerlexer.l"
-{ return '%'; }
+{ return '/'; }
        YY_BREAK
 case 40:
 YY_RULE_SETUP
 #line 123 "giscanner/scannerlexer.l"
-{ return '^'; }
+{ return '%'; }
        YY_BREAK
 case 41:
 YY_RULE_SETUP
 #line 124 "giscanner/scannerlexer.l"
-{ return '&'; }
+{ return '^'; }
        YY_BREAK
 case 42:
 YY_RULE_SETUP
 #line 125 "giscanner/scannerlexer.l"
-{ return '|'; }
+{ return '&'; }
        YY_BREAK
 case 43:
 YY_RULE_SETUP
 #line 126 "giscanner/scannerlexer.l"
-{ return '~'; }
+{ return '|'; }
        YY_BREAK
 case 44:
 YY_RULE_SETUP
 #line 127 "giscanner/scannerlexer.l"
-{ return '!'; }
+{ return '~'; }
        YY_BREAK
 case 45:
 YY_RULE_SETUP
 #line 128 "giscanner/scannerlexer.l"
-{ return '='; }
+{ return '!'; }
        YY_BREAK
 case 46:
 YY_RULE_SETUP
 #line 129 "giscanner/scannerlexer.l"
-{ return '<'; }
+{ return '='; }
        YY_BREAK
 case 47:
 YY_RULE_SETUP
 #line 130 "giscanner/scannerlexer.l"
-{ return '>'; }
+{ return '<'; }
        YY_BREAK
 case 48:
 YY_RULE_SETUP
 #line 131 "giscanner/scannerlexer.l"
-{ return ADDEQ; }
+{ return '>'; }
        YY_BREAK
 case 49:
 YY_RULE_SETUP
 #line 132 "giscanner/scannerlexer.l"
-{ return SUBEQ; }
+{ return ADDEQ; }
        YY_BREAK
 case 50:
 YY_RULE_SETUP
 #line 133 "giscanner/scannerlexer.l"
-{ return MULEQ; }
+{ return SUBEQ; }
        YY_BREAK
 case 51:
 YY_RULE_SETUP
 #line 134 "giscanner/scannerlexer.l"
-{ return DIVEQ; }
+{ return MULEQ; }
        YY_BREAK
 case 52:
 YY_RULE_SETUP
 #line 135 "giscanner/scannerlexer.l"
-{ return MODEQ; }
+{ return DIVEQ; }
        YY_BREAK
 case 53:
 YY_RULE_SETUP
 #line 136 "giscanner/scannerlexer.l"
-{ return XOREQ; }
+{ return MODEQ; }
        YY_BREAK
 case 54:
 YY_RULE_SETUP
 #line 137 "giscanner/scannerlexer.l"
-{ return ANDEQ; }
+{ return XOREQ; }
        YY_BREAK
 case 55:
 YY_RULE_SETUP
 #line 138 "giscanner/scannerlexer.l"
-{ return OREQ; }
+{ return ANDEQ; }
        YY_BREAK
 case 56:
 YY_RULE_SETUP
 #line 139 "giscanner/scannerlexer.l"
-{ return SL; }
+{ return OREQ; }
        YY_BREAK
 case 57:
 YY_RULE_SETUP
 #line 140 "giscanner/scannerlexer.l"
-{ return SR; }
+{ return SL; }
        YY_BREAK
 case 58:
 YY_RULE_SETUP
 #line 141 "giscanner/scannerlexer.l"
-{ return SLEQ; }
+{ return SR; }
        YY_BREAK
 case 59:
 YY_RULE_SETUP
 #line 142 "giscanner/scannerlexer.l"
-{ return SREQ; }
+{ return SLEQ; }
        YY_BREAK
 case 60:
 YY_RULE_SETUP
 #line 143 "giscanner/scannerlexer.l"
-{ return EQ; }
+{ return SREQ; }
        YY_BREAK
 case 61:
 YY_RULE_SETUP
 #line 144 "giscanner/scannerlexer.l"
-{ return NOTEQ; }
+{ return EQ; }
        YY_BREAK
 case 62:
 YY_RULE_SETUP
 #line 145 "giscanner/scannerlexer.l"
-{ return LTEQ; }
+{ return NOTEQ; }
        YY_BREAK
 case 63:
 YY_RULE_SETUP
 #line 146 "giscanner/scannerlexer.l"
-{ return GTEQ; }
+{ return LTEQ; }
        YY_BREAK
 case 64:
 YY_RULE_SETUP
 #line 147 "giscanner/scannerlexer.l"
-{ return ANDAND; }
+{ return GTEQ; }
        YY_BREAK
 case 65:
 YY_RULE_SETUP
 #line 148 "giscanner/scannerlexer.l"
-{ return OROR; }
+{ return ANDAND; }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
 #line 149 "giscanner/scannerlexer.l"
-{ return PLUSPLUS; }
+{ return OROR; }
        YY_BREAK
 case 67:
 YY_RULE_SETUP
 #line 150 "giscanner/scannerlexer.l"
-{ return MINUSMINUS; }
+{ return PLUSPLUS; }
        YY_BREAK
 case 68:
 YY_RULE_SETUP
 #line 151 "giscanner/scannerlexer.l"
-{ return ','; }
+{ return MINUSMINUS; }
        YY_BREAK
 case 69:
 YY_RULE_SETUP
 #line 152 "giscanner/scannerlexer.l"
-{ return ARROW; }
+{ return ','; }
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 154 "giscanner/scannerlexer.l"
-{ if (!parse_ignored_macro()) REJECT; }
+#line 153 "giscanner/scannerlexer.l"
+{ return ARROW; }
        YY_BREAK
 case 71:
 YY_RULE_SETUP
@@ -1727,17 +1803,17 @@ YY_RULE_SETUP
 case 77:
 YY_RULE_SETUP
 #line 161 "giscanner/scannerlexer.l"
-{ return CONST; }
+{ if (!parse_ignored_macro()) REJECT; }
        YY_BREAK
 case 78:
 YY_RULE_SETUP
 #line 162 "giscanner/scannerlexer.l"
-{ return EXTENSION; }
+{ return CONST; }
        YY_BREAK
 case 79:
 YY_RULE_SETUP
 #line 163 "giscanner/scannerlexer.l"
-{ return INLINE; }
+{ return EXTENSION; }
        YY_BREAK
 case 80:
 YY_RULE_SETUP
@@ -1747,22 +1823,22 @@ YY_RULE_SETUP
 case 81:
 YY_RULE_SETUP
 #line 165 "giscanner/scannerlexer.l"
-{ if (!parse_ignored_macro()) REJECT; }
+{ return INLINE; }
        YY_BREAK
 case 82:
 YY_RULE_SETUP
 #line 166 "giscanner/scannerlexer.l"
-{ /* Ignore */ }
+{ if (!parse_ignored_macro()) REJECT; }
        YY_BREAK
 case 83:
 YY_RULE_SETUP
 #line 167 "giscanner/scannerlexer.l"
-{ return SIGNED; }
+{ /* Ignore */ }
        YY_BREAK
 case 84:
 YY_RULE_SETUP
 #line 168 "giscanner/scannerlexer.l"
-{ return RESTRICT; }
+{ return SIGNED; }
        YY_BREAK
 case 85:
 YY_RULE_SETUP
@@ -1772,12 +1848,12 @@ YY_RULE_SETUP
 case 86:
 YY_RULE_SETUP
 #line 170 "giscanner/scannerlexer.l"
-{ if (!parse_ignored_macro()) REJECT; }
+{ return RESTRICT; }
        YY_BREAK
 case 87:
 YY_RULE_SETUP
 #line 171 "giscanner/scannerlexer.l"
-{ return VOLATILE; }
+{ if (!parse_ignored_macro()) REJECT; }
        YY_BREAK
 case 88:
 YY_RULE_SETUP
@@ -1787,303 +1863,344 @@ YY_RULE_SETUP
 case 89:
 YY_RULE_SETUP
 #line 173 "giscanner/scannerlexer.l"
-{ return BOOL; }
+{ return VOLATILE; }
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 175 "giscanner/scannerlexer.l"
-{ return INTL_CONST; }
+#line 174 "giscanner/scannerlexer.l"
+{ return BOOL; }
        YY_BREAK
 case 91:
+/* rule 91 can match eol */
 YY_RULE_SETUP
-#line 176 "giscanner/scannerlexer.l"
-{ return INTUL_CONST; }
+#line 175 "giscanner/scannerlexer.l"
+{ /* Ignore */ }
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 178 "giscanner/scannerlexer.l"
-{ return BOOLEAN; }
+#line 176 "giscanner/scannerlexer.l"
+{ /* Ignore */ }
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 179 "giscanner/scannerlexer.l"
-{ return BOOLEAN; }
+#line 177 "giscanner/scannerlexer.l"
+{ /* Ignore */ }
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 180 "giscanner/scannerlexer.l"
-{ return BOOLEAN; }
+#line 178 "giscanner/scannerlexer.l"
+{ /* Ignore */ }
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 181 "giscanner/scannerlexer.l"
-{ return BOOLEAN; }
+#line 179 "giscanner/scannerlexer.l"
+{ /* ignore */ }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 183 "giscanner/scannerlexer.l"
-{ if (scanner->macro_scan) return check_identifier(scanner, yytext); else REJECT; }
+#line 180 "giscanner/scannerlexer.l"
+{ /* ignore */ }
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 185 "giscanner/scannerlexer.l"
-{ if (!parse_ignored_macro()) REJECT; }
+#line 181 "giscanner/scannerlexer.l"
+{ return INT; }
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 186 "giscanner/scannerlexer.l"
-{ return AUTO; }
+#line 184 "giscanner/scannerlexer.l"
+{ return INTL_CONST; }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 187 "giscanner/scannerlexer.l"
-{ return BREAK; }
+#line 185 "giscanner/scannerlexer.l"
+{ return INTUL_CONST; }
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 188 "giscanner/scannerlexer.l"
-{ return CASE; }
+#line 187 "giscanner/scannerlexer.l"
+{ return BOOLEAN; }
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 189 "giscanner/scannerlexer.l"
-{ return CHAR; }
+#line 188 "giscanner/scannerlexer.l"
+{ return BOOLEAN; }
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 190 "giscanner/scannerlexer.l"
-{ return CONST; }
+#line 189 "giscanner/scannerlexer.l"
+{ return BOOLEAN; }
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 191 "giscanner/scannerlexer.l"
-{ return CONTINUE; }
+#line 190 "giscanner/scannerlexer.l"
+{ return BOOLEAN; }
        YY_BREAK
 case 104:
 YY_RULE_SETUP
 #line 192 "giscanner/scannerlexer.l"
-{ return DEFAULT; }
+{ if (scanner->macro_scan) return check_identifier(scanner, yytext); else REJECT; }
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 193 "giscanner/scannerlexer.l"
-{ return DO; }
+#line 194 "giscanner/scannerlexer.l"
+{ if (!parse_ignored_macro()) REJECT; }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 194 "giscanner/scannerlexer.l"
-{ return DOUBLE; }
+#line 195 "giscanner/scannerlexer.l"
+{ return AUTO; }
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 195 "giscanner/scannerlexer.l"
-{ return ELSE; }
+#line 196 "giscanner/scannerlexer.l"
+{ return BREAK; }
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 196 "giscanner/scannerlexer.l"
-{ return ENUM; }
+#line 197 "giscanner/scannerlexer.l"
+{ return CASE; }
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 197 "giscanner/scannerlexer.l"
-{ return EXTERN; }
+#line 198 "giscanner/scannerlexer.l"
+{ return CHAR; }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 198 "giscanner/scannerlexer.l"
-{ return FLOAT; }
+#line 199 "giscanner/scannerlexer.l"
+{ return CONST; }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 199 "giscanner/scannerlexer.l"
-{ return FOR; }
+#line 200 "giscanner/scannerlexer.l"
+{ return CONTINUE; }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 200 "giscanner/scannerlexer.l"
-{ return GOTO; }
+#line 201 "giscanner/scannerlexer.l"
+{ return DEFAULT; }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 201 "giscanner/scannerlexer.l"
-{ return IF; }
+#line 202 "giscanner/scannerlexer.l"
+{ return DO; }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 202 "giscanner/scannerlexer.l"
-{ return INLINE; }
+#line 203 "giscanner/scannerlexer.l"
+{ return DOUBLE; }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 203 "giscanner/scannerlexer.l"
-{ return INT; }
+#line 204 "giscanner/scannerlexer.l"
+{ return ELSE; }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 204 "giscanner/scannerlexer.l"
-{ return INT; }
+#line 205 "giscanner/scannerlexer.l"
+{ return ENUM; }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 205 "giscanner/scannerlexer.l"
-{ return INT; }
+#line 206 "giscanner/scannerlexer.l"
+{ return EXTERN; }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 206 "giscanner/scannerlexer.l"
-{ return INT; }
+#line 207 "giscanner/scannerlexer.l"
+{ return FLOAT; }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 207 "giscanner/scannerlexer.l"
-{ return INT; }
+#line 208 "giscanner/scannerlexer.l"
+{ return FOR; }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 208 "giscanner/scannerlexer.l"
-{ return LONG; }
+#line 209 "giscanner/scannerlexer.l"
+{ return GOTO; }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 209 "giscanner/scannerlexer.l"
-{ return REGISTER; }
+#line 210 "giscanner/scannerlexer.l"
+{ return IF; }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 210 "giscanner/scannerlexer.l"
-{ return RESTRICT; }
+#line 211 "giscanner/scannerlexer.l"
+{ return INLINE; }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 211 "giscanner/scannerlexer.l"
-{ return RETURN; }
+#line 212 "giscanner/scannerlexer.l"
+{ return INT; }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 212 "giscanner/scannerlexer.l"
-{ return SHORT; }
+#line 213 "giscanner/scannerlexer.l"
+{ return INT; }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 213 "giscanner/scannerlexer.l"
-{ return SIGNED; }
+#line 214 "giscanner/scannerlexer.l"
+{ return INT; }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 214 "giscanner/scannerlexer.l"
-{ return SIZEOF; }
+#line 215 "giscanner/scannerlexer.l"
+{ return INT; }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 215 "giscanner/scannerlexer.l"
-{ return STATIC; }
+#line 216 "giscanner/scannerlexer.l"
+{ return INT; }
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 216 "giscanner/scannerlexer.l"
-{ return STRUCT; }
+#line 217 "giscanner/scannerlexer.l"
+{ return LONG; }
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 217 "giscanner/scannerlexer.l"
-{ return SWITCH; }
+#line 218 "giscanner/scannerlexer.l"
+{ return REGISTER; }
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 218 "giscanner/scannerlexer.l"
-{ return TYPEDEF; }
+#line 219 "giscanner/scannerlexer.l"
+{ return RESTRICT; }
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 219 "giscanner/scannerlexer.l"
-{ return UNION; }
+#line 220 "giscanner/scannerlexer.l"
+{ return RETURN; }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 220 "giscanner/scannerlexer.l"
-{ return UNSIGNED; }
+#line 221 "giscanner/scannerlexer.l"
+{ return SHORT; }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 221 "giscanner/scannerlexer.l"
-{ return VOID; }
+#line 222 "giscanner/scannerlexer.l"
+{ return SIGNED; }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 222 "giscanner/scannerlexer.l"
-{ return VOLATILE; }
+#line 223 "giscanner/scannerlexer.l"
+{ return SIZEOF; }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 223 "giscanner/scannerlexer.l"
-{ return WHILE; }
+#line 224 "giscanner/scannerlexer.l"
+{ return STATIC; }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
 #line 225 "giscanner/scannerlexer.l"
-{ return check_identifier(scanner, yytext); }
+{ return STRUCT; }
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 227 "giscanner/scannerlexer.l"
-{ return INTEGER; }
+#line 226 "giscanner/scannerlexer.l"
+{ return SWITCH; }
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 228 "giscanner/scannerlexer.l"
-{ return INTEGER; }
+#line 227 "giscanner/scannerlexer.l"
+{ return TYPEDEF; }
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 229 "giscanner/scannerlexer.l"
-{ return INTEGER; }
+#line 228 "giscanner/scannerlexer.l"
+{ return UNION; }
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 231 "giscanner/scannerlexer.l"
-{ return FLOATING; }
+#line 229 "giscanner/scannerlexer.l"
+{ return UNSIGNED; }
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 232 "giscanner/scannerlexer.l"
-{ return FLOATING; }
+#line 230 "giscanner/scannerlexer.l"
+{ return VOID; }
        YY_BREAK
 case 142:
-/* rule 142 can match eol */
 YY_RULE_SETUP
-#line 234 "giscanner/scannerlexer.l"
-{ return CHARACTER; }
+#line 231 "giscanner/scannerlexer.l"
+{ return VOLATILE; }
        YY_BREAK
 case 143:
-/* rule 143 can match eol */
 YY_RULE_SETUP
-#line 235 "giscanner/scannerlexer.l"
-{ return CHARACTER; }
+#line 232 "giscanner/scannerlexer.l"
+{ return WHILE; }
        YY_BREAK
 case 144:
-/* rule 144 can match eol */
 YY_RULE_SETUP
-#line 237 "giscanner/scannerlexer.l"
-{ return STRING; }
+#line 234 "giscanner/scannerlexer.l"
+{ return check_identifier(scanner, yytext); }
        YY_BREAK
 case 145:
-/* rule 145 can match eol */
 YY_RULE_SETUP
-#line 238 "giscanner/scannerlexer.l"
-{ return STRING; }
+#line 236 "giscanner/scannerlexer.l"
+{ return INTEGER; }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
+#line 237 "giscanner/scannerlexer.l"
+{ return INTEGER; }
+       YY_BREAK
+case 147:
+YY_RULE_SETUP
+#line 238 "giscanner/scannerlexer.l"
+{ return INTEGER; }
+       YY_BREAK
+case 148:
+YY_RULE_SETUP
 #line 240 "giscanner/scannerlexer.l"
+{ return FLOATING; }
+       YY_BREAK
+case 149:
+YY_RULE_SETUP
+#line 241 "giscanner/scannerlexer.l"
+{ return FLOATING; }
+       YY_BREAK
+case 150:
+/* rule 150 can match eol */
+YY_RULE_SETUP
+#line 243 "giscanner/scannerlexer.l"
+{ return CHARACTER; }
+       YY_BREAK
+case 151:
+/* rule 151 can match eol */
+YY_RULE_SETUP
+#line 244 "giscanner/scannerlexer.l"
+{ return CHARACTER; }
+       YY_BREAK
+case 152:
+/* rule 152 can match eol */
+YY_RULE_SETUP
+#line 246 "giscanner/scannerlexer.l"
+{ return STRING; }
+       YY_BREAK
+case 153:
+/* rule 153 can match eol */
+YY_RULE_SETUP
+#line 247 "giscanner/scannerlexer.l"
+{ return STRING; }
+       YY_BREAK
+case 154:
+YY_RULE_SETUP
+#line 249 "giscanner/scannerlexer.l"
 { print_error(scanner); }
        YY_BREAK
-case 147:
+case 155:
 YY_RULE_SETUP
-#line 242 "giscanner/scannerlexer.l"
+#line 251 "giscanner/scannerlexer.l"
 ECHO;
        YY_BREAK
-#line 2087 "scannerlexer.c"
+#line 2204 "scannerlexer.c"
                        case YY_STATE_EOF(INITIAL):
                                yyterminate();
 
@@ -2344,7 +2461,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 >= 598 )
+                       if ( yy_current_state >= 674 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2367,11 +2484,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 >= 598 )
+               if ( yy_current_state >= 674 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 597);
+       yy_is_jam = (yy_current_state == 673);
        if ( ! yy_is_jam )
                *(yy_state_ptr)++ = yy_current_state;
 
@@ -3014,7 +3131,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 242 "giscanner/scannerlexer.l"
+#line 251 "giscanner/scannerlexer.l"
 
 
 
@@ -3166,13 +3283,17 @@ _realpath (const char *path)
  **/
 
 static void
-process_linemarks (GISourceScanner *scanner)
+process_linemarks (GISourceScanner *scanner, gboolean has_line)
 {
        char escaped_filename[1025];
        char *filename;
-        char *real;
+       char *real;
+
+       if (has_line)
+               sscanf(yytext, "#line %d \"%1024[^\"]\"", &lineno, escaped_filename);
+       else
+               sscanf(yytext, "# %d \"%1024[^\"]\"", &lineno, escaped_filename);
 
-       sscanf(yytext, "# %d \"%1024[^\"]\"", &lineno, escaped_filename);
        filename = g_strcompress (escaped_filename);
 
         real = _realpath (filename);
index 299ba71..6c29b08 100644 (file)
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.7.  */
+/* A Bison parser, made by GNU Bison 3.0.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
-   
+
+   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
@@ -26,7 +26,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.7"
+#define YYBISON_VERSION "3.0.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -62,8 +62,7 @@
 
 
 /* Copy the first part of user declarations.  */
-/* Line 371 of yacc.c  */
-#line 29 "giscanner/scannerparser.y"
+#line 29 "giscanner/scannerparser.y" /* yacc.c:339  */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -245,14 +244,13 @@ toggle_conditional (GISourceScanner *scanner)
 }
 
 
-/* Line 371 of yacc.c  */
-#line 250 "scannerparser.c"
+#line 248 "scannerparser.c" /* yacc.c:339  */
 
-# ifndef YY_NULL
+# ifndef YY_NULLPTR
 #  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULL nullptr
+#   define YY_NULLPTR nullptr
 #  else
-#   define YY_NULL 0
+#   define YY_NULLPTR 0
 #  endif
 # endif
 
@@ -268,7 +266,7 @@ toggle_conditional (GISourceScanner *scanner)
    by #include "y.tab.h".  */
 #ifndef YY_YY_SCANNERPARSER_H_INCLUDED
 # define YY_YY_SCANNERPARSER_H_INCLUDED
-/* Enabling traces.  */
+/* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
 #endif
@@ -276,90 +274,89 @@ toggle_conditional (GISourceScanner *scanner)
 extern int yydebug;
 #endif
 
-/* Tokens.  */
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     IDENTIFIER = 258,
-     TYPEDEF_NAME = 259,
-     INTEGER = 260,
-     FLOATING = 261,
-     BOOLEAN = 262,
-     CHARACTER = 263,
-     STRING = 264,
-     INTL_CONST = 265,
-     INTUL_CONST = 266,
-     ELLIPSIS = 267,
-     ADDEQ = 268,
-     SUBEQ = 269,
-     MULEQ = 270,
-     DIVEQ = 271,
-     MODEQ = 272,
-     XOREQ = 273,
-     ANDEQ = 274,
-     OREQ = 275,
-     SL = 276,
-     SR = 277,
-     SLEQ = 278,
-     SREQ = 279,
-     EQ = 280,
-     NOTEQ = 281,
-     LTEQ = 282,
-     GTEQ = 283,
-     ANDAND = 284,
-     OROR = 285,
-     PLUSPLUS = 286,
-     MINUSMINUS = 287,
-     ARROW = 288,
-     AUTO = 289,
-     BOOL = 290,
-     BREAK = 291,
-     CASE = 292,
-     CHAR = 293,
-     CONST = 294,
-     CONTINUE = 295,
-     DEFAULT = 296,
-     DO = 297,
-     DOUBLE = 298,
-     ELSE = 299,
-     ENUM = 300,
-     EXTENSION = 301,
-     EXTERN = 302,
-     FLOAT = 303,
-     FOR = 304,
-     GOTO = 305,
-     IF = 306,
-     INLINE = 307,
-     INT = 308,
-     LONG = 309,
-     REGISTER = 310,
-     RESTRICT = 311,
-     RETURN = 312,
-     SHORT = 313,
-     SIGNED = 314,
-     SIZEOF = 315,
-     STATIC = 316,
-     STRUCT = 317,
-     SWITCH = 318,
-     TYPEDEF = 319,
-     UNION = 320,
-     UNSIGNED = 321,
-     VOID = 322,
-     VOLATILE = 323,
-     WHILE = 324,
-     FUNCTION_MACRO = 325,
-     OBJECT_MACRO = 326,
-     IFDEF_GI_SCANNER = 327,
-     IFNDEF_GI_SCANNER = 328,
-     IFDEF_COND = 329,
-     IFNDEF_COND = 330,
-     IF_COND = 331,
-     ELIF_COND = 332,
-     ELSE_COND = 333,
-     ENDIF_COND = 334
-   };
+  enum yytokentype
+  {
+    IDENTIFIER = 258,
+    TYPEDEF_NAME = 259,
+    INTEGER = 260,
+    FLOATING = 261,
+    BOOLEAN = 262,
+    CHARACTER = 263,
+    STRING = 264,
+    INTL_CONST = 265,
+    INTUL_CONST = 266,
+    ELLIPSIS = 267,
+    ADDEQ = 268,
+    SUBEQ = 269,
+    MULEQ = 270,
+    DIVEQ = 271,
+    MODEQ = 272,
+    XOREQ = 273,
+    ANDEQ = 274,
+    OREQ = 275,
+    SL = 276,
+    SR = 277,
+    SLEQ = 278,
+    SREQ = 279,
+    EQ = 280,
+    NOTEQ = 281,
+    LTEQ = 282,
+    GTEQ = 283,
+    ANDAND = 284,
+    OROR = 285,
+    PLUSPLUS = 286,
+    MINUSMINUS = 287,
+    ARROW = 288,
+    AUTO = 289,
+    BOOL = 290,
+    BREAK = 291,
+    CASE = 292,
+    CHAR = 293,
+    CONST = 294,
+    CONTINUE = 295,
+    DEFAULT = 296,
+    DO = 297,
+    DOUBLE = 298,
+    ELSE = 299,
+    ENUM = 300,
+    EXTENSION = 301,
+    EXTERN = 302,
+    FLOAT = 303,
+    FOR = 304,
+    GOTO = 305,
+    IF = 306,
+    INLINE = 307,
+    INT = 308,
+    LONG = 309,
+    REGISTER = 310,
+    RESTRICT = 311,
+    RETURN = 312,
+    SHORT = 313,
+    SIGNED = 314,
+    SIZEOF = 315,
+    STATIC = 316,
+    STRUCT = 317,
+    SWITCH = 318,
+    TYPEDEF = 319,
+    UNION = 320,
+    UNSIGNED = 321,
+    VOID = 322,
+    VOLATILE = 323,
+    WHILE = 324,
+    FUNCTION_MACRO = 325,
+    OBJECT_MACRO = 326,
+    IFDEF_GI_SCANNER = 327,
+    IFNDEF_GI_SCANNER = 328,
+    IFDEF_COND = 329,
+    IFNDEF_COND = 330,
+    IF_COND = 331,
+    ELIF_COND = 332,
+    ELSE_COND = 333,
+    ENDIF_COND = 334
+  };
 #endif
 /* Tokens.  */
 #define IDENTIFIER 258
@@ -440,13 +437,12 @@ extern int yydebug;
 #define ELSE_COND 333
 #define ENDIF_COND 334
 
-
-
+/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
 {
-/* Line 387 of yacc.c  */
-#line 212 "giscanner/scannerparser.y"
+#line 212 "giscanner/scannerparser.y" /* yacc.c:355  */
 
   char *str;
   GList *list;
@@ -457,37 +453,22 @@ typedef union YYSTYPE
   FunctionSpecifier function_specifier;
   UnaryOperator unary_operator;
 
-
-/* Line 387 of yacc.c  */
-#line 463 "scannerparser.c"
-} YYSTYPE;
+#line 457 "scannerparser.c" /* yacc.c:355  */
+};
 # define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
+
 extern YYSTYPE yylval;
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
 int yyparse (GISourceScanner* scanner);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
 #endif /* !YY_YY_SCANNERPARSER_H_INCLUDED  */
 
 /* Copy the second part of user declarations.  */
 
-/* Line 390 of yacc.c  */
-#line 491 "scannerparser.c"
+#line 472 "scannerparser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -501,11 +482,8 @@ typedef unsigned char yytype_uint8;
 
 #ifdef YYTYPE_INT8
 typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
 #else
-typedef short int yytype_int8;
+typedef signed char yytype_int8;
 #endif
 
 #ifdef YYTYPE_UINT16
@@ -525,8 +503,7 @@ typedef short int yytype_int16;
 #  define YYSIZE_T __SIZE_TYPE__
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+# elif ! defined YYSIZE_T
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
@@ -548,6 +525,33 @@ typedef short int yytype_int16;
 # endif
 #endif
 
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__                                               \
+      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
+     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+# else
+#  define YY_ATTRIBUTE(Spec) /* empty */
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+# endif
+#endif
+
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
 # define YYUSE(E) ((void) (E))
@@ -555,24 +559,26 @@ typedef short int yytype_int16;
 # define YYUSE(E) /* empty */
 #endif
 
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(N) (N)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+    _Pragma ("GCC diagnostic pop")
 #else
-static int
-YYID (yyi)
-    int yyi;
+# define YY_INITIAL_VALUE(Value) Value
 #endif
-{
-  return yyi;
-}
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
 #endif
 
+
 #if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
@@ -590,8 +596,7 @@ YYID (yyi)
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 #     ifndef EXIT_SUCCESS
@@ -603,8 +608,8 @@ YYID (yyi)
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+   /* Pacify GCC's 'empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
@@ -620,7 +625,7 @@ YYID (yyi)
 #  endif
 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
-            && (defined YYFREE || defined free)))
+             && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #   ifndef EXIT_SUCCESS
 #    define EXIT_SUCCESS 0
@@ -628,15 +633,13 @@ YYID (yyi)
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined malloc && ! defined EXIT_SUCCESS
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined free && ! defined EXIT_SUCCESS
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
@@ -646,7 +649,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
@@ -671,16 +674,16 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-       Stack = &yyptr->Stack_alloc;                                    \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (YYID (0))
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
+    do                                                                  \
+      {                                                                 \
+        YYSIZE_T yynewbytes;                                            \
+        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+        Stack = &yyptr->Stack_alloc;                                    \
+        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+        yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                 \
+    while (0)
 
 #endif
 
@@ -699,7 +702,7 @@ union yyalloc
           for (yyi = 0; yyi < (Count); yyi++)   \
             (Dst)[yyi] = (Src)[yyi];            \
         }                                       \
-      while (YYID (0))
+      while (0)
 #  endif
 # endif
 #endif /* !YYCOPY_NEEDED */
@@ -715,17 +718,19 @@ union yyalloc
 #define YYNNTS  77
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  256
-/* YYNRULES -- Number of states.  */
+/* YYNSTATES -- Number of states.  */
 #define YYNSTATES  426
 
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+   by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   334
 
-#define YYTRANSLATE(YYX)                                               \
+#define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, without out-of-bounds checking.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -765,125 +770,7 @@ static const yytype_uint8 yytranslate[] =
 };
 
 #if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint16 yyprhs[] =
-{
-       0,     0,     3,     5,     7,     9,    11,    13,    15,    19,
-      26,    28,    31,    33,    35,    37,    39,    44,    49,    53,
-      57,    61,    64,    67,    69,    73,    75,    78,    81,    84,
-      89,    94,    97,   102,   104,   106,   108,   110,   112,   114,
-     116,   121,   123,   127,   131,   135,   137,   141,   145,   147,
-     151,   155,   157,   161,   165,   169,   173,   175,   179,   183,
-     185,   189,   191,   195,   197,   201,   203,   207,   209,   213,
-     215,   221,   223,   227,   229,   231,   233,   235,   237,   239,
-     241,   243,   245,   247,   249,   251,   255,   258,   260,   264,
-     267,   270,   272,   275,   277,   280,   282,   285,   287,   289,
-     293,   295,   299,   301,   303,   305,   307,   309,   311,   313,
-     315,   317,   319,   321,   323,   325,   327,   329,   331,   333,
-     335,   341,   346,   349,   351,   353,   355,   358,   362,   365,
-     367,   370,   372,   374,   378,   379,   381,   384,   388,   394,
-     399,   406,   412,   415,   417,   418,   421,   425,   427,   431,
-     433,   435,   437,   439,   441,   444,   446,   448,   452,   457,
-     461,   466,   471,   475,   478,   480,   484,   487,   489,   492,
-     494,   498,   501,   504,   506,   508,   510,   514,   516,   519,
-     521,   523,   526,   530,   533,   537,   541,   546,   549,   553,
-     557,   562,   564,   566,   570,   575,   577,   581,   583,   585,
-     587,   589,   591,   593,   597,   602,   606,   609,   613,   615,
-     618,   620,   622,   624,   627,   633,   641,   647,   653,   661,
-     668,   676,   684,   693,   701,   710,   719,   729,   733,   736,
-     739,   742,   746,   748,   751,   753,   755,   757,   762,   766,
-     768,   771,   773,   775,   780,   783,   785,   787,   789,   791,
-     793,   795,   797,   799,   801,   803,   805
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int16 yyrhs[] =
-{
-     171,     0,    -1,   107,    -1,     5,    -1,     7,    -1,     8,
-      -1,     6,    -1,   106,    -1,    80,   127,    81,    -1,    46,
-      80,    82,   165,    83,    81,    -1,     9,    -1,   106,     9,
-      -1,     3,    -1,   107,    -1,   159,    -1,   105,    -1,   109,
-      84,   127,    85,    -1,   109,    80,   110,    81,    -1,   109,
-      80,    81,    -1,   109,    86,   108,    -1,   109,    33,   108,
-      -1,   109,    31,    -1,   109,    32,    -1,   125,    -1,   110,
-      87,   125,    -1,   109,    -1,    31,   111,    -1,    32,   111,
-      -1,   112,   113,    -1,    10,    80,   111,    81,    -1,    11,
-      80,   111,    81,    -1,    60,   111,    -1,    60,    80,   156,
-      81,    -1,    88,    -1,    89,    -1,    90,    -1,    91,    -1,
-      92,    -1,    93,    -1,   111,    -1,    80,   156,    81,   113,
-      -1,   113,    -1,   114,    89,   113,    -1,   114,    94,   113,
-      -1,   114,    95,   113,    -1,   114,    -1,   115,    90,   114,
-      -1,   115,    91,   114,    -1,   115,    -1,   116,    21,   115,
-      -1,   116,    22,   115,    -1,   116,    -1,   117,    96,   116,
-      -1,   117,    97,   116,    -1,   117,    27,   116,    -1,   117,
-      28,   116,    -1,   117,    -1,   118,    25,   117,    -1,   118,
-      26,   117,    -1,   118,    -1,   119,    88,   118,    -1,   119,
-      -1,   120,    98,   119,    -1,   120,    -1,   121,    99,   120,
-      -1,   121,    -1,   122,    29,   121,    -1,   122,    -1,   123,
-      30,   122,    -1,   123,    -1,   123,   100,   127,   101,   127,
-      -1,   124,    -1,   111,   126,   125,    -1,   102,    -1,    15,
-      -1,    16,    -1,    17,    -1,    13,    -1,    14,    -1,    23,
-      -1,    24,    -1,    19,    -1,    18,    -1,    20,    -1,   125,
-      -1,   127,    87,   125,    -1,    46,   127,    -1,   124,    -1,
-     130,   131,   103,    -1,   130,   103,    -1,   133,   130,    -1,
-     133,    -1,   134,   130,    -1,   134,    -1,   147,   130,    -1,
-     147,    -1,   148,   130,    -1,   148,    -1,   132,    -1,   131,
-      87,   132,    -1,   149,    -1,   149,   102,   160,    -1,    64,
-      -1,    47,    -1,    61,    -1,    34,    -1,    55,    -1,    67,
-      -1,    38,    -1,    58,    -1,    53,    -1,    54,    -1,    48,
-      -1,    43,    -1,    59,    -1,    66,    -1,    35,    -1,   135,
-      -1,   142,    -1,   159,    -1,   136,   108,    82,   137,    83,
-      -1,   136,    82,   137,    83,    -1,   136,   108,    -1,    62,
-      -1,    65,    -1,   138,    -1,   137,   138,    -1,   139,   140,
-     103,    -1,   134,   139,    -1,   134,    -1,   147,   139,    -1,
-     147,    -1,   141,    -1,   140,    87,   141,    -1,    -1,   149,
-      -1,   101,   128,    -1,   149,   101,   128,    -1,   143,   108,
-      82,   144,    83,    -1,   143,    82,   144,    83,    -1,   143,
-     108,    82,   144,    87,    83,    -1,   143,    82,   144,    87,
-      83,    -1,   143,   108,    -1,    45,    -1,    -1,   145,   146,
-      -1,   144,    87,   146,    -1,   107,    -1,   107,   102,   128,
-      -1,    39,    -1,    56,    -1,    46,    -1,    68,    -1,    52,
-      -1,   151,   150,    -1,   150,    -1,   107,    -1,    80,   149,
-      81,    -1,   150,    84,   125,    85,    -1,   150,    84,    85,
-      -1,   150,    80,   153,    81,    -1,   150,    80,   155,    81,
-      -1,   150,    80,    81,    -1,    89,   152,    -1,    89,    -1,
-      89,   152,   151,    -1,    89,   151,    -1,   147,    -1,   152,
-     147,    -1,   154,    -1,   153,    87,   154,    -1,   130,   149,
-      -1,   130,   157,    -1,   130,    -1,    12,    -1,   107,    -1,
-     155,    87,   107,    -1,   139,    -1,   139,   157,    -1,   151,
-      -1,   158,    -1,   151,   158,    -1,    80,   157,    81,    -1,
-      84,    85,    -1,    84,   125,    85,    -1,   158,    84,    85,
-      -1,   158,    84,   125,    85,    -1,    80,    81,    -1,    80,
-     153,    81,    -1,   158,    80,    81,    -1,   158,    80,   153,
-      81,    -1,     4,    -1,   125,    -1,    82,   161,    83,    -1,
-      82,   161,    87,    83,    -1,   160,    -1,   161,    87,   160,
-      -1,   163,    -1,   164,    -1,   167,    -1,   168,    -1,   169,
-      -1,   170,    -1,   108,   101,   162,    -1,    37,   128,   101,
-     162,    -1,    41,   101,   162,    -1,    82,    83,    -1,    82,
-     165,    83,    -1,   166,    -1,   165,   166,    -1,   129,    -1,
-     162,    -1,   103,    -1,   127,   103,    -1,    51,    80,   127,
-      81,   162,    -1,    51,    80,   127,    81,   162,    44,   162,
-      -1,    63,    80,   127,    81,   162,    -1,    69,    80,   127,
-      81,   162,    -1,    42,   162,    69,    80,   127,    81,   103,
-      -1,    49,    80,   103,   103,    81,   162,    -1,    49,    80,
-     127,   103,   103,    81,   162,    -1,    49,    80,   103,   127,
-     103,    81,   162,    -1,    49,    80,   127,   103,   127,   103,
-      81,   162,    -1,    49,    80,   103,   103,   127,    81,   162,
-      -1,    49,    80,   127,   103,   103,   127,    81,   162,    -1,
-      49,    80,   103,   127,   103,   127,    81,   162,    -1,    49,
-      80,   127,   103,   127,   103,   127,    81,   162,    -1,    50,
-     108,   103,    -1,    40,   103,    -1,    36,   103,    -1,    57,
-     103,    -1,    57,   127,   103,    -1,   172,    -1,   171,   172,
-      -1,   173,    -1,   129,    -1,   180,    -1,   130,   149,   174,
-     164,    -1,   130,   149,   164,    -1,   129,    -1,   174,   129,
-      -1,    70,    -1,    71,    -1,   175,    80,   155,    81,    -1,
-     176,   128,    -1,    72,    -1,    73,    -1,    74,    -1,    75,
-      -1,    76,    -1,    77,    -1,    78,    -1,    79,    -1,   177,
-      -1,   178,    -1,   179,    -1,     1,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
        0,   304,   304,   313,   329,   335,   341,   348,   349,   353,
@@ -958,13 +845,13 @@ static const char *const yytname[] =
   "iteration_statement", "jump_statement", "translation_unit",
   "external_declaration", "function_definition", "declaration_list",
   "function_macro", "object_macro", "function_macro_define",
-  "object_macro_define", "preproc_conditional", "macro", YY_NULL
+  "object_macro_define", "preproc_conditional", "macro", YY_NULLPTR
 };
 #endif
 
 # ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+   (internal) symbol number NUM (which must be that of a token).  */
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
@@ -981,134 +868,18 @@ static const yytype_uint16 yytoknum[] =
 };
 # endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,   104,   105,   105,   105,   105,   105,   105,   105,   105,
-     106,   106,   107,   108,   108,   109,   109,   109,   109,   109,
-     109,   109,   109,   110,   110,   111,   111,   111,   111,   111,
-     111,   111,   111,   112,   112,   112,   112,   112,   112,   113,
-     113,   114,   114,   114,   114,   115,   115,   115,   116,   116,
-     116,   117,   117,   117,   117,   117,   118,   118,   118,   119,
-     119,   120,   120,   121,   121,   122,   122,   123,   123,   124,
-     124,   125,   125,   126,   126,   126,   126,   126,   126,   126,
-     126,   126,   126,   126,   127,   127,   127,   128,   129,   129,
-     130,   130,   130,   130,   130,   130,   130,   130,   131,   131,
-     132,   132,   133,   133,   133,   133,   133,   134,   134,   134,
-     134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
-     135,   135,   135,   136,   136,   137,   137,   138,   139,   139,
-     139,   139,   140,   140,   141,   141,   141,   141,   142,   142,
-     142,   142,   142,   143,   145,   144,   144,   146,   146,   147,
-     147,   147,   147,   148,   149,   149,   150,   150,   150,   150,
-     150,   150,   150,   151,   151,   151,   151,   152,   152,   153,
-     153,   154,   154,   154,   154,   155,   155,   156,   156,   157,
-     157,   157,   158,   158,   158,   158,   158,   158,   158,   158,
-     158,   159,   160,   160,   160,   161,   161,   162,   162,   162,
-     162,   162,   162,   163,   163,   163,   164,   164,   165,   165,
-     166,   166,   167,   167,   168,   168,   168,   169,   169,   169,
-     169,   169,   169,   169,   169,   169,   169,   170,   170,   170,
-     170,   170,   171,   171,   172,   172,   172,   173,   173,   174,
-     174,   175,   176,   177,   178,   179,   179,   179,   179,   179,
-     179,   179,   179,   180,   180,   180,   180
-};
+#define YYPACT_NINF -234
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     1,     1,     1,     1,     1,     1,     3,     6,
-       1,     2,     1,     1,     1,     1,     4,     4,     3,     3,
-       3,     2,     2,     1,     3,     1,     2,     2,     2,     4,
-       4,     2,     4,     1,     1,     1,     1,     1,     1,     1,
-       4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
-       3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
-       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,     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
-};
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-234)))
 
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_uint16 yydefact[] =
-{
-       0,   256,   191,   105,   116,   108,   149,   113,   143,   151,
-     103,   112,   153,   110,   111,   106,   150,   109,   114,   104,
-     123,   102,   124,   115,   107,   152,   241,   242,   245,   246,
-     247,   248,   249,   250,   251,   252,   235,     0,    91,    93,
-     117,     0,   118,     0,    95,    97,   119,     0,   232,   234,
-       0,     0,   253,   254,   255,   236,    12,     0,   164,    89,
-     156,     0,    98,   100,   155,     0,    90,    92,     0,    13,
-     122,    14,   144,   142,    94,    96,     1,   233,     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,   244,     0,   167,   166,   163,
-       0,    88,     0,     0,   239,     0,   238,     0,     0,     0,
-     154,   129,     0,   125,   134,   131,     0,     0,     0,   144,
-     175,     0,     0,     0,     0,    26,    27,     0,     0,    31,
-     151,    39,    71,    84,     0,   177,     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,     0,     0,   157,   168,   165,    99,   100,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     206,   212,     2,     0,     0,   210,   119,   211,   197,   198,
-       0,   208,   199,   200,   201,   202,     0,   192,   101,   240,
-     237,   174,   162,   173,     0,   169,     0,   159,     0,   128,
-     121,   126,     0,     0,   132,   135,   130,     0,   139,     0,
-     147,   145,     0,   243,     0,     0,     0,     0,     0,     0,
-       0,    86,    77,    78,    74,    75,    76,    82,    81,    83,
-      79,    80,    73,     0,     8,     0,     0,     0,   179,   178,
-     180,     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,   229,     0,   228,
-       0,     0,     0,     0,     0,   230,     0,     0,     0,     0,
-     213,   207,   209,   195,     0,     0,   171,   179,   172,   160,
-       0,   161,   158,   136,   134,   127,     0,   120,   141,   146,
-       0,   138,     0,   176,    29,    30,     0,    32,    72,    85,
-     187,     0,     0,   183,     0,   181,     0,     0,    40,    17,
-       0,    16,     0,     0,   205,     0,     0,     0,   227,     0,
-     231,     0,     0,   203,   193,     0,   170,   133,   137,   148,
-     140,     0,   188,   182,   184,   189,     0,   185,     0,    24,
-      70,   204,     0,     0,     0,     0,     0,     0,     0,   194,
-     196,     9,   190,   186,     0,     0,     0,     0,     0,     0,
-     214,   216,   217,     0,   219,     0,     0,     0,     0,     0,
-       0,     0,   218,   223,   221,     0,   220,     0,     0,     0,
-     215,   225,   224,   222,     0,   226
-};
+#define YYTABLE_NINF -15
 
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
-{
-      -1,    97,    98,    99,   203,   100,   274,   151,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     152,   153,   263,   204,   115,   205,   125,    61,    62,    38,
-      39,    40,    41,   132,   133,   134,   233,   234,    42,    43,
-     137,   138,   329,    44,    45,   116,    64,    65,   119,   341,
-     225,   141,   156,   342,   270,    46,   218,   314,   207,   208,
-     209,   210,   211,   212,   213,   214,   215,    47,    48,    49,
-     127,    50,    51,    52,    53,    54,    55
-};
+#define yytable_value_is_error(Yytable_value) \
+  0
 
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -234
+  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+     STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
     2506,  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,
@@ -1156,7 +927,57 @@ static const yytype_int16 yypact[] =
     -234,  -234,  -234,  -234,   819,  -234
 };
 
-/* YYPGOTO[NTERM-NUM].  */
+  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+     Performed when YYTABLE does not specify something else to do.  Zero
+     means the default is an error.  */
+static const yytype_uint16 yydefact[] =
+{
+       0,   256,   191,   105,   116,   108,   149,   113,   143,   151,
+     103,   112,   153,   110,   111,   106,   150,   109,   114,   104,
+     123,   102,   124,   115,   107,   152,   241,   242,   245,   246,
+     247,   248,   249,   250,   251,   252,   235,     0,    91,    93,
+     117,     0,   118,     0,    95,    97,   119,     0,   232,   234,
+       0,     0,   253,   254,   255,   236,    12,     0,   164,    89,
+     156,     0,    98,   100,   155,     0,    90,    92,     0,    13,
+     122,    14,   144,   142,    94,    96,     1,   233,     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,   244,     0,   167,   166,   163,
+       0,    88,     0,     0,   239,     0,   238,     0,     0,     0,
+     154,   129,     0,   125,   134,   131,     0,     0,     0,   144,
+     175,     0,     0,     0,     0,    26,    27,     0,     0,    31,
+     151,    39,    71,    84,     0,   177,     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,     0,     0,   157,   168,   165,    99,   100,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     206,   212,     2,     0,     0,   210,   119,   211,   197,   198,
+       0,   208,   199,   200,   201,   202,     0,   192,   101,   240,
+     237,   174,   162,   173,     0,   169,     0,   159,     0,   128,
+     121,   126,     0,     0,   132,   135,   130,     0,   139,     0,
+     147,   145,     0,   243,     0,     0,     0,     0,     0,     0,
+       0,    86,    77,    78,    74,    75,    76,    82,    81,    83,
+      79,    80,    73,     0,     8,     0,     0,     0,   179,   178,
+     180,     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,   229,     0,   228,
+       0,     0,     0,     0,     0,   230,     0,     0,     0,     0,
+     213,   207,   209,   195,     0,     0,   171,   179,   172,   160,
+       0,   161,   158,   136,   134,   127,     0,   120,   141,   146,
+       0,   138,     0,   176,    29,    30,     0,    32,    72,    85,
+     187,     0,     0,   183,     0,   181,     0,     0,    40,    17,
+       0,    16,     0,     0,   205,     0,     0,     0,   227,     0,
+     231,     0,     0,   203,   193,     0,   170,   133,   137,   148,
+     140,     0,   188,   182,   184,   189,     0,   185,     0,    24,
+      70,   204,     0,     0,     0,     0,     0,     0,     0,   194,
+     196,     9,   190,   186,     0,     0,     0,     0,     0,     0,
+     214,   216,   217,     0,   219,     0,     0,     0,     0,     0,
+       0,     0,   218,   223,   221,     0,   220,     0,     0,     0,
+     215,   225,   224,   222,     0,   226
+};
+
+  /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
     -234,  -234,  -234,   -37,   -33,  -234,  -234,    53,  -234,   -86,
@@ -1169,10 +990,22 @@ static const yytype_int16 yypgoto[] =
     -234,  -234,  -234,  -234,  -234,  -234,  -234
 };
 
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -15
+  /* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
+{
+      -1,    97,    98,    99,   203,   100,   274,   151,   102,   103,
+     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+     152,   153,   263,   204,   115,   205,   125,    61,    62,    38,
+      39,    40,    41,   132,   133,   134,   233,   234,    42,    43,
+     137,   138,   329,    44,    45,   116,    64,    65,   119,   341,
+     225,   141,   156,   342,   270,    46,   218,   314,   207,   208,
+     209,   210,   211,   212,   213,   214,   215,    47,    48,    49,
+     127,    50,    51,    52,    53,    54,    55
+};
+
+  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+     positive, shift that token.  If negative, reduce the rule whose
+     number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
       60,   130,   114,   312,    69,   118,    69,    37,    70,   131,
@@ -1457,12 +1290,6 @@ static const yytype_int16 yytable[] =
       18,     0,    19,    20,     0,    21,    22,    23,    24,    25
 };
 
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-234)))
-
-#define yytable_value_is_error(Yytable_value) \
-  YYID (0)
-
 static const yytype_int16 yycheck[] =
 {
       37,    65,    51,   210,    41,    58,    43,     0,    41,    68,
@@ -1747,8 +1574,8 @@ static const yytype_int16 yycheck[] =
       59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68
 };
 
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
+  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+     symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
        0,     1,     4,    34,    35,    38,    39,    43,    45,    46,
@@ -1796,30 +1623,78 @@ static const yytype_uint8 yystos[] =
      162,   162,   162,   162,    81,   162
 };
 
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                (-2)
-#define YYEOF          0
-
-#define YYACCEPT       goto yyacceptlab
-#define YYABORT                goto yyabortlab
-#define YYERROR                goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
-
-#define YYFAIL         goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
+  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,   104,   105,   105,   105,   105,   105,   105,   105,   105,
+     106,   106,   107,   108,   108,   109,   109,   109,   109,   109,
+     109,   109,   109,   110,   110,   111,   111,   111,   111,   111,
+     111,   111,   111,   112,   112,   112,   112,   112,   112,   113,
+     113,   114,   114,   114,   114,   115,   115,   115,   116,   116,
+     116,   117,   117,   117,   117,   117,   118,   118,   118,   119,
+     119,   120,   120,   121,   121,   122,   122,   123,   123,   124,
+     124,   125,   125,   126,   126,   126,   126,   126,   126,   126,
+     126,   126,   126,   126,   127,   127,   127,   128,   129,   129,
+     130,   130,   130,   130,   130,   130,   130,   130,   131,   131,
+     132,   132,   133,   133,   133,   133,   133,   134,   134,   134,
+     134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
+     135,   135,   135,   136,   136,   137,   137,   138,   139,   139,
+     139,   139,   140,   140,   141,   141,   141,   141,   142,   142,
+     142,   142,   142,   143,   145,   144,   144,   146,   146,   147,
+     147,   147,   147,   148,   149,   149,   150,   150,   150,   150,
+     150,   150,   150,   151,   151,   151,   151,   152,   152,   153,
+     153,   154,   154,   154,   154,   155,   155,   156,   156,   157,
+     157,   157,   158,   158,   158,   158,   158,   158,   158,   158,
+     158,   159,   160,   160,   160,   161,   161,   162,   162,   162,
+     162,   162,   162,   163,   163,   163,   164,   164,   165,   165,
+     166,   166,   167,   167,   168,   168,   168,   169,   169,   169,
+     169,   169,   169,   169,   169,   169,   169,   170,   170,   170,
+     170,   170,   171,   171,   172,   172,   172,   173,   173,   174,
+     174,   175,   176,   177,   178,   179,   179,   179,   179,   179,
+     179,   179,   179,   180,   180,   180,   180
+};
+
+  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     1,     1,     1,     1,     1,     1,     3,     6,
+       1,     2,     1,     1,     1,     1,     4,     4,     3,     3,
+       3,     2,     2,     1,     3,     1,     2,     2,     2,     4,
+       4,     2,     4,     1,     1,     1,     1,     1,     1,     1,
+       4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
+       3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
+       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,     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
+};
+
+
+#define yyerrok         (yyerrstatus = 0)
+#define yyclearin       (yychar = YYEMPTY)
+#define YYEMPTY         (-2)
+#define YYEOF           0
+
+#define YYACCEPT        goto yyacceptlab
+#define YYABORT         goto yyabortlab
+#define YYERROR         goto yyerrorlab
+
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
@@ -1836,27 +1711,15 @@ do                                                              \
   else                                                          \
     {                                                           \
       yyerror (scanner, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                 \
-    }                                                          \
-while (YYID (0))
+      YYERROR;                                                  \
+    }                                                           \
+while (0)
 
 /* Error token number */
-#define YYTERROR       1
-#define YYERRCODE      256
-
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
+#define YYTERROR        1
+#define YYERRCODE       256
 
 
-/* YYLEX -- calling `yylex' with the right arguments.  */
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex (scanner)
-#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -1866,58 +1729,47 @@ while (YYID (0))
 #  define YYFPRINTF fprintf
 # endif
 
-# define YYDPRINTF(Args)                       \
-do {                                           \
-  if (yydebug)                                 \
-    YYFPRINTF Args;                            \
-} while (YYID (0))
+# define YYDPRINTF(Args)                        \
+do {                                            \
+  if (yydebug)                                  \
+    YYFPRINTF Args;                             \
+} while (0)
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
-do {                                                                     \
-  if (yydebug)                                                           \
-    {                                                                    \
-      YYFPRINTF (stderr, "%s ", Title);                                          \
-      yy_symbol_print (stderr,                                           \
-                 Type, Value, scanner); \
-      YYFPRINTF (stderr, "\n");                                                  \
-    }                                                                    \
-} while (YYID (0))
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
 
 
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
+do {                                                                      \
+  if (yydebug)                                                            \
+    {                                                                     \
+      YYFPRINTF (stderr, "%s ", Title);                                   \
+      yy_symbol_print (stderr,                                            \
+                  Type, Value, scanner); \
+      YYFPRINTF (stderr, "\n");                                           \
+    }                                                                     \
+} while (0)
+
+
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT.  |
+`----------------------------------------*/
 
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, GISourceScanner* scanner)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, scanner)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    GISourceScanner* scanner;
-#endif
 {
   FILE *yyo = yyoutput;
   YYUSE (yyo);
+  YYUSE (scanner);
   if (!yyvaluep)
     return;
-  YYUSE (scanner);
 # ifdef YYPRINT
   if (yytype < YYNTOKENS)
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
 # endif
-  switch (yytype)
-    {
-      default:
-        break;
-    }
+  YYUSE (yytype);
 }
 
 
@@ -1925,23 +1777,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, scanner)
 | Print this symbol on YYOUTPUT.  |
 `--------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, GISourceScanner* scanner)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, scanner)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    GISourceScanner* scanner;
-#endif
 {
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+  YYFPRINTF (yyoutput, "%s %s (",
+             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
 
   yy_symbol_value_print (yyoutput, yytype, yyvaluep, scanner);
   YYFPRINTF (yyoutput, ")");
@@ -1952,16 +1792,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, scanner)
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
-    yytype_int16 *yybottom;
-    yytype_int16 *yytop;
-#endif
 {
   YYFPRINTF (stderr, "Stack now");
   for (; yybottom <= yytop; yybottom++)
@@ -1972,50 +1804,42 @@ yy_stack_print (yybottom, yytop)
   YYFPRINTF (stderr, "\n");
 }
 
-# define YY_STACK_PRINT(Bottom, Top)                           \
-do {                                                           \
-  if (yydebug)                                                 \
-    yy_stack_print ((Bottom), (Top));                          \
-} while (YYID (0))
+# define YY_STACK_PRINT(Bottom, Top)                            \
+do {                                                            \
+  if (yydebug)                                                  \
+    yy_stack_print ((Bottom), (Top));                           \
+} while (0)
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule, GISourceScanner* scanner)
-#else
 static void
-yy_reduce_print (yyvsp, yyrule, scanner)
-    YYSTYPE *yyvsp;
-    int yyrule;
-    GISourceScanner* scanner;
-#endif
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, GISourceScanner* scanner)
 {
+  unsigned long int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
   int yyi;
-  unsigned long int yylno = yyrline[yyrule];
   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-            yyrule - 1, yylno);
+             yyrule - 1, yylno);
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-                      &(yyvsp[(yyi + 1) - (yynrhs)])
-                                      , scanner);
+      yy_symbol_print (stderr,
+                       yystos[yyssp[yyi + 1 - yynrhs]],
+                       &(yyvsp[(yyi + 1) - (yynrhs)])
+                                              , scanner);
       YYFPRINTF (stderr, "\n");
     }
 }
 
-# define YY_REDUCE_PRINT(Rule)         \
-do {                                   \
-  if (yydebug)                         \
-    yy_reduce_print (yyvsp, Rule, scanner); \
-} while (YYID (0))
+# define YY_REDUCE_PRINT(Rule)          \
+do {                                    \
+  if (yydebug)                          \
+    yy_reduce_print (yyssp, yyvsp, Rule, scanner); \
+} while (0)
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
@@ -2029,7 +1853,7 @@ int yydebug;
 
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef        YYINITDEPTH
+#ifndef YYINITDEPTH
 # define YYINITDEPTH 200
 #endif
 
@@ -2052,15 +1876,8 @@ int yydebug;
 #   define yystrlen strlen
 #  else
 /* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
 yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
 {
   YYSIZE_T yylen;
   for (yylen = 0; yystr[yylen]; yylen++)
@@ -2076,16 +1893,8 @@ yystrlen (yystr)
 #  else
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static char *
 yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
 {
   char *yyd = yydest;
   const char *yys = yysrc;
@@ -2115,27 +1924,27 @@ yytnamerr (char *yyres, const char *yystr)
       char const *yyp = yystr;
 
       for (;;)
-       switch (*++yyp)
-         {
-         case '\'':
-         case ',':
-           goto do_not_strip_quotes;
-
-         case '\\':
-           if (*++yyp != '\\')
-             goto do_not_strip_quotes;
-           /* Fall through.  */
-         default:
-           if (yyres)
-             yyres[yyn] = *yyp;
-           yyn++;
-           break;
-
-         case '"':
-           if (yyres)
-             yyres[yyn] = '\0';
-           return yyn;
-         }
+        switch (*++yyp)
+          {
+          case '\'':
+          case ',':
+            goto do_not_strip_quotes;
+
+          case '\\':
+            if (*++yyp != '\\')
+              goto do_not_strip_quotes;
+            /* Fall through.  */
+          default:
+            if (yyres)
+              yyres[yyn] = *yyp;
+            yyn++;
+            break;
+
+          case '"':
+            if (yyres)
+              yyres[yyn] = '\0';
+            return yyn;
+          }
     do_not_strip_quotes: ;
     }
 
@@ -2158,11 +1967,11 @@ static int
 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yytype_int16 *yyssp, int yytoken)
 {
-  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
-  const char *yyformat = YY_NULL;
+  const char *yyformat = YY_NULLPTR;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   /* Number of reported tokens (one for the "unexpected", one per
@@ -2170,10 +1979,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
   int yycount = 0;
 
   /* There are many possibilities here to consider:
-     - Assume YYFAIL is not used.  It's too flawed to consider.  See
-       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
-       for details.  YYERROR is fine as it does not invoke this
-       function.
      - If this state is a consistent state with a default action, then
        the only way this function was invoked is if the default action
        is an error action.  In that case, don't check for expected
@@ -2223,7 +2028,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                   }
                 yyarg[yycount++] = yytname[yyx];
                 {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
                   if (! (yysize <= yysize1
                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
                     return 2;
@@ -2290,33 +2095,18 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, GISourceScanner* scanner)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep, scanner)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-    GISourceScanner* scanner;
-#endif
 {
   YYUSE (yyvaluep);
   YYUSE (scanner);
-
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
-  switch (yytype)
-    {
-
-      default:
-        break;
-    }
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  YYUSE (yytype);
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
@@ -2325,18 +2115,8 @@ yydestruct (yymsg, yytype, yyvaluep, scanner)
 /* The lookahead symbol.  */
 int yychar;
 
-
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
 /* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
-
+YYSTYPE yylval;
 /* Number of syntax errors so far.  */
 int yynerrs;
 
@@ -2345,35 +2125,16 @@ int yynerrs;
 | yyparse.  |
 `----------*/
 
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (GISourceScanner* scanner)
-#else
-int
-yyparse (scanner)
-    GISourceScanner* scanner;
-#endif
-#endif
 {
     int yystate;
     /* Number of tokens to shift before error messages enabled.  */
     int yyerrstatus;
 
     /* The stacks and their tools:
-       `yyss': related to states.
-       `yyvs': related to semantic values.
+       'yyss': related to states.
+       'yyvs': related to semantic values.
 
        Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
@@ -2441,23 +2202,23 @@ yyparse (scanner)
 
 #ifdef yyoverflow
       {
-       /* Give user a chance to reallocate the stack.  Use copies of
-          these so that the &'s don't force the real ones into
-          memory.  */
-       YYSTYPE *yyvs1 = yyvs;
-       yytype_int16 *yyss1 = yyss;
-
-       /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  This used to be a
-          conditional around just the two extra args, but that might
-          be undefined if yyoverflow is a macro.  */
-       yyoverflow (YY_("memory exhausted"),
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yystacksize);
-
-       yyss = yyss1;
-       yyvs = yyvs1;
+        /* Give user a chance to reallocate the stack.  Use copies of
+           these so that the &'s don't force the real ones into
+           memory.  */
+        YYSTYPE *yyvs1 = yyvs;
+        yytype_int16 *yyss1 = yyss;
+
+        /* Each stack pointer address is followed by the size of the
+           data in use in that stack, in bytes.  This used to be a
+           conditional around just the two extra args, but that might
+           be undefined if yyoverflow is a macro.  */
+        yyoverflow (YY_("memory exhausted"),
+                    &yyss1, yysize * sizeof (*yyssp),
+                    &yyvs1, yysize * sizeof (*yyvsp),
+                    &yystacksize);
+
+        yyss = yyss1;
+        yyvs = yyvs1;
       }
 #else /* no yyoverflow */
 # ifndef YYSTACK_RELOCATE
@@ -2465,22 +2226,22 @@ yyparse (scanner)
 # else
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-       goto yyexhaustedlab;
+        goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
-       yystacksize = YYMAXDEPTH;
+        yystacksize = YYMAXDEPTH;
 
       {
-       yytype_int16 *yyss1 = yyss;
-       union yyalloc *yyptr =
-         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-       if (! yyptr)
-         goto yyexhaustedlab;
-       YYSTACK_RELOCATE (yyss_alloc, yyss);
-       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+        yytype_int16 *yyss1 = yyss;
+        union yyalloc *yyptr =
+          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+        if (! yyptr)
+          goto yyexhaustedlab;
+        YYSTACK_RELOCATE (yyss_alloc, yyss);
+        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
-       if (yyss1 != yyssa)
-         YYSTACK_FREE (yyss1);
+        if (yyss1 != yyssa)
+          YYSTACK_FREE (yyss1);
       }
 # endif
 #endif /* no yyoverflow */
@@ -2489,10 +2250,10 @@ yyparse (scanner)
       yyvsp = yyvs + yysize - 1;
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                 (unsigned long int) yystacksize));
+                  (unsigned long int) yystacksize));
 
       if (yyss + yystacksize - 1 <= yyssp)
-       YYABORT;
+        YYABORT;
     }
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -2521,7 +2282,7 @@ yybackup:
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
+      yychar = yylex (scanner);
     }
 
   if (yychar <= YYEOF)
@@ -2586,7 +2347,7 @@ yyreduce:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
+     '$$ = $1'.
 
      Otherwise, the following line sets YYVAL to garbage.
      This behavior is undocumented and Bison
@@ -2600,21 +2361,20 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-/* Line 1792 of yacc.c  */
-#line 305 "giscanner/scannerparser.y"
+#line 305 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = g_hash_table_lookup (const_table, (yyvsp[(1) - (1)].str));
+               (yyval.symbol) = g_hash_table_lookup (const_table, (yyvsp[0].str));
                if ((yyval.symbol) == NULL) {
                        (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                } else {
                        (yyval.symbol) = gi_source_symbol_ref ((yyval.symbol));
                }
          }
+#line 2374 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 3:
-/* Line 1792 of yacc.c  */
-#line 314 "giscanner/scannerparser.y"
+#line 314 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                char *rest;
                guint64 value;
@@ -2630,58 +2390,58 @@ yyreduce:
                (yyval.symbol)->const_int = value;
                (yyval.symbol)->const_int_is_unsigned = (rest && (rest[0] == 'U'));
          }
+#line 2394 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 4:
-/* Line 1792 of yacc.c  */
-#line 330 "giscanner/scannerparser.y"
+#line 330 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (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 2404 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 5:
-/* Line 1792 of yacc.c  */
-#line 336 "giscanner/scannerparser.y"
+#line 336 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (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 2414 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 6:
-/* Line 1792 of yacc.c  */
-#line 342 "giscanner/scannerparser.y"
+#line 342 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (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 2425 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 8:
-/* Line 1792 of yacc.c  */
-#line 350 "giscanner/scannerparser.y"
+#line 350 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(2) - (3)].symbol);
+               (yyval.symbol) = (yyvsp[-1].symbol);
          }
+#line 2433 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 9:
-/* Line 1792 of yacc.c  */
-#line 354 "giscanner/scannerparser.y"
+#line 354 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2441 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 10:
-/* Line 1792 of yacc.c  */
-#line 362 "giscanner/scannerparser.y"
+#line 362 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                yytext[strlen (yytext) - 1] = '\0';
@@ -2696,14 +2456,14 @@ yyreduce:
                   }
 
          }
+#line 2460 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 11:
-/* Line 1792 of yacc.c  */
-#line 377 "giscanner/scannerparser.y"
+#line 377 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                char *strings, *string2;
-               (yyval.symbol) = (yyvsp[(1) - (2)].symbol);
+               (yyval.symbol) = (yyvsp[-1].symbol);
                yytext[strlen (yytext) - 1] = '\0';
                string2 = parse_c_string_literal (yytext + 1);
                strings = g_strconcat ((yyval.symbol)->const_string, string2, NULL);
@@ -2711,276 +2471,276 @@ yyreduce:
                g_free (string2);
                (yyval.symbol)->const_string = strings;
          }
+#line 2475 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 12:
-/* Line 1792 of yacc.c  */
-#line 391 "giscanner/scannerparser.y"
+#line 391 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.str) = g_strdup (yytext);
          }
+#line 2483 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 16:
-/* Line 1792 of yacc.c  */
-#line 404 "giscanner/scannerparser.y"
+#line 404 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2491 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 17:
-/* Line 1792 of yacc.c  */
-#line 408 "giscanner/scannerparser.y"
+#line 408 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2499 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 18:
-/* Line 1792 of yacc.c  */
-#line 412 "giscanner/scannerparser.y"
+#line 412 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2507 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 19:
-/* Line 1792 of yacc.c  */
-#line 416 "giscanner/scannerparser.y"
+#line 416 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2515 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 20:
-/* Line 1792 of yacc.c  */
-#line 420 "giscanner/scannerparser.y"
+#line 420 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2523 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 21:
-/* Line 1792 of yacc.c  */
-#line 424 "giscanner/scannerparser.y"
+#line 424 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2531 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 22:
-/* Line 1792 of yacc.c  */
-#line 428 "giscanner/scannerparser.y"
+#line 428 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2539 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 26:
-/* Line 1792 of yacc.c  */
-#line 441 "giscanner/scannerparser.y"
+#line 441 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2547 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 27:
-/* Line 1792 of yacc.c  */
-#line 445 "giscanner/scannerparser.y"
+#line 445 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2555 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 28:
-/* Line 1792 of yacc.c  */
-#line 449 "giscanner/scannerparser.y"
+#line 449 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               switch ((yyvsp[(1) - (2)].unary_operator)) {
+               switch ((yyvsp[-1].unary_operator)) {
                case UNARY_PLUS:
-                       (yyval.symbol) = (yyvsp[(2) - (2)].symbol);
+                       (yyval.symbol) = (yyvsp[0].symbol);
                        break;
                case UNARY_MINUS:
-                       (yyval.symbol) = gi_source_symbol_copy ((yyvsp[(2) - (2)].symbol));
-                       (yyval.symbol)->const_int = -(yyvsp[(2) - (2)].symbol)->const_int;
+                       (yyval.symbol) = gi_source_symbol_copy ((yyvsp[0].symbol));
+                       (yyval.symbol)->const_int = -(yyvsp[0].symbol)->const_int;
                        break;
                case UNARY_BITWISE_COMPLEMENT:
-                       (yyval.symbol) = gi_source_symbol_copy ((yyvsp[(2) - (2)].symbol));
-                       (yyval.symbol)->const_int = ~(yyvsp[(2) - (2)].symbol)->const_int;
+                       (yyval.symbol) = gi_source_symbol_copy ((yyvsp[0].symbol));
+                       (yyval.symbol)->const_int = ~(yyvsp[0].symbol)->const_int;
                        break;
                case UNARY_LOGICAL_NEGATION:
-                       (yyval.symbol) = gi_source_symbol_copy ((yyvsp[(2) - (2)].symbol));
-                       (yyval.symbol)->const_int = !gi_source_symbol_get_const_boolean ((yyvsp[(2) - (2)].symbol));
+                       (yyval.symbol) = gi_source_symbol_copy ((yyvsp[0].symbol));
+                       (yyval.symbol)->const_int = !gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
                        break;
                default:
                        (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                        break;
                }
          }
+#line 2582 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 29:
-/* Line 1792 of yacc.c  */
-#line 472 "giscanner/scannerparser.y"
+#line 472 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(3) - (4)].symbol);
+               (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 2593 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 30:
-/* Line 1792 of yacc.c  */
-#line 479 "giscanner/scannerparser.y"
+#line 479 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(3) - (4)].symbol);
+               (yyval.symbol) = (yyvsp[-1].symbol);
                if ((yyval.symbol)->const_int_set) {
                        (yyval.symbol)->base_type = gi_source_basic_type_new ("guint64");
                }
          }
+#line 2604 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 31:
-/* Line 1792 of yacc.c  */
-#line 486 "giscanner/scannerparser.y"
+#line 486 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2612 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 32:
-/* Line 1792 of yacc.c  */
-#line 490 "giscanner/scannerparser.y"
+#line 490 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               ctype_free ((yyvsp[(3) - (4)].ctype));
+               ctype_free ((yyvsp[-1].ctype));
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2621 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 33:
-/* Line 1792 of yacc.c  */
-#line 498 "giscanner/scannerparser.y"
+#line 498 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.unary_operator) = UNARY_ADDRESS_OF;
          }
+#line 2629 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 34:
-/* Line 1792 of yacc.c  */
-#line 502 "giscanner/scannerparser.y"
+#line 502 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.unary_operator) = UNARY_POINTER_INDIRECTION;
          }
+#line 2637 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 35:
-/* Line 1792 of yacc.c  */
-#line 506 "giscanner/scannerparser.y"
+#line 506 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.unary_operator) = UNARY_PLUS;
          }
+#line 2645 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 36:
-/* Line 1792 of yacc.c  */
-#line 510 "giscanner/scannerparser.y"
+#line 510 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.unary_operator) = UNARY_MINUS;
          }
+#line 2653 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 37:
-/* Line 1792 of yacc.c  */
-#line 514 "giscanner/scannerparser.y"
+#line 514 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.unary_operator) = UNARY_BITWISE_COMPLEMENT;
          }
+#line 2661 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 38:
-/* Line 1792 of yacc.c  */
-#line 518 "giscanner/scannerparser.y"
+#line 518 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.unary_operator) = UNARY_LOGICAL_NEGATION;
          }
+#line 2669 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 40:
-/* Line 1792 of yacc.c  */
-#line 526 "giscanner/scannerparser.y"
+#line 526 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(4) - (4)].symbol);
+               (yyval.symbol) = (yyvsp[0].symbol);
                if ((yyval.symbol)->const_int_set || (yyval.symbol)->const_double_set || (yyval.symbol)->const_string != NULL) {
-                       (yyval.symbol)->base_type = (yyvsp[(2) - (4)].ctype);
+                       (yyval.symbol)->base_type = (yyvsp[-2].ctype);
                } else {
-                       ctype_free ((yyvsp[(2) - (4)].ctype));
+                       ctype_free ((yyvsp[-2].ctype));
                }
          }
+#line 2682 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 42:
-/* Line 1792 of yacc.c  */
-#line 539 "giscanner/scannerparser.y"
+#line 539 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int * (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int * (yyvsp[0].symbol)->const_int;
          }
+#line 2692 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 43:
-/* Line 1792 of yacc.c  */
-#line 545 "giscanner/scannerparser.y"
+#line 545 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               if ((yyvsp[(3) - (3)].symbol)->const_int != 0) {
-                       (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int / (yyvsp[(3) - (3)].symbol)->const_int;
+               if ((yyvsp[0].symbol)->const_int != 0) {
+                       (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int / (yyvsp[0].symbol)->const_int;
                }
          }
+#line 2704 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 44:
-/* Line 1792 of yacc.c  */
-#line 553 "giscanner/scannerparser.y"
+#line 553 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               if ((yyvsp[(3) - (3)].symbol)->const_int != 0) {
-                       (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int % (yyvsp[(3) - (3)].symbol)->const_int;
+               if ((yyvsp[0].symbol)->const_int != 0) {
+                       (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int % (yyvsp[0].symbol)->const_int;
                }
          }
+#line 2716 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 46:
-/* Line 1792 of yacc.c  */
-#line 565 "giscanner/scannerparser.y"
+#line 565 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int + (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int + (yyvsp[0].symbol)->const_int;
          }
+#line 2726 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 47:
-/* Line 1792 of yacc.c  */
-#line 571 "giscanner/scannerparser.y"
+#line 571 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int - (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int - (yyvsp[0].symbol)->const_int;
          }
+#line 2736 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 49:
-/* Line 1792 of yacc.c  */
-#line 581 "giscanner/scannerparser.y"
+#line 581 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int << (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int << (yyvsp[0].symbol)->const_int;
 
                /* assume this is a bitfield/flags declaration
                 * if a left shift operator is sued in an enum value
@@ -2988,165 +2748,165 @@ yyreduce:
                 */
                is_bitfield = TRUE;
          }
+#line 2752 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 50:
-/* Line 1792 of yacc.c  */
-#line 593 "giscanner/scannerparser.y"
+#line 593 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int >> (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >> (yyvsp[0].symbol)->const_int;
          }
+#line 2762 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 52:
-/* Line 1792 of yacc.c  */
-#line 603 "giscanner/scannerparser.y"
+#line 603 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int < (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int < (yyvsp[0].symbol)->const_int;
          }
+#line 2772 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 53:
-/* Line 1792 of yacc.c  */
-#line 609 "giscanner/scannerparser.y"
+#line 609 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int > (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int > (yyvsp[0].symbol)->const_int;
          }
+#line 2782 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 54:
-/* Line 1792 of yacc.c  */
-#line 615 "giscanner/scannerparser.y"
+#line 615 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int <= (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int <= (yyvsp[0].symbol)->const_int;
          }
+#line 2792 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 55:
-/* Line 1792 of yacc.c  */
-#line 621 "giscanner/scannerparser.y"
+#line 621 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int >= (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >= (yyvsp[0].symbol)->const_int;
          }
+#line 2802 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 57:
-/* Line 1792 of yacc.c  */
-#line 631 "giscanner/scannerparser.y"
+#line 631 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int == (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int == (yyvsp[0].symbol)->const_int;
          }
+#line 2812 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 58:
-/* Line 1792 of yacc.c  */
-#line 637 "giscanner/scannerparser.y"
+#line 637 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int != (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int != (yyvsp[0].symbol)->const_int;
          }
+#line 2822 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 60:
-/* Line 1792 of yacc.c  */
-#line 647 "giscanner/scannerparser.y"
+#line 647 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int & (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int & (yyvsp[0].symbol)->const_int;
          }
+#line 2832 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 62:
-/* Line 1792 of yacc.c  */
-#line 657 "giscanner/scannerparser.y"
+#line 657 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int ^ (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int ^ (yyvsp[0].symbol)->const_int;
          }
+#line 2842 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 64:
-/* Line 1792 of yacc.c  */
-#line 667 "giscanner/scannerparser.y"
+#line 667 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(1) - (3)].symbol)->const_int | (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int | (yyvsp[0].symbol)->const_int;
          }
+#line 2852 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 66:
-/* Line 1792 of yacc.c  */
-#line 677 "giscanner/scannerparser.y"
+#line 677 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int =
-                 gi_source_symbol_get_const_boolean ((yyvsp[(1) - (3)].symbol)) &&
-                 gi_source_symbol_get_const_boolean ((yyvsp[(3) - (3)].symbol));
+                 gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) &&
+                 gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
          }
+#line 2864 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 68:
-/* Line 1792 of yacc.c  */
-#line 689 "giscanner/scannerparser.y"
+#line 689 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int =
-                 gi_source_symbol_get_const_boolean ((yyvsp[(1) - (3)].symbol)) ||
-                 gi_source_symbol_get_const_boolean ((yyvsp[(3) - (3)].symbol));
+                 gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) ||
+                 gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
          }
+#line 2876 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 70:
-/* Line 1792 of yacc.c  */
-#line 701 "giscanner/scannerparser.y"
+#line 701 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = gi_source_symbol_get_const_boolean ((yyvsp[(1) - (5)].symbol)) ? (yyvsp[(3) - (5)].symbol) : (yyvsp[(5) - (5)].symbol);
+               (yyval.symbol) = gi_source_symbol_get_const_boolean ((yyvsp[-4].symbol)) ? (yyvsp[-2].symbol) : (yyvsp[0].symbol);
          }
+#line 2884 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 72:
-/* Line 1792 of yacc.c  */
-#line 709 "giscanner/scannerparser.y"
+#line 709 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2892 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 86:
-/* Line 1792 of yacc.c  */
-#line 732 "giscanner/scannerparser.y"
+#line 732 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 2900 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 88:
-/* Line 1792 of yacc.c  */
-#line 745 "giscanner/scannerparser.y"
+#line 745 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GList *l;
-               for (l = (yyvsp[(2) - (3)].list); l != NULL; l = l->next) {
+               for (l = (yyvsp[-1].list); l != NULL; l = l->next) {
                        GISourceSymbol *sym = l->data;
-                       gi_source_symbol_merge_type (sym, gi_source_type_copy ((yyvsp[(1) - (3)].ctype)));
-                       if ((yyvsp[(1) - (3)].ctype)->storage_class_specifier & STORAGE_CLASS_TYPEDEF) {
+                       gi_source_symbol_merge_type (sym, gi_source_type_copy ((yyvsp[-2].ctype)));
+                       if ((yyvsp[-2].ctype)->storage_class_specifier & STORAGE_CLASS_TYPEDEF) {
                                sym->type = CSYMBOL_TYPE_TYPEDEF;
                        } else if (sym->base_type->type == CTYPE_FUNCTION) {
                                sym->type = CSYMBOL_TYPE_FUNCTION;
@@ -3156,242 +2916,242 @@ yyreduce:
                        gi_source_scanner_add_symbol (scanner, sym);
                        gi_source_symbol_unref (sym);
                }
-               ctype_free ((yyvsp[(1) - (3)].ctype));
+               ctype_free ((yyvsp[-2].ctype));
          }
+#line 2922 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 89:
-/* Line 1792 of yacc.c  */
-#line 763 "giscanner/scannerparser.y"
+#line 763 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               ctype_free ((yyvsp[(1) - (2)].ctype));
+               ctype_free ((yyvsp[-1].ctype));
          }
+#line 2930 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 90:
-/* Line 1792 of yacc.c  */
-#line 770 "giscanner/scannerparser.y"
+#line 770 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(2) - (2)].ctype);
-               (yyval.ctype)->storage_class_specifier |= (yyvsp[(1) - (2)].storage_class_specifier);
+               (yyval.ctype) = (yyvsp[0].ctype);
+               (yyval.ctype)->storage_class_specifier |= (yyvsp[-1].storage_class_specifier);
          }
+#line 2939 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 91:
-/* Line 1792 of yacc.c  */
-#line 775 "giscanner/scannerparser.y"
+#line 775 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
-               (yyval.ctype)->storage_class_specifier |= (yyvsp[(1) - (1)].storage_class_specifier);
+               (yyval.ctype)->storage_class_specifier |= (yyvsp[0].storage_class_specifier);
          }
+#line 2948 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 92:
-/* Line 1792 of yacc.c  */
-#line 780 "giscanner/scannerparser.y"
+#line 780 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(1) - (2)].ctype);
+               (yyval.ctype) = (yyvsp[-1].ctype);
                /* combine basic types like unsigned int and long long */
-               if ((yyval.ctype)->type == CTYPE_BASIC_TYPE && (yyvsp[(2) - (2)].ctype)->type == CTYPE_BASIC_TYPE) {
-                       char *name = g_strdup_printf ("%s %s", (yyval.ctype)->name, (yyvsp[(2) - (2)].ctype)->name);
+               if ((yyval.ctype)->type == CTYPE_BASIC_TYPE && (yyvsp[0].ctype)->type == CTYPE_BASIC_TYPE) {
+                       char *name = g_strdup_printf ("%s %s", (yyval.ctype)->name, (yyvsp[0].ctype)->name);
                        g_free ((yyval.ctype)->name);
                        (yyval.ctype)->name = name;
-                       ctype_free ((yyvsp[(2) - (2)].ctype));
+                       ctype_free ((yyvsp[0].ctype));
                } else {
-                       (yyval.ctype)->base_type = (yyvsp[(2) - (2)].ctype);
+                       (yyval.ctype)->base_type = (yyvsp[0].ctype);
                }
          }
+#line 2965 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 94:
-/* Line 1792 of yacc.c  */
-#line 794 "giscanner/scannerparser.y"
+#line 794 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(2) - (2)].ctype);
-               (yyval.ctype)->type_qualifier |= (yyvsp[(1) - (2)].type_qualifier);
+               (yyval.ctype) = (yyvsp[0].ctype);
+               (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
          }
+#line 2974 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 95:
-/* Line 1792 of yacc.c  */
-#line 799 "giscanner/scannerparser.y"
+#line 799 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
-               (yyval.ctype)->type_qualifier |= (yyvsp[(1) - (1)].type_qualifier);
+               (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
          }
+#line 2983 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 96:
-/* Line 1792 of yacc.c  */
-#line 804 "giscanner/scannerparser.y"
+#line 804 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(2) - (2)].ctype);
-               (yyval.ctype)->function_specifier |= (yyvsp[(1) - (2)].function_specifier);
+               (yyval.ctype) = (yyvsp[0].ctype);
+               (yyval.ctype)->function_specifier |= (yyvsp[-1].function_specifier);
          }
+#line 2992 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 97:
-/* Line 1792 of yacc.c  */
-#line 809 "giscanner/scannerparser.y"
+#line 809 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
-               (yyval.ctype)->function_specifier |= (yyvsp[(1) - (1)].function_specifier);
+               (yyval.ctype)->function_specifier |= (yyvsp[0].function_specifier);
          }
+#line 3001 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 98:
-/* Line 1792 of yacc.c  */
-#line 817 "giscanner/scannerparser.y"
+#line 817 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.list) = g_list_append (NULL, (yyvsp[(1) - (1)].symbol));
+               (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
+#line 3009 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 99:
-/* Line 1792 of yacc.c  */
-#line 821 "giscanner/scannerparser.y"
+#line 821 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.list) = g_list_append ((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].symbol));
+               (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
+#line 3017 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 102:
-/* Line 1792 of yacc.c  */
-#line 833 "giscanner/scannerparser.y"
+#line 833 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_TYPEDEF;
          }
+#line 3025 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 103:
-/* Line 1792 of yacc.c  */
-#line 837 "giscanner/scannerparser.y"
+#line 837 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_EXTERN;
          }
+#line 3033 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 104:
-/* Line 1792 of yacc.c  */
-#line 841 "giscanner/scannerparser.y"
+#line 841 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_STATIC;
          }
+#line 3041 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 105:
-/* Line 1792 of yacc.c  */
-#line 845 "giscanner/scannerparser.y"
+#line 845 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_AUTO;
          }
+#line 3049 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 106:
-/* Line 1792 of yacc.c  */
-#line 849 "giscanner/scannerparser.y"
+#line 849 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_REGISTER;
          }
+#line 3057 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 107:
-/* Line 1792 of yacc.c  */
-#line 856 "giscanner/scannerparser.y"
+#line 856 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_VOID);
          }
+#line 3065 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 108:
-/* Line 1792 of yacc.c  */
-#line 860 "giscanner/scannerparser.y"
+#line 860 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("char");
          }
+#line 3073 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 109:
-/* Line 1792 of yacc.c  */
-#line 864 "giscanner/scannerparser.y"
+#line 864 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("short");
          }
+#line 3081 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 110:
-/* Line 1792 of yacc.c  */
-#line 868 "giscanner/scannerparser.y"
+#line 868 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("int");
          }
+#line 3089 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 111:
-/* Line 1792 of yacc.c  */
-#line 872 "giscanner/scannerparser.y"
+#line 872 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("long");
          }
+#line 3097 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 112:
-/* Line 1792 of yacc.c  */
-#line 876 "giscanner/scannerparser.y"
+#line 876 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("float");
          }
+#line 3105 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 113:
-/* Line 1792 of yacc.c  */
-#line 880 "giscanner/scannerparser.y"
+#line 880 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("double");
          }
+#line 3113 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 114:
-/* Line 1792 of yacc.c  */
-#line 884 "giscanner/scannerparser.y"
+#line 884 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("signed");
          }
+#line 3121 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 115:
-/* Line 1792 of yacc.c  */
-#line 888 "giscanner/scannerparser.y"
+#line 888 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("unsigned");
          }
+#line 3129 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 116:
-/* Line 1792 of yacc.c  */
-#line 892 "giscanner/scannerparser.y"
+#line 892 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("bool");
          }
+#line 3137 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 119:
-/* Line 1792 of yacc.c  */
-#line 898 "giscanner/scannerparser.y"
+#line 898 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = gi_source_typedef_new ((yyvsp[(1) - (1)].str));
-               g_free ((yyvsp[(1) - (1)].str));
+               (yyval.ctype) = gi_source_typedef_new ((yyvsp[0].str));
+               g_free ((yyvsp[0].str));
          }
+#line 3146 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 120:
-/* Line 1792 of yacc.c  */
-#line 906 "giscanner/scannerparser.y"
+#line 906 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceSymbol *sym;
-               (yyval.ctype) = (yyvsp[(1) - (5)].ctype);
-               (yyval.ctype)->name = (yyvsp[(2) - (5)].str);
-               (yyval.ctype)->child_list = (yyvsp[(4) - (5)].list);
+               (yyval.ctype) = (yyvsp[-4].ctype);
+               (yyval.ctype)->name = (yyvsp[-3].str);
+               (yyval.ctype)->child_list = (yyvsp[-1].list);
 
                sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                if ((yyval.ctype)->type == CTYPE_STRUCT) {
@@ -3406,724 +3166,724 @@ yyreduce:
                gi_source_scanner_add_symbol (scanner, sym);
                gi_source_symbol_unref (sym);
          }
+#line 3170 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 121:
-/* Line 1792 of yacc.c  */
-#line 926 "giscanner/scannerparser.y"
+#line 926 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(1) - (4)].ctype);
-               (yyval.ctype)->child_list = (yyvsp[(3) - (4)].list);
+               (yyval.ctype) = (yyvsp[-3].ctype);
+               (yyval.ctype)->child_list = (yyvsp[-1].list);
          }
+#line 3179 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 122:
-/* Line 1792 of yacc.c  */
-#line 931 "giscanner/scannerparser.y"
+#line 931 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(1) - (2)].ctype);
-               (yyval.ctype)->name = (yyvsp[(2) - (2)].str);
+               (yyval.ctype) = (yyvsp[-1].ctype);
+               (yyval.ctype)->name = (yyvsp[0].str);
          }
+#line 3188 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 123:
-/* Line 1792 of yacc.c  */
-#line 939 "giscanner/scannerparser.y"
+#line 939 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                 scanner->private = FALSE;
                (yyval.ctype) = gi_source_struct_new (NULL);
          }
+#line 3197 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 124:
-/* Line 1792 of yacc.c  */
-#line 944 "giscanner/scannerparser.y"
+#line 944 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                 scanner->private = FALSE;
                (yyval.ctype) = gi_source_union_new (NULL);
          }
+#line 3206 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 126:
-/* Line 1792 of yacc.c  */
-#line 953 "giscanner/scannerparser.y"
+#line 953 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.list) = g_list_concat ((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list));
+               (yyval.list) = g_list_concat ((yyvsp[-1].list), (yyvsp[0].list));
          }
+#line 3214 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 127:
-/* Line 1792 of yacc.c  */
-#line 960 "giscanner/scannerparser.y"
+#line 960 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
            GList *l;
            (yyval.list) = NULL;
-           for (l = (yyvsp[(2) - (3)].list); l != NULL; l = l->next)
+           for (l = (yyvsp[-1].list); l != NULL; l = l->next)
              {
                GISourceSymbol *sym = l->data;
-               if ((yyvsp[(1) - (3)].ctype)->storage_class_specifier & STORAGE_CLASS_TYPEDEF)
+               if ((yyvsp[-2].ctype)->storage_class_specifier & STORAGE_CLASS_TYPEDEF)
                    sym->type = CSYMBOL_TYPE_TYPEDEF;
                else
                    sym->type = CSYMBOL_TYPE_MEMBER;
-               gi_source_symbol_merge_type (sym, gi_source_type_copy ((yyvsp[(1) - (3)].ctype)));
+               gi_source_symbol_merge_type (sym, gi_source_type_copy ((yyvsp[-2].ctype)));
                 sym->private = scanner->private;
                 (yyval.list) = g_list_append ((yyval.list), sym);
              }
-           ctype_free ((yyvsp[(1) - (3)].ctype));
+           ctype_free ((yyvsp[-2].ctype));
          }
+#line 3235 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 128:
-/* Line 1792 of yacc.c  */
-#line 980 "giscanner/scannerparser.y"
+#line 980 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(1) - (2)].ctype);
-               (yyval.ctype)->base_type = (yyvsp[(2) - (2)].ctype);
+               (yyval.ctype) = (yyvsp[-1].ctype);
+               (yyval.ctype)->base_type = (yyvsp[0].ctype);
          }
+#line 3244 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 130:
-/* Line 1792 of yacc.c  */
-#line 986 "giscanner/scannerparser.y"
+#line 986 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = (yyvsp[(2) - (2)].ctype);
-               (yyval.ctype)->type_qualifier |= (yyvsp[(1) - (2)].type_qualifier);
+               (yyval.ctype) = (yyvsp[0].ctype);
+               (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
          }
+#line 3253 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 131:
-/* Line 1792 of yacc.c  */
-#line 991 "giscanner/scannerparser.y"
+#line 991 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
-               (yyval.ctype)->type_qualifier |= (yyvsp[(1) - (1)].type_qualifier);
+               (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
          }
+#line 3262 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 132:
-/* Line 1792 of yacc.c  */
-#line 999 "giscanner/scannerparser.y"
+#line 999 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.list) = g_list_append (NULL, (yyvsp[(1) - (1)].symbol));
+               (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
+#line 3270 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 133:
-/* Line 1792 of yacc.c  */
-#line 1003 "giscanner/scannerparser.y"
+#line 1003 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.list) = g_list_append ((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].symbol));
+               (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
+#line 3278 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 134:
-/* Line 1792 of yacc.c  */
-#line 1010 "giscanner/scannerparser.y"
+#line 1010 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 3286 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 136:
-/* Line 1792 of yacc.c  */
-#line 1015 "giscanner/scannerparser.y"
+#line 1015 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
+#line 3294 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 137:
-/* Line 1792 of yacc.c  */
-#line 1019 "giscanner/scannerparser.y"
+#line 1019 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(1) - (3)].symbol);
-               if ((yyvsp[(3) - (3)].symbol)->const_int_set) {
+               (yyval.symbol) = (yyvsp[-2].symbol);
+               if ((yyvsp[0].symbol)->const_int_set) {
                  (yyval.symbol)->const_int_set = TRUE;
-                 (yyval.symbol)->const_int = (yyvsp[(3) - (3)].symbol)->const_int;
+                 (yyval.symbol)->const_int = (yyvsp[0].symbol)->const_int;
                }
          }
+#line 3306 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 138:
-/* Line 1792 of yacc.c  */
-#line 1030 "giscanner/scannerparser.y"
+#line 1030 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = gi_source_enum_new ((yyvsp[(2) - (5)].str));
-               (yyval.ctype)->child_list = (yyvsp[(4) - (5)].list);
+               (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 3317 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 139:
-/* Line 1792 of yacc.c  */
-#line 1037 "giscanner/scannerparser.y"
+#line 1037 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_enum_new (NULL);
-               (yyval.ctype)->child_list = (yyvsp[(3) - (4)].list);
+               (yyval.ctype)->child_list = (yyvsp[-1].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
+#line 3328 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 140:
-/* Line 1792 of yacc.c  */
-#line 1044 "giscanner/scannerparser.y"
+#line 1044 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = gi_source_enum_new ((yyvsp[(2) - (6)].str));
-               (yyval.ctype)->child_list = (yyvsp[(4) - (6)].list);
+               (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 3339 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 141:
-/* Line 1792 of yacc.c  */
-#line 1051 "giscanner/scannerparser.y"
+#line 1051 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_enum_new (NULL);
-               (yyval.ctype)->child_list = (yyvsp[(3) - (5)].list);
+               (yyval.ctype)->child_list = (yyvsp[-2].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
+#line 3350 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 142:
-/* Line 1792 of yacc.c  */
-#line 1058 "giscanner/scannerparser.y"
+#line 1058 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.ctype) = gi_source_enum_new ((yyvsp[(2) - (2)].str));
+               (yyval.ctype) = gi_source_enum_new ((yyvsp[0].str));
          }
+#line 3358 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 143:
-/* Line 1792 of yacc.c  */
-#line 1065 "giscanner/scannerparser.y"
+#line 1065 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                 scanner->flags = FALSE;
                 scanner->private = FALSE;
           }
+#line 3367 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 144:
-/* Line 1792 of yacc.c  */
-#line 1073 "giscanner/scannerparser.y"
+#line 1073 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                /* reset flag before the first enum value */
                is_bitfield = FALSE;
          }
+#line 3376 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 145:
-/* Line 1792 of yacc.c  */
-#line 1078 "giscanner/scannerparser.y"
+#line 1078 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-            (yyvsp[(2) - (2)].symbol)->private = scanner->private;
-            (yyval.list) = g_list_append (NULL, (yyvsp[(2) - (2)].symbol));
+            (yyvsp[0].symbol)->private = scanner->private;
+            (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
+#line 3385 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 146:
-/* Line 1792 of yacc.c  */
-#line 1083 "giscanner/scannerparser.y"
+#line 1083 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-            (yyvsp[(3) - (3)].symbol)->private = scanner->private;
-            (yyval.list) = g_list_append ((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].symbol));
+            (yyvsp[0].symbol)->private = scanner->private;
+            (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
+#line 3394 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 147:
-/* Line 1792 of yacc.c  */
-#line 1091 "giscanner/scannerparser.y"
+#line 1091 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
-               (yyval.symbol)->ident = (yyvsp[(1) - (1)].str);
+               (yyval.symbol)->ident = (yyvsp[0].str);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = ++last_enum_value;
                g_hash_table_insert (const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
          }
+#line 3406 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 148:
-/* Line 1792 of yacc.c  */
-#line 1099 "giscanner/scannerparser.y"
+#line 1099 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
-               (yyval.symbol)->ident = (yyvsp[(1) - (3)].str);
+               (yyval.symbol)->ident = (yyvsp[-2].str);
                (yyval.symbol)->const_int_set = TRUE;
-               (yyval.symbol)->const_int = (yyvsp[(3) - (3)].symbol)->const_int;
+               (yyval.symbol)->const_int = (yyvsp[0].symbol)->const_int;
                last_enum_value = (yyval.symbol)->const_int;
                g_hash_table_insert (const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
          }
+#line 3419 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 149:
-/* Line 1792 of yacc.c  */
-#line 1111 "giscanner/scannerparser.y"
+#line 1111 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_CONST;
          }
+#line 3427 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 150:
-/* Line 1792 of yacc.c  */
-#line 1115 "giscanner/scannerparser.y"
+#line 1115 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_RESTRICT;
          }
+#line 3435 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 151:
-/* Line 1792 of yacc.c  */
-#line 1119 "giscanner/scannerparser.y"
+#line 1119 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_EXTENSION;
          }
+#line 3443 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 152:
-/* Line 1792 of yacc.c  */
-#line 1123 "giscanner/scannerparser.y"
+#line 1123 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_VOLATILE;
          }
+#line 3451 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 153:
-/* Line 1792 of yacc.c  */
-#line 1130 "giscanner/scannerparser.y"
+#line 1130 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.function_specifier) = FUNCTION_INLINE;
          }
+#line 3459 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 154:
-/* Line 1792 of yacc.c  */
-#line 1137 "giscanner/scannerparser.y"
+#line 1137 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(2) - (2)].symbol);
-               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[(1) - (2)].ctype));
+               (yyval.symbol) = (yyvsp[0].symbol);
+               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
+#line 3468 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 156:
-/* Line 1792 of yacc.c  */
-#line 1146 "giscanner/scannerparser.y"
+#line 1146 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
-               (yyval.symbol)->ident = (yyvsp[(1) - (1)].str);
+               (yyval.symbol)->ident = (yyvsp[0].str);
          }
+#line 3477 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 157:
-/* Line 1792 of yacc.c  */
-#line 1151 "giscanner/scannerparser.y"
+#line 1151 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(2) - (3)].symbol);
+               (yyval.symbol) = (yyvsp[-1].symbol);
          }
+#line 3485 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 158:
-/* Line 1792 of yacc.c  */
-#line 1155 "giscanner/scannerparser.y"
+#line 1155 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(1) - (4)].symbol);
-               gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[(3) - (4)].symbol)));
+               (yyval.symbol) = (yyvsp[-3].symbol);
+               gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
+#line 3494 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 159:
-/* Line 1792 of yacc.c  */
-#line 1160 "giscanner/scannerparser.y"
+#line 1160 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(1) - (3)].symbol);
+               (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
+#line 3503 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 160:
-/* Line 1792 of yacc.c  */
-#line 1165 "giscanner/scannerparser.y"
+#line 1165 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
-               if ((yyvsp[(3) - (4)].list) != NULL && ((yyvsp[(3) - (4)].list)->next != NULL || ((GISourceSymbol *) (yyvsp[(3) - (4)].list)->data)->base_type->type != CTYPE_VOID)) {
-                       func->child_list = (yyvsp[(3) - (4)].list);
+               if ((yyvsp[-1].list) != NULL && ((yyvsp[-1].list)->next != NULL || ((GISourceSymbol *) (yyvsp[-1].list)->data)->base_type->type != CTYPE_VOID)) {
+                       func->child_list = (yyvsp[-1].list);
                }
-               (yyval.symbol) = (yyvsp[(1) - (4)].symbol);
+               (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
+#line 3517 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 161:
-/* Line 1792 of yacc.c  */
-#line 1175 "giscanner/scannerparser.y"
+#line 1175 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceType *func = gi_source_function_new ();
-               func->child_list = (yyvsp[(3) - (4)].list);
-               (yyval.symbol) = (yyvsp[(1) - (4)].symbol);
+               func->child_list = (yyvsp[-1].list);
+               (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
+#line 3528 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 162:
-/* Line 1792 of yacc.c  */
-#line 1182 "giscanner/scannerparser.y"
+#line 1182 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceType *func = gi_source_function_new ();
-               (yyval.symbol) = (yyvsp[(1) - (3)].symbol);
+               (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
+#line 3538 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 163:
-/* Line 1792 of yacc.c  */
-#line 1191 "giscanner/scannerparser.y"
+#line 1191 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_pointer_new (NULL);
-               (yyval.ctype)->type_qualifier = (yyvsp[(2) - (2)].type_qualifier);
+               (yyval.ctype)->type_qualifier = (yyvsp[0].type_qualifier);
          }
+#line 3547 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 164:
-/* Line 1792 of yacc.c  */
-#line 1196 "giscanner/scannerparser.y"
+#line 1196 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.ctype) = gi_source_pointer_new (NULL);
          }
+#line 3555 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 165:
-/* Line 1792 of yacc.c  */
-#line 1200 "giscanner/scannerparser.y"
+#line 1200 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               GISourceType **base = &((yyvsp[(3) - (3)].ctype)->base_type);
+               GISourceType **base = &((yyvsp[0].ctype)->base_type);
 
                while (*base != NULL) {
                        base = &((*base)->base_type);
                }
                *base = gi_source_pointer_new (NULL);
-               (*base)->type_qualifier = (yyvsp[(2) - (3)].type_qualifier);
-               (yyval.ctype) = (yyvsp[(3) - (3)].ctype);
+               (*base)->type_qualifier = (yyvsp[-1].type_qualifier);
+               (yyval.ctype) = (yyvsp[0].ctype);
          }
+#line 3570 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 166:
-/* Line 1792 of yacc.c  */
-#line 1211 "giscanner/scannerparser.y"
+#line 1211 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               GISourceType **base = &((yyvsp[(2) - (2)].ctype)->base_type);
+               GISourceType **base = &((yyvsp[0].ctype)->base_type);
 
                while (*base != NULL) {
                        base = &((*base)->base_type);
                }
                *base = gi_source_pointer_new (NULL);
-               (yyval.ctype) = (yyvsp[(2) - (2)].ctype);
+               (yyval.ctype) = (yyvsp[0].ctype);
          }
+#line 3584 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 168:
-/* Line 1792 of yacc.c  */
-#line 1225 "giscanner/scannerparser.y"
+#line 1225 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier) | (yyvsp[(2) - (2)].type_qualifier);
+               (yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier);
          }
+#line 3592 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 169:
-/* Line 1792 of yacc.c  */
-#line 1232 "giscanner/scannerparser.y"
+#line 1232 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.list) = g_list_append (NULL, (yyvsp[(1) - (1)].symbol));
+               (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
+#line 3600 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 170:
-/* Line 1792 of yacc.c  */
-#line 1236 "giscanner/scannerparser.y"
+#line 1236 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.list) = g_list_append ((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].symbol));
+               (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
+#line 3608 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 171:
-/* Line 1792 of yacc.c  */
-#line 1243 "giscanner/scannerparser.y"
+#line 1243 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(2) - (2)].symbol);
-               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[(1) - (2)].ctype));
+               (yyval.symbol) = (yyvsp[0].symbol);
+               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
+#line 3617 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 172:
-/* Line 1792 of yacc.c  */
-#line 1248 "giscanner/scannerparser.y"
+#line 1248 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(2) - (2)].symbol);
-               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[(1) - (2)].ctype));
+               (yyval.symbol) = (yyvsp[0].symbol);
+               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
+#line 3626 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 173:
-/* Line 1792 of yacc.c  */
-#line 1253 "giscanner/scannerparser.y"
+#line 1253 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
-               (yyval.symbol)->base_type = (yyvsp[(1) - (1)].ctype);
+               (yyval.symbol)->base_type = (yyvsp[0].ctype);
          }
+#line 3635 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 174:
-/* Line 1792 of yacc.c  */
-#line 1258 "giscanner/scannerparser.y"
+#line 1258 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_ELLIPSIS, scanner->current_file, lineno);
          }
+#line 3643 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 175:
-/* Line 1792 of yacc.c  */
-#line 1265 "giscanner/scannerparser.y"
+#line 1265 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
-               sym->ident = (yyvsp[(1) - (1)].str);
+               sym->ident = (yyvsp[0].str);
                (yyval.list) = g_list_append (NULL, sym);
          }
+#line 3653 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 176:
-/* Line 1792 of yacc.c  */
-#line 1271 "giscanner/scannerparser.y"
+#line 1271 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
-               sym->ident = (yyvsp[(3) - (3)].str);
-               (yyval.list) = g_list_append ((yyvsp[(1) - (3)].list), sym);
+               sym->ident = (yyvsp[0].str);
+               (yyval.list) = g_list_append ((yyvsp[-2].list), sym);
          }
+#line 3663 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 179:
-/* Line 1792 of yacc.c  */
-#line 1285 "giscanner/scannerparser.y"
+#line 1285 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
-               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[(1) - (1)].ctype));
+               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[0].ctype));
          }
+#line 3672 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 181:
-/* Line 1792 of yacc.c  */
-#line 1291 "giscanner/scannerparser.y"
+#line 1291 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(2) - (2)].symbol);
-               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[(1) - (2)].ctype));
+               (yyval.symbol) = (yyvsp[0].symbol);
+               gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
+#line 3681 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 182:
-/* Line 1792 of yacc.c  */
-#line 1299 "giscanner/scannerparser.y"
+#line 1299 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(2) - (3)].symbol);
+               (yyval.symbol) = (yyvsp[-1].symbol);
          }
+#line 3689 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 183:
-/* Line 1792 of yacc.c  */
-#line 1303 "giscanner/scannerparser.y"
+#line 1303 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (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 3698 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 184:
-/* Line 1792 of yacc.c  */
-#line 1308 "giscanner/scannerparser.y"
+#line 1308 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (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[(2) - (3)].symbol)));
+               gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
+#line 3707 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 185:
-/* Line 1792 of yacc.c  */
-#line 1313 "giscanner/scannerparser.y"
+#line 1313 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(1) - (3)].symbol);
+               (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
+#line 3716 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 186:
-/* Line 1792 of yacc.c  */
-#line 1318 "giscanner/scannerparser.y"
+#line 1318 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               (yyval.symbol) = (yyvsp[(1) - (4)].symbol);
-               gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[(3) - (4)].symbol)));
+               (yyval.symbol) = (yyvsp[-3].symbol);
+               gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
+#line 3725 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 187:
-/* Line 1792 of yacc.c  */
-#line 1323 "giscanner/scannerparser.y"
+#line 1323 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                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 3735 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 188:
-/* Line 1792 of yacc.c  */
-#line 1329 "giscanner/scannerparser.y"
+#line 1329 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
-               if ((yyvsp[(2) - (3)].list) != NULL && ((yyvsp[(2) - (3)].list)->next != NULL || ((GISourceSymbol *) (yyvsp[(2) - (3)].list)->data)->base_type->type != CTYPE_VOID)) {
-                       func->child_list = (yyvsp[(2) - (3)].list);
+               if ((yyvsp[-1].list) != NULL && ((yyvsp[-1].list)->next != NULL || ((GISourceSymbol *) (yyvsp[-1].list)->data)->base_type->type != CTYPE_VOID)) {
+                       func->child_list = (yyvsp[-1].list);
                }
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
+#line 3749 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 189:
-/* Line 1792 of yacc.c  */
-#line 1339 "giscanner/scannerparser.y"
+#line 1339 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceType *func = gi_source_function_new ();
-               (yyval.symbol) = (yyvsp[(1) - (3)].symbol);
+               (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
+#line 3759 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 190:
-/* Line 1792 of yacc.c  */
-#line 1345 "giscanner/scannerparser.y"
+#line 1345 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
-               if ((yyvsp[(3) - (4)].list) != NULL && ((yyvsp[(3) - (4)].list)->next != NULL || ((GISourceSymbol *) (yyvsp[(3) - (4)].list)->data)->base_type->type != CTYPE_VOID)) {
-                       func->child_list = (yyvsp[(3) - (4)].list);
+               if ((yyvsp[-1].list) != NULL && ((yyvsp[-1].list)->next != NULL || ((GISourceSymbol *) (yyvsp[-1].list)->data)->base_type->type != CTYPE_VOID)) {
+                       func->child_list = (yyvsp[-1].list);
                }
-               (yyval.symbol) = (yyvsp[(1) - (4)].symbol);
+               (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
+#line 3773 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 191:
-/* Line 1792 of yacc.c  */
-#line 1358 "giscanner/scannerparser.y"
+#line 1358 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.str) = g_strdup (yytext);
          }
+#line 3781 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 241:
-/* Line 1792 of yacc.c  */
-#line 1465 "giscanner/scannerparser.y"
+#line 1465 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.str) = g_strdup (yytext + strlen ("#define "));
          }
+#line 3789 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 242:
-/* Line 1792 of yacc.c  */
-#line 1472 "giscanner/scannerparser.y"
+#line 1472 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                (yyval.str) = g_strdup (yytext + strlen ("#define "));
          }
+#line 3797 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 244:
-/* Line 1792 of yacc.c  */
-#line 1483 "giscanner/scannerparser.y"
+#line 1483 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
-               if ((yyvsp[(2) - (2)].symbol)->const_int_set || (yyvsp[(2) - (2)].symbol)->const_boolean_set || (yyvsp[(2) - (2)].symbol)->const_double_set || (yyvsp[(2) - (2)].symbol)->const_string != NULL) {
-                       (yyvsp[(2) - (2)].symbol)->ident = (yyvsp[(1) - (2)].str);
-                       gi_source_scanner_add_symbol (scanner, (yyvsp[(2) - (2)].symbol));
-                       gi_source_symbol_unref ((yyvsp[(2) - (2)].symbol));
+               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) {
+                       (yyvsp[0].symbol)->ident = (yyvsp[-1].str);
+                       gi_source_scanner_add_symbol (scanner, (yyvsp[0].symbol));
+                       gi_source_symbol_unref ((yyvsp[0].symbol));
                }
          }
+#line 3809 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 245:
-/* Line 1792 of yacc.c  */
-#line 1494 "giscanner/scannerparser.y"
+#line 1494 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                push_conditional (scanner, FOR_GI_SCANNER);
                update_skipping (scanner);
          }
+#line 3818 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 246:
-/* Line 1792 of yacc.c  */
-#line 1499 "giscanner/scannerparser.y"
+#line 1499 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                push_conditional (scanner, NOT_GI_SCANNER);
                update_skipping (scanner);
          }
+#line 3827 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 247:
-/* Line 1792 of yacc.c  */
-#line 1504 "giscanner/scannerparser.y"
+#line 1504 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
+#line 3836 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 248:
-/* Line 1792 of yacc.c  */
-#line 1509 "giscanner/scannerparser.y"
+#line 1509 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
+#line 3845 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 249:
-/* Line 1792 of yacc.c  */
-#line 1514 "giscanner/scannerparser.y"
+#line 1514 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
+#line 3854 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 250:
-/* Line 1792 of yacc.c  */
-#line 1519 "giscanner/scannerparser.y"
+#line 1519 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                pop_conditional (scanner);
                push_conditional (scanner, IRRELEVANT);
                update_skipping (scanner);
          }
+#line 3865 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 251:
-/* Line 1792 of yacc.c  */
-#line 1526 "giscanner/scannerparser.y"
+#line 1526 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                toggle_conditional (scanner);
                update_skipping (scanner);
          }
+#line 3874 "scannerparser.c" /* yacc.c:1646  */
     break;
 
   case 252:
-/* Line 1792 of yacc.c  */
-#line 1531 "giscanner/scannerparser.y"
+#line 1531 "giscanner/scannerparser.y" /* yacc.c:1646  */
     {
                pop_conditional (scanner);
                update_skipping (scanner);
          }
+#line 3883 "scannerparser.c" /* yacc.c:1646  */
     break;
 
 
-/* Line 1792 of yacc.c  */
-#line 4127 "scannerparser.c"
+#line 3887 "scannerparser.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4145,7 +3905,7 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-  /* Now `shift' the result of the reduction.  Determine what state
+  /* Now 'shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
 
@@ -4160,9 +3920,9 @@ yyreduce:
   goto yynewstate;
 
 
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
+/*--------------------------------------.
+| yyerrlab -- here on detecting error |
+`--------------------------------------*/
 yyerrlab:
   /* Make sure we have latest lookahead translation.  See comments at
      user semantic actions for why this is necessary.  */
@@ -4213,20 +3973,20 @@ yyerrlab:
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
-        error, discard it.  */
+         error, discard it.  */
 
       if (yychar <= YYEOF)
-       {
-         /* Return failure if at end of input.  */
-         if (yychar == YYEOF)
-           YYABORT;
-       }
+        {
+          /* Return failure if at end of input.  */
+          if (yychar == YYEOF)
+            YYABORT;
+        }
       else
-       {
-         yydestruct ("Error: discarding",
-                     yytoken, &yylval, scanner);
-         yychar = YYEMPTY;
-       }
+        {
+          yydestruct ("Error: discarding",
+                      yytoken, &yylval, scanner);
+          yychar = YYEMPTY;
+        }
     }
 
   /* Else will try to reuse lookahead token after shifting the error
@@ -4245,7 +4005,7 @@ yyerrorlab:
   if (/*CONSTCOND*/ 0)
      goto yyerrorlab;
 
-  /* Do not reclaim the symbols of the rule which action triggered
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
   yylen = 0;
@@ -4258,29 +4018,29 @@ yyerrorlab:
 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
 `-------------------------------------------------------------*/
 yyerrlab1:
-  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
+  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
   for (;;)
     {
       yyn = yypact[yystate];
       if (!yypact_value_is_default (yyn))
-       {
-         yyn += YYTERROR;
-         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-           {
-             yyn = yytable[yyn];
-             if (0 < yyn)
-               break;
-           }
-       }
+        {
+          yyn += YYTERROR;
+          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+            {
+              yyn = yytable[yyn];
+              if (0 < yyn)
+                break;
+            }
+        }
 
       /* Pop the current state because it cannot handle the error token.  */
       if (yyssp == yyss)
-       YYABORT;
+        YYABORT;
 
 
       yydestruct ("Error: popping",
-                 yystos[yystate], yyvsp, scanner);
+                  yystos[yystate], yyvsp, scanner);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -4331,14 +4091,14 @@ yyreturn:
       yydestruct ("Cleanup: discarding lookahead",
                   yytoken, &yylval, scanner);
     }
-  /* Do not reclaim the symbols of the rule which action triggered
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
   YY_STACK_PRINT (yyss, yyssp);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                 yystos[*yyssp], yyvsp, scanner);
+                  yystos[*yyssp], yyvsp, scanner);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
@@ -4349,13 +4109,9 @@ yyreturn:
   if (yymsg != yymsgbuf)
     YYSTACK_FREE (yymsg);
 #endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
+  return yyresult;
 }
-
-
-/* Line 2055 of yacc.c  */
-#line 1544 "giscanner/scannerparser.y"
+#line 1544 "giscanner/scannerparser.y" /* yacc.c:1906  */
 
 static void
 yyerror (GISourceScanner *scanner, const char *s)
index bb4d360..798fcfd 100644 (file)
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.7.  */
+/* A Bison parser, made by GNU Bison 3.0.2.  */
 
 /* Bison interface for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
-   
+
+   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
 #ifndef YY_YY_SCANNERPARSER_H_INCLUDED
 # define YY_YY_SCANNERPARSER_H_INCLUDED
-/* Enabling traces.  */
+/* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
 #endif
 extern int yydebug;
 #endif
 
-/* Tokens.  */
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     IDENTIFIER = 258,
-     TYPEDEF_NAME = 259,
-     INTEGER = 260,
-     FLOATING = 261,
-     BOOLEAN = 262,
-     CHARACTER = 263,
-     STRING = 264,
-     INTL_CONST = 265,
-     INTUL_CONST = 266,
-     ELLIPSIS = 267,
-     ADDEQ = 268,
-     SUBEQ = 269,
-     MULEQ = 270,
-     DIVEQ = 271,
-     MODEQ = 272,
-     XOREQ = 273,
-     ANDEQ = 274,
-     OREQ = 275,
-     SL = 276,
-     SR = 277,
-     SLEQ = 278,
-     SREQ = 279,
-     EQ = 280,
-     NOTEQ = 281,
-     LTEQ = 282,
-     GTEQ = 283,
-     ANDAND = 284,
-     OROR = 285,
-     PLUSPLUS = 286,
-     MINUSMINUS = 287,
-     ARROW = 288,
-     AUTO = 289,
-     BOOL = 290,
-     BREAK = 291,
-     CASE = 292,
-     CHAR = 293,
-     CONST = 294,
-     CONTINUE = 295,
-     DEFAULT = 296,
-     DO = 297,
-     DOUBLE = 298,
-     ELSE = 299,
-     ENUM = 300,
-     EXTENSION = 301,
-     EXTERN = 302,
-     FLOAT = 303,
-     FOR = 304,
-     GOTO = 305,
-     IF = 306,
-     INLINE = 307,
-     INT = 308,
-     LONG = 309,
-     REGISTER = 310,
-     RESTRICT = 311,
-     RETURN = 312,
-     SHORT = 313,
-     SIGNED = 314,
-     SIZEOF = 315,
-     STATIC = 316,
-     STRUCT = 317,
-     SWITCH = 318,
-     TYPEDEF = 319,
-     UNION = 320,
-     UNSIGNED = 321,
-     VOID = 322,
-     VOLATILE = 323,
-     WHILE = 324,
-     FUNCTION_MACRO = 325,
-     OBJECT_MACRO = 326,
-     IFDEF_GI_SCANNER = 327,
-     IFNDEF_GI_SCANNER = 328,
-     IFDEF_COND = 329,
-     IFNDEF_COND = 330,
-     IF_COND = 331,
-     ELIF_COND = 332,
-     ELSE_COND = 333,
-     ENDIF_COND = 334
-   };
+  enum yytokentype
+  {
+    IDENTIFIER = 258,
+    TYPEDEF_NAME = 259,
+    INTEGER = 260,
+    FLOATING = 261,
+    BOOLEAN = 262,
+    CHARACTER = 263,
+    STRING = 264,
+    INTL_CONST = 265,
+    INTUL_CONST = 266,
+    ELLIPSIS = 267,
+    ADDEQ = 268,
+    SUBEQ = 269,
+    MULEQ = 270,
+    DIVEQ = 271,
+    MODEQ = 272,
+    XOREQ = 273,
+    ANDEQ = 274,
+    OREQ = 275,
+    SL = 276,
+    SR = 277,
+    SLEQ = 278,
+    SREQ = 279,
+    EQ = 280,
+    NOTEQ = 281,
+    LTEQ = 282,
+    GTEQ = 283,
+    ANDAND = 284,
+    OROR = 285,
+    PLUSPLUS = 286,
+    MINUSMINUS = 287,
+    ARROW = 288,
+    AUTO = 289,
+    BOOL = 290,
+    BREAK = 291,
+    CASE = 292,
+    CHAR = 293,
+    CONST = 294,
+    CONTINUE = 295,
+    DEFAULT = 296,
+    DO = 297,
+    DOUBLE = 298,
+    ELSE = 299,
+    ENUM = 300,
+    EXTENSION = 301,
+    EXTERN = 302,
+    FLOAT = 303,
+    FOR = 304,
+    GOTO = 305,
+    IF = 306,
+    INLINE = 307,
+    INT = 308,
+    LONG = 309,
+    REGISTER = 310,
+    RESTRICT = 311,
+    RETURN = 312,
+    SHORT = 313,
+    SIGNED = 314,
+    SIZEOF = 315,
+    STATIC = 316,
+    STRUCT = 317,
+    SWITCH = 318,
+    TYPEDEF = 319,
+    UNION = 320,
+    UNSIGNED = 321,
+    VOID = 322,
+    VOLATILE = 323,
+    WHILE = 324,
+    FUNCTION_MACRO = 325,
+    OBJECT_MACRO = 326,
+    IFDEF_GI_SCANNER = 327,
+    IFNDEF_GI_SCANNER = 328,
+    IFDEF_COND = 329,
+    IFNDEF_COND = 330,
+    IF_COND = 331,
+    ELIF_COND = 332,
+    ELSE_COND = 333,
+    ENDIF_COND = 334
+  };
 #endif
 /* Tokens.  */
 #define IDENTIFIER 258
@@ -204,13 +203,12 @@ extern int yydebug;
 #define ELSE_COND 333
 #define ENDIF_COND 334
 
-
-
+/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
 {
-/* Line 2058 of yacc.c  */
-#line 212 "giscanner/scannerparser.y"
+#line 212 "giscanner/scannerparser.y" /* yacc.c:1909  */
 
   char *str;
   GList *list;
@@ -221,29 +219,15 @@ typedef union YYSTYPE
   FunctionSpecifier function_specifier;
   UnaryOperator unary_operator;
 
-
-/* Line 2058 of yacc.c  */
-#line 227 "scannerparser.h"
-} YYSTYPE;
+#line 223 "scannerparser.h" /* yacc.c:1909  */
+};
 # define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
+
 extern YYSTYPE yylval;
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
 int yyparse (GISourceScanner* scanner);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
 #endif /* !YY_YY_SCANNERPARSER_H_INCLUDED  */
index 26b5910..adeba76 100644 (file)
@@ -6,7 +6,7 @@ EXTRA_DIST=
 BUILT_SOURCES=
 CLEANFILES=
 
-AM_CFLAGS = $(GOBJECT_CFLAGS)
+AM_CFLAGS = $(GOBJECT_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS)
 LIBADD = $(GOBJECT_LIBS)
 
 testsdir = $(datadir)/gobject-introspection-1.0/tests
@@ -14,7 +14,8 @@ tests_DATA =              \
     everything.c           \
     everything.h           \
     gimarshallingtests.c    \
-    gimarshallingtests.h
+    gimarshallingtests.h    \
+    gitestmacros.h
 
 EXTRA_LTLIBRARIES = libeverything-1.0.la libgimarshallingtests-1.0.la
 
@@ -23,7 +24,8 @@ libgimarshallingtests_1_0_la_SOURCES = gimarshallingtests.c
 
 EXTRA_DIST += \
        gimarshallingtests.h \
-       gi-tester
+       gi-tester \
+       gitestmacros.h
 
 BUILT_SOURCES += everything.c everything.h
 
index 797d4fa..ecec7a2 100644 (file)
@@ -472,6 +472,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -641,19 +642,20 @@ INTROSPECTION_DOCTOOL_ARGS = \
     --add-include-path=$(top_builddir)
 
 SUBDIRS = . scanner repository offsets warn
-EXTRA_DIST = gimarshallingtests.h gi-tester
+EXTRA_DIST = gimarshallingtests.h gi-tester gitestmacros.h
 BUILT_SOURCES = everything.c everything.h
 CLEANFILES = $(BUILT_SOURCES) $(EXTRA_LTLIBRARIES) everything-stamp.h \
        Everything-1.0.gir Everything-1.0.typelib \
        GIMarshallingTests-1.0.gir GIMarshallingTests-1.0.typelib
-AM_CFLAGS = $(GOBJECT_CFLAGS)
+AM_CFLAGS = $(GOBJECT_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS)
 LIBADD = $(GOBJECT_LIBS)
 testsdir = $(datadir)/gobject-introspection-1.0/tests
 tests_DATA = \
     everything.c           \
     everything.h           \
     gimarshallingtests.c    \
-    gimarshallingtests.h
+    gimarshallingtests.h    \
+    gitestmacros.h
 
 EXTRA_LTLIBRARIES = libeverything-1.0.la libgimarshallingtests-1.0.la
 libeverything_1_0_la_SOURCES = everything.c
index 3e7713e..59b5ba9 100644 (file)
@@ -2,6 +2,8 @@
  *vim: tabstop=4 shiftwidth=4 expandtab
  */
 
+#include "config.h"
+
 #include "gimarshallingtests.h"
 
 #include <string.h>
@@ -3993,6 +3995,19 @@ gi_marshalling_tests_object_new (gint int_)
   return g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, "int", int_, NULL);
 }
 
+GIMarshallingTestsObject *
+gi_marshalling_tests_object_new_fail (gint int_, GError **error)
+{
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+  g_set_error_literal (error,
+                       g_quark_from_static_string (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN),
+                       GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE,
+                       GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE);
+
+  return NULL;
+}
+
 /**
  * gi_marshalling_tests_object_method_array_in:
  * @ints: (array length=length):
@@ -4249,7 +4264,7 @@ gi_marshalling_tests_object_full_inout (GIMarshallingTestsObject **object)
 }
 
 /**
- * gi_marshalling_tests_object_test_int8_in:
+ * gi_marshalling_tests_object_int8_in:
  * @in: (in):
  */
 void
@@ -4259,7 +4274,7 @@ gi_marshalling_tests_object_int8_in (GIMarshallingTestsObject *object, gint8 in)
 }
 
 /**
- * gi_marshalling_tests_object_test_int8_out:
+ * gi_marshalling_tests_object_int8_out:
  * @out: (out):
  */
 void
index aa2c222..3fb9c94 100644 (file)
@@ -4,6 +4,8 @@
 
 #include <glib-object.h>
 
+#include "gitestmacros.h"
+
 #ifndef __GI_MARSHALLING_TESTS_H__
 #define __GI_MARSHALLING_TESTS_H__
 
@@ -18,255 +20,512 @@ typedef struct _GIMarshallingTestsBoxedStruct GIMarshallingTestsBoxedStruct;
 
 /* Booleans */
 
+_GI_TEST_EXTERN
 gboolean gi_marshalling_tests_boolean_return_true (void);
+
+_GI_TEST_EXTERN
 gboolean gi_marshalling_tests_boolean_return_false (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boolean_in_true (gboolean v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boolean_in_false (gboolean v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boolean_out_true (gboolean *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boolean_out_false (gboolean *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boolean_inout_true_false (gboolean *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boolean_inout_false_true (gboolean *v);
 
 
 /* Integers */
 
+_GI_TEST_EXTERN
 gint8 gi_marshalling_tests_int8_return_max (void);
+
+_GI_TEST_EXTERN
 gint8 gi_marshalling_tests_int8_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int8_in_max (gint8 v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int8_in_min (gint8 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int8_out_max (gint8 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int8_out_min (gint8 *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int8_inout_max_min (gint8 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int8_inout_min_max (gint8 *v);
 
 
+
+_GI_TEST_EXTERN
 guint8 gi_marshalling_tests_uint8_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint8_in (guint8 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint8_out (guint8 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint8_inout (guint8 *v);
 
 
+_GI_TEST_EXTERN
 gint16 gi_marshalling_tests_int16_return_max (void);
+
+_GI_TEST_EXTERN
 gint16 gi_marshalling_tests_int16_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int16_in_max (gint16 v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int16_in_min (gint16 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int16_out_max (gint16 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int16_out_min (gint16 *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int16_inout_max_min (gint16 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int16_inout_min_max (gint16 *v);
 
 
+
+_GI_TEST_EXTERN
 guint16 gi_marshalling_tests_uint16_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint16_in (guint16 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint16_out (guint16 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint16_inout (guint16 *v);
 
 
+
+_GI_TEST_EXTERN
 gint32 gi_marshalling_tests_int32_return_max (void);
+
+_GI_TEST_EXTERN
 gint32 gi_marshalling_tests_int32_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int32_in_max (gint32 v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int32_in_min (gint32 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int32_out_max (gint32 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int32_out_min (gint32 *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int32_inout_max_min (gint32 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int32_inout_min_max (gint32 *v);
 
 
+
+_GI_TEST_EXTERN
 guint32 gi_marshalling_tests_uint32_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint32_in (guint32 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint32_out (guint32 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint32_inout (guint32 *v);
 
 
+
+_GI_TEST_EXTERN
 gint64 gi_marshalling_tests_int64_return_max (void);
+
+_GI_TEST_EXTERN
 gint64 gi_marshalling_tests_int64_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int64_in_max (gint64 v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int64_in_min (gint64 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int64_out_max (gint64 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int64_out_min (gint64 *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int64_inout_max_min (gint64 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int64_inout_min_max (gint64 *v);
 
 
+
+_GI_TEST_EXTERN
 guint64 gi_marshalling_tests_uint64_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint64_in (guint64 v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint64_out (guint64 *v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint64_inout (guint64 *v);
 
 
+
+_GI_TEST_EXTERN
 gshort gi_marshalling_tests_short_return_max (void);
+
+_GI_TEST_EXTERN
 gshort gi_marshalling_tests_short_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_short_in_max (gshort short_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_short_in_min (gshort short_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_short_out_max (gshort *short_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_short_out_min (gshort *short_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_short_inout_max_min (gshort *short_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_short_inout_min_max (gshort *short_);
 
 
+
+_GI_TEST_EXTERN
 gushort gi_marshalling_tests_ushort_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ushort_in (gushort ushort_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ushort_out (gushort *ushort_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ushort_inout (gushort *ushort_);
 
 
+
+_GI_TEST_EXTERN
 gint gi_marshalling_tests_int_return_max (void);
+
+_GI_TEST_EXTERN
 gint gi_marshalling_tests_int_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_in_max (gint int_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_in_min (gint int_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_out_max (gint *int_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_out_min (gint *int_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_inout_max_min (gint *int_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_inout_min_max (gint *int_);
 
 
+_GI_TEST_EXTERN
 guint gi_marshalling_tests_uint_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint_in (guint uint_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint_out (guint *uint_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_uint_inout (guint *uint_);
 
 
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_long_return_max (void);
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_long_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_long_in_max (glong long_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_long_in_min (glong long_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_long_out_max (glong *long_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_long_out_min (glong *long_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_long_inout_max_min (glong *long_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_long_inout_min_max (glong *long_);
 
 
+_GI_TEST_EXTERN
 gulong gi_marshalling_tests_ulong_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ulong_in (gulong ulong_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ulong_out (gulong *ulong_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ulong_inout (gulong *ulong_);
 
 
+_GI_TEST_EXTERN
 gssize gi_marshalling_tests_ssize_return_max (void);
+
+_GI_TEST_EXTERN
 gssize gi_marshalling_tests_ssize_return_min (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ssize_in_max (gssize ssize);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ssize_in_min (gssize ssize);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ssize_out_max (gssize *ssize);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ssize_out_min (gssize *ssize);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ssize_inout_max_min (gssize *ssize);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ssize_inout_min_max (gssize *ssize);
 
 
+
+_GI_TEST_EXTERN
 gsize gi_marshalling_tests_size_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_size_in (gsize size);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_size_out (gsize *size);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_size_inout (gsize *size);
 
 
 /* Floating-point */
 
+_GI_TEST_EXTERN
 gfloat gi_marshalling_tests_float_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_float_in (gfloat v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_float_out (gfloat *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_float_inout (gfloat *v);
 
 
+
+_GI_TEST_EXTERN
 gdouble gi_marshalling_tests_double_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_double_in (gdouble v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_double_out (gdouble *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_double_inout (gdouble *v);
 
 
 /* Timestamps */
 
+_GI_TEST_EXTERN
 time_t gi_marshalling_tests_time_t_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_time_t_in (time_t v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_time_t_out (time_t *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_time_t_inout (time_t *v);
 
 
 /* GType */
 
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_gtype_return (void);
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_gtype_string_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gtype_in (GType gtype);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gtype_string_in (GType gtype);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gtype_out (GType *gtype);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gtype_string_out (GType *gtype);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gtype_inout (GType *gtype);
 
 
 /* UTF-8 */
 
+_GI_TEST_EXTERN
 const gchar *gi_marshalling_tests_utf8_none_return (void);
+
+_GI_TEST_EXTERN
 gchar *gi_marshalling_tests_utf8_full_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_none_in (const gchar *utf8);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_full_in (gchar *utf8);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_none_out (gchar **utf8);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_full_out (gchar **utf8);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_dangling_out (gchar **utf8);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_none_inout (gchar **utf8);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_full_inout (gchar **utf8);
 
+
+_GI_TEST_EXTERN
 GSList *gi_marshalling_tests_filename_list_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_utf8_as_uint8array_in (const guint8 *array,
                                                  gsize         len);
 
@@ -286,12 +545,20 @@ typedef enum
   GI_MARSHALLING_TESTS_SECOND_ENUM_SECONDVALUE2,
 } GIMarshallingTestsSecondEnum;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsEnum gi_marshalling_tests_enum_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_enum_in (GIMarshallingTestsEnum v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_enum_out (GIMarshallingTestsEnum *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_enum_inout (GIMarshallingTestsEnum *v);
 
 
@@ -304,15 +571,24 @@ typedef enum
   GI_MARSHALLING_TESTS_GENUM_VALUE3 = 42
 } GIMarshallingTestsGEnum;
 
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_genum_get_type (void) G_GNUC_CONST;
 #define GI_MARSHALLING_TESTS_TYPE_GENUM (gi_marshalling_tests_genum_get_type ())
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsGEnum gi_marshalling_tests_genum_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_genum_in (GIMarshallingTestsGEnum v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_genum_out (GIMarshallingTestsGEnum *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_genum_inout (GIMarshallingTestsGEnum *v);
 
 
@@ -328,16 +604,27 @@ typedef enum
   GI_MARSHALLING_TESTS_FLAGS_MASK2 = GI_MARSHALLING_TESTS_FLAGS_MASK
 } GIMarshallingTestsFlags;
 
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_flags_get_type (void) G_GNUC_CONST;
 #define GI_MARSHALLING_TESTS_TYPE_FLAGS (gi_marshalling_tests_flags_get_type ())
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsFlags gi_marshalling_tests_flags_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_flags_in (GIMarshallingTestsFlags v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_flags_in_zero (GIMarshallingTestsFlags v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_flags_out (GIMarshallingTestsFlags *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_flags_inout (GIMarshallingTestsFlags *v);
 
 /* Flags with no GType */
@@ -352,221 +639,472 @@ typedef enum
   GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_MASK2 = GI_MARSHALLING_TESTS_FLAGS_MASK
 } GIMarshallingTestsNoTypeFlags;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsNoTypeFlags gi_marshalling_tests_no_type_flags_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_no_type_flags_in (GIMarshallingTestsNoTypeFlags v);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_no_type_flags_in_zero (GIMarshallingTestsNoTypeFlags v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_no_type_flags_out (GIMarshallingTestsNoTypeFlags *v);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_no_type_flags_inout (GIMarshallingTestsNoTypeFlags *v);
 
 /* Arrays */
 
+
+_GI_TEST_EXTERN
 gboolean gi_marshalling_tests_init_function (gint *n_args, char ***argv);
 
 /* Fixed-size */
+
+_GI_TEST_EXTERN
 const gint *gi_marshalling_tests_array_fixed_int_return (void);
+
+_GI_TEST_EXTERN
 const gshort *gi_marshalling_tests_array_fixed_short_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_fixed_int_in (const gint *ints);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_fixed_short_in (const gshort *shorts);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_fixed_out (gint **ints);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_fixed_out_struct (GIMarshallingTestsSimpleStruct **structs);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_fixed_inout (gint **ints);
 
 /* Variable-size */
 
+
+_GI_TEST_EXTERN
 const gint *gi_marshalling_tests_array_return (gint *length);
+
+_GI_TEST_EXTERN
 const gint *gi_marshalling_tests_array_return_etc (gint first, gint *length, gint last, gint *sum);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in (const gint *ints, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in_len_before (gint length, const gint *ints);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in_len_zero_terminated (const gint *ints, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_string_in (const gchar **strings, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_uint8_in (const guint8 *chars, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_struct_in (GIMarshallingTestsBoxedStruct **structs, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_struct_value_in (GIMarshallingTestsBoxedStruct *structs, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_struct_take_in (GIMarshallingTestsBoxedStruct **structs, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_simple_struct_in (GIMarshallingTestsSimpleStruct *structs, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_multi_array_key_value_in (gint length, const gchar **keys, const GValue *values);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_enum_in (GIMarshallingTestsEnum *_enum, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in_guint64_len (const gint *ints, guint64 length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in_guint8_len (const gint *ints, guint8 length);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_out (gint **ints, gint *length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_out_etc (gint first, gint **ints, gint *length, gint last, gint *sum);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_inout (gint **ints, gint *length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_inout_etc (gint first, gint **ints, gint *length, gint last, gint *sum);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in_nonzero_nonlen (gint first, const guint8 *chars);
 
 /* Zero-terminated */
 
+
+_GI_TEST_EXTERN
 gchar **gi_marshalling_tests_array_zero_terminated_return (void);
+
+_GI_TEST_EXTERN
 gchar **gi_marshalling_tests_array_zero_terminated_return_null (void);
+
+_GI_TEST_EXTERN
 GIMarshallingTestsBoxedStruct **gi_marshalling_tests_array_zero_terminated_return_struct (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_zero_terminated_in (gchar **utf8s);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_zero_terminated_out (gchar ***utf8s);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_zero_terminated_inout (gchar ***utf8s);
 
+
+_GI_TEST_EXTERN
 GVariant **gi_marshalling_tests_array_gvariant_none_in (GVariant **variants);
 
+
+_GI_TEST_EXTERN
 GVariant **gi_marshalling_tests_array_gvariant_container_in (GVariant **variants);
 
+
+_GI_TEST_EXTERN
 GVariant **gi_marshalling_tests_array_gvariant_full_in (GVariant **variants);
 
 
 /* GArray */
 
+_GI_TEST_EXTERN
 GArray *gi_marshalling_tests_garray_int_none_return (void);
+
+_GI_TEST_EXTERN
 GArray *gi_marshalling_tests_garray_uint64_none_return (void);
+
+_GI_TEST_EXTERN
 GArray *gi_marshalling_tests_garray_utf8_none_return (void);
+
+_GI_TEST_EXTERN
 GArray *gi_marshalling_tests_garray_utf8_container_return (void);
+
+_GI_TEST_EXTERN
 GArray *gi_marshalling_tests_garray_utf8_full_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_int_none_in (GArray *array_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_uint64_none_in (GArray *array_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_none_in (GArray *array_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_none_out (GArray **array_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_container_out (GArray **array_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_full_out (GArray **array_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_full_out_caller_allocated (GArray *array_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_none_inout (GArray **array_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_container_inout (GArray **array_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_garray_utf8_full_inout (GArray **array_);
 
 /* GPtrArray */
+
+_GI_TEST_EXTERN
 GPtrArray *gi_marshalling_tests_gptrarray_utf8_none_return (void);
+
+_GI_TEST_EXTERN
 GPtrArray *gi_marshalling_tests_gptrarray_utf8_container_return (void);
+
+_GI_TEST_EXTERN
 GPtrArray *gi_marshalling_tests_gptrarray_utf8_full_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gptrarray_utf8_none_in (GPtrArray *parray_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gptrarray_utf8_none_out (GPtrArray **parray_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gptrarray_utf8_container_out (GPtrArray **parray_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gptrarray_utf8_full_out (GPtrArray **parray_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gptrarray_utf8_none_inout (GPtrArray **parray_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gptrarray_utf8_container_inout (GPtrArray **parray_);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gptrarray_utf8_full_inout (GPtrArray **parray_);
 
 /* GByteArray */
 
+_GI_TEST_EXTERN
 GByteArray *gi_marshalling_tests_bytearray_full_return (void);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_bytearray_none_in (GByteArray* v);
 
 /* GBytes */
 
+_GI_TEST_EXTERN
 GBytes *gi_marshalling_tests_gbytes_full_return (void);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gbytes_none_in (GBytes* v);
 
 /* GStrv */
 
+_GI_TEST_EXTERN
 GStrv gi_marshalling_tests_gstrv_return (void);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gstrv_in (GStrv g_strv);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gstrv_out (GStrv *g_strv);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gstrv_inout (GStrv *g_strv);
 
 /* GList */
 
+_GI_TEST_EXTERN
 GList *gi_marshalling_tests_glist_int_none_return (void);
+
+_GI_TEST_EXTERN
 GList *gi_marshalling_tests_glist_uint32_none_return (void);
+
+_GI_TEST_EXTERN
 GList *gi_marshalling_tests_glist_utf8_none_return (void);
+
+_GI_TEST_EXTERN
 GList *gi_marshalling_tests_glist_utf8_container_return (void);
+
+_GI_TEST_EXTERN
 GList *gi_marshalling_tests_glist_utf8_full_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_int_none_in (GList *list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_uint32_none_in (GList *list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_utf8_none_in (GList *list);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_utf8_none_out (GList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_utf8_container_out (GList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_utf8_full_out (GList **list);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_utf8_none_inout (GList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_utf8_container_inout (GList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_glist_utf8_full_inout (GList **list);
 
 
 /* GSList */
 
+_GI_TEST_EXTERN
 GSList *gi_marshalling_tests_gslist_int_none_return (void);
+
+_GI_TEST_EXTERN
 GSList *gi_marshalling_tests_gslist_utf8_none_return (void);
+
+_GI_TEST_EXTERN
 GSList *gi_marshalling_tests_gslist_utf8_container_return (void);
+
+_GI_TEST_EXTERN
 GSList *gi_marshalling_tests_gslist_utf8_full_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_int_none_in (GSList *list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_utf8_none_in (GSList *list);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_utf8_none_out (GSList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_utf8_container_out (GSList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_utf8_full_out (GSList **list);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_utf8_none_inout (GSList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_utf8_container_inout (GSList **list);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gslist_utf8_full_inout (GSList **list);
 
 
 /* GHashTable */
 
+_GI_TEST_EXTERN
 GHashTable *gi_marshalling_tests_ghashtable_int_none_return (void);
+
+_GI_TEST_EXTERN
 GHashTable *gi_marshalling_tests_ghashtable_utf8_none_return (void);
+
+_GI_TEST_EXTERN
 GHashTable *gi_marshalling_tests_ghashtable_utf8_container_return (void);
+
+_GI_TEST_EXTERN
 GHashTable *gi_marshalling_tests_ghashtable_utf8_full_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_int_none_in (GHashTable *hash_table);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_none_in (GHashTable *hash_table);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_container_in (GHashTable *hash_table);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_full_in (GHashTable *hash_table);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_none_out (GHashTable **hash_table);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_container_out (GHashTable **hash_table);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_full_out (GHashTable **hash_table);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_none_inout (GHashTable **hash_table);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_container_inout (GHashTable **hash_table);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_ghashtable_utf8_full_inout (GHashTable **hash_table);
 
 
 /* GValue */
 
+_GI_TEST_EXTERN
 GValue *gi_marshalling_tests_gvalue_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_in (GValue *value);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_int64_in (GValue *value);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_in_with_type (GValue *value, GType type);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_in_with_modification (GValue *value);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_in_enum (GValue *value);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_out (GValue **value);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_int64_out (GValue **value);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_out_caller_allocates (GValue *value);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_inout (GValue **value);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gvalue_flat_array (guint         n_values,
                                              const GValue *values);
 
+
+_GI_TEST_EXTERN
 GValue *gi_marshalling_tests_return_gvalue_flat_array (void);
 
+
+_GI_TEST_EXTERN
 GValue *gi_marshalling_tests_gvalue_flat_array_round_trip (const GValue one,
                                                            const GValue two,
                                                            const GValue three);
 
 /* GClosure */
 
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gclosure_in (GClosure *closure);
+
+_GI_TEST_EXTERN
 GClosure *gi_marshalling_tests_gclosure_return (void);
 
 /* Callback return values */
@@ -576,6 +1114,8 @@ GClosure *gi_marshalling_tests_gclosure_return (void);
  */
 typedef glong (* GIMarshallingTestsCallbackReturnValueOnly) (void);
 
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_callback_return_value_only (GIMarshallingTestsCallbackReturnValueOnly callback);
 
 /**
@@ -584,6 +1124,8 @@ glong gi_marshalling_tests_callback_return_value_only (GIMarshallingTestsCallbac
  */
 typedef void (* GIMarshallingTestsCallbackOneOutParameter) (gfloat *a);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_callback_one_out_parameter (GIMarshallingTestsCallbackOneOutParameter  callback,
                                                       gfloat                                    *a);
 
@@ -594,6 +1136,8 @@ void gi_marshalling_tests_callback_one_out_parameter (GIMarshallingTestsCallback
  */
 typedef void (* GIMarshallingTestsCallbackMultipleOutParameters) (gfloat *a, gfloat *b);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_callback_multiple_out_parameters (GIMarshallingTestsCallbackMultipleOutParameters  callback,
                                                             gfloat                                          *a,
                                                             gfloat                                          *b);
@@ -604,6 +1148,8 @@ void gi_marshalling_tests_callback_multiple_out_parameters (GIMarshallingTestsCa
  */
 typedef glong (* GIMarshallingTestsCallbackReturnValueAndOneOutParameter) (glong *a);
 
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_callback_return_value_and_one_out_parameter (GIMarshallingTestsCallbackReturnValueAndOneOutParameter  callback,
                                                                         glong                                                   *a);
 
@@ -614,6 +1160,8 @@ glong gi_marshalling_tests_callback_return_value_and_one_out_parameter (GIMarsha
  */
 typedef glong (* GIMarshallingTestsCallbackReturnValueAndMultipleOutParameters) (glong *a, glong *b);
 
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_callback_return_value_and_multiple_out_parameters (GIMarshallingTestsCallbackReturnValueAndMultipleOutParameters  callback,
                                                                               glong                                                         *a,
                                                                               glong                                                         *b);
@@ -625,11 +1173,15 @@ glong gi_marshalling_tests_callback_return_value_and_multiple_out_parameters (GI
 typedef void (* GIMarshallingTestsCallbackOwnedBoxed) (GIMarshallingTestsBoxedStruct *box,
                                                       void                      *user_data);
 
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_callback_owned_boxed (GIMarshallingTestsCallbackOwnedBoxed  callback,
                                                  void *callback_data);
 
 /* Pointer */
 
+
+_GI_TEST_EXTERN
 gpointer gi_marshalling_tests_pointer_in_return (gpointer pointer);
 
 /* Structure */
@@ -648,10 +1200,15 @@ typedef struct {
 } GIMarshallingTestsNotSimpleStruct;
 
 
+_GI_TEST_EXTERN
 GIMarshallingTestsSimpleStruct *gi_marshalling_tests_simple_struct_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_simple_struct_inv (GIMarshallingTestsSimpleStruct *struct_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_simple_struct_method (GIMarshallingTestsSimpleStruct *struct_);
 
 
@@ -659,10 +1216,16 @@ typedef struct {
     glong long_;
 } GIMarshallingTestsPointerStruct;
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_pointer_struct_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsPointerStruct *gi_marshalling_tests_pointer_struct_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_pointer_struct_inv (GIMarshallingTestsPointerStruct *struct_);
 
 struct _GIMarshallingTestsBoxedStruct {
@@ -671,32 +1234,56 @@ struct _GIMarshallingTestsBoxedStruct {
     GStrv g_strv;
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_boxed_struct_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsBoxedStruct *gi_marshalling_tests_boxed_struct_new (void);
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsBoxedStruct *gi_marshalling_tests_boxed_struct_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boxed_struct_inv (GIMarshallingTestsBoxedStruct *struct_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boxed_struct_out (GIMarshallingTestsBoxedStruct **struct_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_boxed_struct_inout (GIMarshallingTestsBoxedStruct **struct_);
 
 typedef union {
     glong long_;
 } GIMarshallingTestsUnion;
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_union_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsUnion *gi_marshalling_tests_union_returnv (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_union_inv (GIMarshallingTestsUnion *union_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_union_out (GIMarshallingTestsUnion **union_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_union_inout (GIMarshallingTestsUnion **union_);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_union_method (GIMarshallingTestsUnion *union_);
 
  /* Object */
@@ -872,62 +1459,151 @@ struct _GIMarshallingTestsObject
     gint int_;
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_object_get_type (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_static_method (void);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method (GIMarshallingTestsObject *object);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_overridden_method (GIMarshallingTestsObject *object);
+
+_GI_TEST_EXTERN
 GIMarshallingTestsObject *gi_marshalling_tests_object_new (gint int_);
+GIMarshallingTestsObject *gi_marshalling_tests_object_new_fail (gint int_, GError **error);
+
 
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_array_in (GIMarshallingTestsObject *object, const gint *ints, gint length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_array_out (GIMarshallingTestsObject *object, gint **ints, gint *length);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_array_inout (GIMarshallingTestsObject *object, gint **ints, gint *length);
+
+_GI_TEST_EXTERN
 const gint *gi_marshalling_tests_object_method_array_return (GIMarshallingTestsObject *object, gint *length);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_int8_in (GIMarshallingTestsObject *object, gint8 in);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_int8_out (GIMarshallingTestsObject *object, gint8 *out);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_int8_arg_and_out_caller (GIMarshallingTestsObject *object, gint8 arg, gint8 *out);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_int8_arg_and_out_callee (GIMarshallingTestsObject *object, gint8 arg, gint8 **out);
+
+_GI_TEST_EXTERN
 const gchar* gi_marshalling_tests_object_method_str_arg_out_ret (GIMarshallingTestsObject *object, const gchar* arg, guint *out);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_with_default_implementation (GIMarshallingTestsObject *object, gint8 in);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_method_variant_array_in (GIMarshallingTestsObject *object, GVariant **in, gsize n_in);
 
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_object_vfunc_return_value_only (GIMarshallingTestsObject *self);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_vfunc_one_out_parameter (GIMarshallingTestsObject *self, gfloat *a);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_vfunc_multiple_out_parameters (GIMarshallingTestsObject *self, gfloat *a, gfloat *b);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_vfunc_caller_allocated_out_parameter (GIMarshallingTestsObject *self, GValue *a);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_vfunc_array_out_parameter (GIMarshallingTestsObject *self, gfloat **a);
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_object_vfunc_return_value_and_one_out_parameter (GIMarshallingTestsObject *self, glong *a);
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_object_vfunc_return_value_and_multiple_out_parameters (GIMarshallingTestsObject *self, glong *a, glong *b);
+
+_GI_TEST_EXTERN
 gboolean gi_marshalling_tests_object_vfunc_meth_with_error (GIMarshallingTestsObject *object, gint x, GError **error);
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsEnum gi_marshalling_tests_object_vfunc_return_enum (GIMarshallingTestsObject *self);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_vfunc_out_enum (GIMarshallingTestsObject *self, GIMarshallingTestsEnum *_enum);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_none (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_full (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_none (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_full (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_none (GIMarshallingTestsObject *self, GType type, guint *ref_count, gboolean *is_floating);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_full (GIMarshallingTestsObject *self, GType type, guint *ref_count, gboolean *is_floating);
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsObject *gi_marshalling_tests_object_none_return (void);
+
+_GI_TEST_EXTERN
 GIMarshallingTestsObject *gi_marshalling_tests_object_full_return (void);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_none_in (GIMarshallingTestsObject *object);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_full_in (GIMarshallingTestsObject *object);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_none_out (GIMarshallingTestsObject **object);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_full_out (GIMarshallingTestsObject **object);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_none_inout (GIMarshallingTestsObject **object);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_full_inout (GIMarshallingTestsObject **object);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_int8_in (GIMarshallingTestsObject *object, gint8 in);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_int8_out (GIMarshallingTestsObject *object, gint8 *out);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_vfunc_with_callback (GIMarshallingTestsObject *object,
                                                       GIMarshallingTestsCallbackIntInt callback,
                                                       void *callback_data);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_object_call_vfunc_with_callback (GIMarshallingTestsObject *object);
 
 #define GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT             (gi_marshalling_tests_sub_object_get_type ())
@@ -950,9 +1626,15 @@ struct _GIMarshallingTestsSubObject
        GIMarshallingTestsObject parent_instance;
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_sub_object_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_sub_object_sub_method (GIMarshallingTestsSubObject *object);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_sub_object_overwritten_method (GIMarshallingTestsSubObject *object);
 
 #define GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT             (gi_marshalling_tests_sub_sub_object_get_type ())
@@ -975,6 +1657,8 @@ struct _GIMarshallingTestsSubSubObject
        GIMarshallingTestsSubObject parent_instance;
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_sub_sub_object_get_type (void) G_GNUC_CONST;
 
 /* Interfaces */
@@ -997,10 +1681,16 @@ struct _GIMarshallingTestsInterfaceIface {
     void (* test_int8_in) (GIMarshallingTestsInterface *self, gint8 in);
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_interface_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_interface_test_int8_in (GIMarshallingTestsInterface *self, gint8 in);
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_test_interface_test_int8_in (GIMarshallingTestsInterface *test_iface, gint8 in);
 
 /* GIMarshallingTestsInterfaceImpl is a class that implements
@@ -1029,7 +1719,11 @@ struct _GIMarshallingTestsInterfaceImpl
     gint int_;
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_interface_impl_get_type (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 GIMarshallingTestsInterface *gi_marshalling_tests_interface_impl_get_as_interface (GIMarshallingTestsInterfaceImpl *self);
 
 /* GIMarshallingTestsInterface2 allows us testing vfunc clashes when a class'
@@ -1053,6 +1747,8 @@ struct _GIMarshallingTestsInterface2Iface {
     void (* test_int8_in) (GIMarshallingTestsInterface2 *self, gint8 in);
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_interface2_get_type (void) G_GNUC_CONST;
 
 /* GIMarshallingTestsInterface3 tests passing arrays of variants from C to @lang */
@@ -1075,21 +1771,38 @@ struct _GIMarshallingTestsInterface3Iface {
     void (* test_variant_array_in) (GIMarshallingTestsInterface3 *self, GVariant **in, gsize n_in);
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_interface3_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_interface3_test_variant_array_in (GIMarshallingTestsInterface3 *self, GVariant **in, gsize n_in);
 
 /* Multiple output arguments */
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_out_out (gint *int0, gint *int1);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_three_in_three_out(gint a, gint b, gint c,
                                                  gint *out0, gint *out1, gint *out2);
+
+_GI_TEST_EXTERN
 gint gi_marshalling_tests_int_return_out (gint *int_);
 
 /* Default arguments */
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_two_in_utf8_two_in_with_allow_none  (gint a, gint b, const gchar *c, const gchar *d);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_int_one_in_utf8_two_in_one_allows_none  (gint a, const gchar *b, const gchar *c);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in_utf8_two_in (const gint *ints, gint length, const gchar *a, const gchar *b);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_array_in_utf8_two_in_out_of_order (gint length, const gchar *a, const gint *ints, const gchar *b);
 
 /* GError */
@@ -1099,15 +1812,30 @@ void gi_marshalling_tests_array_in_utf8_two_in_out_of_order (gint length, const
 #define GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE "gi-marshalling-tests-gerror-message"
 #define GI_MARSHALLING_TESTS_CONSTANT_GERROR_DEBUG_MESSAGE "we got an error, life is shit"
 
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gerror(GError **error);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gerror_array_in(gint *in_ints, GError **error);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gerror_out(GError **error, gchar **debug);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_gerror_out_transfer_none(GError **err, const gchar **debug);
+
+_GI_TEST_EXTERN
 GError *gi_marshalling_tests_gerror_return(void);
 
 /* GParamSpec */
+_GI_TEST_EXTERN
 void gi_marshalling_tests_param_spec_in_bool(const GParamSpec *param);
+
+_GI_TEST_EXTERN
 GParamSpec *gi_marshalling_tests_param_spec_return (void);
+
+_GI_TEST_EXTERN
 void gi_marshalling_tests_param_spec_out(GParamSpec **param);
 
 /* Overrides */
@@ -1119,12 +1847,19 @@ typedef struct {
     glong long_;
 } GIMarshallingTestsOverridesStruct;
 
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_overrides_struct_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsOverridesStruct *gi_marshalling_tests_overrides_struct_new (void);
 
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_overrides_struct_method (GIMarshallingTestsOverridesStruct *struct_);
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsOverridesStruct *gi_marshalling_tests_overrides_struct_returnv (void);
 
 
@@ -1150,12 +1885,19 @@ struct _GIMarshallingTestsOverridesObject
     glong long_;
 };
 
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_overrides_object_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsOverridesObject *gi_marshalling_tests_overrides_object_new (void);
 
+
+_GI_TEST_EXTERN
 glong gi_marshalling_tests_overrides_object_method (GIMarshallingTestsOverridesObject *object);
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsOverridesObject *gi_marshalling_tests_overrides_object_returnv (void);
 
 /* Properties Object */
@@ -1195,8 +1937,12 @@ struct _GIMarshallingTestsPropertiesObjectClass {
     GObjectClass parent_class;
 };
 
+
+_GI_TEST_EXTERN
 GType gi_marshalling_tests_properties_object_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 GIMarshallingTestsPropertiesObject *gi_marshalling_tests_properties_object_new (void);
 
 #endif /* _GI_MARSHALLING_TESTS_H_ */
diff --git a/tests/gitestmacros.h b/tests/gitestmacros.h
new file mode 100644 (file)
index 0000000..527578d
--- /dev/null
@@ -0,0 +1,10 @@
+#ifndef __GITESTMACROS_H__
+#define __GITESTMACROS_H__
+
+#ifndef _GI_EXTERN
+#define _GI_EXTERN extern
+#endif
+
+#define _GI_TEST_EXTERN _GI_EXTERN
+
+#endif
index a3ec78b..9608ad0 100644 (file)
@@ -16,7 +16,7 @@ EXTRA_LTLIBRARIES += liboffsets.la
 liboffsets_la_SOURCES = \
        offsets.h       \
        offsets.c
-liboffsets_la_CPPFLAGS = $(GIREPO_CFLAGS)
+liboffsets_la_CPPFLAGS = $(GIREPO_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS)
 # dummy rpath to get built dynamically (huh?)
 liboffsets_la_LDFLAGS = -avoid-version -rpath $(libdir)
 
index f689dbc..7c2919c 100644 (file)
@@ -473,6 +473,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -690,7 +691,7 @@ liboffsets_la_SOURCES = \
        offsets.h       \
        offsets.c
 
-liboffsets_la_CPPFLAGS = $(GIREPO_CFLAGS)
+liboffsets_la_CPPFLAGS = $(GIREPO_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS)
 # dummy rpath to get built dynamically (huh?)
 liboffsets_la_LDFLAGS = -avoid-version -rpath $(libdir)
 Offsets_1_0_gir_INCLUDES = GObject-2.0
index 0096fb0..65ce7eb 100644 (file)
@@ -430,6 +430,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index b122a63..281a5f3 100644 (file)
@@ -3,7 +3,6 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <unistd.h>
 
 #include <gio/gio.h>
 
index a045a81..39a0df8 100644 (file)
@@ -2,7 +2,6 @@
 #include "girepository.h"
 
 #include <stdlib.h>
-#include <unistd.h>
 
 
 int
index 7b9cb35..6620f1e 100644 (file)
@@ -6,7 +6,6 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <unistd.h>
 
 static void
 test_enum_and_flags_cidentifier (GIRepository * repo)
index 8b20141..92ab12a 100644 (file)
@@ -20,8 +20,9 @@ EXTRA_LTLIBRARIES = \
        $(NULL)
 CLEANFILES += $(EXTRA_LTLIBRARIES)
 
+GI_SCANNER_CFLAGS = -I$(top_srcdir)/tests
 AM_CPPFLAGS = -I$(top_srcdir)/girepository
-AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS)
+AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) $(GI_SCANNER_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
 AM_LDFLAGS = -rpath /unused -avoid-version
@@ -82,6 +83,7 @@ EXTRA_DIST = $(EXPECTEDGIRS)
 
 SLetter-1.0.gir: $(top_builddir)/Gio-2.0.gir libsletter.la
 SLetter_1_0_gir_LIBS = libsletter.la
+SLetter_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 SLetter_1_0_gir_INCLUDES = Gio-2.0
 SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES)
 SLetter_1_0_gir_SCANNERFLAGS = --identifier-prefix=S --c-include="sletter.h" --warn-error
@@ -100,6 +102,7 @@ GIRS += Regress-1.0.gir
 
 WarnLib-1.0.gir: $(top_builddir)/Gio-2.0.gir libwarnlib.la
 WarnLib_1_0_gir_LIBS = libwarnlib.la
+WarnLib_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 WarnLib_1_0_gir_INCLUDES = Gio-2.0
 WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES)
 WarnLib_1_0_gir_SCANNERFLAGS = --c-include="warnlib.h" --symbol-prefix=warnlib_
@@ -108,6 +111,7 @@ GIRS += WarnLib-1.0.gir
 Utility-1.0.gir: libutility.la
 Utility_1_0_gir_PACKAGES = gobject-2.0
 Utility_1_0_gir_LIBS = libutility.la
+Utility_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 Utility_1_0_gir_INCLUDES = GObject-2.0
 Utility_1_0_gir_FILES = $(libutility_la_SOURCES)
 Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" --warn-error
@@ -117,6 +121,7 @@ GIRS += Utility-1.0.gir
 GtkFrob-1.0.gir: libgtkfrob.la
 GtkFrob_1_0_gir_PACKAGES = gobject-2.0
 GtkFrob_1_0_gir_LIBS = libgtkfrob.la
+GtkFrob_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 GtkFrob_1_0_gir_INCLUDES = GObject-2.0
 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES)
 GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error
@@ -127,6 +132,7 @@ GIRS += GtkFrob-1.0.gir
 GetType-1.0.gir: libgettype.la
 GetType_1_0_gir_PACKAGES = gobject-2.0
 GetType_1_0_gir_LIBS = libgettype.la
+GetType_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 GetType_1_0_gir_INCLUDES = GObject-2.0
 GetType_1_0_gir_FILES = $(libgettype_la_SOURCES)
 GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype
@@ -135,6 +141,7 @@ GIRS += GetType-1.0.gir
 Typedefs-1.0.gir: libtypedefs.la
 Typedefs_1_0_gir_PACKAGES = gobject-2.0
 Typedefs_1_0_gir_LIBS = libtypedefs.la
+Typedefs_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 Typedefs_1_0_gir_INCLUDES = GObject-2.0
 Typedefs_1_0_gir_FILES = $(libtypedefs_la_SOURCES)
 Typedefs_1_0_gir_SCANNERFLAGS = --c-include="typedefs.h" --identifier-prefix=Typedefs --symbol-prefix=typedefs
@@ -151,6 +158,7 @@ barapp_LDFLAGS = -export-dynamic
 Bar-1.0.gir: barapp
 Bar_1_0_gir_PACKAGES = gobject-2.0
 Bar_1_0_gir_PROGRAM = ./barapp
+Bar_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 Bar_1_0_gir_INCLUDES = GObject-2.0
 Bar_1_0_gir_FILES = $(barapp_SOURCES)
 Bar_1_0_gir_SCANNERFLAGS = --accept-unprefixed
index b62cfcf..6366373 100644 (file)
@@ -574,6 +574,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -788,8 +789,9 @@ EXTRA_LTLIBRARIES = \
        libtypedefs.la \
        $(NULL)
 
+GI_SCANNER_CFLAGS = -I$(top_srcdir)/tests
 AM_CPPFLAGS = -I$(top_srcdir)/girepository
-AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS)
+AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) $(GI_SCANNER_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
 AM_LDFLAGS = -rpath /unused -avoid-version $(am__append_4)
@@ -835,6 +837,7 @@ EXTRA_DIST = $(EXPECTEDGIRS) headeronly.h Headeronly-1.0-expected.gir \
        Regress-1.0-Python-expected Regress-1.0-sections-expected.txt \
        $(NULL)
 SLetter_1_0_gir_LIBS = libsletter.la
+SLetter_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 SLetter_1_0_gir_INCLUDES = Gio-2.0
 SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES)
 SLetter_1_0_gir_SCANNERFLAGS = --identifier-prefix=S --c-include="sletter.h" --warn-error
@@ -844,26 +847,31 @@ Regress_1_0_gir_INCLUDES = Gio-2.0 Utility-1.0 $(am__append_5)
 Regress_1_0_gir_FILES = $(libregress_la_SOURCES)
 Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" --warn-error
 WarnLib_1_0_gir_LIBS = libwarnlib.la
+WarnLib_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 WarnLib_1_0_gir_INCLUDES = Gio-2.0
 WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES)
 WarnLib_1_0_gir_SCANNERFLAGS = --c-include="warnlib.h" --symbol-prefix=warnlib_
 Utility_1_0_gir_PACKAGES = gobject-2.0
 Utility_1_0_gir_LIBS = libutility.la
+Utility_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 Utility_1_0_gir_INCLUDES = GObject-2.0
 Utility_1_0_gir_FILES = $(libutility_la_SOURCES)
 Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" --warn-error
 GtkFrob_1_0_gir_PACKAGES = gobject-2.0
 GtkFrob_1_0_gir_LIBS = libgtkfrob.la
+GtkFrob_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 GtkFrob_1_0_gir_INCLUDES = GObject-2.0
 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES)
 GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error
 GetType_1_0_gir_PACKAGES = gobject-2.0
 GetType_1_0_gir_LIBS = libgettype.la
+GetType_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 GetType_1_0_gir_INCLUDES = GObject-2.0
 GetType_1_0_gir_FILES = $(libgettype_la_SOURCES)
 GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype
 Typedefs_1_0_gir_PACKAGES = gobject-2.0
 Typedefs_1_0_gir_LIBS = libtypedefs.la
+Typedefs_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 Typedefs_1_0_gir_INCLUDES = GObject-2.0
 Typedefs_1_0_gir_FILES = $(libtypedefs_la_SOURCES)
 Typedefs_1_0_gir_SCANNERFLAGS = --c-include="typedefs.h" --identifier-prefix=Typedefs --symbol-prefix=typedefs
@@ -872,6 +880,7 @@ Typedefs_1_0_gir_SCANNERFLAGS = --c-include="typedefs.h" --identifier-prefix=Typ
 @OS_WIN32_FALSE@barapp_LDFLAGS = -export-dynamic
 @OS_WIN32_FALSE@Bar_1_0_gir_PACKAGES = gobject-2.0
 @OS_WIN32_FALSE@Bar_1_0_gir_PROGRAM = ./barapp
+@OS_WIN32_FALSE@Bar_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
 @OS_WIN32_FALSE@Bar_1_0_gir_INCLUDES = GObject-2.0
 @OS_WIN32_FALSE@Bar_1_0_gir_FILES = $(barapp_SOURCES)
 @OS_WIN32_FALSE@Bar_1_0_gir_SCANNERFLAGS = --accept-unprefixed
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackArrayInOut.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackArrayInOut.page
new file mode 100644 (file)
index 0000000..0c8be37
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackArrayInOut"
+      type="topic"
+      style="callback"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="callback" type="guide"/>
+    </info>
+  <title>Regress.TestCallbackArrayInOut</title>
+  <synopsis><code mime="text/x-csrc">
+void TestCallbackArrayInOut (int** ints,
+                             int* length);
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+
+</item>
+<item>
+<title><code>length</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_inout_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_inout_callback.page
new file mode 100644 (file)
index 0000000..9da453a
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_inout_callback"
+      type="topic"
+      style="function"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="function" type="guide"/>
+    <api:function>
+      <api:returns>
+        <api:type>int</api:type>
+      </api:returns>
+      <api:name>regress_test_array_inout_callback</api:name>
+      <api:arg>
+        <api:type>RegressTestCallbackArrayInOut</api:type>
+        <api:name>callback</api:name>
+      </api:arg>
+    </api:function>
+  </info>
+  <title>regress_test_array_inout_callback</title>
+  <synopsis><code mime="text/x-csrc">
+int regress_test_array_inout_callback (RegressTestCallbackArrayInOut callback);
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackArrayInOut.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackArrayInOut.page
new file mode 100644 (file)
index 0000000..8b77cbb
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackArrayInOut"
+      type="topic"
+      style="callback"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="callback" type="guide"/>
+  </info>
+  <title>Regress.TestCallbackArrayInOut</title>
+  <synopsis><code mime="text/x-gjs">
+function onTestCallbackArrayInOut(ints: Array(Number(gint))): Array(Number(gint)) {
+}
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+<item>
+<title><code>Returns (out)</code></title>
+
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_inout_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_inout_callback.page
new file mode 100644 (file)
index 0000000..e02c96d
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_inout_callback"
+      type="topic"
+      style="function"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="function" type="guide"/>
+    <api:function>
+      <api:returns>
+        <api:type>Number(gint)</api:type>
+      </api:returns>
+      <api:name>regress_test_array_inout_callback</api:name>
+      <api:arg>
+        <api:type>Regress.TestCallbackArrayInOut</api:type>
+        <api:name>callback</api:name>
+      </api:arg>
+    </api:function>
+  </info>
+  <title>Regress.test_array_inout_callback</title>
+  <synopsis><code mime="text/x-gjs">
+function test_array_inout_callback(callback: <link xref="Regress.TestCallbackArrayInOut">Regress.TestCallbackArrayInOut</link>): Number(gint) {
+    // Gjs wrapper for regress_test_array_inout_callback()
+}
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackArrayInOut.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackArrayInOut.page
new file mode 100644 (file)
index 0000000..0b4dd60
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackArrayInOut"
+      type="topic"
+      style="callback"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="callback" type="guide"/>
+  </info>
+  <title>Regress.TestCallbackArrayInOut</title>
+  <synopsis><code mime="text/x-python">
+@accepts([int], int)
+@returns(none)
+def on_TestCallbackArrayInOut(ints, length):
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+
+</item>
+<item>
+<title><code>length</code></title>
+
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_inout_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_inout_callback.page
new file mode 100644 (file)
index 0000000..aea60c6
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_inout_callback"
+      type="topic"
+      style="function"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="function" type="guide"/>
+    <api:function>
+      <api:returns>
+        <api:type>int</api:type>
+      </api:returns>
+      <api:name>regress_test_array_inout_callback</api:name>
+      <api:arg>
+        <api:type>Regress.TestCallbackArrayInOut</api:type>
+        <api:name>callback</api:name>
+      </api:arg>
+    </api:function>
+  </info>
+  <title>Regress.test_array_inout_callback</title>
+  <synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackArrayInOut)
+@returns(int)
+def test_array_inout_callback(callback):
+    # Python wrapper for regress_test_array_inout_callback()
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+</page>
index 89ecaa4..a907b30 100644 (file)
@@ -2313,6 +2313,28 @@ use it should be.</doc>
         </parameter>
       </parameters>
     </callback>
+    <callback name="TestCallbackArrayInOut"
+              c:type="RegressTestCallbackArrayInOut">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="ints"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <array length="1" zero-terminated="0" c:type="int**">
+            <type name="gint" c:type="int*"/>
+          </array>
+        </parameter>
+        <parameter name="length"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="none">
+          <type name="gint" c:type="int*"/>
+        </parameter>
+      </parameters>
+    </callback>
     <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
@@ -4977,6 +4999,18 @@ libgnome-keyring.</doc>
         </parameter>
       </parameters>
     </function>
+    <function name="test_array_inout_callback"
+              c:identifier="regress_test_array_inout_callback">
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="callback" transfer-ownership="none" scope="call">
+          <type name="TestCallbackArrayInOut"
+                c:type="RegressTestCallbackArrayInOut"/>
+        </parameter>
+      </parameters>
+    </function>
     <function name="test_array_int_full_out"
               c:identifier="regress_test_array_int_full_out">
       <return-value transfer-ownership="full">
index 187aa16..30e46e6 100644 (file)
@@ -63,6 +63,7 @@ regress_test_array_gint32_in
 regress_test_array_gint64_in
 regress_test_array_gint8_in
 regress_test_array_gtype_in
+regress_test_array_inout_callback
 regress_test_array_int_full_out
 regress_test_array_int_in
 regress_test_array_int_inout
index 30dc72e..173db97 100644 (file)
@@ -1,4 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+#include "config.h"
+
 #include "annotation.h"
 
 char backslash_parsing_tester = '\\';
index b0cbe42..07894df 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __REGRESS_ANNOTATION_OBJECT_H__
 #define __REGRESS_ANNOTATION_OBJECT_H__
 
+#include "gitestmacros.h"
+
 #include <glib-object.h>
 
 typedef enum /*< flags,prefix=ANN >*/
@@ -58,95 +60,177 @@ struct _RegressAnnotationObjectClass
   GObjectClass parent_class;
 };
 
+_GI_TEST_EXTERN
 GType    regress_annotation_object_get_type (void);
 
+_GI_TEST_EXTERN
 gint     regress_annotation_object_method       (RegressAnnotationObject *object);
+
+_GI_TEST_EXTERN
 gint     regress_annotation_object_out          (RegressAnnotationObject *object,
                                         int              *outarg);
+
+_GI_TEST_EXTERN
 GObject* regress_annotation_object_create_object(RegressAnnotationObject *object);
+
+_GI_TEST_EXTERN
 GObject* regress_annotation_object_allow_none   (RegressAnnotationObject *object,
                                         const gchar      *somearg);
+
+_GI_TEST_EXTERN
 GObject* regress_annotation_object_notrans      (RegressAnnotationObject *object);
+
+_GI_TEST_EXTERN
 gint     regress_annotation_object_inout        (RegressAnnotationObject *object,
                                         int              *inoutarg);
+
+_GI_TEST_EXTERN
 gint     regress_annotation_object_inout2       (RegressAnnotationObject *object,
                                         int              *inoutarg);
+
+_GI_TEST_EXTERN
 gint     regress_annotation_object_inout3       (RegressAnnotationObject *object,
                                         int              *inoutarg);
+
+_GI_TEST_EXTERN
 gint     regress_annotation_object_in           (RegressAnnotationObject *object,
                                         int              *inarg);
+
+_GI_TEST_EXTERN
 gint     regress_annotation_object_calleeowns   (RegressAnnotationObject *object,
                                         GObject          **toown);
+
+_GI_TEST_EXTERN
 gint     regress_annotation_object_calleesowns  (RegressAnnotationObject *object,
                                         GObject          **toown1,
                                         GObject          **toown2);
+
+_GI_TEST_EXTERN
 GList*   regress_annotation_object_get_strings  (RegressAnnotationObject *object);
+
+_GI_TEST_EXTERN
 GHashTable*regress_annotation_object_get_hash   (RegressAnnotationObject *object);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_with_voidp   (RegressAnnotationObject *object,
                                         void             *data);
+
+_GI_TEST_EXTERN
 GSList*  regress_annotation_object_get_objects  (RegressAnnotationObject *object);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_use_buffer   (RegressAnnotationObject *object,
                                         guchar           *bytes);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_compute_sum  (RegressAnnotationObject *object,
                                         int              *nums);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_compute_sum_n(RegressAnnotationObject *object,
                                         int              *nums,
                                         int               n_nums);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_compute_sum_nz(RegressAnnotationObject *object,
                                           int             *nums,
                                           int              n_nums);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_parse_args   (RegressAnnotationObject *object,
                                          int              *argc,
                                          char           ***argv);
+
+_GI_TEST_EXTERN
 gboolean regress_annotation_object_string_out   (RegressAnnotationObject *object,
                                          char            **str_out);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_foreach      (RegressAnnotationObject *object,
                                          RegressAnnotationForeachFunc func,
                                          gpointer user_data);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_set_data     (RegressAnnotationObject *object,
                                          const guchar     *data,
                                          gsize             length);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_set_data2    (RegressAnnotationObject *object,
                                          const gchar      *data,
                                          gsize             length);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_set_data3    (RegressAnnotationObject *object,
                                          gpointer          data,
                                          gsize             length);
 
+
+_GI_TEST_EXTERN
 GObject* regress_annotation_object_do_not_use   (RegressAnnotationObject *object);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_watch        (RegressAnnotationObject *object,
                                          RegressAnnotationForeachFunc func,
                                          gpointer user_data);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_watch_full   (RegressAnnotationObject *object,
                                          RegressAnnotationForeachFunc func,
                                          gpointer user_data,
                                          GDestroyNotify destroy);
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_hidden_self  (gpointer object);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_init                (int              *argc, 
                                         char           ***argv);
+
+_GI_TEST_EXTERN
 char **  regress_annotation_return_array        (int             *length);
+
+_GI_TEST_EXTERN
 void     regress_annotation_versioned           (void);
+
+_GI_TEST_EXTERN
 char **  regress_annotation_string_zero_terminated (void);
+
+_GI_TEST_EXTERN
 void     regress_annotation_string_zero_terminated_out (char ***out);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_string_array_length (guint n_properties, const gchar * const properties[]);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_object_extra_annos (RegressAnnotationObject *object);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_custom_destroy (RegressAnnotationCallback callback,
                                     RegressAnnotationNotifyFunc destroy,
                                     gpointer data);
+
+_GI_TEST_EXTERN
 char *   regress_annotation_get_source_file (void);
+
+_GI_TEST_EXTERN
 void     regress_annotation_set_source_file (const char *fname);
 
+
+_GI_TEST_EXTERN
 gint     regress_annotation_attribute_func (RegressAnnotationObject *object,
                                     const gchar      *data);
 
+
+_GI_TEST_EXTERN
 void     regress_annotation_invalid_regress_annotation (int foo);
 
 /**
@@ -174,14 +258,24 @@ struct RegressAnnotationFields
   gulong len;
 };
 
+
+_GI_TEST_EXTERN
 void    regress_annotation_ptr_array (GPtrArray *array);
 
+
+_GI_TEST_EXTERN
 GObject  * regress_annotation_test_parsing_bug630862 (void);
 
+
+_GI_TEST_EXTERN
 void regress_annotation_space_after_comment_bug631690 (void);
 
+
+_GI_TEST_EXTERN
 gchar* regress_annotation_return_filename (void);
 
+
+_GI_TEST_EXTERN
 GObject * regress_annotation_transfer_floating(void);
 
 /* This one we can handle properly */
index 4bb737b..6f59a69 100644 (file)
@@ -375,6 +375,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
index ed39120..6189531 100644 (file)
@@ -1,4 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+#include "config.h"
+
 #include "barapp.h"
 
 #include <girepository.h>
index 12c39a5..8694ddb 100644 (file)
@@ -1,6 +1,8 @@
 
 #include <glib-object.h>
 
+#include "gitestmacros.h"
+
 #define BAR_TYPE_BAZ              (bar_baz_get_type ())
 #define BAR_BAZ(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BAR_TYPE_BAZ, BarBaz))
 #define BAR_IS_BAZ(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), BAR_TYPE_BAZ))
@@ -18,9 +20,14 @@ struct BarBazClass
   GObjectClass parent_class;
 };
 
+_GI_TEST_EXTERN
 GType bar_baz_get_type          (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 void bar_app_func (void);
+
+_GI_TEST_EXTERN
 void bar_app_func2 (int x, double y);
 
 
@@ -45,6 +52,8 @@ struct MutterWindowClass
   GObjectClass parent_class;
 };
 
+_GI_TEST_EXTERN
 GType mutter_window_get_type          (void) G_GNUC_CONST;
 
+_GI_TEST_EXTERN
 void mutter_window_func (MutterWindow *window, guint v);
index e378286..9c58bfe 100644 (file)
@@ -1,4 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+#include "config.h"
+
 #include "drawable.h"
 
 G_DEFINE_ABSTRACT_TYPE (RegressTestInheritDrawable, regress_test_inherit_drawable, G_TYPE_OBJECT);
index 5838358..adf08da 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <glib-object.h>
 
+#include "gitestmacros.h"
+
 typedef struct _RegressTestInheritDrawable RegressTestInheritDrawable;
 typedef struct _RegressTestInheritDrawableClass RegressTestInheritDrawableClass;
 
@@ -16,11 +18,20 @@ struct _RegressTestInheritDrawableClass
   GObjectClass parent_class;
 };
 
+_GI_TEST_EXTERN
 GType regress_test_inherit_drawable_get_type (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 void regress_test_inherit_drawable_do_foo (RegressTestInheritDrawable *drawable, int x);
+
+_GI_TEST_EXTERN
 void regress_test_inherit_drawable_get_origin (RegressTestInheritDrawable *drawable, int *x, int *y);
+
+_GI_TEST_EXTERN
 void regress_test_inherit_drawable_get_size (RegressTestInheritDrawable *drawable, guint *width, guint *height);
+
+_GI_TEST_EXTERN
 void regress_test_inherit_drawable_do_foo_maybe_throw (RegressTestInheritDrawable *drawable, int x, GError **error);
 
 typedef struct _RegressTestInheritPixmapObjectClass RegressTestInheritPixmapObjectClass;
index 52b9054..66b2984 100644 (file)
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "foo.h"
 
 /* A hidden type not exposed publicly, similar to GUPNP's XML wrapper
index e097560..02d9b7c 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <glib-object.h>
 #include <gio/gio.h> /* GAsyncReadyCallback */
+
+#include "gitestmacros.h"
 #include "utility.h"
 
 #define REGRESS_FOO_SUCCESS_INT 0x1138
@@ -58,10 +60,16 @@ struct _RegressFooInterfaceIface
   void (*do_regress_foo) (RegressFooInterface *self, int x);
 };
 
+
+_GI_TEST_EXTERN
 GType                 regress_foo_interface_get_type       (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 void regress_foo_interface_do_regress_foo (RegressFooInterface *iface, int x);
 
+
+_GI_TEST_EXTERN
 void regress_foo_interface_static_method (int x);
 
 struct _RegressFooSubInterfaceIface
@@ -79,9 +87,15 @@ struct _RegressFooSubInterfaceIface
   void (*do_baz) (RegressFooSubInterface *self, GCallback callback, gpointer user_data);
 };
 
+
+_GI_TEST_EXTERN
 GType                 regress_foo_sub_interface_get_type       (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 void regress_foo_sub_interface_do_bar (RegressFooSubInterface *self);
+
+_GI_TEST_EXTERN
 void regress_foo_sub_interface_do_baz (RegressFooSubInterface *self,
                                        GCallback callback,
                                        gpointer user_data);
@@ -106,35 +120,67 @@ struct _RegressFooObjectClass
   GCallback _reserved[4];
 };
 
+
+_GI_TEST_EXTERN
 gint                  regress_foo_init                     (void);
 
+
+_GI_TEST_EXTERN
 GType                 regress_foo_object_get_type          (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 RegressFooObject*            regress_foo_object_new               (void);
+
+_GI_TEST_EXTERN
 UtilityObject*        regress_foo_object_external_type     (RegressFooObject *object);
+
+_GI_TEST_EXTERN
 GObject*              regress_foo_object_new_as_super      (void);
 
+
+_GI_TEST_EXTERN
 void                  regress_foo_object_various           (RegressFooObject *object, void *data, GType some_type);
 
+
+_GI_TEST_EXTERN
 void                  regress_foo_object_take_all          (RegressFooObject *object, int x, ...);
 
 typedef gpointer RegressFooObjectCookie;
 
+
+_GI_TEST_EXTERN
 RegressFooObjectCookie       regress_foo_object_new_cookie        (RegressFooObject *object, const char *target);
 
+
+_GI_TEST_EXTERN
 void                  regress_foo_object_is_it_time_yet    (RegressFooObject *object, time_t time);
 
+
+_GI_TEST_EXTERN
 const char *          regress_foo_object_get_name          (RegressFooObject *object);
 
+
+_GI_TEST_EXTERN
 char *                regress_foo_object_dup_name          (RegressFooObject *object);
 
+
+_GI_TEST_EXTERN
 void                  regress_foo_object_handle_glyph      (RegressFooObject *object, UtilityGlyph glyph);
 
+
+_GI_TEST_EXTERN
 gboolean              regress_foo_object_virtual_method    (RegressFooObject *object, int first_param);
 
+
+_GI_TEST_EXTERN
 void                  regress_foo_object_read              (RegressFooObject *object, int offset, int length);
 
+
+_GI_TEST_EXTERN
 int                   regress_foo_object_static_meth       (void);
 
+
+_GI_TEST_EXTERN
 void                  regress_foo_object_skipped_method    (RegressFooObject *object);
 
 struct _RegressFooSubobject
@@ -147,17 +193,31 @@ struct _RegressFooSubobjectClass
   RegressFooObjectClass parent_class;
 };
 
+
+_GI_TEST_EXTERN
 GType                 regress_foo_subobject_get_type       (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 RegressFooSubobject*         regress_foo_subobject_new            (void);
 
+
+_GI_TEST_EXTERN
 RegressFooObject *           regress_foo_object_get_default       (void);
 
+
+_GI_TEST_EXTERN
 GType                 regress_foo_buffer_get_type          (void);
 
+
+_GI_TEST_EXTERN
 void                  regress_foo_buffer_some_method       (RegressFooBuffer *buffer);
 
+
+_GI_TEST_EXTERN
 GType                 regress_foo_other_object_get_type    (void) G_GNUC_CONST;
 
+
+_GI_TEST_EXTERN
 RegressFooObject *           regress_foo_not_a_constructor_new    (void);
 
 typedef enum
@@ -167,10 +227,16 @@ typedef enum
   REGRESS_FOO_ENUM_DELTA
 } RegressFooEnumType;
 
+
+_GI_TEST_EXTERN
 GType regress_foo_enum_type_get_type (void);
 
+
+_GI_TEST_EXTERN
 int                   regress_foo_enum_type_method         (RegressFooEnumType regress_foo_enum);
 
+
+_GI_TEST_EXTERN
 RegressFooEnumType           regress_foo_enum_type_returnv        (int x);
 
 typedef enum
@@ -180,6 +246,8 @@ typedef enum
   REGRESS_FOO_FLAGS_THIRD  = 1 << 2
 } RegressFooFlagsType;
 
+
+_GI_TEST_EXTERN
 GType regress_foo_flags_type_get_type (void);
 
 typedef enum
@@ -213,18 +281,34 @@ typedef enum
 
 typedef struct _RegressFooBoxed RegressFooBoxed;
 
+
+_GI_TEST_EXTERN
 GType                 regress_foo_boxed_get_type       (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 RegressFooBoxed*             regress_foo_boxed_new            (void);
+
+_GI_TEST_EXTERN
 void                  regress_foo_boxed_method         (RegressFooBoxed* boxed);
 
 /* This one tests capitalization handling with respect to DBus */
 typedef struct _RegressFooDBusData RegressFooDBusData;
+
+_GI_TEST_EXTERN
 GType                 regress_foo_dbus_data_get_type       (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 void                  regress_foo_dbus_data_method         (RegressFooDBusData* dbusdata);
 
 /* FIXME: Scanner does not support this yet
+
+_GI_TEST_EXTERN
 const char *REGRESS_FOO_CONSTANT_STR = "regress_foo-constant-str";
+
+_GI_TEST_EXTERN
 const int REGRESS_FOO_CONSTANT_INT = 10;
+
+_GI_TEST_EXTERN
 const float REGRESS_FOO_CONSTANT_FLOAT = 10;
 */
 
@@ -255,14 +339,20 @@ struct _RegressFooRectangle
   gint height;
 };
 
+
+_GI_TEST_EXTERN
 void
 regress_foo_method_external_references (UtilityObject *object,
                                         UtilityEnumType e,
                                         UtilityFlagType f,
                                         UtilityStruct s);
 
+
+_GI_TEST_EXTERN
 void regress_foo_rectangle_add(RegressFooRectangle *r1, const RegressFooRectangle *r2);
 
+
+_GI_TEST_EXTERN
 RegressFooRectangle * regress_foo_rectangle_new (int x, int y, int width, int height);
 
 
@@ -301,10 +391,16 @@ struct _RegressFooBRect
   double y;
 };
 
+
+_GI_TEST_EXTERN
 GType regress_foo_brect_get_type (void);
 
+
+_GI_TEST_EXTERN
 RegressFooBRect *regress_foo_brect_new (double x, double y);
 
+
+_GI_TEST_EXTERN
 void regress_foo_brect_add (RegressFooBRect *b1, RegressFooBRect *b2);
 
 typedef union _RegressFooBUnion RegressFooBUnion;
@@ -338,36 +434,69 @@ struct _RegressFooThingWithArray
   guchar *data;
 } ;
 
+
+_GI_TEST_EXTERN
 RegressFooBUnion *regress_foo_bunion_new (void);
 
+
+_GI_TEST_EXTERN
 GType regress_foo_bunion_get_type (void);
 
+
+_GI_TEST_EXTERN
 int regress_foo_bunion_get_contained_type (RegressFooBUnion *bunion);
 
+
+_GI_TEST_EXTERN
 void regress_foo_test_unsigned_qualifier (unsigned int unsigned_param);
+
+_GI_TEST_EXTERN
 void regress_foo_test_unsigned_type (unsigned unsigned_param);
 
+
+_GI_TEST_EXTERN
 void regress_foo_test_string_array (char **array);
 
+
+_GI_TEST_EXTERN
 void regress_foo_test_string_array_with_g (gchar **array);
 
+
+_GI_TEST_EXTERN
 GArray *regress_foo_test_array (void);
 
+
+_GI_TEST_EXTERN
 const char * regress_foo_test_const_char_retval (void);
+
+_GI_TEST_EXTERN
 const RegressFooStruct * regress_foo_test_const_struct_retval (void);
+
+_GI_TEST_EXTERN
 void regress_foo_test_const_char_param (const char * param);
+
+_GI_TEST_EXTERN
 void regress_foo_test_const_struct_param (const RegressFooStruct * param);
 
 typedef void (*RegressFooVarargsCallback) (const char * param, ...);
+
+_GI_TEST_EXTERN
 void regress_foo_test_varargs_callback (gint i, RegressFooVarargsCallback callback);
+
+_GI_TEST_EXTERN
 void regress_foo_test_varargs_callback2 (RegressFooVarargsCallback callback);
+
+_GI_TEST_EXTERN
 void regress_foo_test_varargs_callback3 (RegressFooVarargsCallback callback,
                                          RegressFooVarargsCallback callback2);
 
 /* Make sure callbacks get the right scope by default */
+_GI_TEST_EXTERN
 void regress_foo_async_ready_callback(GCancellable *cancellable,
                                       GAsyncReadyCallback callback,
                                       gpointer user_data);
+
+_GI_TEST_EXTERN
 void regress_foo_destroy_notify_callback(RegressFooCallback callback,
                                          gpointer data,
                                          GDestroyNotify destroy);
@@ -377,8 +506,12 @@ typedef enum {
   REGRESS_FOO_ERROR_BAD,
   REGRESS_FOO_ERROR_UGLY
 } RegressFooError;
+
+_GI_TEST_EXTERN
 GType regress_foo_error_get_type (void);
 
+
+_GI_TEST_EXTERN
 GQuark regress_foo_error_quark (void);
 
 typedef enum
@@ -400,7 +533,11 @@ typedef enum
 } RegressFooASingle;
 
 /* Should be skipped */
+
+_GI_TEST_EXTERN
 void regress_foo_some_variant (guint x, va_list args);
+
+_GI_TEST_EXTERN
 void regress_foo_some_variant_ptr (guint x, va_list *args);
 
 /**
@@ -424,14 +561,22 @@ struct _RegressFooForeignStruct
   int regress_foo;
 };
 
+
+_GI_TEST_EXTERN
 RegressFooForeignStruct* regress_foo_foreign_struct_new (void);
+
+_GI_TEST_EXTERN
 RegressFooForeignStruct* regress_foo_foreign_struct_copy (RegressFooForeignStruct *original);
 
 /* This one should be a global, not a method on UtilityObject since
  * it's a separate namespace.
  */
+
+_GI_TEST_EXTERN
 void regress_foo_object_a_global_method (UtilityObject *obj);
 
+
+_GI_TEST_EXTERN
 RegressFooOtherObject * regress_foo_object_append_new_stack_layer (RegressFooObject *obj, int x);
 
 #endif /* __REGRESS_FOO_OBJECT_H__ */
index a3c2d6b..fac94a4 100644 (file)
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "gettype.h"
 
 G_DEFINE_TYPE (GetTypeObject, gettype_object, G_TYPE_OBJECT);
index 755f091..5adab57 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <glib-object.h>
 
+#include "gitestmacros.h"
+
 #define GETTYPE_TYPE_OBJECT            (gettype_object_get_type ())
 #define GETTYPE_OBJECT(object)         (G_TYPE_CHECK_INSTANCE_CAST ((object), GETTYPE_TYPE_OBJECT, GetTypeObject))
 #define GETTYPE_IS_OBJECT(object)      (G_TYPE_CHECK_INSTANCE_TYPE ((object), GETTYPE_TYPE_OBJECT))
@@ -19,11 +21,20 @@ struct _GetTypeObjectClass
   GObjectClass parent_class;
 };
 
+_GI_TEST_EXTERN
 GType           gettype_object_get_type          (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 GetTypeObject*  gettype_object_new               (void);
 
+
+_GI_TEST_EXTERN
 GType           gettype_object_nonmeta1_get_type (GetTypeObject *obj);
+
+_GI_TEST_EXTERN
 gboolean        gettype_object_nonmeta2_get_type (void);
+
+_GI_TEST_EXTERN
 gboolean        gettype_object_nonmeta_get_gtype (void);
 
 #endif /* __GETTYPE_OBJECT_H__ */
index d1c2312..fa08561 100644 (file)
@@ -1,4 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+#include "config.h"
+
 #include "gtkfrob.h"
 
 void
index 06a282d..fb07974 100644 (file)
@@ -3,9 +3,11 @@
 
 #include <glib-object.h>
 
+#include "gitestmacros.h"
 
 /* A global function */
 
+_GI_TEST_EXTERN
 void gtk_frob_language_manager_get_default (void);
 
 #endif /* __GTKFROB_H__ */
index b42e0cd..48d9e93 100644 (file)
@@ -1,4 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+#include "config.h"
+
 #include <string.h>
 #include <stdlib.h>
 #include <glib-object.h>
@@ -3363,6 +3365,37 @@ int regress_test_array_callback (RegressTestCallbackArray callback)
 }
 
 /**
+ * regress_test_array_inout_callback:
+ * @callback: (scope call):
+ *
+ */
+int
+regress_test_array_inout_callback (RegressTestCallbackArrayInOut callback)
+{
+  int *ints;
+  int length;
+
+  ints = g_new (int, 5);
+  for (length = 0; length < 5; ++length)
+    ints[length] = length - 2;
+
+  callback (&ints, &length);
+
+  g_assert_cmpint (length, ==, 4);
+  for (length = 0; length < 4; ++length)
+    g_assert_cmpint (ints[length], ==, length - 1);
+
+  callback (&ints, &length);
+
+  g_assert_cmpint (length, ==, 3);
+  for (length = 0; length < 3; ++length)
+    g_assert_cmpint (ints[length], ==, length);
+
+  g_free (ints);
+  return length;
+}
+
+/**
  * regress_test_simple_callback:
  * @callback: (scope call) (allow-none):
  *
index 667f129..74a95b7 100644 (file)
 #include <string.h>
 #include <stdlib.h>
 
+#include "gitestmacros.h"
+
+_GI_TEST_EXTERN
 void regress_set_abort_on_error (gboolean abort_on_error);
 
 /* basic types */
+_GI_TEST_EXTERN
 gboolean regress_test_boolean (gboolean in);
+
+_GI_TEST_EXTERN
 gboolean regress_test_boolean_true (gboolean in);
+
+_GI_TEST_EXTERN
 gboolean regress_test_boolean_false (gboolean in);
+
+_GI_TEST_EXTERN
 gint8 regress_test_int8 (gint8 in);
+
+_GI_TEST_EXTERN
 guint8 regress_test_uint8 (guint8 in);
+
+_GI_TEST_EXTERN
 gint16 regress_test_int16 (gint16 in);
+
+_GI_TEST_EXTERN
 guint16 regress_test_uint16 (guint16 in);
+
+_GI_TEST_EXTERN
 gint32 regress_test_int32 (gint32 in);
+
+_GI_TEST_EXTERN
 guint32 regress_test_uint32 (guint32 in);
+
+_GI_TEST_EXTERN
 gint64 regress_test_int64 (gint64 in);
+
+_GI_TEST_EXTERN
 guint64 regress_test_uint64 (guint64 in);
+
+_GI_TEST_EXTERN
 gshort regress_test_short (gshort in);
+
+_GI_TEST_EXTERN
 gushort regress_test_ushort (gushort in);
+
+_GI_TEST_EXTERN
 gint regress_test_int (gint in);
+
+_GI_TEST_EXTERN
 guint regress_test_uint (guint in);
+
+_GI_TEST_EXTERN
 glong regress_test_long (glong in);
+
+_GI_TEST_EXTERN
 gulong regress_test_ulong (gulong in);
+
+_GI_TEST_EXTERN
 gssize regress_test_ssize (gssize in);
+
+_GI_TEST_EXTERN
 gsize regress_test_size (gsize in);
+
+_GI_TEST_EXTERN
 gfloat regress_test_float (gfloat in);
+
+_GI_TEST_EXTERN
 gdouble regress_test_double (gdouble in);
+
+_GI_TEST_EXTERN
 gunichar regress_test_unichar (gunichar in);
+
+_GI_TEST_EXTERN
 time_t regress_test_timet (time_t in);
+
+_GI_TEST_EXTERN
 GType regress_test_gtype (GType in);
 
 /* utf8 */
+_GI_TEST_EXTERN
 const char *regress_test_utf8_const_return (void);
+
+_GI_TEST_EXTERN
 char *regress_test_utf8_nonconst_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_utf8_const_in (const char *in);
+
+_GI_TEST_EXTERN
 void regress_test_utf8_out (char **out);
+
+_GI_TEST_EXTERN
 void regress_test_utf8_inout (char **inout);
+
+_GI_TEST_EXTERN
 GSList *regress_test_filename_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_utf8_null_in (char *in);
+
+_GI_TEST_EXTERN
 void regress_test_utf8_null_out (char **char_out);
 
 /* in arguments after out arguments */
+_GI_TEST_EXTERN
 void regress_test_int_out_utf8 (int *length, const char *in);
 
 /* multiple output arguments */
+
+_GI_TEST_EXTERN
 void regress_test_multi_double_args (gdouble in, gdouble *one, gdouble *two);
+
+_GI_TEST_EXTERN
 void regress_test_utf8_out_out (char **out0, char **out1);
+
+_GI_TEST_EXTERN
 char *regress_test_utf8_out_nonconst_return (char **out);
 
 /* non-basic-types */
 /* array */
+_GI_TEST_EXTERN
 gboolean regress_test_strv_in (char **arr);
+
+_GI_TEST_EXTERN
 int regress_test_array_int_in (int n_ints, int *ints);
+
+_GI_TEST_EXTERN
 void regress_test_array_int_out (int *n_ints, int **ints);
+
+_GI_TEST_EXTERN
 void regress_test_array_int_inout (int *n_ints, int **ints);
+
+_GI_TEST_EXTERN
 int regress_test_array_gint8_in (int n_ints, gint8 *ints);
+
+_GI_TEST_EXTERN
 int regress_test_array_gint16_in (int n_ints, gint16 *ints);
+
+_GI_TEST_EXTERN
 gint32 regress_test_array_gint32_in (int n_ints, gint32 *ints);
+
+_GI_TEST_EXTERN
 gint64 regress_test_array_gint64_in (int n_ints, gint64 *ints);
+
+_GI_TEST_EXTERN
 char *regress_test_array_gtype_in (int n_types, GType *types);
+
+_GI_TEST_EXTERN
 char **regress_test_strv_out_container (void);
+
+_GI_TEST_EXTERN
 char **regress_test_strv_out (void);
+
+_GI_TEST_EXTERN
 const char * const * regress_test_strv_out_c (void);
+
+_GI_TEST_EXTERN
 void   regress_test_strv_outarg (char ***retp);
+
+_GI_TEST_EXTERN
 int regress_test_array_fixed_size_int_in (int *ints);
+
+_GI_TEST_EXTERN
 void regress_test_array_fixed_size_int_out (int **ints);
+
+_GI_TEST_EXTERN
 int *regress_test_array_fixed_size_int_return (void);
 
 /* transfer tests */
+_GI_TEST_EXTERN
 int *regress_test_array_int_full_out(int *len);
+
+_GI_TEST_EXTERN
 int *regress_test_array_int_none_out(int *len);
+
+_GI_TEST_EXTERN
 void regress_test_array_int_null_in (int *arr, int len);
+
+_GI_TEST_EXTERN
 void regress_test_array_int_null_out (int **arr, int *len);
 
 /* interface */
 /* GList */
+_GI_TEST_EXTERN
 const GList *regress_test_glist_nothing_return (void);
+
+_GI_TEST_EXTERN
 GList *regress_test_glist_nothing_return2 (void);
+
+_GI_TEST_EXTERN
 GList *regress_test_glist_container_return (void);
+
+_GI_TEST_EXTERN
 GList *regress_test_glist_everything_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_glist_nothing_in (const GList *in);
+
+_GI_TEST_EXTERN
 void regress_test_glist_nothing_in2 (GList *in);
+
+_GI_TEST_EXTERN
 void regress_test_glist_null_in(GSList *in);
+
+_GI_TEST_EXTERN
 void regress_test_glist_null_out(GSList **out_list);
 
 /* GSList */
+_GI_TEST_EXTERN
 const GSList *regress_test_gslist_nothing_return (void);
+
+_GI_TEST_EXTERN
 GSList *regress_test_gslist_nothing_return2 (void);
+
+_GI_TEST_EXTERN
 GSList *regress_test_gslist_container_return (void);
+
+_GI_TEST_EXTERN
 GSList *regress_test_gslist_everything_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_gslist_nothing_in (const GSList *in);
+
+_GI_TEST_EXTERN
 void regress_test_gslist_nothing_in2 (GSList *in);
+
+_GI_TEST_EXTERN
 void regress_test_gslist_null_in(GSList *in);
+
+_GI_TEST_EXTERN
 void regress_test_gslist_null_out(GSList **out_list);
 
 /* GHashTable */
+_GI_TEST_EXTERN
 const GHashTable *regress_test_ghash_null_return (void);
+
+_GI_TEST_EXTERN
 const GHashTable *regress_test_ghash_nothing_return (void);
+
+_GI_TEST_EXTERN
 GHashTable *regress_test_ghash_nothing_return2 (void);
+
+_GI_TEST_EXTERN
 GHashTable *regress_test_ghash_gvalue_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_ghash_gvalue_in (GHashTable *hash);
+
+_GI_TEST_EXTERN
 GHashTable *regress_test_ghash_container_return (void);
+
+_GI_TEST_EXTERN
 GHashTable *regress_test_ghash_everything_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_ghash_null_in (const GHashTable *in);
+
+_GI_TEST_EXTERN
 void regress_test_ghash_null_out (const GHashTable **out);
+
+_GI_TEST_EXTERN
 void regress_test_ghash_nothing_in (const GHashTable *in);
+
+_GI_TEST_EXTERN
 void regress_test_ghash_nothing_in2 (GHashTable *in);
+
+_GI_TEST_EXTERN
 GHashTable *regress_test_ghash_nested_everything_return (void);
+
+_GI_TEST_EXTERN
 GHashTable *regress_test_ghash_nested_everything_return2 (void);
 
 /* GPtrArray */
+_GI_TEST_EXTERN
 GPtrArray *regress_test_garray_container_return (void);
+
+_GI_TEST_EXTERN
 GPtrArray *regress_test_garray_full_return (void);
 
 /* error? */
 
 /* closure */
+_GI_TEST_EXTERN
 int regress_test_closure (GClosure *closure);
+
+_GI_TEST_EXTERN
 int regress_test_closure_one_arg (GClosure *closure, int arg);
+
+_GI_TEST_EXTERN
 GVariant *regress_test_closure_variant (GClosure *closure, GVariant* arg);
 
 /* value */
+_GI_TEST_EXTERN
 int regress_test_int_value_arg(const GValue *v);
+
+_GI_TEST_EXTERN
 const GValue *regress_test_value_return(int i);
 
 /* foreign structs */
 #ifndef _GI_DISABLE_CAIRO
+_GI_TEST_EXTERN
 cairo_t *regress_test_cairo_context_full_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_cairo_context_none_in (cairo_t *context);
 
+
+_GI_TEST_EXTERN
 cairo_surface_t *regress_test_cairo_surface_none_return (void);
+
+_GI_TEST_EXTERN
 cairo_surface_t *regress_test_cairo_surface_full_return (void);
+
+_GI_TEST_EXTERN
 void regress_test_cairo_surface_none_in (cairo_surface_t *surface);
+
+_GI_TEST_EXTERN
 void regress_test_cairo_surface_full_out (cairo_surface_t **surface);
 #endif
 
 /* versioning (deprecated, since, stability) */
+_GI_TEST_EXTERN
 void regress_test_versioning (void);
 
+
+_GI_TEST_EXTERN
 GVariant *regress_test_gvariant_i (void);
+
+_GI_TEST_EXTERN
 GVariant *regress_test_gvariant_s (void);
+
+_GI_TEST_EXTERN
 GVariant *regress_test_gvariant_asv (void);
+
+_GI_TEST_EXTERN
 GVariant *regress_test_gvariant_v (void);
+
+_GI_TEST_EXTERN
 GVariant *regress_test_gvariant_as (void);
 
 /* enums / flags */
@@ -184,10 +382,15 @@ typedef enum
   REGRESS_TEST_FLAG3 = 1 << 2,
 } RegressTestFlags;
 
+_GI_TEST_EXTERN
 GType regress_test_enum_get_type (void) G_GNUC_CONST;
 #define REGRESS_TEST_TYPE_ENUM (regress_test_enum_get_type ())
+
+_GI_TEST_EXTERN
 GType regress_test_enum_unsigned_get_type (void) G_GNUC_CONST;
 #define REGRESS_TEST_TYPE_ENUM_UNSIGNED (regress_test_enum_unsigned_get_type ())
+
+_GI_TEST_EXTERN
 GType regress_test_flags_get_type (void) G_GNUC_CONST;
 #define REGRESS_TEST_TYPE_FLAGS (regress_test_flags_get_type ())
 
@@ -209,9 +412,14 @@ typedef enum
   REGRESS_TEST_EVALUE3 = '0'
 } RegressTestEnumNoGEnum;
 
+_GI_TEST_EXTERN
 const gchar * regress_test_enum_param(RegressTestEnum e);
+
+_GI_TEST_EXTERN
 const gchar * regress_test_unsigned_enum_param(RegressTestEnumUnsigned e);
 
+
+_GI_TEST_EXTERN
 void regress_global_get_flags_out (RegressTestFlags *v);
 
 /* error domains */
@@ -223,7 +431,10 @@ typedef enum
   REGRESS_TEST_ERROR_CODE3 = 3
 } RegressTestError;
 
+_GI_TEST_EXTERN
 GType regress_test_error_get_type (void);
+
+_GI_TEST_EXTERN
 GQuark regress_test_error_quark (void);
 
 /* Test weird names, with and without
@@ -236,7 +447,10 @@ typedef enum
   REGRESS_TEST_ABC_ERROR_CODE3 = 3
 } RegressTestABCError;
 
+_GI_TEST_EXTERN
 GType regress_test_abc_error_get_type (void);
+
+_GI_TEST_EXTERN
 GQuark regress_test_abc_error_quark (void);
 
 typedef enum
@@ -250,7 +464,10 @@ typedef enum
    The difference is intentional, although it
    is mainly meant for capitalization problems.
 */
+_GI_TEST_EXTERN
 GType regress_test_unconventional_error_get_type (void);
+
+_GI_TEST_EXTERN
 GQuark regress_test_unconventional_error_quark (void);
 
 typedef enum
@@ -260,6 +477,7 @@ typedef enum
   REGRESS_TEST_DEF_ERROR_CODE2 = 2
 } RegressTestDEFError;
 
+_GI_TEST_EXTERN
 GQuark regress_test_def_error_quark (void);
 
 /* the scanner used to have problem
@@ -273,6 +491,7 @@ typedef enum
   REGRESS_ATEST_ERROR_CODE2 = 2
 } RegressATestError;
 
+_GI_TEST_EXTERN
 GQuark regress_atest_error_quark (void);
 
 
@@ -305,8 +524,11 @@ struct _RegressTestStructA
   RegressTestEnum some_enum;
 };
 
+_GI_TEST_EXTERN
 void regress_test_struct_a_clone (RegressTestStructA *a,
                                  RegressTestStructA *a_out);
+
+_GI_TEST_EXTERN
 void regress_test_struct_a_parse (RegressTestStructA *a_out, const gchar *string);
 
 struct _RegressTestStructB
@@ -315,6 +537,7 @@ struct _RegressTestStructB
   RegressTestStructA nested_a;
 };
 
+_GI_TEST_EXTERN
 void regress_test_struct_b_clone (RegressTestStructB *b,
                          RegressTestStructB *b_out);
 
@@ -386,10 +609,17 @@ struct _RegressTestSimpleBoxedA
 };
 
 /* Intentionally uses _get_gtype */
+_GI_TEST_EXTERN
 GType                   regress_test_simple_boxed_a_get_gtype     (void);
+
+_GI_TEST_EXTERN
 RegressTestSimpleBoxedA *regress_test_simple_boxed_a_copy         (RegressTestSimpleBoxedA *a);
+
+_GI_TEST_EXTERN
 gboolean                regress_test_simple_boxed_a_equals       (RegressTestSimpleBoxedA *a,
                                                           RegressTestSimpleBoxedA *other_a);
+
+_GI_TEST_EXTERN
 const RegressTestSimpleBoxedA *regress_test_simple_boxed_a_const_return (void);
 
 
@@ -399,7 +629,11 @@ struct _RegressTestSimpleBoxedB
   RegressTestSimpleBoxedA nested_a;
 };
 
+
+_GI_TEST_EXTERN
 GType             regress_test_simple_boxed_b_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestSimpleBoxedB *regress_test_simple_boxed_b_copy     (RegressTestSimpleBoxedB *b);
 
 /* opaque boxed */
@@ -416,17 +650,34 @@ struct _RegressTestBoxed
   RegressTestBoxedPrivate *priv;
 };
 
+_GI_TEST_EXTERN
 GType      regress_test_boxed_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestBoxed *regress_test_boxed_new      (void);
+
+_GI_TEST_EXTERN
 RegressTestBoxed *regress_test_boxed_new_alternative_constructor1  (int i);
+
+_GI_TEST_EXTERN
 RegressTestBoxed *regress_test_boxed_new_alternative_constructor2  (int i, int j);
+
+_GI_TEST_EXTERN
 RegressTestBoxed *regress_test_boxed_new_alternative_constructor3  (char *s);
 
+
+_GI_TEST_EXTERN
 RegressTestBoxed *regress_test_boxed_copy     (RegressTestBoxed *boxed);
+
+_GI_TEST_EXTERN
 gboolean   regress_test_boxed_equals   (RegressTestBoxed *boxed,
                                        RegressTestBoxed *other);
 
+
+_GI_TEST_EXTERN
 void       regress_test_boxeds_not_a_method (RegressTestBoxed *boxed);
+
+_GI_TEST_EXTERN
 void       regress_test_boxeds_not_a_static (void);
 
 typedef struct _RegressTestBoxedB RegressTestBoxedB;
@@ -437,8 +688,14 @@ struct _RegressTestBoxedB
   glong some_long;
 };
 
+
+_GI_TEST_EXTERN
 GType regress_test_boxed_b_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestBoxedB *regress_test_boxed_b_new (gint8 some_int8, glong some_long);
+
+_GI_TEST_EXTERN
 RegressTestBoxedB *regress_test_boxed_b_copy (RegressTestBoxedB *boxed);
 
 typedef struct _RegressTestBoxedC RegressTestBoxedC;
@@ -449,17 +706,30 @@ struct _RegressTestBoxedC
   guint another_thing;
 };
 
+_GI_TEST_EXTERN
 GType regress_test_boxed_c_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestBoxedC *regress_test_boxed_c_new (void);
 
 typedef struct _RegressTestBoxedD RegressTestBoxedD;
 
+
+_GI_TEST_EXTERN
 GType regress_test_boxed_d_get_type (void);
 
+
+_GI_TEST_EXTERN
 RegressTestBoxedD *regress_test_boxed_d_new (const char *a_string, int a_int);
+
+_GI_TEST_EXTERN
 RegressTestBoxedD *regress_test_boxed_d_copy (RegressTestBoxedD *boxed);
+
+_GI_TEST_EXTERN
 void regress_test_boxed_d_free (RegressTestBoxedD *boxed);
 
+
+_GI_TEST_EXTERN
 int regress_test_boxed_d_get_magic (RegressTestBoxedD *boxed);
 
 /* gobject */
@@ -517,22 +787,51 @@ struct _RegressTestObjClass
   void (*_regress_reserved2) (void);
 };
 
+_GI_TEST_EXTERN
 GType      regress_test_obj_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestObj*   regress_test_obj_new (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 RegressTestObj*   regress_constructor (void);
+
+_GI_TEST_EXTERN
 RegressTestObj*   regress_test_obj_new_from_file (const char *x, GError **error);
+
+_GI_TEST_EXTERN
 void       regress_test_obj_set_bare (RegressTestObj *obj, GObject *bare);
+
+_GI_TEST_EXTERN
 void       regress_test_obj_emit_sig_with_obj (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 void       regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 void       regress_test_obj_emit_sig_with_int64 (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 void       regress_test_obj_emit_sig_with_uint64 (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 int        regress_test_obj_instance_method (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 void       regress_test_obj_instance_method_full (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 double     regress_test_obj_static_method (int x);
+
+_GI_TEST_EXTERN
 void       regress_forced_method (RegressTestObj *obj);
 
+
+_GI_TEST_EXTERN
 void regress_test_array_fixed_out_objects (RegressTestObj ***objs);
 
+
+_GI_TEST_EXTERN
 void regress_test_obj_torture_signature_0 (RegressTestObj    *obj,
                                    int        x,
                                    double     *y,
@@ -540,6 +839,8 @@ void regress_test_obj_torture_signature_0 (RegressTestObj    *obj,
                                    const char *foo,
                                    int        *q,
                                    guint       m);
+
+_GI_TEST_EXTERN
 gboolean regress_test_obj_torture_signature_1 (RegressTestObj    *obj,
                                        int        x,
                                        double     *y,
@@ -549,6 +850,8 @@ gboolean regress_test_obj_torture_signature_1 (RegressTestObj    *obj,
                                        guint       m,
                                        GError    **error);
 
+
+_GI_TEST_EXTERN
 gboolean regress_test_obj_skip_return_val (RegressTestObj *obj,
                                            gint            a,
                                            gint           *out_b,
@@ -559,10 +862,14 @@ gboolean regress_test_obj_skip_return_val (RegressTestObj *obj,
                                            gint            num2,
                                            GError        **error);
 
+
+_GI_TEST_EXTERN
 gboolean regress_test_obj_skip_return_val_no_out (RegressTestObj *obj,
                                                   gint            a,
                                                   GError        **error);
 
+
+_GI_TEST_EXTERN
 gboolean regress_test_obj_skip_param (RegressTestObj *obj,
                                       gint            a,
                                       gint           *out_b,
@@ -573,6 +880,8 @@ gboolean regress_test_obj_skip_param (RegressTestObj *obj,
                                       gint            num2,
                                       GError        **error);
 
+
+_GI_TEST_EXTERN
 gboolean regress_test_obj_skip_out_param (RegressTestObj *obj,
                                           gint            a,
                                           gint           *out_b,
@@ -583,6 +892,8 @@ gboolean regress_test_obj_skip_out_param (RegressTestObj *obj,
                                           gint            num2,
                                           GError        **error);
 
+
+_GI_TEST_EXTERN
 gboolean regress_test_obj_skip_inout_param (RegressTestObj *obj,
                                             gint            a,
                                             gint           *out_b,
@@ -594,9 +905,14 @@ gboolean regress_test_obj_skip_inout_param (RegressTestObj *obj,
                                             GError        **error);
 
 /* virtual */
+_GI_TEST_EXTERN
 int        regress_test_obj_do_matrix (RegressTestObj *obj, const char *somestr);
 
+
+_GI_TEST_EXTERN
 void regress_func_obj_null_in (RegressTestObj *obj);
+
+_GI_TEST_EXTERN
 void regress_test_obj_null_out (RegressTestObj **obj);
 
 /* inheritance */
@@ -618,9 +934,17 @@ struct _RegressTestSubObjClass
   RegressTestObjClass parent_class;
 };
 
+
+_GI_TEST_EXTERN
 GType       regress_test_sub_obj_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestObj* regress_test_sub_obj_new (void);
+
+_GI_TEST_EXTERN
 void        regress_test_sub_obj_unset_bare (RegressTestSubObj *obj);
+
+_GI_TEST_EXTERN
 int         regress_test_sub_obj_instance_method (RegressTestSubObj *obj);
 
 /* fundamental object */
@@ -656,13 +980,21 @@ struct _RegressTestFundamentalObjectClass {
   RegressTestFundamentalObjectFinalizeFunction finalize;
 };
 
+_GI_TEST_EXTERN
 GType                 regress_test_fundamental_object_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestFundamentalObject* regress_test_fundamental_object_ref      (RegressTestFundamentalObject *fundamental_object);
+
+_GI_TEST_EXTERN
 void                  regress_test_fundamental_object_unref    (RegressTestFundamentalObject *fundamental_object);
 
 #define REGRESS_TEST_VALUE_HOLDS_FUNDAMENTAL_OBJECT(value)  (G_VALUE_HOLDS(value, REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT))
 
+_GI_TEST_EXTERN
 void                  regress_test_value_set_fundamental_object (GValue *value, RegressTestFundamentalObject *fundamental_object);
+
+_GI_TEST_EXTERN
 RegressTestFundamentalObject* regress_test_value_get_fundamental_object (const GValue *value);
 
 typedef struct _RegressTestFundamentalSubObject RegressTestFundamentalSubObject;
@@ -678,8 +1010,12 @@ struct _RegressTestFundamentalSubObjectClass {
   RegressTestFundamentalObjectClass fundamental_object_class;
 };
 
+
+_GI_TEST_EXTERN
 GType regress_test_fundamental_sub_object_get_type(void);
 
+
+_GI_TEST_EXTERN
 RegressTestFundamentalSubObject *
 regress_test_fundamental_sub_object_new (const char *data);
 
@@ -713,35 +1049,81 @@ typedef int (*RegressTestCallbackFull) (int foo, double bar, char *path);
  * @two_length:
  */
 typedef int (*RegressTestCallbackArray) (int *one, gsize one_length, const char** two, int two_length);
+/**
+ * RegressTestCallbackArrayInOut:
+ * @ints: (inout) (array length=length):
+ * @length: (inout):
+ */
+typedef void (* RegressTestCallbackArrayInOut) (int **ints, int *length);
 
+_GI_TEST_EXTERN
 void regress_test_simple_callback (RegressTestSimpleCallback callback);
+
+_GI_TEST_EXTERN
 int regress_test_callback (RegressTestCallback callback);
+
+_GI_TEST_EXTERN
 int regress_test_multi_callback (RegressTestCallback callback);
+
+_GI_TEST_EXTERN
 int regress_test_array_callback (RegressTestCallbackArray callback);
+
+_GI_TEST_EXTERN
+int regress_test_array_inout_callback (RegressTestCallbackArrayInOut callback);
+
+_GI_TEST_EXTERN
 int regress_test_callback_user_data (RegressTestCallbackUserData callback,
                              gpointer user_data);
+
+_GI_TEST_EXTERN
 int regress_test_callback_destroy_notify (RegressTestCallbackUserData callback,
                                   gpointer user_data,
                                   GDestroyNotify notify);
+
+_GI_TEST_EXTERN
 int regress_test_callback_destroy_notify_no_user_data (RegressTestCallbackUserData callback,
                                   GDestroyNotify notify);
+
+_GI_TEST_EXTERN
 int regress_test_callback_thaw_notifications (void);
 
+
+_GI_TEST_EXTERN
 void regress_test_callback_async (RegressTestCallbackUserData callback, gpointer user_data);
+
+_GI_TEST_EXTERN
 int regress_test_callback_thaw_async (void);
 
+
+_GI_TEST_EXTERN
 void regress_test_async_ready_callback (GAsyncReadyCallback callback);
 
+
+_GI_TEST_EXTERN
 void regress_test_obj_instance_method_callback (RegressTestObj *obj, RegressTestCallback callback);
+
+_GI_TEST_EXTERN
 void regress_test_obj_static_method_callback (RegressTestCallback callback);
+
+_GI_TEST_EXTERN
 RegressTestObj *regress_test_obj_new_callback (RegressTestCallbackUserData callback,
                                 gpointer user_data,
                                 GDestroyNotify notify);
+
+_GI_TEST_EXTERN
 void regress_test_hash_table_callback (GHashTable *data, RegressTestCallbackHashtable callback);
+
+_GI_TEST_EXTERN
 void regress_test_gerror_callback (RegressTestCallbackGError callback);
+
+_GI_TEST_EXTERN
 void regress_test_null_gerror_callback (RegressTestCallbackGError callback);
+
+_GI_TEST_EXTERN
 void regress_test_owned_gerror_callback (RegressTestCallbackOwnedGError callback);
 
+
+_GI_TEST_EXTERN
 void regress_test_skip_unannotated_callback (RegressTestCallback callback);
 
 typedef struct _RegressTestInterface RegressTestInterface;
@@ -758,6 +1140,7 @@ struct _RegressTestInterfaceIface {
     GTypeInterface base_iface;
 };
 
+_GI_TEST_EXTERN
 GType regress_test_interface_get_type (void) G_GNUC_CONST;
 
 /* gobject with non-standard prefix */
@@ -778,10 +1161,20 @@ typedef struct
   GObjectClass parent_class;
 } RegressTestWi8021xClass;
 
+
+_GI_TEST_EXTERN
 GType        regress_test_wi_802_1x_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestWi8021x* regress_test_wi_802_1x_new (void);
+
+_GI_TEST_EXTERN
 gboolean     regress_test_wi_802_1x_get_testbool (RegressTestWi8021x *obj);
+
+_GI_TEST_EXTERN
 void         regress_test_wi_802_1x_set_testbool (RegressTestWi8021x *obj, gboolean v);
+
+_GI_TEST_EXTERN
 int          regress_test_wi_802_1x_static_method (int x);
 
 /* floating gobject */
@@ -800,16 +1193,24 @@ typedef struct
   GInitiallyUnownedClass parent_class;
 } RegressTestFloatingClass;
 
+
+_GI_TEST_EXTERN
 GType        regress_test_floating_get_type (void);
+
+_GI_TEST_EXTERN
 RegressTestFloating* regress_test_floating_new (void);
 
 /* Function signature torture tests */
+
+_GI_TEST_EXTERN
 void regress_test_torture_signature_0 (int        x,
                                double     *y,
                                int        *z,
                                const char *foo,
                                int        *q,
                                guint       m);
+
+_GI_TEST_EXTERN
 gboolean regress_test_torture_signature_1 (int        x,
                                    double     *y,
                                    int        *z,
@@ -817,6 +1218,8 @@ gboolean regress_test_torture_signature_1 (int        x,
                                    int        *q,
                                    guint       m,
                                    GError    **error);
+
+_GI_TEST_EXTERN
 void regress_test_torture_signature_2 (int                  x,
                                       RegressTestCallbackUserData  callback,
                                       gpointer              user_data,
@@ -827,12 +1230,22 @@ void regress_test_torture_signature_2 (int                  x,
                                       int                  *q,
                                       guint                 m);
 
+
+_GI_TEST_EXTERN
 GValue *regress_test_date_in_gvalue (void);
+
+_GI_TEST_EXTERN
 GValue *regress_test_strv_in_gvalue (void);
 
+
+_GI_TEST_EXTERN
 GObject * _regress_this_is_a_private_symbol (void);
 
+
+_GI_TEST_EXTERN
 void regress_test_multiline_doc_comments (void);
+
+_GI_TEST_EXTERN
 void regress_test_nested_parameter (int a);
 
 /**
@@ -847,6 +1260,8 @@ typedef struct
   double v;
 } RegressSkippedStructure;
 
+
+_GI_TEST_EXTERN
 void regress_random_function_with_skipped_structure (int x,
                                                     RegressSkippedStructure *foo,
                                                     double v);
@@ -874,6 +1289,8 @@ typedef RegressIntset RegressIntSet;
  */
 typedef GPtrArray RegressPtrArrayAlias;
 
+
+_GI_TEST_EXTERN
 void regress_introspectable_via_alias (RegressPtrArrayAlias *data);
 
 /**
@@ -883,6 +1300,8 @@ void regress_introspectable_via_alias (RegressPtrArrayAlias *data);
  */
 typedef va_list RegressVaListAlias;
 
+
+_GI_TEST_EXTERN
 void regress_not_introspectable_via_alias (RegressVaListAlias ok);
 
 /**
@@ -892,6 +1311,8 @@ void regress_not_introspectable_via_alias (RegressVaListAlias ok);
  */
 typedef RegressTestBoxed RegressAliasedTestBoxed;
 
+
+_GI_TEST_EXTERN
 void regress_aliased_caller_alloc (RegressAliasedTestBoxed *boxed);
 
 /* private testing */
@@ -917,12 +1338,16 @@ typedef struct {
   gint array[10];
 } RegressTestStructFixedArray;
 
+
+_GI_TEST_EXTERN
 void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray *str);
 
 typedef struct {
   gchar name[32];
 } RegressLikeXklConfigItem;
 
+
+_GI_TEST_EXTERN
 void regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem *self,
                                             const char *name);
 
@@ -940,6 +1365,7 @@ void regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem *self,
        "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"
 
+_GI_TEST_EXTERN
 void regress_has_parameter_named_attrs (int        foo,
                                         gpointer   attributes);
 
index a6e7bcc..8cb6db5 100644 (file)
@@ -1,4 +1,5 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+#include "config.h"
 
 #include "sletter.h"
 
index 20797f6..f6a146d 100644 (file)
@@ -3,11 +3,14 @@
 
 #include <gio/gio.h>
 
+#include "gitestmacros.h"
+
 typedef struct {
   double x;
   double y;
 } SPoint;
 
+_GI_TEST_EXTERN
 void s_hello (void);
 
 /* Like GSpawnError; not registered with GType */
@@ -17,6 +20,8 @@ typedef enum
   S_SPAWN_ERROR_CODE2 = 2,
   S_SPAWN_ERROR_CODE3 = 3
 } SSpawnError;
+
+_GI_TEST_EXTERN
 GQuark s_spawn_error_quark (void);
 
 /* Like GDBusError but not registered with GType */
@@ -26,6 +31,8 @@ typedef enum
   S_DBUS_ERROR_CODE2 = 2,
   S_DBUS_ERROR_CODE3 = 3
 } SDBusError;
+
+_GI_TEST_EXTERN
 GQuark s_dbus_error_quark (void);
 
 #endif
index 7c1dea1..03614b6 100644 (file)
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "typedefs.h"
 
 static TypedefsBoxedWithTypedefBefore *
index 2a5d8be..7eaa73b 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <glib-object.h>
 
+#include "gitestmacros.h"
+
 /*
  * Tests for various orderings of typedef struct declarations.
  */
@@ -40,6 +42,8 @@ typedef struct _TypedefsBoxedWithTypedefBefore TypedefsBoxedWithTypedefBefore;
 struct _TypedefsBoxedWithTypedefBefore {
     int value;
 };
+
+_GI_TEST_EXTERN
 GType typedefs_boxed_with_typedef_before_get_type (void) G_GNUC_CONST;
 
 
@@ -48,6 +52,8 @@ struct _TypedefsBoxedWithTypedefAfter {
     int value;
 };
 typedef struct _TypedefsBoxedWithTypedefAfter TypedefsBoxedWithTypedefAfter;
+
+_GI_TEST_EXTERN
 GType typedefs_boxed_with_typedef_after_get_type (void) G_GNUC_CONST;
 
 
@@ -55,6 +61,8 @@ GType typedefs_boxed_with_typedef_after_get_type (void) G_GNUC_CONST;
 typedef struct _TypedefsBoxedWithTagAndTypedef {
     int value;
 } TypedefsBoxedWithTagAndTypedef;
+
+_GI_TEST_EXTERN
 GType typedefs_boxed_with_tag_and_typedef_get_type (void) G_GNUC_CONST;
 
 
@@ -62,11 +70,15 @@ GType typedefs_boxed_with_tag_and_typedef_get_type (void) G_GNUC_CONST;
 typedef struct {
     int value;
 } TypedefsBoxedWithAnonymousTypedef;
+
+_GI_TEST_EXTERN
 GType typedefs_boxed_with_anonymous_typedef_get_type (void) G_GNUC_CONST;
 
 
 /* BUG: uses <record> instead of <glib:boxed> */
 typedef struct _TypedefsBoxedWithHiddenStruct TypedefsBoxedWithHiddenStruct;
+
+_GI_TEST_EXTERN
 GType typedefs_boxed_with_hidden_struct_get_type (void) G_GNUC_CONST;
 
 
index fb1cf5a..c5e48a4 100644 (file)
@@ -1,4 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+#include "config.h"
+
 #include "utility.h"
 
 G_DEFINE_TYPE (UtilityObject, utility_object, G_TYPE_OBJECT);
index 8dc6d54..ff1c382 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <glib-object.h>
 
+#include "gitestmacros.h"
+
 #define UTILITY_TYPE_OBJECT              (utility_object_get_type ())
 #define UTILITY_OBJECT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), UTILITY_TYPE_OBJECT, UtilityObject))
 #define UTILITY_IS_OBJECT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), UTILITY_TYPE_OBJECT))
@@ -53,7 +55,11 @@ typedef struct
 
 typedef void (*UtilityFileFunc)(const char *path, gpointer user_data);
 
+
+_GI_TEST_EXTERN
 GType                 utility_object_get_type          (void) G_GNUC_CONST;
+
+_GI_TEST_EXTERN
 void                  utility_object_watch_dir         (UtilityObject *object,
                                                         const char *path,
                                                         UtilityFileFunc func,
@@ -90,6 +96,7 @@ typedef union
   double real;
 } UtilityUnion;
 
+_GI_TEST_EXTERN
 void utility_dir_foreach (const char *path, UtilityFileFunc func, gpointer user_data);
 
 #endif /* __UTILITY_H__ */
index a4c28b4..546e8ea 100644 (file)
@@ -5,9 +5,13 @@
 
 #include <gio/gio.h>
 
+#include "gitestmacros.h"
+
 #define WARNLIB_UNPAIRED_ERROR (warnlib_unpaired_error_quark ())
+_GI_TEST_EXTERN
 GQuark warnlib_unpaired_error_quark (void);
 
+_GI_TEST_EXTERN
 gboolean warnlib_throw_unpaired (GError **error);
 
 /* interface */
@@ -31,9 +35,12 @@ struct _WarnLibWhateverIface
   void (*do_boo) (WarnLibWhatever *self, int x, gpointer y);
 };
 
+_GI_TEST_EXTERN
 void warnlib_whatever_do_moo (WarnLibWhatever *self, int, gpointer);
+_GI_TEST_EXTERN
 void warnlib_whatever_do_boo (WarnLibWhatever *self, int, gpointer);
 
+_GI_TEST_EXTERN
 GType warnlib_whatever_get_type (void) G_GNUC_CONST;
 
 #endif
index eeac52a..f612e38 100644 (file)
@@ -374,6 +374,7 @@ GIREPO_CFLAGS = @GIREPO_CFLAGS@
 GIREPO_LIBS = @GIREPO_LIBS@
 GIR_DIR = @GIR_DIR@
 GIR_SUFFIX = @GIR_SUFFIX@
+GI_HIDDEN_VISIBILITY_CFLAGS = @GI_HIDDEN_VISIBILITY_CFLAGS@
 GI_VERSION = @GI_VERSION@
 GLIBSRC = @GLIBSRC@
 GLIB_CFLAGS = @GLIB_CFLAGS@