summaryrefslogtreecommitdiff
path: root/tests/scanner
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scanner')
-rw-r--r--tests/scanner/Annotation-1.0-expected.gir853
-rw-r--r--tests/scanner/Bar-1.0-expected.gir4
-rw-r--r--tests/scanner/Foo-1.0-expected.gir281
-rw-r--r--tests/scanner/GetType-1.0-expected.gir19
-rw-r--r--tests/scanner/GtkFrob-1.0-expected.gir1
-rw-r--r--tests/scanner/Headeronly-1.0-expected.gir21
-rw-r--r--tests/scanner/Makefile.am148
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.ATestError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AliasedTestBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.None.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationBitfield.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationFields.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationForeachFunc.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationListCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationNotifyFunc.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-attribute-signal.page44
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page39
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-function-property.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-list-signal.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-property.page27
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-signal.page41
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-tab-property.page28
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.allow_none.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleeowns.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleesowns.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_n.page67
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_nz.page67
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.create_object.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.do_not_use.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.extra_annos.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.foreach.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_hash.page49
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_objects.page50
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_strings.page49
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.hidden_self.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout2.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout3.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.notrans.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.out.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.parse_args.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data2.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data3.page67
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.string_out.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.use_buffer.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch.page67
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch_full.page75
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.with_voidp.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.AnnotationStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooASingle.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooAddressType.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.add.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.new.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.get_contained_type.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.page61
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.some_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEnumFullname.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEnumNoType.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.returnv.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooError.quark.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEvent.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEventAny.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooEventExpose.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsNoType.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsType.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.copy.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooInterface-do_regress_foo.page43
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.do_regress_foo.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.page55
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.static_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.do_regress_foo.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject-hidden.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject-signal.page44
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject-string.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject-virtual_method.page43
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.a_global_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.append_new_stack_layer.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.dup_name.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.external_type.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_default.page41
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_name.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.handle_glyph.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.is_it_time_yet.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_as_super.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_cookie.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.read.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.skipped_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.static_meth.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.take_all.page63
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.various.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObject.virtual_method.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.read_fn.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.virtual_method.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooObjectCookie.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooOtherObject.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.add.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.new.page76
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSkippable.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooStackLayer.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy-event.page35
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy_event.page38
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_bar.page38
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_baz.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_bar.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_baz.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.page55
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.destroy_event.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_bar.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_baz.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.page61
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooSubobjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooThingWithArray.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooUtilityStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooVarargsCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.FooXEvent.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.IntSet.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.LikeGnomeKeyringPasswordSchema.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.set_name.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.PtrArrayAlias.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.SkippedStructure.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.quark.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.copy.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.equals.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor1.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor2.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor3.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.copy.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.new.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.copy.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.free.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.get_magic.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.new.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackArray.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackFull.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackGError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackHashtable.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackOwnedGError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackUserData.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestDEFError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.param.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestEnumNoGEnum.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestEnumUnsigned.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestError.quark.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFlags.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.page61
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFloatingClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.page55
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.ref.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.unref.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectCopyFunction.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectFinalizeFunction.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.new.page50
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_origin.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_size.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawableClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInheritPixmapObjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInterface.page55
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestInterfaceIface.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-all.page35
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-allow_none_vfunc.page43
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-bare.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-boxed.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-cleanup.page35
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-double.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-first.page35
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-float.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-gtype.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table-old.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-int.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list-old.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page45
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page44
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-prop.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-foreign-struct.page39
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-hash-prop.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-int64-prop.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-intarray-ret.page39
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-obj.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-strv.page39
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-uint64-prop.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-string.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test-with-static-scope-arg.page39
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test.page35
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.constructor.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.do_matrix.page59
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_foreign_struct.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_int64.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_obj.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_uint64.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.forced_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method_callback.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_callback.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_from_file.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.null_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.set_bare.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_inout_param.page111
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_out_param.page111
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_param.page111
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val.page111
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val_no_out.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.torture_signature_0.page102
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObj.torture_signature_1.page102
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved1.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved2.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.allow_none_vfunc.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.matrix.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.quark.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateEnum.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceEnum.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.const_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.copy.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.equals.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.copy.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.clone.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.parse.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.clone.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructC.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructD.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructE.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructE__some_union__union.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructF.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.frob.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.instance_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.page61
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.unset_bare.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestSubObjClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestTypeGUInt64.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x-testbool.page26
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.get_testbool.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.new.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.set_testbool.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.static_method.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021xClass.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.VaListAlias.page25
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.aliased_caller_alloc.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_attribute_func.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_custom_destroy.page67
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_get_source_file.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_init.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_invalid_regress_annotation.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_ptr_array.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_array.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_filename.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_set_source_file.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_space_after_comment_bug631690.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_array_length.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_test_parsing_bug630862.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_transfer_floating.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.annotation_versioned.page41
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.atest_error_quark.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_async_ready_callback.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_destroy_notify_callback.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_init.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_method_external_references.page75
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_not_a_constructor_new.page41
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_skip_me.page49
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant_ptr.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_array.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_param.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_retval.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_param.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_retval.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array_with_g.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_qualifier.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_type.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback2.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback3.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.func_obj_null_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.global_get_flags_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.has_parameter_named_attrs.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.introspectable_via_alias.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.not_introspectable_via_alias.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.random_function_with_skipped_structure.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.set_abort_on_error.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_out_objects.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint16_in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint32_in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint64_in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint8_in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_gtype_in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_full_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_inout.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_none_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_in.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_out.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_out.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_async_ready_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_boolean.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_false.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_true.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_full_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_none_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_callback_async.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify.page67
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify_no_user_data.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_async.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_notifications.page42
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_callback_user_data.page58
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_closure.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_closure_one_arg.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_closure_variant.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_date_in_gvalue.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_def_error_quark.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_double.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_filename_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_float.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_garray_container_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_garray_full_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gerror_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_container_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_everything_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_in.page49
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return2.page41
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in2.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return2.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_container_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_everything_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in2.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return2.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_container_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_everything_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in2.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return2.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gtype.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_as.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_asv.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_i.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_s.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_v.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_hash_table_callback.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_int.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_int16.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_int32.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_int64.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_int8.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_int_out_utf8.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_int_value_arg.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_long.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_multi_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_multi_double_args.page66
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_multiline_doc_comments.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_nested_parameter.page73
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_null_gerror_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_owned_gerror_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_short.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_simple_callback.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_size.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_skip_unannotated_callback.page49
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ssize.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in_gvalue.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_c.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_container.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_strv_outarg.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_timet.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_0.page93
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_1.page93
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_2.page120
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_uint.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_uint16.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_uint32.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_uint64.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_uint8.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ulong.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_unichar.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_unsigned_enum_param.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_ushort.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_inout.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_nonconst_return.page40
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_in.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_nonconst_return.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_out.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_value_get_fundamental_object.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_value_return.page48
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_value_set_fundamental_object.page57
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_versioning.page41
-rw-r--r--tests/scanner/Regress-1.0-C-expected/index.page32
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.ATestError.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AliasedTestBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.None.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationBitfield.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationFields.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationForeachFunc.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationListCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationNotifyFunc.page26
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-attribute-signal.page47
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-function-property.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-list-signal.page40
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-property.page30
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-signal.page41
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-tab-property.page31
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.allow_none.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleeowns.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleesowns.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_n.page47
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_nz.page47
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.create_object.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.do_not_use.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.extra_annos.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.foreach.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_hash.page43
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_objects.page44
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_strings.page43
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.hidden_self.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout2.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout3.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.method.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.notrans.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.out.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.page67
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.parse_args.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data2.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data3.page47
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.string_out.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.use_buffer.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.watch_full.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.with_voidp.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooASingle.page31
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooAddressType.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.add.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.new.page58
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.get_contained_type.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.method.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.page66
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.some_method.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.method.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumFullname.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumNoType.page43
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.method.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.returnv.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEvent.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventAny.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventExpose.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsNoType.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsType.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.copy.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface-do_regress_foo.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.do_regress_foo.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.page60
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.static_method.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-read_fn.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-signal.page47
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-string.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-virtual_method.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.a_global_method.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.append_new_stack_layer.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.dup_name.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.external_type.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_default.page43
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_name.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.handle_glyph.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.is_it_time_yet.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new_as_super.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.page66
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.read.page54
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.static_meth.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.various.page54
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.virtual_method.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObjectCookie.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooOtherObject.page63
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.add.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStackLayer.page63
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy-event.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy_event.page31
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_bar.page31
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_baz.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_bar.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_baz.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.page60
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.page66
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooThingWithArray.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUtilityStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.FooXEvent.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeGnomeKeyringPasswordSchema.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.set_name.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.PtrArrayAlias.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.copy.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.equals.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor1.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor2.page58
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor3.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.copy.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.new.page58
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.copy.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.free.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.get_magic.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.new.page58
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackArray.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackFull.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackGError.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackHashtable.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackOwnedGError.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackUserData.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestDEFError.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.page43
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.param.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumNoGEnum.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumUnsigned.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFlags.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.page66
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.page60
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.ref.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.unref.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectCopyFunction.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectFinalizeFunction.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.new.page52
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.page63
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_origin.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_size.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.page63
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritPixmapObjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInterface.page60
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-all.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-allow_none_vfunc.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-bare.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-boxed.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-cleanup.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-double.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-first.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-float.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-gtype.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table-old.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-int.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list-old.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-matrix.page41
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-prop.page40
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-foreign-struct.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-hash-prop.page40
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-int64-prop.page44
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-intarray-ret.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-obj.page40
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-strv.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-uint64-prop.page44
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-string.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test-with-static-scope-arg.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test.page35
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.constructor.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.do_matrix.page52
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_foreign_struct.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_int64.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_obj.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_uint64.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.forced_method.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new_callback.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new_from_file.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.null_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.page75
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.set_bare.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_inout_param.page82
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_out_param.page82
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_param.page82
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val.page82
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val_no_out.page51
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_0.page62
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_1.page66
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateEnum.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceEnum.page51
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.const_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.copy.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.equals.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.copy.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.clone.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.parse.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.clone.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructC.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructD.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE__some_union__union.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructF.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.frob.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.instance_method.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.page66
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.unset_bare.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestTypeGUInt64.page25
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x-testbool.page29
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.get_testbool.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.new.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.page65
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.set_testbool.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.static_method.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.aliased_caller_alloc.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_attribute_func.page58
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_custom_destroy.page47
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_get_source_file.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_init.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_invalid_regress_annotation.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_ptr_array.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_array.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_filename.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_set_source_file.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_space_after_comment_bug631690.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_array_length.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated_out.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_test_parsing_bug630862.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_transfer_floating.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_versioned.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.atest_error_quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_async_ready_callback.page54
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_destroy_notify_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_init.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_method_external_references.page70
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_not_a_constructor_new.page43
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_array.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_param.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_retval.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_param.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_retval.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array_with_g.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_qualifier.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_type.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.func_obj_null_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.global_get_flags_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.has_parameter_named_attrs.page55
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.introspectable_via_alias.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.set_abort_on_error.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_callback.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_out_objects.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint16_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint32_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint64_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint8_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gtype_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_full_out.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_inout.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_none_out.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_async_ready_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_false.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_true.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_full_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_none_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_async.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_destroy_notify.page51
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_destroy_notify_no_user_data.page51
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_thaw_async.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_thaw_notifications.page44
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_user_data.page51
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_one_arg.page58
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_variant.page58
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_date_in_gvalue.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_def_error_quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_double.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_filename_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_float.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_full_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gerror_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return2.page43
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in2.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return2.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in2.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return2.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in2.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return2.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gtype.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_as.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_asv.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_i.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_s.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_v.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_hash_table_callback.page54
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int16.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int32.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int64.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int8.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_out_utf8.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_value_arg.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_long.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multi_callback.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multi_double_args.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multiline_doc_comments.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_nested_parameter.page71
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_null_gerror_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_owned_gerror_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_short.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_simple_callback.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_size.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ssize.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in_gvalue.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_c.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_container.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_outarg.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_timet.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_0.page62
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_1.page66
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_2.page70
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint16.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint32.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint64.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint8.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ulong.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unichar.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unsigned_enum_param.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ushort.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_inout.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_nonconst_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_in.page46
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_nonconst_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_out.page38
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_value_return.page50
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_versioning.page39
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/index.page32
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.ATestError.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AliasedTestBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.None.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationBitfield.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationFields.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationForeachFunc.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationListCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationNotifyFunc.page26
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-attribute-signal.page53
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page45
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-function-property.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-list-signal.page46
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-property.page30
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-signal.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-tab-property.page31
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.allow_none.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleeowns.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleesowns.page67
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_n.page64
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_nz.page64
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.create_object.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.do_not_use.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.extra_annos.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.foreach.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_hash.page52
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_objects.page53
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_strings.page52
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.hidden_self.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.in.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout2.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout3.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.method.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.notrans.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.out.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.page62
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.parse_args.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data2.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data3.page64
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.string_out.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.use_buffer.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.watch_full.page71
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.with_voidp.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooASingle.page31
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooAddressType.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.add.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.get_contained_type.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.method.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.page65
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.some_method.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.method.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumFullname.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumNoType.page43
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.method.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.returnv.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooError.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEvent.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEventAny.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooEventExpose.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsNoType.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsType.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.copy.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface-do_regress_foo.page40
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.do_regress_foo.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.static_method.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page44
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-signal.page53
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-string.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-virtual_method.page44
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.a_global_method.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.append_new_stack_layer.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.dup_name.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.external_type.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_default.page43
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_name.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.handle_glyph.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.is_it_time_yet.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.page62
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.read.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.static_meth.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.various.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.virtual_method.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooObjectCookie.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooOtherObject.page62
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.add.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooStackLayer.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy-event.page41
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy_event.page36
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_bar.page36
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_baz.page44
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_bar.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_baz.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooSubobject.page65
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooThingWithArray.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooUnion.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooUtilityStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.FooXEvent.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.LikeGnomeKeyringPasswordSchema.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.set_name.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.PtrArrayAlias.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.copy.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.equals.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.copy.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedC.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.copy.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.free.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.get_magic.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackArray.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackFull.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackGError.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackHashtable.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackOwnedGError.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackUserData.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestDEFError.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.page43
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.param.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumNoGEnum.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumUnsigned.page35
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestError.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFlags.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFloating.page65
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.ref.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.unref.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectCopyFunction.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectFinalizeFunction.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalSubObject.page62
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_origin.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_size.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.page62
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritPixmapObjectClass.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestInterface.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-all.page41
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-allow_none_vfunc.page40
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-bare.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-boxed.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-cleanup.page41
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-double.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-first.page41
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-float.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-gtype.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table-old.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-int.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list-old.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page46
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page49
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-prop.page46
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-foreign-struct.page45
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-hash-prop.page46
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-int64-prop.page50
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-intarray-ret.page45
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-obj.page46
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-strv.page45
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-uint64-prop.page50
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-string.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test-with-static-scope-arg.page45
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test.page41
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.do_matrix.page61
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_foreign_struct.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_int64.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_obj.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_uint64.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.forced_method.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method_callback.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.null_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.page62
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.set_bare.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_inout_param.page107
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_out_param.page107
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_param.page107
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val.page107
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val_no_out.page60
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method_callback.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_0.page95
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_1.page99
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateEnum.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateStruct.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceEnum.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.const_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.copy.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.equals.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.copy.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleCallback.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.clone.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.parse.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.clone.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructC.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructD.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE__some_union__union.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructF.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.frob.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.instance_method.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.page65
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.unset_bare.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestTypeGUInt64.page25
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x-testbool.page29
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.get_testbool.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.page62
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.set_testbool.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.static_method.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.aliased_caller_alloc.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_attribute_func.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_custom_destroy.page64
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_get_source_file.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_init.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_invalid_regress_annotation.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_ptr_array.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_array.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_filename.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_set_source_file.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_space_after_comment_bug631690.page38
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_array_length.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_test_parsing_bug630862.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_transfer_floating.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.annotation_versioned.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.atest_error_quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_async_ready_callback.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_destroy_notify_callback.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_init.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_method_external_references.page71
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_not_a_constructor_new.page43
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_array.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_param.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_retval.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_param.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_retval.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array_with_g.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_qualifier.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_type.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.func_obj_null_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.global_get_flags_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.has_parameter_named_attrs.page56
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.introspectable_via_alias.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.set_abort_on_error.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_callback.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_out_objects.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_in.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint16_in.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint32_in.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint64_in.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint8_in.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gtype_in.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_full_out.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_in.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_inout.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_none_out.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_in.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_out.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_out.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_async_ready_callback.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_false.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_true.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_full_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_none_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_callback.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_async.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify.page68
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify_no_user_data.page60
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_async.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_notifications.page44
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_user_data.page60
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_closure.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_one_arg.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_variant.page59
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_date_in_gvalue.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_def_error_quark.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_double.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_filename_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_float.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_full_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gerror_callback.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_in.page48
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return2.page43
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in2.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return2.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in2.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return2.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_container_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_everything_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in2.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return2.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gtype.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_as.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_asv.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_i.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_s.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_v.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_hash_table_callback.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_int.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_int16.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_int32.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_int64.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_int8.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_int_out_utf8.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_int_value_arg.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_long.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_callback.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_double_args.page63
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_multiline_doc_comments.page38
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_nested_parameter.page72
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_null_gerror_callback.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_owned_gerror_callback.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_short.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_simple_callback.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_size.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ssize.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in_gvalue.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_c.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_container.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_outarg.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_timet.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_0.page87
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_1.page91
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_2.page111
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_uint.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_uint16.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_uint32.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_uint64.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_uint8.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ulong.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_unichar.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_unsigned_enum_param.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_ushort.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_inout.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_nonconst_return.page42
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_in.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out.page47
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_nonconst_return.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_out.page55
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_value_return.page51
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_versioning.page39
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/index.page32
-rw-r--r--tests/scanner/Regress-1.0-expected.gir3283
-rw-r--r--tests/scanner/Regress-1.0-sections-expected.txt362
-rw-r--r--tests/scanner/SLetter-1.0-expected.gir20
-rw-r--r--tests/scanner/TestInherit-1.0-expected.gir12
-rw-r--r--tests/scanner/Typedefs-1.0-expected.gir84
-rw-r--r--tests/scanner/Utility-1.0-expected.gir23
-rw-r--r--tests/scanner/WarnLib-1.0-expected.gir153
-rw-r--r--tests/scanner/annotation.c358
-rw-r--r--tests/scanner/annotation.h171
-rw-r--r--tests/scanner/annotationparser/Makefile.am68
-rw-r--r--tests/scanner/annotationparser/README52
-rw-r--r--tests/scanner/annotationparser/gi/annotation_allow_none.xml63
-rw-r--r--tests/scanner/annotationparser/gi/annotation_array.xml483
-rw-r--r--tests/scanner/annotationparser/gi/annotation_attributes.xml477
-rw-r--r--tests/scanner/annotationparser/gi/annotation_closure.xml147
-rw-r--r--tests/scanner/annotationparser/gi/annotation_constructor.xml26
-rw-r--r--tests/scanner/annotationparser/gi/annotation_destroy.xml110
-rw-r--r--tests/scanner/annotationparser/gi/annotation_element_type.xml272
-rw-r--r--tests/scanner/annotationparser/gi/annotation_foreign.xml27
-rw-r--r--tests/scanner/annotationparser/gi/annotation_get_value_func.xml154
-rw-r--r--tests/scanner/annotationparser/gi/annotation_in.xml63
-rw-r--r--tests/scanner/annotationparser/gi/annotation_in_out.xml71
-rw-r--r--tests/scanner/annotationparser/gi/annotation_method.xml34
-rw-r--r--tests/scanner/annotationparser/gi/annotation_out.xml192
-rw-r--r--tests/scanner/annotationparser/gi/annotation_ref_func.xml154
-rw-r--r--tests/scanner/annotationparser/gi/annotation_rename_to.xml232
-rw-r--r--tests/scanner/annotationparser/gi/annotation_scope.xml131
-rw-r--r--tests/scanner/annotationparser/gi/annotation_set_value_func.xml118
-rw-r--r--tests/scanner/annotationparser/gi/annotation_skip.xml91
-rw-r--r--tests/scanner/annotationparser/gi/annotation_transfer.xml285
-rw-r--r--tests/scanner/annotationparser/gi/annotation_type.xml263
-rw-r--r--tests/scanner/annotationparser/gi/annotation_unref_func.xml118
-rw-r--r--tests/scanner/annotationparser/gi/annotation_value.xml118
-rw-r--r--tests/scanner/annotationparser/gi/annotation_virtual.xml158
-rw-r--r--tests/scanner/annotationparser/gi/annotations.xml637
-rw-r--r--tests/scanner/annotationparser/gi/identifier.xml122
-rw-r--r--tests/scanner/annotationparser/gi/identifier_section.xml332
-rw-r--r--tests/scanner/annotationparser/gi/identifier_symbol.xml435
-rw-r--r--tests/scanner/annotationparser/gi/parameter.xml375
-rw-r--r--tests/scanner/annotationparser/gi/parameter_varargs.xml298
-rw-r--r--tests/scanner/annotationparser/gi/syntax.xml467
-rw-r--r--tests/scanner/annotationparser/gi/syntax_indentation.xml89
-rw-r--r--tests/scanner/annotationparser/gi/syntax_multiline_annotations.xml81
-rw-r--r--tests/scanner/annotationparser/gi/syntax_nested_tags.xml230
-rw-r--r--tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml359
-rw-r--r--tests/scanner/annotationparser/gi/syntax_whitespace.xml124
-rw-r--r--tests/scanner/annotationparser/gi/tag.xml401
-rw-r--r--tests/scanner/annotationparser/gi/tag_deprecated.xml127
-rw-r--r--tests/scanner/annotationparser/gi/tag_description.xml132
-rw-r--r--tests/scanner/annotationparser/gi/tag_returns.xml595
-rw-r--r--tests/scanner/annotationparser/gi/tag_since.xml187
-rw-r--r--tests/scanner/annotationparser/gi/tag_stability.xml211
-rw-r--r--tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml482
-rw-r--r--tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml39
-rw-r--r--tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml1108
-rw-r--r--tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml925
-rw-r--r--tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml72
-rw-r--r--tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml216
-rw-r--r--tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml281
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml197
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml162
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml616
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml213
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml46
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml113
-rw-r--r--tests/scanner/annotationparser/test_parser.py461
-rw-r--r--tests/scanner/annotationparser/test_patterns.py943
-rw-r--r--tests/scanner/annotationparser/tests.xsd171
-rw-r--r--tests/scanner/barapp.c1
-rw-r--r--tests/scanner/drawable.c22
-rw-r--r--tests/scanner/drawable.h30
-rw-r--r--tests/scanner/foo.c502
-rw-r--r--tests/scanner/foo.h438
-rw-r--r--tests/scanner/gettype.c14
-rw-r--r--tests/scanner/regress.c181
-rw-r--r--tests/scanner/regress.h82
-rw-r--r--tests/scanner/test_sourcescanner.py41
-rw-r--r--tests/scanner/test_transformer.py445
-rw-r--r--tests/scanner/typedefs.c90
-rw-r--r--tests/scanner/typedefs.h73
-rw-r--r--tests/scanner/warnlib.c47
-rw-r--r--tests/scanner/warnlib.h39
1396 files changed, 78867 insertions, 1985 deletions
diff --git a/tests/scanner/Annotation-1.0-expected.gir b/tests/scanner/Annotation-1.0-expected.gir
deleted file mode 100644
index 2ea6c544..00000000
--- a/tests/scanner/Annotation-1.0-expected.gir
+++ /dev/null
@@ -1,853 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations. -->
-<repository version="1.2"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
- <include name="GObject" version="2.0"/>
- <include name="Utility" version="1.0"/>
- <package name="gobject-2.0"/>
- <c:include name="annotation.h"/>
- <namespace name="Annotation"
- version="1.0"
- shared-library="libannotation.so"
- c:identifier-prefixes="Annotation"
- c:symbol-prefixes="annotation">
- <bitfield name="Bitfield" c:type="AnnotationBitfield">
- <member name="foo" value="1" c:identifier="ANN_FLAG_FOO"/>
- <member name="bar" value="2" c:identifier="ANN_FLAG_BAR"/>
- </bitfield>
- <constant name="CALCULATED_DEFINE"
- value="100"
- c:type="ANNOTATION_CALCULATED_DEFINE">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="CALCULATED_LARGE"
- value="10000000000UL"
- c:type="ANNOTATION_CALCULATED_LARGE">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="CALCULATED_LARGE_DIV"
- value="1000000UL"
- c:type="ANNOTATION_CALCULATED_LARGE_DIV">
- <type name="gint" c:type="gint"/>
- </constant>
- <callback name="Callback" c:type="AnnotationCallback">
- <doc xml:whitespace="preserve">This is a callback.</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">array of ints</doc>
- <type name="gint" c:type="const gint*"/>
- </return-value>
- <parameters>
- <parameter name="in" transfer-ownership="none">
- <doc xml:whitespace="preserve">array of ints</doc>
- <type name="gint" c:type="const gint*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ForeachFunc" c:type="AnnotationForeachFunc">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="AnnotationObject*"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ListCallback" c:type="AnnotationListCallback">
- <doc xml:whitespace="preserve">This is a callback taking a list.</doc>
- <return-value transfer-ownership="container">
- <doc xml:whitespace="preserve">list of strings</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="in" transfer-ownership="none">
- <doc xml:whitespace="preserve">list of strings</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </parameter>
- </parameters>
- </callback>
- <callback name="NotifyFunc" c:type="AnnotationNotifyFunc">
- <doc xml:whitespace="preserve">This is a callback with a 'closure' argument that is not named
-'user_data' and hence has to be annotated.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none" closure="0">
- <doc xml:whitespace="preserve">The user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="Object"
- c:symbol-prefix="object"
- c:type="AnnotationObject"
- parent="GObject.Object"
- glib:type-name="AnnotationObject"
- glib:get-type="annotation_object_get_type"
- glib:type-struct="ObjectClass">
- <attribute name="org.example.Test" value="cows"/>
- <doc xml:whitespace="preserve">This is an object used to test annotations.</doc>
- <method name="allow_none" c:identifier="annotation_object_allow_none">
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">%NULL always</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <parameter name="somearg" transfer-ownership="none" allow-none="1">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="calleeowns" c:identifier="annotation_object_calleeowns">
- <doc xml:whitespace="preserve">This is a test for out arguments; GObject defaults to transfer</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="toown"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- </parameters>
- </method>
- <method name="calleesowns" c:identifier="annotation_object_calleesowns">
- <doc xml:whitespace="preserve">This is a test for out arguments, one transferred, other not</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="toown1"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- <parameter name="toown2"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none">
- <doc xml:whitespace="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- </parameters>
- </method>
- <method name="compute_sum" c:identifier="annotation_object_compute_sum">
- <doc xml:whitespace="preserve">Test taking a zero-terminated array</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="nums" transfer-ownership="none">
- <doc xml:whitespace="preserve">Sequence of numbers</doc>
- <array zero-terminated="0" c:type="int*">
- <type name="gint" c:type="int"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="compute_sum_n"
- c:identifier="annotation_object_compute_sum_n">
- <doc xml:whitespace="preserve">Test taking an array with length parameter</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="nums" transfer-ownership="none">
- <doc xml:whitespace="preserve">Sequence of numbers that are zero-terminated</doc>
- <array length="1" zero-terminated="0" c:type="int*">
- <type name="gint" c:type="int"/>
- </array>
- </parameter>
- <parameter name="n_nums" transfer-ownership="none">
- <doc xml:whitespace="preserve">Length of number array</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="compute_sum_nz"
- c:identifier="annotation_object_compute_sum_nz">
- <doc xml:whitespace="preserve">Test taking a zero-terminated array with length parameter</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="nums" transfer-ownership="none">
- <doc xml:whitespace="preserve">Sequence of numbers that are zero-terminated</doc>
- <array length="1" zero-terminated="1" c:type="int*">
- <type name="gint" c:type="int"/>
- </array>
- </parameter>
- <parameter name="n_nums" transfer-ownership="none">
- <doc xml:whitespace="preserve">Length of number array</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_object"
- c:identifier="annotation_object_create_object">
- <doc xml:whitespace="preserve">Test returning a caller-owned object</doc>
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">The object</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- </method>
- <method name="do_not_use"
- c:identifier="annotation_object_do_not_use"
- deprecated="Use annotation_object_create_object() instead."
- deprecated-version="0.12">
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">%NULL always</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- </method>
- <method name="extra_annos" c:identifier="annotation_object_extra_annos">
- <attribute name="org.foobar" value="testvalue"/>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="foreach" c:identifier="annotation_object_foreach">
- <doc xml:whitespace="preserve">Test taking a call-scoped callback</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:whitespace="preserve">Callback to invoke</doc>
- <type name="ForeachFunc" c:type="AnnotationForeachFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <doc xml:whitespace="preserve">Callback user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_hash" c:identifier="annotation_object_get_hash">
- <doc xml:whitespace="preserve">This is a test for returning a hash table mapping strings to
-objects.</doc>
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">hash table</doc>
- <type name="GLib.HashTable" c:type="GHashTable*">
- <type name="utf8"/>
- <type name="GObject.Object"/>
- </type>
- </return-value>
- </method>
- <method name="get_objects" c:identifier="annotation_object_get_objects">
- <doc xml:whitespace="preserve">This is a test for returning a list of objects.
-The list itself should be freed, but not the internal objects,
-intentionally similar example to gtk_container_get_children</doc>
- <return-value transfer-ownership="container">
- <doc xml:whitespace="preserve">list of objects</doc>
- <type name="GLib.SList" c:type="GSList*">
- <type name="Object"/>
- </type>
- </return-value>
- </method>
- <method name="get_strings" c:identifier="annotation_object_get_strings">
- <doc xml:whitespace="preserve">This is a test for returning a list of strings, where
-each string needs to be freed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">list of strings</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </return-value>
- </method>
- <method name="hidden_self" c:identifier="annotation_object_hidden_self">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="in" c:identifier="annotation_object_in">
- <doc xml:whitespace="preserve">This is a test for in arguments</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="inarg" transfer-ownership="none">
- <doc xml:whitespace="preserve">This is an argument test</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </method>
- <method name="inout" c:identifier="annotation_object_inout">
- <doc xml:whitespace="preserve">This is a test for out arguments</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="inoutarg"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">This is an argument test</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </method>
- <method name="inout2" c:identifier="annotation_object_inout2">
- <doc xml:whitespace="preserve">This is a second test for out arguments</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="inoutarg"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">This is an argument test</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </method>
- <method name="inout3" c:identifier="annotation_object_inout3">
- <doc xml:whitespace="preserve">This is a 3th test for out arguments</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="inoutarg"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full"
- allow-none="1">
- <doc xml:whitespace="preserve">This is an argument test</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </method>
- <method name="method" c:identifier="annotation_object_method">
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- </method>
- <method name="notrans" c:identifier="annotation_object_notrans">
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">An object, not referenced</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- </method>
- <method name="out" c:identifier="annotation_object_out">
- <doc xml:whitespace="preserve">This is a test for out arguments</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="outarg"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">This is an argument test</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_args" c:identifier="annotation_object_parse_args">
- <doc xml:whitespace="preserve">Test taking a zero-terminated array with length parameter</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="argc"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">Length of the argument vector</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- <parameter name="argv"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">Argument vector</doc>
- <array length="0" zero-terminated="1" c:type="char***">
- <type name="utf8" c:type="char**"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="set_data" c:identifier="annotation_object_set_data">
- <doc xml:whitespace="preserve">Test taking a guchar * with a length.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <doc xml:whitespace="preserve">The data</doc>
- <array length="1" zero-terminated="0" c:type="guchar*">
- <type name="guint8" c:type="guchar"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:whitespace="preserve">Length of the data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_data2" c:identifier="annotation_object_set_data2">
- <doc xml:whitespace="preserve">Test taking a gchar * with a length.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <doc xml:whitespace="preserve">The data</doc>
- <array length="1" zero-terminated="0" c:type="gchar*">
- <type name="gint8"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:whitespace="preserve">Length of the data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_data3" c:identifier="annotation_object_set_data3">
- <doc xml:whitespace="preserve">Test taking a gchar * with a length, overriding the array element
-type.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <doc xml:whitespace="preserve">The data</doc>
- <array length="1" zero-terminated="0" c:type="gpointer">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:whitespace="preserve">Length of the data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="string_out" c:identifier="annotation_object_string_out">
- <doc xml:whitespace="preserve">Test returning a string as an out parameter</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">some boolean</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="str_out"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">string return value</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- <method name="use_buffer" c:identifier="annotation_object_use_buffer">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bytes" transfer-ownership="none">
- <type name="guint8" c:type="guchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="watch"
- c:identifier="annotation_object_watch"
- shadowed-by="watch_full"
- introspectable="0">
- <doc xml:whitespace="preserve">This is here just for the sake of being overriden by its
-annotation_object_watch_full().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none" closure="1">
- <doc xml:whitespace="preserve">The callback</doc>
- <type name="ForeachFunc" c:type="AnnotationForeachFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <doc xml:whitespace="preserve">The callback data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="watch_full"
- c:identifier="annotation_object_watch_full"
- shadows="watch">
- <doc xml:whitespace="preserve">Test overriding via the "Rename To" annotation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:whitespace="preserve">The callback</doc>
- <type name="ForeachFunc" c:type="AnnotationForeachFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <doc xml:whitespace="preserve">The callback data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy" transfer-ownership="none" scope="async">
- <doc xml:whitespace="preserve">Destroy notification</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="with_voidp" c:identifier="annotation_object_with_voidp">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <doc xml:whitespace="preserve">Opaque pointer handle</doc>
- <type name="gpointer" c:type="void*"/>
- </parameter>
- </parameters>
- </method>
- <property name="function-property"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="Callback"/>
- </property>
- <property name="string-property"
- version="1.0"
- deprecated="Use better-string-property instead"
- deprecated-version="1.2"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:whitespace="preserve">This is a property which is a string</doc>
- <type name="utf8"/>
- </property>
- <property name="tab-property"
- version="1.2"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:whitespace="preserve">This is a property annotation intentionally indented with a mix
-of tabs and strings to test the tab handling capabilities of the scanner.</doc>
- <type name="utf8"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <glib:signal name="attribute-signal" when="last">
- <doc xml:whitespace="preserve">This signal tests a signal with attributes.</doc>
- <return-value transfer-ownership="full">
- <attribute name="some.annotation.foo3" value="val3"/>
- <doc xml:whitespace="preserve">the return value</doc>
- <type name="utf8"/>
- </return-value>
- <parameters>
- <parameter name="arg1" transfer-ownership="none">
- <attribute name="some.annotation.foo1" value="val1"/>
- <doc xml:whitespace="preserve">a value</doc>
- <type name="utf8"/>
- </parameter>
- <parameter name="arg2" transfer-ownership="none">
- <attribute name="some.annotation.foo2" value="val2"/>
- <doc xml:whitespace="preserve">another value</doc>
- <type name="utf8"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="doc-empty-arg-parsing" when="last">
- <doc xml:whitespace="preserve">This signal tests an empty document argument (@arg1)</doc>
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="arg1" transfer-ownership="none">
- <type name="gpointer"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="list-signal" when="last">
- <doc xml:whitespace="preserve">This is a signal which takes a list of strings, but it's not
-known by GObject as it's only marked as G_TYPE_POINTER</doc>
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="container">
- <doc xml:whitespace="preserve">a list of strings</doc>
- <type name="GLib.List">
- <type name="utf8"/>
- </type>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="string-signal"
- when="last"
- version="1.0"
- deprecated="Use other-signal instead"
- deprecated-version="1.2">
- <doc xml:whitespace="preserve">This is a signal which has a broken signal handler,
-it says it's pointer but it's actually a string.</doc>
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:whitespace="preserve">a string</doc>
- <type name="utf8"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ObjectClass"
- c:type="AnnotationObjectClass"
- glib:is-gtype-struct-for="Object">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <record name="Struct" c:type="AnnotationStruct">
- <doc xml:whitespace="preserve">This is a test of an array of object in an field of a struct.</doc>
- <field name="objects" writable="1">
- <array zero-terminated="0" c:type="AnnotationObject" fixed-size="10">
- <type name="Object" c:type="AnnotationObject*"/>
- </array>
- </field>
- </record>
- <function name="attribute_func" c:identifier="annotation_attribute_func">
- <return-value transfer-ownership="none">
- <attribute name="some.other.annotation" value="value2"/>
- <attribute name="yet.another.annotation" value="another_value"/>
- <doc xml:whitespace="preserve">The return value.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:whitespace="preserve">A #AnnotationObject.</doc>
- <type name="Object" c:type="AnnotationObject*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <attribute name="some.annotation" value="value"/>
- <attribute name="another.annotation" value="blahvalue"/>
- <doc xml:whitespace="preserve">Some data.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="custom_destroy" c:identifier="annotation_custom_destroy">
- <doc xml:whitespace="preserve">Test messing up the heuristic of closure/destroy-notification
-detection, and fixing it via annotations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="callback"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="1">
- <doc xml:whitespace="preserve">Destroy notification</doc>
- <type name="Callback" c:type="AnnotationCallback"/>
- </parameter>
- <parameter name="destroy"
- transfer-ownership="none"
- scope="notified"
- closure="2">
- <type name="NotifyFunc" c:type="AnnotationNotifyFunc"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_source_file" c:identifier="annotation_get_source_file">
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">Source file</doc>
- <type name="filename" c:type="char*"/>
- </return-value>
- </function>
- <function name="init" c:identifier="annotation_init">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="argc"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">The number of args.</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- <parameter name="argv"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">The arguments.</doc>
- <array length="0" zero-terminated="0" c:type="char***">
- <type name="utf8" c:type="char**"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="invalid_annotation"
- c:identifier="annotation_invalid_annotation">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="foo" transfer-ownership="none">
- <doc xml:whitespace="preserve">some text (e.g. example) or else</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </function>
- <function name="ptr_array"
- c:identifier="annotation_ptr_array"
- introspectable="0">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="array" transfer-ownership="none">
- <doc xml:whitespace="preserve">the array</doc>
- <array name="GLib.PtrArray" c:type="GPtrArray*">
- <type name="GLib.Value"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="return_array" c:identifier="annotation_return_array">
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">The return value</doc>
- <array length="0" zero-terminated="0" c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:whitespace="preserve">Number of return values</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </function>
- <function name="return_filename" c:identifier="annotation_return_filename">
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">An annotated filename</doc>
- <type name="filename" c:type="gchar*"/>
- </return-value>
- </function>
- <function name="set_source_file" c:identifier="annotation_set_source_file">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fname" transfer-ownership="none">
- <doc xml:whitespace="preserve">Source file</doc>
- <type name="filename" c:type="char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="space_after_comment_bug631690"
- c:identifier="annotation_space_after_comment_bug631690">
- <doc xml:whitespace="preserve">Explicitly test having a space after the ** here.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="string_array_length"
- c:identifier="annotation_string_array_length">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="n_properties" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="properties" transfer-ownership="none">
- <array length="0" zero-terminated="0" c:type="gchar*">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="string_zero_terminated"
- c:identifier="annotation_string_zero_terminated">
- <return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">The return value</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- </function>
- <function name="string_zero_terminated_out"
- c:identifier="annotation_string_zero_terminated_out">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="out"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <array c:type="char***">
- <type name="utf8" c:type="char**"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="test_parsing_bug630862"
- c:identifier="annotation_test_parsing_bug630862">
- <doc xml:whitespace="preserve">See https://bugzilla.gnome.org/show_bug.cgi?id=630862</doc>
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">An object, note the colon:in here</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- </function>
- <function name="transfer_floating"
- c:identifier="annotation_transfer_floating">
- <return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">A floating object</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- </function>
- <function name="versioned"
- c:identifier="annotation_versioned"
- version="0.6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- </namespace>
-</repository>
diff --git a/tests/scanner/Bar-1.0-expected.gir b/tests/scanner/Bar-1.0-expected.gir
index 392a3031..245adfff 100644
--- a/tests/scanner/Bar-1.0-expected.gir
+++ b/tests/scanner/Bar-1.0-expected.gir
@@ -6,7 +6,6 @@ and/or use gtk-doc annotations. -->
xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
<include name="GObject" version="2.0"/>
<package name="gobject-2.0"/>
<namespace name="Bar"
@@ -44,6 +43,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="window" transfer-ownership="none">
+ <type name="MutterWindow" c:type="MutterWindow*"/>
+ </instance-parameter>
<parameter name="v" transfer-ownership="none">
<type name="guint" c:type="guint"/>
</parameter>
diff --git a/tests/scanner/Foo-1.0-expected.gir b/tests/scanner/Foo-1.0-expected.gir
index b0c36340..61d53c96 100644
--- a/tests/scanner/Foo-1.0-expected.gir
+++ b/tests/scanner/Foo-1.0-expected.gir
@@ -26,12 +26,16 @@ and/or use gtk-doc annotations. -->
<enumeration name="ASingle" c:type="FooASingle">
<member name="some_single_enum"
value="0"
- c:identifier="FOO_SOME_SINGLE_ENUM"/>
+ c:identifier="FOO_SOME_SINGLE_ENUM">
+ </member>
</enumeration>
<enumeration name="AddressType" c:type="FooAddressType">
- <member name="invalid" value="0" c:identifier="FOO_ADDRESS_INVALID"/>
- <member name="ipv4" value="1" c:identifier="FOO_ADDRESS_IPV4"/>
- <member name="ipv6" value="2" c:identifier="FOO_ADDRESS_IPV6"/>
+ <member name="invalid" value="0" c:identifier="FOO_ADDRESS_INVALID">
+ </member>
+ <member name="ipv4" value="1" c:identifier="FOO_ADDRESS_IPV4">
+ </member>
+ <member name="ipv6" value="2" c:identifier="FOO_ADDRESS_IPV6">
+ </member>
</enumeration>
<record name="BRect"
c:type="FooBRect"
@@ -62,6 +66,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="b1" transfer-ownership="none">
+ <type name="BRect" c:type="FooBRect*"/>
+ </instance-parameter>
<parameter name="b2" transfer-ownership="none">
<type name="BRect" c:type="FooBRect*"/>
</parameter>
@@ -92,6 +99,11 @@ and/or use gtk-doc annotations. -->
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
+ <parameters>
+ <instance-parameter name="bunion" transfer-ownership="none">
+ <type name="BUnion" c:type="FooBUnion*"/>
+ </instance-parameter>
+ </parameters>
</method>
</union>
<record name="Boxed"
@@ -108,6 +120,11 @@ and/or use gtk-doc annotations. -->
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="Boxed" c:type="FooBoxed*"/>
+ </instance-parameter>
+ </parameters>
</method>
</record>
<class name="Buffer"
@@ -122,6 +139,11 @@ and/or use gtk-doc annotations. -->
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="FooBuffer*"/>
+ </instance-parameter>
+ </parameters>
</method>
</class>
<record name="BufferClass"
@@ -154,6 +176,11 @@ and/or use gtk-doc annotations. -->
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="dbusdata" transfer-ownership="none">
+ <type name="DBusData" c:type="FooDBusData*"/>
+ </instance-parameter>
+ </parameters>
</method>
</record>
<constant name="DEFINE_SHOULD_BE_EXPOSED"
@@ -162,15 +189,22 @@ and/or use gtk-doc annotations. -->
<type name="utf8" c:type="gchar*"/>
</constant>
<enumeration name="EnumFullname" c:type="FooEnumFullname">
- <member name="one" value="1" c:identifier="FOO_ENUM_FULLNAME_ONE"/>
- <member name="two" value="2" c:identifier="FOO_ENUM_FULLNAME_TWO"/>
- <member name="three" value="3" c:identifier="FOO_ENUM_FULLNAME_THREE"/>
+ <member name="one" value="1" c:identifier="FOO_ENUM_FULLNAME_ONE">
+ </member>
+ <member name="two" value="2" c:identifier="FOO_ENUM_FULLNAME_TWO">
+ </member>
+ <member name="three" value="3" c:identifier="FOO_ENUM_FULLNAME_THREE">
+ </member>
</enumeration>
<enumeration name="EnumNoType" c:type="FooEnumNoType">
- <member name="un" value="1" c:identifier="FOO_ENUM_UN"/>
- <member name="deux" value="2" c:identifier="FOO_ENUM_DEUX"/>
- <member name="trois" value="3" c:identifier="FOO_ENUM_TROIS"/>
- <member name="neuf" value="9" c:identifier="FOO_ENUM_NEUF"/>
+ <member name="un" value="1" c:identifier="FOO_ENUM_UN">
+ </member>
+ <member name="deux" value="2" c:identifier="FOO_ENUM_DEUX">
+ </member>
+ <member name="trois" value="3" c:identifier="FOO_ENUM_TROIS">
+ </member>
+ <member name="neuf" value="9" c:identifier="FOO_ENUM_NEUF">
+ </member>
</enumeration>
<enumeration name="EnumType"
glib:type-name="FooEnumType"
@@ -179,15 +213,18 @@ and/or use gtk-doc annotations. -->
<member name="alpha"
value="0"
c:identifier="FOO_ENUM_ALPHA"
- glib:nick="alpha"/>
+ glib:nick="alpha">
+ </member>
<member name="beta"
value="1"
c:identifier="FOO_ENUM_BETA"
- glib:nick="beta"/>
+ glib:nick="beta">
+ </member>
<member name="delta"
value="2"
c:identifier="FOO_ENUM_DELTA"
- glib:nick="delta"/>
+ glib:nick="delta">
+ </member>
<function name="method" c:identifier="foo_enum_type_method">
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
@@ -217,15 +254,18 @@ and/or use gtk-doc annotations. -->
<member name="good"
value="0"
c:identifier="FOO_ERROR_GOOD"
- glib:nick="good"/>
+ glib:nick="good">
+ </member>
<member name="bad"
value="1"
c:identifier="FOO_ERROR_BAD"
- glib:nick="bad"/>
+ glib:nick="bad">
+ </member>
<member name="ugly"
value="2"
c:identifier="FOO_ERROR_UGLY"
- glib:nick="ugly"/>
+ glib:nick="ugly">
+ </member>
<function name="quark" c:identifier="foo_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
@@ -257,9 +297,12 @@ and/or use gtk-doc annotations. -->
</field>
</record>
<bitfield name="FlagsNoType" c:type="FooFlagsNoType">
- <member name="ett" value="1" c:identifier="FOO_FLAGS_ETT"/>
- <member name="tva" value="2" c:identifier="FOO_FLAGS_TVA"/>
- <member name="fyra" value="4" c:identifier="FOO_FLAGS_FYRA"/>
+ <member name="ett" value="1" c:identifier="FOO_FLAGS_ETT">
+ </member>
+ <member name="tva" value="2" c:identifier="FOO_FLAGS_TVA">
+ </member>
+ <member name="fyra" value="4" c:identifier="FOO_FLAGS_FYRA">
+ </member>
</bitfield>
<bitfield name="FlagsType"
glib:type-name="FooFlagsType"
@@ -268,15 +311,18 @@ and/or use gtk-doc annotations. -->
<member name="first"
value="1"
c:identifier="FOO_FLAGS_FIRST"
- glib:nick="first"/>
+ glib:nick="first">
+ </member>
<member name="second"
value="2"
c:identifier="FOO_FLAGS_SECOND"
- glib:nick="second"/>
+ glib:nick="second">
+ </member>
<member name="third"
value="4"
c:identifier="FOO_FLAGS_THIRD"
- glib:nick="third"/>
+ glib:nick="third">
+ </member>
</bitfield>
<record name="ForeignStruct" c:type="FooForeignStruct" foreign="1">
<field name="foo" writable="1">
@@ -291,6 +337,11 @@ and/or use gtk-doc annotations. -->
<return-value transfer-ownership="full">
<type name="ForeignStruct" c:type="FooForeignStruct*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="original" transfer-ownership="none">
+ <type name="ForeignStruct" c:type="FooForeignStruct*"/>
+ </instance-parameter>
+ </parameters>
</method>
</record>
<interface name="Interface"
@@ -315,6 +366,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Interface" c:type="FooInterface*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -325,6 +379,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="iface" transfer-ownership="none">
+ <type name="Interface" c:type="FooInterface*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -383,10 +440,10 @@ and/or use gtk-doc annotations. -->
</parameters>
</function>
<function name="get_default" c:identifier="foo_object_get_default">
- <doc xml:whitespace="preserve">This function is intended to match clutter_stage_get_default which
+ <doc xml:space="preserve">This function is intended to match clutter_stage_get_default which
uses a C sugar return type.</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">The global #FooSubobject</doc>
+ <doc xml:space="preserve">The global #FooSubobject</doc>
<type name="Subobject" c:type="FooObject*"/>
</return-value>
</function>
@@ -396,17 +453,20 @@ uses a C sugar return type.</doc>
</return-value>
</function>
<virtual-method name="read_fn" invoker="read">
- <doc xml:whitespace="preserve">Read some stuff.</doc>
+ <doc xml:space="preserve">Read some stuff.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="offset" transfer-ownership="none">
- <doc xml:whitespace="preserve">offset</doc>
+ <doc xml:space="preserve">offset</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="length" transfer-ownership="none">
- <doc xml:whitespace="preserve">length</doc>
+ <doc xml:space="preserve">length</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
@@ -416,6 +476,9 @@ uses a C sugar return type.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="first_param" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -423,11 +486,14 @@ uses a C sugar return type.</doc>
</virtual-method>
<method name="append_new_stack_layer"
c:identifier="foo_object_append_new_stack_layer">
- <doc xml:whitespace="preserve">This shouldn't be scanned as a constructor.</doc>
+ <doc xml:space="preserve">This shouldn't be scanned as a constructor.</doc>
<return-value transfer-ownership="none">
<type name="OtherObject" c:type="FooOtherObject*"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -437,23 +503,42 @@ uses a C sugar return type.</doc>
<return-value transfer-ownership="full">
<type name="utf8" c:type="char*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="external_type" c:identifier="foo_object_external_type">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">%NULL always</doc>
+ <doc xml:space="preserve">%NULL always</doc>
<type name="Utility.Object" c:type="UtilityObject*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #FooObject</doc>
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="get_name" c:identifier="foo_object_get_name">
<return-value transfer-ownership="none">
<type name="utf8" c:type="const char*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="handle_glyph" c:identifier="foo_object_handle_glyph">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="glyph" transfer-ownership="none">
<type name="Utility.Glyph" c:type="UtilityGlyph"/>
</parameter>
@@ -464,6 +549,9 @@ uses a C sugar return type.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="time" transfer-ownership="none">
<type name="glong" c:type="time_t"/>
</parameter>
@@ -472,28 +560,35 @@ uses a C sugar return type.</doc>
<method name="new_cookie"
c:identifier="foo_object_new_cookie"
introspectable="0">
- <doc xml:whitespace="preserve">Not sure why this test is here...</doc>
+ <doc xml:space="preserve">Not sure why this test is here...</doc>
<return-value>
<type name="ObjectCookie" c:type="FooObjectCookie"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="target" transfer-ownership="none">
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="read" c:identifier="foo_object_read">
- <doc xml:whitespace="preserve">Read some stuff.</doc>
+ <doc xml:space="preserve">Read some stuff.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="offset" transfer-ownership="none">
- <doc xml:whitespace="preserve">offset</doc>
+ <doc xml:space="preserve">offset</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="length" transfer-ownership="none">
- <doc xml:whitespace="preserve">length</doc>
+ <doc xml:space="preserve">length</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
@@ -501,10 +596,16 @@ uses a C sugar return type.</doc>
<method name="skipped_method"
c:identifier="foo_object_skipped_method"
introspectable="0">
- <doc xml:whitespace="preserve">This is only useful from C.</doc>
+ <doc xml:space="preserve">This is only useful from C.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="take_all"
c:identifier="foo_object_take_all"
@@ -513,12 +614,14 @@ uses a C sugar return type.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
<parameter transfer-ownership="none">
- <varargs>
- </varargs>
+ <varargs/>
</parameter>
</parameters>
</method>
@@ -527,6 +630,9 @@ uses a C sugar return type.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="data" transfer-ownership="none">
<type name="gpointer" c:type="void*"/>
</parameter>
@@ -540,6 +646,9 @@ uses a C sugar return type.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="FooObject*"/>
+ </instance-parameter>
<parameter name="first_param" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -556,7 +665,7 @@ uses a C sugar return type.</doc>
writable="1"
construct="1"
transfer-ownership="none">
- <type name="utf8"/>
+ <type name="utf8" c:type="gchar*"/>
</property>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
@@ -566,14 +675,14 @@ uses a C sugar return type.</doc>
</field>
<glib:signal name="signal" when="last">
<return-value transfer-ownership="full">
- <type name="utf8"/>
+ <type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="object" transfer-ownership="none">
<type name="GObject.Object"/>
</parameter>
<parameter name="p0" transfer-ownership="none">
- <type name="gpointer"/>
+ <type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</glib:signal>
@@ -609,11 +718,11 @@ uses a C sugar return type.</doc>
<type name="Object" c:type="FooObject*"/>
</parameter>
<parameter name="offset" transfer-ownership="none">
- <doc xml:whitespace="preserve">offset</doc>
+ <doc xml:space="preserve">offset</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="length" transfer-ownership="none">
- <doc xml:whitespace="preserve">length</doc>
+ <doc xml:space="preserve">length</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
@@ -659,14 +768,21 @@ uses a C sugar return type.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="r1"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">add to this rect</doc>
+ <type name="Rectangle" c:type="FooRectangle*"/>
+ </instance-parameter>
<parameter name="r2" transfer-ownership="none">
- <doc xml:whitespace="preserve">source rectangle</doc>
+ <doc xml:space="preserve">source rectangle</doc>
<type name="Rectangle" c:type="const FooRectangle*"/>
</parameter>
</parameters>
</method>
<function name="new" c:identifier="foo_rectangle_new" introspectable="0">
- <doc xml:whitespace="preserve">This is a C convenience constructor; we have to (skip)
+ <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
it because it's not a boxed type.</doc>
<return-value>
<type name="Rectangle" c:type="FooRectangle*"/>
@@ -691,25 +807,38 @@ it because it's not a boxed type.</doc>
<type name="gint" c:type="gint"/>
</constant>
<enumeration name="Skippable" introspectable="0" c:type="FooSkippable">
- <doc xml:whitespace="preserve">Some type that is only interesting from C and should not be
+ <doc xml:space="preserve">Some type that is only interesting from C and should not be
exposed to language bindings.</doc>
- <member name="one" value="0" c:identifier="FOO_SKIPPABLE_ONE"/>
- <member name="two" value="1" c:identifier="FOO_SKIPPABLE_TWO"/>
+ <member name="one" value="0" c:identifier="FOO_SKIPPABLE_ONE">
+ <doc xml:space="preserve">a skippable enum value</doc>
+ </member>
+ <member name="two" value="1" c:identifier="FOO_SKIPPABLE_TWO">
+ <doc xml:space="preserve">another skippable enum value</doc>
+ </member>
</enumeration>
<enumeration name="StackLayer" c:type="FooStackLayer">
- <member name="desktop" value="0" c:identifier="FOO_LAYER_DESKTOP"/>
- <member name="bottom" value="1" c:identifier="FOO_LAYER_BOTTOM"/>
- <member name="normal" value="2" c:identifier="FOO_LAYER_NORMAL"/>
- <member name="top" value="4" c:identifier="FOO_LAYER_TOP"/>
- <member name="dock" value="4" c:identifier="FOO_LAYER_DOCK"/>
- <member name="fullscreen" value="5" c:identifier="FOO_LAYER_FULLSCREEN"/>
+ <member name="desktop" value="0" c:identifier="FOO_LAYER_DESKTOP">
+ </member>
+ <member name="bottom" value="1" c:identifier="FOO_LAYER_BOTTOM">
+ </member>
+ <member name="normal" value="2" c:identifier="FOO_LAYER_NORMAL">
+ </member>
+ <member name="top" value="4" c:identifier="FOO_LAYER_TOP">
+ </member>
+ <member name="dock" value="4" c:identifier="FOO_LAYER_DOCK">
+ </member>
+ <member name="fullscreen" value="5" c:identifier="FOO_LAYER_FULLSCREEN">
+ </member>
<member name="focused_window"
value="6"
- c:identifier="FOO_LAYER_FOCUSED_WINDOW"/>
+ c:identifier="FOO_LAYER_FOCUSED_WINDOW">
+ </member>
<member name="override_redirect"
value="7"
- c:identifier="FOO_LAYER_OVERRIDE_REDIRECT"/>
- <member name="last" value="8" c:identifier="FOO_LAYER_LAST"/>
+ c:identifier="FOO_LAYER_OVERRIDE_REDIRECT">
+ </member>
+ <member name="last" value="8" c:identifier="FOO_LAYER_LAST">
+ </member>
</enumeration>
<record name="Struct" c:type="FooStruct">
<field name="priv" writable="1">
@@ -732,17 +861,30 @@ exposed to language bindings.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SubInterface" c:type="FooSubInterface*"/>
+ </instance-parameter>
+ </parameters>
</virtual-method>
<virtual-method name="do_bar" invoker="do_bar">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SubInterface" c:type="FooSubInterface*"/>
+ </instance-parameter>
+ </parameters>
</virtual-method>
<virtual-method name="do_baz" invoker="do_baz">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SubInterface" c:type="FooSubInterface*"/>
+ </instance-parameter>
<parameter name="callback"
transfer-ownership="none"
scope="call"
@@ -759,6 +901,9 @@ exposed to language bindings.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SubInterface" c:type="FooSubInterface*"/>
+ </instance-parameter>
<parameter transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -771,12 +916,20 @@ exposed to language bindings.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SubInterface" c:type="FooSubInterface*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="do_baz" c:identifier="foo_sub_interface_do_baz">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SubInterface" c:type="FooSubInterface*"/>
+ </instance-parameter>
<parameter name="callback"
transfer-ownership="none"
scope="call"
@@ -793,6 +946,9 @@ exposed to language bindings.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SubInterface" c:type="FooSubInterface*"/>
+ </instance-parameter>
<parameter transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -803,7 +959,7 @@ exposed to language bindings.</doc>
</method>
<glib:signal name="destroy-event" when="last">
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
</glib:signal>
</interface>
@@ -939,8 +1095,7 @@ exposed to language bindings.</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter transfer-ownership="none">
- <varargs>
- </varargs>
+ <varargs/>
</parameter>
</parameters>
</callback>
@@ -1056,7 +1211,7 @@ exposed to language bindings.</doc>
</function>
<function name="not_a_constructor_new"
c:identifier="foo_not_a_constructor_new">
- <doc xml:whitespace="preserve">This should be scanned as a top-level function, and shouldn't cause
+ <doc xml:space="preserve">This should be scanned as a top-level function, and shouldn't cause
a "Can't find matching type for constructor" warning.</doc>
<return-value transfer-ownership="none">
<type name="Object" c:type="FooObject*"/>
@@ -1066,7 +1221,7 @@ a "Can't find matching type for constructor" warning.</doc>
c:identifier="foo_rectangle_new"
moved-to="Rectangle.new"
introspectable="0">
- <doc xml:whitespace="preserve">This is a C convenience constructor; we have to (skip)
+ <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
it because it's not a boxed type.</doc>
<return-value>
<type name="Rectangle" c:type="FooRectangle*"/>
@@ -1087,14 +1242,14 @@ it because it's not a boxed type.</doc>
</parameters>
</function>
<function name="skip_me" c:identifier="foo_skip_me" introspectable="0">
- <doc xml:whitespace="preserve">Does something that's only interesting from C and should not be
+ <doc xml:space="preserve">Does something that's only interesting from C and should not be
exposed to language bindings.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="fs" transfer-ownership="none">
- <doc xml:whitespace="preserve">a #FooSkippable</doc>
+ <doc xml:space="preserve">a #FooSkippable</doc>
<type name="Skippable" c:type="FooSkippable"/>
</parameter>
</parameters>
diff --git a/tests/scanner/GetType-1.0-expected.gir b/tests/scanner/GetType-1.0-expected.gir
index 3b1dd193..ae17525d 100644
--- a/tests/scanner/GetType-1.0-expected.gir
+++ b/tests/scanner/GetType-1.0-expected.gir
@@ -6,7 +6,6 @@ and/or use gtk-doc annotations. -->
xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
<include name="GObject" version="2.0"/>
<package name="gobject-2.0"/>
<c:include name="gettype.h"/>
@@ -29,30 +28,36 @@ and/or use gtk-doc annotations. -->
</constructor>
<function name="nonmeta2_get_type"
c:identifier="gettype_object_nonmeta2_get_type">
- <doc xml:whitespace="preserve">This shouldn't be scanned as a *_get_type function because it doesn't return
+ <doc xml:space="preserve">This shouldn't be scanned as a *_get_type function because it doesn't return
a GType. It will generate a warning.</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">true</doc>
+ <doc xml:space="preserve">true</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
</function>
<function name="nonmeta_get_gtype"
c:identifier="gettype_object_nonmeta_get_gtype">
- <doc xml:whitespace="preserve">This shouldn't be scanned as a *_get_type function because it doesn't return
+ <doc xml:space="preserve">This shouldn't be scanned as a *_get_type function because it doesn't return
a GType. It will generate a warning.</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">true</doc>
+ <doc xml:space="preserve">true</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
</function>
<method name="nonmeta1_get_type"
c:identifier="gettype_object_nonmeta1_get_type">
- <doc xml:whitespace="preserve">This shouldn't be scanned as a *_get_type function because it takes
+ <doc xml:space="preserve">This shouldn't be scanned as a *_get_type function because it takes
arguments.</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">0</doc>
+ <doc xml:space="preserve">0</doc>
<type name="GType" c:type="GType"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">self</doc>
+ <type name="Object" c:type="GetTypeObject*"/>
+ </instance-parameter>
+ </parameters>
</method>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
diff --git a/tests/scanner/GtkFrob-1.0-expected.gir b/tests/scanner/GtkFrob-1.0-expected.gir
index c8758472..a4e39ef1 100644
--- a/tests/scanner/GtkFrob-1.0-expected.gir
+++ b/tests/scanner/GtkFrob-1.0-expected.gir
@@ -6,7 +6,6 @@ and/or use gtk-doc annotations. -->
xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
<include name="GObject" version="2.0"/>
<package name="gobject-2.0"/>
<namespace name="GtkFrob"
diff --git a/tests/scanner/Headeronly-1.0-expected.gir b/tests/scanner/Headeronly-1.0-expected.gir
new file mode 100644
index 00000000..179d9816
--- /dev/null
+++ b/tests/scanner/Headeronly-1.0-expected.gir
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations. -->
+<repository version="1.2"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+ <namespace name="Headeronly"
+ version="1.0"
+ shared-library=""
+ c:identifier-prefixes="Headeronly"
+ c:symbol-prefixes="headeronly">
+ <enumeration name="ExampleEnum" c:type="HeaderonlyExampleEnum">
+ <member name="foo" value="0" c:identifier="HEADERONLY_FOO">
+ </member>
+ <member name="bar" value="1" c:identifier="HEADERONLY_BAR">
+ </member>
+ </enumeration>
+ </namespace>
+</repository>
diff --git a/tests/scanner/Makefile.am b/tests/scanner/Makefile.am
index 96923550..f697b4b4 100644
--- a/tests/scanner/Makefile.am
+++ b/tests/scanner/Makefile.am
@@ -3,18 +3,22 @@ NULL ?=
include $(top_srcdir)/common.mk
include $(top_srcdir)/Makefile.introspection
+SUBDIRS = . annotationparser
+
INTROSPECTION_SCANNER_ARGS += --warn-all
-check_LTLIBRARIES = \
+CLEANFILES =
+
+EXTRA_LTLIBRARIES = \
libsletter.la \
- libannotation.la \
- libtestinherit.la \
- libfoo.la \
libutility.la \
libgtkfrob.la \
libgettype.la \
libregress.la \
+ libwarnlib.la \
+ libtypedefs.la \
$(NULL)
+CLEANFILES += $(EXTRA_LTLIBRARIES)
AM_CPPFLAGS = -I$(top_srcdir)/girepository
AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS)
@@ -28,20 +32,38 @@ libsletter_la_LIBADD = $(GIO_LIBS)
libsletter_la_CFLAGS = $(AM_CFLAGS)
libsletter_la_LDFLAGS = $(AM_LDFLAGS)
-libannotation_la_SOURCES = $(srcdir)/annotation.c $(srcdir)/annotation.h
-libtestinherit_la_SOURCES = $(srcdir)/drawable.c $(srcdir)/drawable.h
-libfoo_la_SOURCES = $(srcdir)/foo.c $(srcdir)/foo.h
-libfoo_la_LIBADD = $(top_builddir)/libgirepository-1.0.la
libutility_la_SOURCES = $(srcdir)/utility.c $(srcdir)/utility.h
libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h
-libregress_la_SOURCES = $(srcdir)/regress.c $(srcdir)/regress.h
-libregress_la_LIBADD = $(GIO_LIBS) $(CAIRO_LIBS)
+libregress_la_SOURCES = \
+ $(srcdir)/regress.c $(srcdir)/regress.h \
+ $(srcdir)/annotation.c $(srcdir)/annotation.h \
+ $(srcdir)/foo.c $(srcdir)/foo.h \
+ $(srcdir)/drawable.c $(srcdir)/drawable.h \
+ $(NULL)
+REGRESS_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f"
+libregress_la_CPPFLAGS = -DREGRESS_PRINT_PREVIEW_COMMAND=\"$(REGRESS_PRINT_PREVIEW_COMMAND)\" \
+ -DREGRESS_SOME_CHAR=\'c\'
+libregress_la_LIBADD = $(GIO_LIBS)
+if HAVE_CAIRO
+libregress_la_LIBADD += $(CAIRO_LIBS)
+endif
+libwarnlib_la_CFLAGS = $(AM_CFLAGS)
+libwarnlib_la_SOURCES = $(srcdir)/warnlib.c $(srcdir)/warnlib.h
+libwarnlib_la_LIBADD = $(GIO_LIBS)
+libwarnlib_la_LDFLAGS = -export-symbols-regex '^warnlib_' -no-undefined
libgettype_la_SOURCES = $(srcdir)/gettype.c $(srcdir)/gettype.h
+libtypedefs_la_SOURCES = $(srcdir)/typedefs.c $(srcdir)/typedefs.h
testsdir = $(datadir)/gobject-introspection-1.0/tests
-tests_DATA = $(libregress_la_SOURCES)
+tests_DATA = $(libregress_la_SOURCES) $(libwarnlib_la_SOURCES) $(libutility_la_SOURCES)
-libregress_la_CFLAGS = $(AM_CFLAGS) $(CAIRO_CFLAGS)
+if !HAVE_CAIRO
+libregress_la_CPPFLAGS += -D_GI_DISABLE_CAIRO
+endif
+libregress_la_CFLAGS = $(AM_CFLAGS)
+if HAVE_CAIRO
+libregress_la_CFLAGS += $(CAIRO_CFLAGS)
+endif
libregress_la_LDFLAGS = $(AM_LDFLAGS)
@@ -52,10 +74,10 @@ endif
# .gir --[scanner]-> .typelib
GIRS =
TYPELIBS = $(GIRS:.gir=.typelib)
-CHECKGIRS = $(GIRS:.gir=.gir.check)
+CHECKGIRS = $(GIRS)
EXPECTEDGIRS = $(GIRS:.gir=-expected.gir)
INTROSPECTION_GIRS = $(GIRS)
-CLEANFILES = $(TYPELIBS) $(GIRS)
+CLEANFILES += $(TYPELIBS) $(GIRS)
EXTRA_DIST = $(EXPECTEDGIRS)
SLetter-1.0.gir: $(top_builddir)/Gio-2.0.gir libsletter.la
@@ -65,36 +87,23 @@ SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES)
SLetter_1_0_gir_SCANNERFLAGS = --identifier-prefix=S --c-include="sletter.h" --warn-error
GIRS += SLetter-1.0.gir
-Regress-1.0.gir: $(top_builddir)/Gio-2.0.gir libregress.la
+Regress-1.0.gir: $(top_builddir)/Gio-2.0.gir Utility-1.0.gir libregress.la
Regress_1_0_gir_LIBS = libregress.la
-Regress_1_0_gir_INCLUDES = cairo-1.0 Gio-2.0
+Regress_1_0_gir_CFLAGS = $(libregress_la_CPPFLAGS) $(libregress_la_CFLAGS) -include "glib.h"
+Regress_1_0_gir_INCLUDES = Gio-2.0 Utility-1.0
+if HAVE_CAIRO
+Regress_1_0_gir_INCLUDES += cairo-1.0
+endif
Regress_1_0_gir_FILES = $(libregress_la_SOURCES)
Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" --warn-error
GIRS += Regress-1.0.gir
-Annotation-1.0.gir: Utility-1.0.gir libannotation.la
-Annotation_1_0_gir_PACKAGES = gobject-2.0
-Annotation_1_0_gir_LIBS = libannotation.la
-Annotation_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0
-Annotation_1_0_gir_FILES = $(libannotation_la_SOURCES)
-Annotation_1_0_gir_SCANNERFLAGS = --c-include="annotation.h" --warn-error
-GIRS += Annotation-1.0.gir
-
-TestInherit-1.0.gir: Utility-1.0.gir libtestinherit.la
-TestInherit_1_0_gir_PACKAGES = gobject-2.0
-TestInherit_1_0_gir_LIBS = libtestinherit.la
-TestInherit_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0
-TestInherit_1_0_gir_FILES = $(libtestinherit_la_SOURCES)
-TestInherit_1_0_gir_SCANNERFLAGS = --c-include="drawable.h" --warn-error
-GIRS += TestInherit-1.0.gir
-
-Foo-1.0.gir: Utility-1.0.gir libfoo.la
-Foo_1_0_gir_PACKAGES = gobject-2.0
-Foo_1_0_gir_LIBS = libfoo.la
-Foo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 Utility-1.0
-Foo_1_0_gir_FILES = $(srcdir)/foo.h $(srcdir)/foo.c
-Foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h" --warn-error
-GIRS += Foo-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_INCLUDES = Gio-2.0
+WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES)
+WarnLib_1_0_gir_SCANNERFLAGS = --c-include="warnlib.h" --symbol-prefix=warnlib_
+GIRS += WarnLib-1.0.gir
Utility-1.0.gir: libutility.la
Utility_1_0_gir_PACKAGES = gobject-2.0
@@ -123,8 +132,17 @@ GetType_1_0_gir_FILES = $(libgettype_la_SOURCES)
GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype
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_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
+GIRS += Typedefs-1.0.gir
+
if !OS_WIN32
-check_PROGRAMS = barapp
+EXTRA_PROGRAMS = barapp
+CLEANFILES += $(EXTRA_PROGRAMS)
barapp_SOURCES = $(srcdir)/barapp.c $(srcdir)/barapp.h
barapp_LDADD = $(top_builddir)/libgirepository-1.0.la
@@ -139,12 +157,54 @@ Bar_1_0_gir_SCANNERFLAGS = --accept-unprefixed
GIRS += Bar-1.0.gir
endif
-EXTRA_DIST += headeronly.h
+EXTRA_DIST += \
+ headeronly.h \
+ Headeronly-1.0-expected.gir
+CLEANFILES += Headeronly-1.0.gir
Headeronly-1.0.gir: headeronly.h
$(AM_V_GEN) $(INTROSPECTION_SCANNER) $(INTROSPECTION_SCANNER_ARGS) --warn-all --warn-error --reparse-validate --namespace=Headeronly --nsversion=1.0 --header-only --output=$@ $<
-%.gir.check: %.gir
- @diff -u -U 10 $(srcdir)/$*-expected.gir $*.gir && echo " TEST $*.gir"
+if BUILD_DOCTOOL
+DOCGIRS = Regress-1.0.gir
+CHECKDOCS = $(DOCGIRS:.gir=-C) $(DOCGIRS:.gir=-Python) $(DOCGIRS:.gir=-Gjs) $(DOCGIRS:.gir=-sections.txt)
+MALLARD_DIRS = $(DOCGIRS:.gir=-C) $(DOCGIRS:.gir=-Python) $(DOCGIRS:.gir=-Gjs)
+MALLARD_CLEAN = $(DOCGIRS:.gir=-C)/* $(DOCGIRS:.gir=-Python)/* $(DOCGIRS:.gir=-Gjs)/* $(DOCGIRS:.gir=-sections.txt)
+EXPECTED_MALLARD_DIRS = $(MALLARD_DIRS:=-expected)
+CLEANFILES += $(MALLARD_CLEAN)
-check-local: Headeronly-1.0.gir $(CHECKGIRS) $(TYPELIBS)
+%-C: %.gir
+ $(AM_V_GEN)rm -rf $(builddir)/$*-C
+ $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language C $*.gir -o $(builddir)/$*-C/
+
+%-Python: %.gir
+ $(AM_V_GEN)rm -rf $(builddir)/$*-Python
+ $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language Python $*.gir -o $(builddir)/$*-Python/
+
+%-Gjs: %.gir
+ $(AM_V_GEN)rm -rf $(builddir)/$*-Gjs
+ $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language Gjs $*.gir -o $(builddir)/$*-Gjs/
+
+%-sections.txt: %.gir
+ $(AM_V_GEN)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --write-sections-file $*.gir -o $@
+
+else
+CHECKDOCS =
+endif
+
+PYTESTS = \
+ test_sourcescanner.py \
+ test_transformer.py
+
+TESTS = Headeronly-1.0.gir $(CHECKGIRS) $(CHECKDOCS) $(TYPELIBS) $(PYTESTS)
+TESTS_ENVIRONMENT = srcdir=$(srcdir) top_srcdir=$(top_srcdir) builddir=$(builddir) top_builddir=$(top_builddir) \
+ PYTHON=$(PYTHON) UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir)
+LOG_COMPILER = $(top_srcdir)/tests/gi-tester
+
+EXTRA_DIST += \
+ $(PYTESTS) \
+ Regress-1.0-C-expected \
+ Regress-1.0-Gjs-expected \
+ Regress-1.0-Python-expected \
+ Regress-1.0-sections-expected.txt \
+ $(NULL)
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.ATestError.page b/tests/scanner/Regress-1.0-C-expected/Regress.ATestError.page
new file mode 100644
index 00000000..e131f6f0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.ATestError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.ATestError"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.ATestError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AliasedTestBoxed.page b/tests/scanner/Regress-1.0-C-expected/Regress.AliasedTestBoxed.page
new file mode 100644
index 00000000..9490e4a3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AliasedTestBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AliasedTestBoxed"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AliasedTestBoxed</title>
+
+
+
+ <p>Typedef TestBoxed to test caller-allocates correctness</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.None.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.None.page
new file mode 100644
index 00000000..6dc17b32
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.None.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnAnonymousUnion.None"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnAnonymousUnion.None</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.page
new file mode 100644
index 00000000..f9323c69
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnAnonymousUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnAnonymousUnion"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnAnonymousUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationBitfield.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationBitfield.page
new file mode 100644
index 00000000..4e19ef92
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationBitfield.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationBitfield"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationBitfield</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationCallback.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationCallback.page
new file mode 100644
index 00000000..9a652d80
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationCallback</title>
+
+
+
+ <p>This is a callback.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationFields.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationFields.page
new file mode 100644
index 00000000..74c6eab8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationFields.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationFields"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationFields</title>
+
+
+
+ <p>This is a struct for testing field documentation and annotations</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationForeachFunc.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationForeachFunc.page
new file mode 100644
index 00000000..db77a117
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationForeachFunc.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationForeachFunc"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationForeachFunc</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationListCallback.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationListCallback.page
new file mode 100644
index 00000000..79844c66
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationListCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationListCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationListCallback</title>
+
+
+
+ <p>This is a callback taking a list.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationNotifyFunc.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationNotifyFunc.page
new file mode 100644
index 00000000..17c80292
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationNotifyFunc.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationNotifyFunc"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationNotifyFunc</title>
+
+
+
+ <p>This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-attribute-signal.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-attribute-signal.page
new file mode 100644
index 00000000..64e30a6c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-attribute-signal.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-attribute-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">attribute-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::attribute-signal</title>
+
+<synopsis><code mime="text/x-csrc">
+gchar* attribute-signal (gchar* arg1,
+ gchar* arg2);
+</code></synopsis>
+
+
+ <p>This signal tests a signal with attributes.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>arg1</code></title>
+<p>a value</p>
+</item>
+<item>
+<title><code>arg2</code></title>
+<p>another value</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the return value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page
new file mode 100644
index 00000000..48acac58
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-doc-empty-arg-parsing"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">doc-empty-arg-parsing</title>
+
+ </info>
+ <title>Regress.AnnotationObject::doc-empty-arg-parsing</title>
+
+<synopsis><code mime="text/x-csrc">
+void doc-empty-arg-parsing (gpointer arg1);
+</code></synopsis>
+
+
+ <p>This signal tests an empty document argument (<code>arg1</code>)</p>
+
+
+
+
+<terms>
+<item>
+<title><code>arg1</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-function-property.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-function-property.page
new file mode 100644
index 00000000..bd640b5c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-function-property.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-function-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">function-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:function-property</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-list-signal.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-list-signal.page
new file mode 100644
index 00000000..29ad5842
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-list-signal.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-list-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">list-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::list-signal</title>
+
+<synopsis><code mime="text/x-csrc">
+void list-signal (gpointer list);
+</code></synopsis>
+
+
+ <p>This is a signal which takes a list of strings, but it's not
+known by GObject as it's only marked as G_TYPE_POINTER</p>
+
+
+
+
+<terms>
+<item>
+<title><code>list</code></title>
+<p>a list of strings</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-property.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-property.page
new file mode 100644
index 00000000..70b80ae2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-property.page
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-string-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">string-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:string-property</title>
+
+
+
+ <p>This is a property which is a string</p>
+
+
+ <p>Since 1.0</p>
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-signal.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-signal.page
new file mode 100644
index 00000000..e25d2bb1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-string-signal.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-string-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">string-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::string-signal</title>
+
+<synopsis><code mime="text/x-csrc">
+void string-signal (gpointer string);
+</code></synopsis>
+
+
+ <p>This is a signal which has a broken signal handler,
+it says it's pointer but it's actually a string.</p>
+
+
+ <p>Since 1.0</p>
+
+
+<terms>
+<item>
+<title><code>string</code></title>
+<p>a string</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-tab-property.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-tab-property.page
new file mode 100644
index 00000000..446729b7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject-tab-property.page
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-tab-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">tab-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:tab-property</title>
+
+
+
+ <p>This is a property annotation intentionally indented with a mix
+of tabs and strings to test the tab handling capabilities of the scanner.</p>
+
+
+ <p>Since 1.2</p>
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.allow_none.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.allow_none.page
new file mode 100644
index 00000000..1d553fd7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.allow_none.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.allow_none"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_allow_none</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const gchar*</api:type>
+ <api:name>somearg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_allow_none</title>
+
+<synopsis><code mime="text/x-csrc">
+GObject* regress_annotation_object_allow_none (RegressAnnotationObject* object,
+ const gchar* somearg);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>somearg</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>NULL</code> always</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleeowns.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleeowns.page
new file mode 100644
index 00000000..fc1758be
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleeowns.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.calleeowns"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_calleeowns</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject**</api:type>
+ <api:name>toown</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_calleeowns</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_calleeowns (RegressAnnotationObject* object,
+ GObject** toown);
+</code></synopsis>
+
+
+ <p>This is a test for out arguments; GObject defaults to transfer</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>toown</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleesowns.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleesowns.page
new file mode 100644
index 00000000..f168030a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.calleesowns.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.calleesowns"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_calleesowns</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject**</api:type>
+ <api:name>toown1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject**</api:type>
+ <api:name>toown2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_calleesowns</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_calleesowns (RegressAnnotationObject* object,
+ GObject** toown1,
+ GObject** toown2);
+</code></synopsis>
+
+
+ <p>This is a test for out arguments, one transferred, other not</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>toown1</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>toown2</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum.page
new file mode 100644
index 00000000..eaf00407
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_compute_sum</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_compute_sum (RegressAnnotationObject* object,
+ int* nums);
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of numbers</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_n.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_n.page
new file mode 100644
index 00000000..91ebe4b6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_n.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum_n"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum_n</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_compute_sum_n</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_compute_sum_n (RegressAnnotationObject* object,
+ int* nums,
+ int n_nums);
+</code></synopsis>
+
+
+ <p>Test taking an array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of
+ numbers that are zero-terminated</p>
+</item>
+<item>
+<title><code>n_nums</code></title>
+<p>Length of number array</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_nz.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_nz.page
new file mode 100644
index 00000000..7f5b0cf2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.compute_sum_nz.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum_nz"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum_nz</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_compute_sum_nz</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_compute_sum_nz (RegressAnnotationObject* object,
+ int* nums,
+ int n_nums);
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of numbers that
+are zero-terminated</p>
+</item>
+<item>
+<title><code>n_nums</code></title>
+<p>Length of number array</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.create_object.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.create_object.page
new file mode 100644
index 00000000..6ad744b9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.create_object.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.create_object"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_create_object</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_create_object</title>
+
+<synopsis><code mime="text/x-csrc">
+GObject* regress_annotation_object_create_object (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+ <p>Test returning a caller-owned object</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>The object</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.do_not_use.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.do_not_use.page
new file mode 100644
index 00000000..4d651ca7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.do_not_use.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.do_not_use"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_do_not_use</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_do_not_use</title>
+
+<synopsis><code mime="text/x-csrc">
+GObject* regress_annotation_object_do_not_use (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>NULL</code> always</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.extra_annos.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.extra_annos.page
new file mode 100644
index 00000000..809ebd2b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.extra_annos.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.extra_annos"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_extra_annos</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_extra_annos</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_extra_annos (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.foreach.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.foreach.page
new file mode 100644
index 00000000..f74ca97b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.foreach.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.foreach"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_foreach</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressAnnotationForeachFunc</api:type>
+ <api:name>func</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_foreach</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_foreach (RegressAnnotationObject* object,
+ RegressAnnotationForeachFunc func,
+ gpointer user_data);
+</code></synopsis>
+
+
+ <p>Test taking a call-scoped callback</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>func</code></title>
+<p>Callback to invoke</p>
+</item>
+<item>
+<title><code>user_data</code></title>
+<p>Callback user data</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_hash.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_hash.page
new file mode 100644
index 00000000..6cc123b3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_hash.page
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_hash"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_hash</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_get_hash</title>
+
+<synopsis><code mime="text/x-csrc">
+GHashTable* regress_annotation_object_get_hash (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+ <p>This is a test for returning a hash table mapping strings to
+objects.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>hash table</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_objects.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_objects.page
new file mode 100644
index 00000000..3021ce53
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_objects.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_objects"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GSList*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_objects</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_get_objects</title>
+
+<synopsis><code mime="text/x-csrc">
+GSList* regress_annotation_object_get_objects (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+ <p>This is a test for returning a list of objects.
+The list itself should be freed, but not the internal objects,
+intentionally similar example to gtk_container_get_children</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>list of objects</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_strings.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_strings.page
new file mode 100644
index 00000000..62087b04
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.get_strings.page
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_strings"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GList*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_strings</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_get_strings</title>
+
+<synopsis><code mime="text/x-csrc">
+GList* regress_annotation_object_get_strings (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+ <p>This is a test for returning a list of strings, where
+each string needs to be freed.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>list of strings</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.hidden_self.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.hidden_self.page
new file mode 100644
index 00000000..f1696c03
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.hidden_self.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.hidden_self"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_hidden_self</api:name>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_hidden_self</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_hidden_self (gpointer object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>A <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.in.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.in.page
new file mode 100644
index 00000000..ef1f430a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.in"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_in</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>inarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_in</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_in (RegressAnnotationObject* object,
+ int* inarg);
+</code></synopsis>
+
+
+ <p>This is a test for in arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout.page
new file mode 100644
index 00000000..0e958294
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_inout</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_inout (RegressAnnotationObject* object,
+ int* inoutarg);
+</code></synopsis>
+
+
+ <p>This is a test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout2.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout2.page
new file mode 100644
index 00000000..cae38e56
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout2.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout2"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout2</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_inout2</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_inout2 (RegressAnnotationObject* object,
+ int* inoutarg);
+</code></synopsis>
+
+
+ <p>This is a second test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout3.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout3.page
new file mode 100644
index 00000000..8ca35f33
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.inout3.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout3"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout3</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_inout3</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_inout3 (RegressAnnotationObject* object,
+ int* inoutarg);
+</code></synopsis>
+
+
+ <p>This is a 3th test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.method.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.method.page
new file mode 100644
index 00000000..8f0e1873
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_method</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_method</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_method (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.notrans.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.notrans.page
new file mode 100644
index 00000000..de87deb0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.notrans.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.notrans"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_notrans</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_notrans</title>
+
+<synopsis><code mime="text/x-csrc">
+GObject* regress_annotation_object_notrans (RegressAnnotationObject* object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>An object, not referenced</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.out.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.out.page
new file mode 100644
index 00000000..d244433f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.out.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_out</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>outarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_out</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_object_out (RegressAnnotationObject* object,
+ int* outarg);
+</code></synopsis>
+
+
+ <p>This is a test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>outarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.page
new file mode 100644
index 00000000..80d4339e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationObject</title>
+
+
+
+ <p>This is an object used to test annotations.</p>
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.AnnotationObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.parse_args.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.parse_args.page
new file mode 100644
index 00000000..2fa9f09f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.parse_args.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.parse_args"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_parse_args</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>argc</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>char***</api:type>
+ <api:name>argv</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_parse_args</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_parse_args (RegressAnnotationObject* object,
+ int* argc,
+ char*** argv);
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>argc</code></title>
+<p>Length of the argument vector</p>
+</item>
+<item>
+<title><code>argv</code></title>
+<p>Argument vector</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data.page
new file mode 100644
index 00000000..a52c0ff0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guchar*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_set_data</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_set_data (RegressAnnotationObject* object,
+ guchar* data,
+ gsize length);
+</code></synopsis>
+
+
+ <p>Test taking a guchar * with a length.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>Length of the data</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data2.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data2.page
new file mode 100644
index 00000000..dd724207
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data2.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data2"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data2</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint8*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_set_data2</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_set_data2 (RegressAnnotationObject* object,
+ gint8* data,
+ gsize length);
+</code></synopsis>
+
+
+ <p>Test taking a gchar * with a length.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>Length of the data</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data3.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data3.page
new file mode 100644
index 00000000..86666ef6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.set_data3.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data3"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data3</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint8*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_set_data3</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_set_data3 (RegressAnnotationObject* object,
+ guint8* data,
+ gsize length);
+</code></synopsis>
+
+
+ <p>Test taking a gchar * with a length, overriding the array element
+type.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>Length of the data</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.string_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.string_out.page
new file mode 100644
index 00000000..a70d4771
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.string_out.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.string_out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_string_out</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>str_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_string_out</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_annotation_object_string_out (RegressAnnotationObject* object,
+ char** str_out);
+</code></synopsis>
+
+
+ <p>Test returning a string as an out parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>str_out</code></title>
+<p>string return value</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>some boolean</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.use_buffer.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.use_buffer.page
new file mode 100644
index 00000000..3228007b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.use_buffer.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.use_buffer"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_use_buffer</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guchar*</api:type>
+ <api:name>bytes</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_use_buffer</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_use_buffer (RegressAnnotationObject* object,
+ guchar* bytes);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>bytes</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch.page
new file mode 100644
index 00000000..76402aab
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.watch"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_watch</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressAnnotationForeachFunc</api:type>
+ <api:name>func</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_watch</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_watch (RegressAnnotationObject* object,
+ RegressAnnotationForeachFunc func,
+ gpointer user_data);
+</code></synopsis>
+
+
+ <p>This is here just for the sake of being overriden by its
+<link xref="Regress.watch_full"/>.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>A <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>func</code></title>
+<p>The callback</p>
+</item>
+<item>
+<title><code>user_data</code></title>
+<p>The callback data</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch_full.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch_full.page
new file mode 100644
index 00000000..1fe2080c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.watch_full.page
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.watch_full"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_watch_full</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressAnnotationForeachFunc</api:type>
+ <api:name>func</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GDestroyNotify</api:type>
+ <api:name>destroy</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_watch_full</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_watch_full (RegressAnnotationObject* object,
+ RegressAnnotationForeachFunc func,
+ gpointer user_data,
+ GDestroyNotify destroy);
+</code></synopsis>
+
+
+ <p>Test overriding via the "Rename To" annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>A <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>func</code></title>
+<p>The callback</p>
+</item>
+<item>
+<title><code>user_data</code></title>
+<p>The callback data</p>
+</item>
+<item>
+<title><code>destroy</code></title>
+<p>Destroy notification</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.with_voidp.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.with_voidp.page
new file mode 100644
index 00000000..ef9436eb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObject.with_voidp.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.with_voidp"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_with_voidp</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>void*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_object_with_voidp</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_object_with_voidp (RegressAnnotationObject* object,
+ void* data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+<p>Opaque pointer handle</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObjectClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObjectClass.page
new file mode 100644
index 00000000..28b8a71b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationObjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObjectClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationObjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationStruct.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationStruct.page
new file mode 100644
index 00000000..341362a9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnnotationStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationStruct"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationStruct</title>
+
+
+
+ <p>This is a test of an array of object in an field of a struct.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooASingle.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooASingle.page
new file mode 100644
index 00000000..39ebf9cc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooASingle.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooASingle"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooASingle</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooAddressType.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooAddressType.page
new file mode 100644
index 00000000..717b5011
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooAddressType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooAddressType"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooAddressType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.add.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.add.page
new file mode 100644
index 00000000..38eae39b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.add.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect.add"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBRect" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_brect_add</api:name>
+ <api:arg>
+ <api:type>RegressFooBRect*</api:type>
+ <api:name>b1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressFooBRect*</api:type>
+ <api:name>b2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_brect_add</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_brect_add (RegressFooBRect* b1,
+ RegressFooBRect* b2);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>b1</code></title>
+
+</item>
+<item>
+<title><code>b2</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.new.page
new file mode 100644
index 00000000..3ca2281d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.new.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBRect" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooBRect*</api:type>
+ </api:returns>
+ <api:name>regress_foo_brect_new</api:name>
+ <api:arg>
+ <api:type>double</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>double</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_brect_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooBRect* regress_foo_brect_new (double x,
+ double y);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.page
new file mode 100644
index 00000000..abd6b039
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBRect.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooBRect</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.get_contained_type.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.get_contained_type.page
new file mode 100644
index 00000000..1ee353fd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.get_contained_type.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion.get_contained_type"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBUnion" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_foo_bunion_get_contained_type</api:name>
+ <api:arg>
+ <api:type>RegressFooBUnion*</api:type>
+ <api:name>bunion</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_bunion_get_contained_type</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_foo_bunion_get_contained_type (RegressFooBUnion* bunion);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>bunion</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.new.page
new file mode 100644
index 00000000..b760f204
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBUnion" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooBUnion*</api:type>
+ </api:returns>
+ <api:name>regress_foo_bunion_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_bunion_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooBUnion* regress_foo_bunion_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.page
new file mode 100644
index 00000000..8644d96e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooBUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.method.page
new file mode 100644
index 00000000..7483641f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_boxed_method</api:name>
+ <api:arg>
+ <api:type>RegressFooBoxed*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_boxed_method</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_boxed_method (RegressFooBoxed* boxed);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.new.page
new file mode 100644
index 00000000..3e3e4f91
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooBoxed*</api:type>
+ </api:returns>
+ <api:name>regress_foo_boxed_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_boxed_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooBoxed* regress_foo_boxed_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.page
new file mode 100644
index 00000000..e711c3ec
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooBoxed</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.page
new file mode 100644
index 00000000..267ddcba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.page
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBuffer"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooBuffer</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ <item>
+ <code>Regress.FooBuffer</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.some_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.some_method.page
new file mode 100644
index 00000000..6f6469d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooBuffer.some_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBuffer.some_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBuffer" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_buffer_some_method</api:name>
+ <api:arg>
+ <api:type>RegressFooBuffer*</api:type>
+ <api:name>buffer</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_buffer_some_method</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_buffer_some_method (RegressFooBuffer* buffer);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>buffer</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooCallback.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooCallback.page
new file mode 100644
index 00000000..52feda29
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.method.page
new file mode 100644
index 00000000..8694337d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooDBusData.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooDBusData" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_dbus_data_method</api:name>
+ <api:arg>
+ <api:type>RegressFooDBusData*</api:type>
+ <api:name>dbusdata</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_dbus_data_method</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_dbus_data_method (RegressFooDBusData* dbusdata);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>dbusdata</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.page
new file mode 100644
index 00000000..09050e7d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooDBusData.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooDBusData"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooDBusData</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumFullname.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumFullname.page
new file mode 100644
index 00000000..80f6c3b1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumFullname.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumFullname"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumFullname</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumNoType.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumNoType.page
new file mode 100644
index 00000000..b3c71a6f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumNoType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumNoType"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumNoType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.method.page
new file mode 100644
index 00000000..6ecf2dd9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType.method"
+ 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_foo_enum_type_method</api:name>
+ <api:arg>
+ <api:type>RegressFooEnumType</api:type>
+ <api:name>regress_foo_enum</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_enum_type_method</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_foo_enum_type_method (RegressFooEnumType regress_foo_enum);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>regress_foo_enum</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.page
new file mode 100644
index 00000000..6dd3491a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.returnv.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.returnv.page
new file mode 100644
index 00000000..aa0c6c1b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEnumType.returnv.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType.returnv"
+ 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>RegressFooEnumType</api:type>
+ </api:returns>
+ <api:name>regress_foo_enum_type_returnv</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_enum_type_returnv</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooEnumType regress_foo_enum_type_returnv (int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooError.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooError.page
new file mode 100644
index 00000000..79bb9d29
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooError"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooError.quark.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooError.quark.page
new file mode 100644
index 00000000..dde46fb0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooError.quark.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooError.quark"
+ 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>GQuark</api:type>
+ </api:returns>
+ <api:name>regress_foo_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_error_quark</title>
+
+<synopsis><code mime="text/x-csrc">
+GQuark regress_foo_error_quark (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEvent.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEvent.page
new file mode 100644
index 00000000..ce368302
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEvent.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEvent"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooEvent</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEventAny.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEventAny.page
new file mode 100644
index 00000000..0e3a5555
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEventAny.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEventAny"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooEventAny</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooEventExpose.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooEventExpose.page
new file mode 100644
index 00000000..27c4c4a7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooEventExpose.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEventExpose"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooEventExpose</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsNoType.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsNoType.page
new file mode 100644
index 00000000..53539d49
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsNoType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooFlagsNoType"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooFlagsNoType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsType.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsType.page
new file mode 100644
index 00000000..2b4afeb5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooFlagsType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooFlagsType"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooFlagsType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.copy.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.copy.page
new file mode 100644
index 00000000..217a983b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.copy.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooForeignStruct" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooForeignStruct*</api:type>
+ </api:returns>
+ <api:name>regress_foo_foreign_struct_copy</api:name>
+ <api:arg>
+ <api:type>RegressFooForeignStruct*</api:type>
+ <api:name>original</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_foreign_struct_copy</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooForeignStruct* regress_foo_foreign_struct_copy (RegressFooForeignStruct* original);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>original</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.new.page
new file mode 100644
index 00000000..7314c1d3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooForeignStruct" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooForeignStruct*</api:type>
+ </api:returns>
+ <api:name>regress_foo_foreign_struct_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_foreign_struct_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooForeignStruct* regress_foo_foreign_struct_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.page
new file mode 100644
index 00000000..ee3e5e72
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooForeignStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooForeignStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface-do_regress_foo.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface-do_regress_foo.page
new file mode 100644
index 00000000..b3faca67
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface-do_regress_foo.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface-do_regress_foo"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterface::do_regress_foo</title>
+
+<synopsis><code mime="text/x-csrc">
+void do_regress_foo (RegressFooInterface* self,
+ int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.do_regress_foo.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.do_regress_foo.page
new file mode 100644
index 00000000..7c44fd47
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.do_regress_foo.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface.do_regress_foo"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_interface_do_regress_foo</api:name>
+ <api:arg>
+ <api:type>RegressFooInterface*</api:type>
+ <api:name>iface</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_interface_do_regress_foo</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_interface_do_regress_foo (RegressFooInterface* iface,
+ int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>iface</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.page
new file mode 100644
index 00000000..7ec29fee
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterface</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.FooInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.static_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.static_method.page
new file mode 100644
index 00000000..a3ad69af
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterface.static_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface.static_method"
+ 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="Regress.FooInterface" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_interface_static_method</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_interface_static_method</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_interface_static_method (int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.do_regress_foo.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.do_regress_foo.page
new file mode 100644
index 00000000..0b900420
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.do_regress_foo.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterfaceIface.do_regress_foo"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterfaceIface.do_regress_foo</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.page
new file mode 100644
index 00000000..53b09b41
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooInterfaceIface.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterfaceIface"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterfaceIface</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-hidden.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-hidden.page
new file mode 100644
index 00000000..ccfbcfa6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-hidden.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-hidden"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="property" type="guide"/>
+ <title type="link" role="topic">hidden</title>
+
+ </info>
+ <title>Regress.FooObject:hidden</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page
new file mode 100644
index 00000000..f99f3c0d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-read_fn"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject::read_fn</title>
+
+<synopsis><code mime="text/x-csrc">
+void read_fn (RegressFooObject* object,
+ int offset,
+ int length);
+</code></synopsis>
+
+
+ <p>Read some stuff.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>obj</p>
+</item>
+<item>
+<title><code>offset</code></title>
+<p>offset</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>length</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-signal.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-signal.page
new file mode 100644
index 00000000..3a8c1315
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-signal.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="signal" type="guide"/>
+ <title type="link" role="topic">signal</title>
+
+ </info>
+ <title>Regress.FooObject::signal</title>
+
+<synopsis><code mime="text/x-csrc">
+gchar* signal (GObject object,
+ gpointer p0);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>p0</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-string.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-string.page
new file mode 100644
index 00000000..b0ed3c72
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-string.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-string"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="property" type="guide"/>
+ <title type="link" role="topic">string</title>
+
+ </info>
+ <title>Regress.FooObject:string</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-virtual_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-virtual_method.page
new file mode 100644
index 00000000..3e3f04ef
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-virtual_method.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-virtual_method"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject::virtual_method</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean virtual_method (RegressFooObject* object,
+ int first_param);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>first_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.a_global_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.a_global_method.page
new file mode 100644
index 00000000..801f59ac
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.a_global_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.a_global_method"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_a_global_method</api:name>
+ <api:arg>
+ <api:type>UtilityObject*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_a_global_method</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_object_a_global_method (UtilityObject* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.append_new_stack_layer.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.append_new_stack_layer.page
new file mode 100644
index 00000000..82bbc269
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.append_new_stack_layer.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.append_new_stack_layer"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooOtherObject*</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_append_new_stack_layer</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_append_new_stack_layer</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooOtherObject* regress_foo_object_append_new_stack_layer (RegressFooObject* obj,
+ int x);
+</code></synopsis>
+
+
+ <p>This shouldn't be scanned as a constructor.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.dup_name.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.dup_name.page
new file mode 100644
index 00000000..6419ed73
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.dup_name.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.dup_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>char*</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_dup_name</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_dup_name</title>
+
+<synopsis><code mime="text/x-csrc">
+char* regress_foo_object_dup_name (RegressFooObject* object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.external_type.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.external_type.page
new file mode 100644
index 00000000..77c8dc8f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.external_type.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.external_type"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>UtilityObject*</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_external_type</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_external_type</title>
+
+<synopsis><code mime="text/x-csrc">
+UtilityObject* regress_foo_object_external_type (RegressFooObject* object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>a <link xref="Regress.FooObject"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>NULL</code> always</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_default.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_default.page
new file mode 100644
index 00000000..04c38a20
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_default.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.get_default"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooObject*</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_get_default</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_get_default</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooObject* regress_foo_object_get_default (void);
+</code></synopsis>
+
+
+ <p>This function is intended to match clutter_stage_get_default which
+uses a C sugar return type.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>The global <link xref="Regress.FooSubobject"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_name.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_name.page
new file mode 100644
index 00000000..68b305bf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.get_name.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.get_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>const char*</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_get_name</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_get_name</title>
+
+<synopsis><code mime="text/x-csrc">
+const char* regress_foo_object_get_name (RegressFooObject* object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.handle_glyph.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.handle_glyph.page
new file mode 100644
index 00000000..0cb58ae3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.handle_glyph.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.handle_glyph"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_handle_glyph</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>UtilityGlyph</api:type>
+ <api:name>glyph</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_handle_glyph</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_object_handle_glyph (RegressFooObject* object,
+ UtilityGlyph glyph);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>glyph</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.is_it_time_yet.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.is_it_time_yet.page
new file mode 100644
index 00000000..f643665a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.is_it_time_yet.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.is_it_time_yet"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_is_it_time_yet</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>time_t</api:type>
+ <api:name>time</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_is_it_time_yet</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_object_is_it_time_yet (RegressFooObject* object,
+ time_t time);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>time</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new.page
new file mode 100644
index 00000000..75b0e074
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooObject*</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooObject* regress_foo_object_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_as_super.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_as_super.page
new file mode 100644
index 00000000..069a4213
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_as_super.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.new_as_super"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject*</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_new_as_super</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_new_as_super</title>
+
+<synopsis><code mime="text/x-csrc">
+GObject* regress_foo_object_new_as_super (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_cookie.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_cookie.page
new file mode 100644
index 00000000..312e93c6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.new_cookie.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.new_cookie"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooObjectCookie</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_new_cookie</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>target</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_new_cookie</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooObjectCookie regress_foo_object_new_cookie (RegressFooObject* object,
+ const char* target);
+</code></synopsis>
+
+
+ <p>Not sure why this test is here...</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>target</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.page
new file mode 100644
index 00000000..fff026c7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.read.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.read.page
new file mode 100644
index 00000000..d6415021
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.read.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.read"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_read</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>offset</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_read</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_object_read (RegressFooObject* object,
+ int offset,
+ int length);
+</code></synopsis>
+
+
+ <p>Read some stuff.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>obj</p>
+</item>
+<item>
+<title><code>offset</code></title>
+<p>offset</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>length</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.skipped_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.skipped_method.page
new file mode 100644
index 00000000..aea1afdc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.skipped_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.skipped_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_skipped_method</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_skipped_method</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_object_skipped_method (RegressFooObject* object);
+</code></synopsis>
+
+
+ <p>This is only useful from C.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>obj</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.static_meth.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.static_meth.page
new file mode 100644
index 00000000..9b157bb0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.static_meth.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.static_meth"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_static_meth</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_static_meth</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_foo_object_static_meth (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.take_all.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.take_all.page
new file mode 100644
index 00000000..92d75431
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.take_all.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.take_all"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_take_all</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:varargs/>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_take_all</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_object_take_all (RegressFooObject* object,
+ int x,
+ ...);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>...</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.various.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.various.page
new file mode 100644
index 00000000..eea3c15c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.various.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.various"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_various</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>void*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GType</api:type>
+ <api:name>some_type</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_various</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_object_various (RegressFooObject* object,
+ void* data,
+ GType some_type);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>some_type</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.virtual_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.virtual_method.page
new file mode 100644
index 00000000..3f04cb4a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject.virtual_method.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.virtual_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_virtual_method</api:name>
+ <api:arg>
+ <api:type>RegressFooObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>first_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_object_virtual_method</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_foo_object_virtual_method (RegressFooObject* object,
+ int first_param);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>first_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.page
new file mode 100644
index 00000000..9d528385
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObjectClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooObjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.read_fn.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.read_fn.page
new file mode 100644
index 00000000..39078bfc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.read_fn.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObjectClass.read_fn"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooObjectClass.read_fn</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.virtual_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.virtual_method.page
new file mode 100644
index 00000000..2882c6d7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectClass.virtual_method.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObjectClass.virtual_method"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooObjectClass.virtual_method</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectCookie.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectCookie.page
new file mode 100644
index 00000000..44a63ab1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObjectCookie.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObjectCookie"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooObjectCookie</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooOtherObject.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooOtherObject.page
new file mode 100644
index 00000000..491d0230
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooOtherObject.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.FooOtherObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooOtherObject</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooOtherObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.add.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.add.page
new file mode 100644
index 00000000..84a46bb7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.add.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.FooRectangle.add"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooRectangle" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_rectangle_add</api:name>
+ <api:arg>
+ <api:type>RegressFooRectangle*</api:type>
+ <api:name>r1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const RegressFooRectangle*</api:type>
+ <api:name>r2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_rectangle_add</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_rectangle_add (RegressFooRectangle* r1,
+ const RegressFooRectangle* r2);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>r1</code></title>
+<p>add to this rect</p>
+</item>
+<item>
+<title><code>r2</code></title>
+<p>source rectangle</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.new.page
new file mode 100644
index 00000000..b9f16eac
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.new.page
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<page id="Regress.FooRectangle.new"
+ 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="Regress.FooRectangle" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooRectangle*</api:type>
+ </api:returns>
+ <api:name>regress_foo_rectangle_new</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>width</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>height</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_rectangle_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooRectangle* regress_foo_rectangle_new (int x,
+ int y,
+ int width,
+ int height);
+</code></synopsis>
+
+
+ <p>This is a C convenience constructor; we have to (skip)
+it because it's not a boxed type.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>width</code></title>
+
+</item>
+<item>
+<title><code>height</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.page
new file mode 100644
index 00000000..d485de0b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooRectangle.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooRectangle"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooRectangle</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSkippable.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSkippable.page
new file mode 100644
index 00000000..0d50e702
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSkippable.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSkippable"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooSkippable</title>
+
+
+
+ <p>Some type that is only interesting from C and should not be
+exposed to language bindings.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooStackLayer.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooStackLayer.page
new file mode 100644
index 00000000..961d19c8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooStackLayer.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooStackLayer"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooStackLayer</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooStruct.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooStruct.page
new file mode 100644
index 00000000..65b4f265
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooStruct"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy-event.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy-event.page
new file mode 100644
index 00000000..6af09fd2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy-event.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-destroy-event"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="signal" type="guide"/>
+ <title type="link" role="topic">destroy-event</title>
+
+ </info>
+ <title>Regress.FooSubInterface::destroy-event</title>
+
+<synopsis><code mime="text/x-csrc">
+void destroy-event (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy_event.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy_event.page
new file mode 100644
index 00000000..eb08ec77
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-destroy_event.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-destroy_event"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::destroy_event</title>
+
+<synopsis><code mime="text/x-csrc">
+void destroy_event (RegressFooSubInterface* self);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_bar.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_bar.page
new file mode 100644
index 00000000..56bdfed6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_bar.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-do_bar"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::do_bar</title>
+
+<synopsis><code mime="text/x-csrc">
+void do_bar (RegressFooSubInterface* self);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_baz.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_baz.page
new file mode 100644
index 00000000..ac59643a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface-do_baz.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-do_baz"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::do_baz</title>
+
+<synopsis><code mime="text/x-csrc">
+void do_baz (RegressFooSubInterface* self,
+ GCallback callback,
+ gpointer user_data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_bar.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_bar.page
new file mode 100644
index 00000000..6d7d970c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_bar.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface.do_bar"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_sub_interface_do_bar</api:name>
+ <api:arg>
+ <api:type>RegressFooSubInterface*</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_sub_interface_do_bar</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_sub_interface_do_bar (RegressFooSubInterface* self);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_baz.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_baz.page
new file mode 100644
index 00000000..bab0d68e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.do_baz.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface.do_baz"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_sub_interface_do_baz</api:name>
+ <api:arg>
+ <api:type>RegressFooSubInterface*</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_sub_interface_do_baz</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_sub_interface_do_baz (RegressFooSubInterface* self,
+ GCallback callback,
+ gpointer user_data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.page
new file mode 100644
index 00000000..9b25845a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterface.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.FooSubInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.destroy_event.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.destroy_event.page
new file mode 100644
index 00000000..95136833
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.destroy_event.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterfaceIface.destroy_event"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterfaceIface.destroy_event</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_bar.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_bar.page
new file mode 100644
index 00000000..ec46cdde
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_bar.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterfaceIface.do_bar"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterfaceIface.do_bar</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_baz.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_baz.page
new file mode 100644
index 00000000..d0f58041
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.do_baz.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterfaceIface.do_baz"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterfaceIface.do_baz</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.page
new file mode 100644
index 00000000..f8643cf3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubInterfaceIface.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterfaceIface"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterfaceIface</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.new.page
new file mode 100644
index 00000000..c4adff6d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubobject.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubobject" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressFooSubobject*</api:type>
+ </api:returns>
+ <api:name>regress_foo_subobject_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_subobject_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooSubobject* regress_foo_subobject_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.page
new file mode 100644
index 00000000..6a70ef71
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobject.page
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubobject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubobject</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ <item>
+ <code>Regress.FooSubobject</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobjectClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobjectClass.page
new file mode 100644
index 00000000..499599c8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooSubobjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubobjectClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubobjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooThingWithArray.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooThingWithArray.page
new file mode 100644
index 00000000..6033817f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooThingWithArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooThingWithArray"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooThingWithArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooUnion.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooUnion.page
new file mode 100644
index 00000000..9746f17e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooUnion"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooUtilityStruct.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooUtilityStruct.page
new file mode 100644
index 00000000..d281ffb1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooUtilityStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooUtilityStruct"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooUtilityStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooVarargsCallback.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooVarargsCallback.page
new file mode 100644
index 00000000..a57ea4dd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooVarargsCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooVarargsCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooVarargsCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooXEvent.page b/tests/scanner/Regress-1.0-C-expected/Regress.FooXEvent.page
new file mode 100644
index 00000000..c389ef05
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooXEvent.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooXEvent"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooXEvent</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.IntSet.page b/tests/scanner/Regress-1.0-C-expected/Regress.IntSet.page
new file mode 100644
index 00000000..b8710cf1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.IntSet.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.IntSet"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.IntSet</title>
+
+
+
+ <p>Compatibility typedef, like telepathy-glib's TpIntSet</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.LikeGnomeKeyringPasswordSchema.page b/tests/scanner/Regress-1.0-C-expected/Regress.LikeGnomeKeyringPasswordSchema.page
new file mode 100644
index 00000000..242fad03
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.LikeGnomeKeyringPasswordSchema.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeGnomeKeyringPasswordSchema"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.LikeGnomeKeyringPasswordSchema</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.page b/tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.page
new file mode 100644
index 00000000..3b14aae6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeXklConfigItem"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.LikeXklConfigItem</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.set_name.page b/tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.set_name.page
new file mode 100644
index 00000000..0a4aecb6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.LikeXklConfigItem.set_name.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeXklConfigItem.set_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.LikeXklConfigItem" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_like_xkl_config_item_set_name</api:name>
+ <api:arg>
+ <api:type>RegressLikeXklConfigItem*</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>name</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_like_xkl_config_item_set_name</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem* self,
+ const char* name);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>name</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.PtrArrayAlias.page b/tests/scanner/Regress-1.0-C-expected/Regress.PtrArrayAlias.page
new file mode 100644
index 00000000..f66aee44
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.PtrArrayAlias.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.PtrArrayAlias"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.PtrArrayAlias</title>
+
+
+
+ <p>Typedef'd GPtrArray for some reason</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.SkippedStructure.page b/tests/scanner/Regress-1.0-C-expected/Regress.SkippedStructure.page
new file mode 100644
index 00000000..ad13eea6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.SkippedStructure.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.SkippedStructure"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.SkippedStructure</title>
+
+
+
+ <p>This should be skipped, and moreover, all function which
+use it should be.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.page
new file mode 100644
index 00000000..384ffb87
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestABCError"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestABCError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.quark.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.quark.page
new file mode 100644
index 00000000..7ed5152f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestABCError.quark.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestABCError.quark"
+ 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>GQuark</api:type>
+ </api:returns>
+ <api:name>regress_test_abc_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_abc_error_quark</title>
+
+<synopsis><code mime="text/x-csrc">
+GQuark regress_test_abc_error_quark (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.copy.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.copy.page
new file mode 100644
index 00000000..40273913
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.copy.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxed*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_copy</api:name>
+ <api:arg>
+ <api:type>RegressTestBoxed*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_copy</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxed* regress_test_boxed_copy (RegressTestBoxed* boxed);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.equals.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.equals.page
new file mode 100644
index 00000000..26206b63
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.equals.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.equals"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_equals</api:name>
+ <api:arg>
+ <api:type>RegressTestBoxed*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestBoxed*</api:type>
+ <api:name>other</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_equals</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_boxed_equals (RegressTestBoxed* boxed,
+ RegressTestBoxed* other);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>other</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new.page
new file mode 100644
index 00000000..5e05794e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxed*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxed* regress_test_boxed_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor1.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor1.page
new file mode 100644
index 00000000..2bc81924
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor1.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new_alternative_constructor1"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxed*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new_alternative_constructor1</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_new_alternative_constructor1</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxed* regress_test_boxed_new_alternative_constructor1 (int i);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor2.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor2.page
new file mode 100644
index 00000000..e43127e7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor2.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new_alternative_constructor2"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxed*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new_alternative_constructor2</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>j</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_new_alternative_constructor2</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxed* regress_test_boxed_new_alternative_constructor2 (int i,
+ int j);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+
+</item>
+<item>
+<title><code>j</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor3.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor3.page
new file mode 100644
index 00000000..ac75d2c2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.new_alternative_constructor3.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new_alternative_constructor3"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxed*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new_alternative_constructor3</api:name>
+ <api:arg>
+ <api:type>char*</api:type>
+ <api:name>s</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_new_alternative_constructor3</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxed* regress_test_boxed_new_alternative_constructor3 (char* s);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>s</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.page
new file mode 100644
index 00000000..d6675327
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxed</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.copy.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.copy.page
new file mode 100644
index 00000000..df0da11c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.copy.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxedB*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_b_copy</api:name>
+ <api:arg>
+ <api:type>RegressTestBoxedB*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_b_copy</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxedB* regress_test_boxed_b_copy (RegressTestBoxedB* boxed);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.new.page
new file mode 100644
index 00000000..7a0bc2bc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.new.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedB" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxedB*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_b_new</api:name>
+ <api:arg>
+ <api:type>gint8</api:type>
+ <api:name>some_int8</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>glong</api:type>
+ <api:name>some_long</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_b_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxedB* regress_test_boxed_b_new (gint8 some_int8,
+ glong some_long);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>some_int8</code></title>
+
+</item>
+<item>
+<title><code>some_long</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.page
new file mode 100644
index 00000000..856d7da4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.new.page
new file mode 100644
index 00000000..4657b526
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedC.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedC" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxedC*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_c_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_c_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxedC* regress_test_boxed_c_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.page
new file mode 100644
index 00000000..c890545d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedC.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedC"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedC</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.copy.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.copy.page
new file mode 100644
index 00000000..ed99996a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.copy.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxedD*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_copy</api:name>
+ <api:arg>
+ <api:type>RegressTestBoxedD*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_d_copy</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxedD* regress_test_boxed_d_copy (RegressTestBoxedD* boxed);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.free.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.free.page
new file mode 100644
index 00000000..4622fcdc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.free.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.free"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_free</api:name>
+ <api:arg>
+ <api:type>RegressTestBoxedD*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_d_free</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_boxed_d_free (RegressTestBoxedD* boxed);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.get_magic.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.get_magic.page
new file mode 100644
index 00000000..bbd78ab2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.get_magic.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.get_magic"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_get_magic</api:name>
+ <api:arg>
+ <api:type>RegressTestBoxedD*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_d_get_magic</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_boxed_d_get_magic (RegressTestBoxedD* boxed);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.new.page
new file mode 100644
index 00000000..50345623
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.new.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestBoxedD*</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_new</api:name>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>a_string</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a_int</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boxed_d_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestBoxedD* regress_test_boxed_d_new (const char* a_string,
+ int a_int);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>a_string</code></title>
+
+</item>
+<item>
+<title><code>a_int</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.page
new file mode 100644
index 00000000..b5110c2c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestBoxedD.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedD</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallback.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallback.page
new file mode 100644
index 00000000..bed84d50
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackArray.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackArray.page
new file mode 100644
index 00000000..7d3f7b83
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackArray"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackFull.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackFull.page
new file mode 100644
index 00000000..0b8fca1d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackFull.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackFull"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackFull</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackGError.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackGError.page
new file mode 100644
index 00000000..804382f5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackGError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackGError"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackGError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackHashtable.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackHashtable.page
new file mode 100644
index 00000000..06ebb706
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackHashtable.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackHashtable"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackHashtable</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackOwnedGError.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackOwnedGError.page
new file mode 100644
index 00000000..28b21ea4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackOwnedGError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackOwnedGError"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackOwnedGError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackUserData.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackUserData.page
new file mode 100644
index 00000000..286c830a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestCallbackUserData.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackUserData"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackUserData</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestDEFError.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestDEFError.page
new file mode 100644
index 00000000..b485450d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestDEFError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestDEFError"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestDEFError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.page
new file mode 100644
index 00000000..a672d7ee
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnum"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnum</title>
+
+
+
+ <p>By purpose, not all members have documentation</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.param.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.param.page
new file mode 100644
index 00000000..542ba60c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnum.param.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnum.param"
+ 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>const gchar*</api:type>
+ </api:returns>
+ <api:name>regress_test_enum_param</api:name>
+ <api:arg>
+ <api:type>RegressTestEnum</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_enum_param</title>
+
+<synopsis><code mime="text/x-csrc">
+const gchar* regress_test_enum_param (RegressTestEnum e);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestEnumNoGEnum.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnumNoGEnum.page
new file mode 100644
index 00000000..cffae730
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnumNoGEnum.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnumNoGEnum"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnumNoGEnum</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestEnumUnsigned.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnumUnsigned.page
new file mode 100644
index 00000000..81a9aa9a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestEnumUnsigned.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnumUnsigned"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnumUnsigned</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestError.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestError.page
new file mode 100644
index 00000000..97f829b2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestError"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestError.quark.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestError.quark.page
new file mode 100644
index 00000000..9140ac56
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestError.quark.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestError.quark"
+ 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>GQuark</api:type>
+ </api:returns>
+ <api:name>regress_test_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_error_quark</title>
+
+<synopsis><code mime="text/x-csrc">
+GQuark regress_test_error_quark (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFlags.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFlags.page
new file mode 100644
index 00000000..d5bfeeb4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFlags.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFlags"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFlags</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.new.page
new file mode 100644
index 00000000..5f4a3a5e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFloating.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFloating" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestFloating*</api:type>
+ </api:returns>
+ <api:name>regress_test_floating_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_floating_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestFloating* regress_test_floating_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>A new floating <link xref="Regress.TestFloating"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.page
new file mode 100644
index 00000000..11899127
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFloating.page
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFloating"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFloating</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>GObject.InitiallyUnowned</code>
+ <item>
+ <code>Regress.TestFloating</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFloatingClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFloatingClass.page
new file mode 100644
index 00000000..e7d5236c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFloatingClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFloatingClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestFloatingClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.page
new file mode 100644
index 00000000..473f1afe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObject</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestFundamentalObject</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.ref.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.ref.page
new file mode 100644
index 00000000..3e63b1e6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.ref.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject.ref"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestFundamentalObject*</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_object_ref</api:name>
+ <api:arg>
+ <api:type>RegressTestFundamentalObject*</api:type>
+ <api:name>fundamental_object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_fundamental_object_ref</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestFundamentalObject* regress_test_fundamental_object_ref (RegressTestFundamentalObject* fundamental_object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>fundamental_object</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>A new <link xref="Regress.TestFundamentalObject"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.unref.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.unref.page
new file mode 100644
index 00000000..6f5c16b4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObject.unref.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject.unref"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_object_unref</api:name>
+ <api:arg>
+ <api:type>RegressTestFundamentalObject*</api:type>
+ <api:name>fundamental_object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_fundamental_object_unref</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_fundamental_object_unref (RegressTestFundamentalObject* fundamental_object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>fundamental_object</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectClass.page
new file mode 100644
index 00000000..443ce70f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObjectClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectCopyFunction.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectCopyFunction.page
new file mode 100644
index 00000000..73a33285
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectCopyFunction.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObjectCopyFunction"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObjectCopyFunction</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectFinalizeFunction.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectFinalizeFunction.page
new file mode 100644
index 00000000..df0e8fba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalObjectFinalizeFunction.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObjectFinalizeFunction"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObjectFinalizeFunction</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.new.page
new file mode 100644
index 00000000..a4495401
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.new.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalSubObject.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalSubObject"
+ group="constructor"
+ type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestFundamentalSubObject*</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_sub_object_new</api:name>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_fundamental_sub_object_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestFundamentalSubObject* regress_test_fundamental_sub_object_new (const char* data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.page
new file mode 100644
index 00000000..6ed36089
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObject.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalSubObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalSubObject</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestFundamentalObject</code>
+ <item>
+ <code>Regress.TestFundamentalSubObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObjectClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObjectClass.page
new file mode 100644
index 00000000..79e14d5a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestFundamentalSubObjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalSubObjectClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalSubObjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo.page
new file mode 100644
index 00000000..24bd9c4a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.do_foo"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_do_foo</api:name>
+ <api:arg>
+ <api:type>RegressTestInheritDrawable*</api:type>
+ <api:name>drawable</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_inherit_drawable_do_foo</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_inherit_drawable_do_foo (RegressTestInheritDrawable* drawable,
+ int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>drawable</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page
new file mode 100644
index 00000000..e90dcd18
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.do_foo_maybe_throw"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_do_foo_maybe_throw</api:name>
+ <api:arg>
+ <api:type>RegressTestInheritDrawable*</api:type>
+ <api:name>drawable</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_inherit_drawable_do_foo_maybe_throw</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_inherit_drawable_do_foo_maybe_throw (RegressTestInheritDrawable* drawable,
+ int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>drawable</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_origin.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_origin.page
new file mode 100644
index 00000000..9ab00c6e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_origin.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.get_origin"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_get_origin</api:name>
+ <api:arg>
+ <api:type>RegressTestInheritDrawable*</api:type>
+ <api:name>drawable</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_inherit_drawable_get_origin</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_inherit_drawable_get_origin (RegressTestInheritDrawable* drawable,
+ int* x,
+ int* y);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>drawable</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_size.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_size.page
new file mode 100644
index 00000000..c9c778e8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.get_size.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.get_size"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_get_size</api:name>
+ <api:arg>
+ <api:type>RegressTestInheritDrawable*</api:type>
+ <api:name>drawable</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint*</api:type>
+ <api:name>width</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint*</api:type>
+ <api:name>height</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_inherit_drawable_get_size</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_inherit_drawable_get_size (RegressTestInheritDrawable* drawable,
+ guint* width,
+ guint* height);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>drawable</code></title>
+
+</item>
+<item>
+<title><code>width</code></title>
+
+</item>
+<item>
+<title><code>height</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.page
new file mode 100644
index 00000000..20ef3ff7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawable.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestInheritDrawable</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestInheritDrawable</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawableClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawableClass.page
new file mode 100644
index 00000000..2579f564
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritDrawableClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawableClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestInheritDrawableClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritPixmapObjectClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritPixmapObjectClass.page
new file mode 100644
index 00000000..3cf69e80
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInheritPixmapObjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritPixmapObjectClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestInheritPixmapObjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInterface.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInterface.page
new file mode 100644
index 00000000..1c53fd47
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInterface.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestInterface</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestInterfaceIface.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestInterfaceIface.page
new file mode 100644
index 00000000..a643e5dc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestInterfaceIface.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInterfaceIface"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestInterfaceIface</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-all.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-all.page
new file mode 100644
index 00000000..37b5dd32
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-all.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-all"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">all</title>
+
+ </info>
+ <title>Regress.TestObj::all</title>
+
+<synopsis><code mime="text/x-csrc">
+void all (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-allow_none_vfunc.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-allow_none_vfunc.page
new file mode 100644
index 00000000..f3447b5a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-allow_none_vfunc.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-allow_none_vfunc"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj::allow_none_vfunc</title>
+
+<synopsis><code mime="text/x-csrc">
+void allow_none_vfunc (RegressTestObj* obj,
+ RegressTestObj* two);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>two</code></title>
+<p>Another object</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-bare.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-bare.page
new file mode 100644
index 00000000..4873a1c5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-bare.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-bare"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">bare</title>
+
+ </info>
+ <title>Regress.TestObj:bare</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-boxed.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-boxed.page
new file mode 100644
index 00000000..460104bf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-boxed.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-boxed"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">boxed</title>
+
+ </info>
+ <title>Regress.TestObj:boxed</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-cleanup.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-cleanup.page
new file mode 100644
index 00000000..bef9537e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-cleanup.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-cleanup"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">cleanup</title>
+
+ </info>
+ <title>Regress.TestObj::cleanup</title>
+
+<synopsis><code mime="text/x-csrc">
+void cleanup (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-double.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-double.page
new file mode 100644
index 00000000..bb907ab8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-double.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-double"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">double</title>
+
+ </info>
+ <title>Regress.TestObj:double</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-first.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-first.page
new file mode 100644
index 00000000..5600be6f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-first.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-first"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">first</title>
+
+ </info>
+ <title>Regress.TestObj::first</title>
+
+<synopsis><code mime="text/x-csrc">
+void first (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-float.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-float.page
new file mode 100644
index 00000000..a981cf86
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-float.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-float"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">float</title>
+
+ </info>
+ <title>Regress.TestObj:float</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-gtype.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-gtype.page
new file mode 100644
index 00000000..2fbf9d93
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-gtype.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-gtype"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">gtype</title>
+
+ </info>
+ <title>Regress.TestObj:gtype</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table-old.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table-old.page
new file mode 100644
index 00000000..003425bb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table-old.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-hash-table-old"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">hash-table-old</title>
+
+ </info>
+ <title>Regress.TestObj:hash-table-old</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table.page
new file mode 100644
index 00000000..f11e4657
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-hash-table.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-hash-table"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">hash-table</title>
+
+ </info>
+ <title>Regress.TestObj:hash-table</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-int.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-int.page
new file mode 100644
index 00000000..95a4902c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-int.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-int"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">int</title>
+
+ </info>
+ <title>Regress.TestObj:int</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list-old.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list-old.page
new file mode 100644
index 00000000..680636d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list-old.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-list-old"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">list-old</title>
+
+ </info>
+ <title>Regress.TestObj:list-old</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list.page
new file mode 100644
index 00000000..7ea5130b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-list.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-list"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">list</title>
+
+ </info>
+ <title>Regress.TestObj:list</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page
new file mode 100644
index 00000000..43203655
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-matrix"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj::matrix</title>
+
+<synopsis><code mime="text/x-csrc">
+int matrix (RegressTestObj* obj,
+ const char* somestr);
+</code></synopsis>
+
+
+ <p>This method is virtual. Notably its name differs from the virtual
+slot name, which makes it useful for testing bindings handle this
+case.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>somestr</code></title>
+<p>Meaningless string</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page
new file mode 100644
index 00000000..9ec983b1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-array-len-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-array-len-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-array-len-prop</title>
+
+<synopsis><code mime="text/x-csrc">
+void sig-with-array-len-prop (guint* arr,
+ gint len);
+</code></synopsis>
+
+
+ <p>This test signal similar to GSettings::change-event</p>
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+<p>numbers, or <code>NULL</code></p>
+</item>
+<item>
+<title><code>len</code></title>
+<p>length of <code>arr</code>, or 0</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-prop.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-prop.page
new file mode 100644
index 00000000..05b911c2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-prop.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-array-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-array-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-array-prop</title>
+
+<synopsis><code mime="text/x-csrc">
+void sig-with-array-prop (guint* arr);
+</code></synopsis>
+
+
+ <p>This test signal is like TelepathyGlib's
+ TpChannel:: group-members-changed-detailed:</p>
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+<p>numbers</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-foreign-struct.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-foreign-struct.page
new file mode 100644
index 00000000..c2cb8822
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-foreign-struct.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-foreign-struct"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-foreign-struct</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-foreign-struct</title>
+
+<synopsis><code mime="text/x-csrc">
+void sig-with-foreign-struct (cairo_t cr);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>cr</code></title>
+<p>A cairo context.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-hash-prop.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-hash-prop.page
new file mode 100644
index 00000000..9ddd536c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-hash-prop.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-hash-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-hash-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-hash-prop</title>
+
+<synopsis><code mime="text/x-csrc">
+void sig-with-hash-prop (&lt;map&gt; hash);
+</code></synopsis>
+
+
+ <p>This test signal is like TelepathyGlib's
+ TpAccount::status-changed</p>
+
+
+
+
+<terms>
+<item>
+<title><code>hash</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-int64-prop.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-int64-prop.page
new file mode 100644
index 00000000..d8a90378
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-int64-prop.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-int64-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-int64-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-int64-prop</title>
+
+<synopsis><code mime="text/x-csrc">
+gint64 sig-with-int64-prop (gint64 i);
+</code></synopsis>
+
+
+ <p>You can use this with regress_test_obj_emit_sig_with_int64, or raise from
+the introspection client langage.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-intarray-ret.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-intarray-ret.page
new file mode 100644
index 00000000..7f041e23
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-intarray-ret.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-intarray-ret"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-intarray-ret</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-intarray-ret</title>
+
+<synopsis><code mime="text/x-csrc">
+None sig-with-intarray-ret (gint i);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-obj.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-obj.page
new file mode 100644
index 00000000..9d69a6fe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-obj.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-obj"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-obj</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-obj</title>
+
+<synopsis><code mime="text/x-csrc">
+void sig-with-obj (GObject obj);
+</code></synopsis>
+
+
+ <p>Test transfer none GObject as a param (tests refcounting).
+Use with regress_test_obj_emit_sig_with_obj</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A newly created RegressTestObj</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-strv.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-strv.page
new file mode 100644
index 00000000..919d38f6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-strv.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-strv"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-strv</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-strv</title>
+
+<synopsis><code mime="text/x-csrc">
+void sig-with-strv (utf8* strs);
+</code></synopsis>
+
+
+ <p>Test GStrv as a param.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>strs</code></title>
+<p>strings</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-uint64-prop.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-uint64-prop.page
new file mode 100644
index 00000000..6ee6bda3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-uint64-prop.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-uint64-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-uint64-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-uint64-prop</title>
+
+<synopsis><code mime="text/x-csrc">
+guint64 sig-with-uint64-prop (guint64 i);
+</code></synopsis>
+
+
+ <p>You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
+the introspection client langage.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-string.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-string.page
new file mode 100644
index 00000000..1ae48038
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-string.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-string"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">string</title>
+
+ </info>
+ <title>Regress.TestObj:string</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test-with-static-scope-arg.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test-with-static-scope-arg.page
new file mode 100644
index 00000000..1ffe66e4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test-with-static-scope-arg.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-test-with-static-scope-arg"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">test-with-static-scope-arg</title>
+
+ </info>
+ <title>Regress.TestObj::test-with-static-scope-arg</title>
+
+<synopsis><code mime="text/x-csrc">
+void test-with-static-scope-arg (RegressTestSimpleBoxedA object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test.page
new file mode 100644
index 00000000..15599c6d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-test.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-test"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">test</title>
+
+ </info>
+ <title>Regress.TestObj::test</title>
+
+<synopsis><code mime="text/x-csrc">
+void test (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.constructor.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.constructor.page
new file mode 100644
index 00000000..8efd1619
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.constructor.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.constructor"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestObj*</api:type>
+ </api:returns>
+ <api:name>regress_constructor</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_constructor</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestObj* regress_constructor (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.do_matrix.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.do_matrix.page
new file mode 100644
index 00000000..bc4e7627
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.do_matrix.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.do_matrix"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_do_matrix</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>somestr</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_do_matrix</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_obj_do_matrix (RegressTestObj* obj,
+ const char* somestr);
+</code></synopsis>
+
+
+ <p>This method is virtual. Notably its name differs from the virtual
+slot name, which makes it useful for testing bindings handle this
+case.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>somestr</code></title>
+<p>Meaningless string</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_foreign_struct.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_foreign_struct.page
new file mode 100644
index 00000000..1ba84366
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_foreign_struct.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_foreign_struct"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_foreign_struct</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_emit_sig_with_foreign_struct</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_int64.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_int64.page
new file mode 100644
index 00000000..24f58265
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_int64.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_int64"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_int64</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_emit_sig_with_int64</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_emit_sig_with_int64 (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_obj.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_obj.page
new file mode 100644
index 00000000..e0d123e1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_obj.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_obj"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_obj</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_emit_sig_with_obj</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_emit_sig_with_obj (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_uint64.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_uint64.page
new file mode 100644
index 00000000..0c2c68c2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_uint64.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_uint64"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_uint64</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_emit_sig_with_uint64</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_emit_sig_with_uint64 (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.forced_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.forced_method.page
new file mode 100644
index 00000000..92bfa2db
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.forced_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.forced_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_forced_method</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_forced_method</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_forced_method (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method.page
new file mode 100644
index 00000000..74692389
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.instance_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_instance_method</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_instance_method</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_obj_instance_method (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method_callback.page
new file mode 100644
index 00000000..668096a2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.instance_method_callback.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.instance_method_callback"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_instance_method_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_instance_method_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_instance_method_callback (RegressTestObj* obj,
+ RegressTestCallback callback);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new.page
new file mode 100644
index 00000000..e931f7da
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestObj*</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_new</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestObj* regress_test_obj_new (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_callback.page
new file mode 100644
index 00000000..d2ec5f63
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_callback.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.new_callback"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestObj*</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_new_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GDestroyNotify</api:type>
+ <api:name>notify</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_new_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestObj* regress_test_obj_new_callback (RegressTestCallbackUserData callback,
+ gpointer user_data,
+ GDestroyNotify notify);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>notify</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_from_file.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_from_file.page
new file mode 100644
index 00000000..a77e915a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.new_from_file.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.new_from_file"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestObj*</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_new_from_file</api:name>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_new_from_file</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestObj* regress_test_obj_new_from_file (const char* x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.null_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.null_out.page
new file mode 100644
index 00000000..c86b4b21
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.null_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.null_out"
+ 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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_null_out</api:name>
+ <api:arg>
+ <api:type>RegressTestObj**</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_null_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_null_out (RegressTestObj** obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.page
new file mode 100644
index 00000000..42f26db1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestObj</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.set_bare.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.set_bare.page
new file mode 100644
index 00000000..160b8d2b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.set_bare.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.set_bare"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_set_bare</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject*</api:type>
+ <api:name>bare</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_set_bare</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_set_bare (RegressTestObj* obj,
+ GObject* bare);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>bare</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_inout_param.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_inout_param.page
new file mode 100644
index 00000000..333d170a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_inout_param.page
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_inout_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_inout_param</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gdouble</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_skip_inout_param</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_obj_skip_inout_param (RegressTestObj* obj,
+ gint a,
+ gint* out_b,
+ gdouble c,
+ gint* inout_d,
+ gint* out_sum,
+ gint num1,
+ gint num2);
+</code></synopsis>
+
+
+ <p>Check that the out value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/>.</p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>TRUE</code> if the call succeeds, <code>FALSE</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_out_param.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_out_param.page
new file mode 100644
index 00000000..1df6c18e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_out_param.page
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_out_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_out_param</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gdouble</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_skip_out_param</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_obj_skip_out_param (RegressTestObj* obj,
+ gint a,
+ gint* out_b,
+ gdouble c,
+ gint* inout_d,
+ gint* out_sum,
+ gint num1,
+ gint num2);
+</code></synopsis>
+
+
+ <p>Check that the out value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/>.</p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>TRUE</code> if the call succeeds, <code>FALSE</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_param.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_param.page
new file mode 100644
index 00000000..deca81bd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_param.page
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_param</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gdouble</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_skip_param</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_obj_skip_param (RegressTestObj* obj,
+ gint a,
+ gint* out_b,
+ gdouble c,
+ gint* inout_d,
+ gint* out_sum,
+ gint num1,
+ gint num2);
+</code></synopsis>
+
+
+ <p>Check that a parameter is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/>.</p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>TRUE</code> if the call succeeds, <code>FALSE</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val.page
new file mode 100644
index 00000000..47402c99
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val.page
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_return_val"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_return_val</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gdouble</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint*</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_skip_return_val</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_obj_skip_return_val (RegressTestObj* obj,
+ gint a,
+ gint* out_b,
+ gdouble c,
+ gint* inout_d,
+ gint* out_sum,
+ gint num1,
+ gint num2);
+</code></synopsis>
+
+
+ <p>Check that the return value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>a <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>A return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>TRUE</code> if the call succeeds, <code>FALSE</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val_no_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val_no_out.page
new file mode 100644
index 00000000..b590de21
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.skip_return_val_no_out.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_return_val_no_out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_return_val_no_out</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_skip_return_val_no_out</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_obj_skip_return_val_no_out (RegressTestObj* obj,
+ gint a);
+</code></synopsis>
+
+
+ <p>Check that the return value is skipped. Succeed if a is nonzero, otherwise
+raise an error.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>a <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>TRUE</code> if the call succeeds, <code>FALSE</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method.page
new file mode 100644
index 00000000..8e5c9b1e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.static_method"
+ 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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>double</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_static_method</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_static_method</title>
+
+<synopsis><code mime="text/x-csrc">
+double regress_test_obj_static_method (int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method_callback.page
new file mode 100644
index 00000000..8058ac01
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.static_method_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.static_method_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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_static_method_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_static_method_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_static_method_callback (RegressTestCallback 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-C-expected/Regress.TestObj.torture_signature_0.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.torture_signature_0.page
new file mode 100644
index 00000000..3e2fb61f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.torture_signature_0.page
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.torture_signature_0"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_torture_signature_0</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>double*</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_torture_signature_0</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_obj_torture_signature_0 (RegressTestObj* obj,
+ int x,
+ double* y,
+ int* z,
+ const char* foo,
+ int* q,
+ guint m);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.torture_signature_1.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.torture_signature_1.page
new file mode 100644
index 00000000..37e1ad21
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.torture_signature_1.page
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.torture_signature_1"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_torture_signature_1</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>double*</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_obj_torture_signature_1</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_obj_torture_signature_1 (RegressTestObj* obj,
+ int x,
+ double* y,
+ int* z,
+ const char* foo,
+ int* q,
+ guint m);
+</code></synopsis>
+
+
+ <p>This function throws an error if m is odd.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved1.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved1.page
new file mode 100644
index 00000000..3aec1433
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved1.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObjClass._regress_reserved1"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestObjClass._regress_reserved1</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved2.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved2.page
new file mode 100644
index 00000000..8bfc4d19
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass._regress_reserved2.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObjClass._regress_reserved2"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestObjClass._regress_reserved2</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.allow_none_vfunc.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.allow_none_vfunc.page
new file mode 100644
index 00000000..b45f05d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.allow_none_vfunc.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObjClass.allow_none_vfunc"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestObjClass.allow_none_vfunc</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.matrix.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.matrix.page
new file mode 100644
index 00000000..312b198e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.matrix.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObjClass.matrix"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestObjClass.matrix</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.page
new file mode 100644
index 00000000..86db7488
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObjClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObjClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestObjClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.page
new file mode 100644
index 00000000..7d2d53ba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestOtherError"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestOtherError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.quark.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.quark.page
new file mode 100644
index 00000000..4ed8d539
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestOtherError.quark.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestOtherError.quark"
+ 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>GQuark</api:type>
+ </api:returns>
+ <api:name>regress_test_unconventional_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_unconventional_error_quark</title>
+
+<synopsis><code mime="text/x-csrc">
+GQuark regress_test_unconventional_error_quark (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateEnum.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateEnum.page
new file mode 100644
index 00000000..66b477d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateEnum.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestPrivateEnum"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestPrivateEnum</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateStruct.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateStruct.page
new file mode 100644
index 00000000..5d55c80e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestPrivateStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestPrivateStruct"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestPrivateStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceEnum.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceEnum.page
new file mode 100644
index 00000000..44c3cadb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceEnum.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceEnum"
+ type="guide"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestReferenceEnum</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.const_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.const_return.page
new file mode 100644
index 00000000..628186a0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.const_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.const_return"
+ 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="Regress.TestSimpleBoxedA" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>const RegressTestSimpleBoxedA*</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_const_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_simple_boxed_a_const_return</title>
+
+<synopsis><code mime="text/x-csrc">
+const RegressTestSimpleBoxedA* regress_test_simple_boxed_a_const_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.copy.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.copy.page
new file mode 100644
index 00000000..4e7cf0e8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.copy.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestSimpleBoxedA*</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_copy</api:name>
+ <api:arg>
+ <api:type>RegressTestSimpleBoxedA*</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_simple_boxed_a_copy</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestSimpleBoxedA* regress_test_simple_boxed_a_copy (RegressTestSimpleBoxedA* a);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.equals.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.equals.page
new file mode 100644
index 00000000..5e5dcbda
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.equals.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.equals"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_equals</api:name>
+ <api:arg>
+ <api:type>RegressTestSimpleBoxedA*</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestSimpleBoxedA*</api:type>
+ <api:name>other_a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_simple_boxed_a_equals</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_simple_boxed_a_equals (RegressTestSimpleBoxedA* a,
+ RegressTestSimpleBoxedA* other_a);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+
+</item>
+<item>
+<title><code>other_a</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.page
new file mode 100644
index 00000000..08f968fe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedA.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.copy.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.copy.page
new file mode 100644
index 00000000..fd593150
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.copy.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedB.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestSimpleBoxedB*</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_b_copy</api:name>
+ <api:arg>
+ <api:type>RegressTestSimpleBoxedB*</api:type>
+ <api:name>b</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_simple_boxed_b_copy</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestSimpleBoxedB* regress_test_simple_boxed_b_copy (RegressTestSimpleBoxedB* b);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>b</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.page
new file mode 100644
index 00000000..2ed2304d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleBoxedB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedB"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleBoxedB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleCallback.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleCallback.page
new file mode 100644
index 00000000..f8157820
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSimpleCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.clone.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.clone.page
new file mode 100644
index 00000000..9b4d353b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.clone.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA.clone"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_a_clone</api:name>
+ <api:arg>
+ <api:type>RegressTestStructA*</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestStructA*</api:type>
+ <api:name>a_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_struct_a_clone</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_struct_a_clone (RegressTestStructA* a,
+ RegressTestStructA* a_out);
+</code></synopsis>
+
+
+ <p>Make a copy of a RegressTestStructA</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>the structure</p>
+</item>
+<item>
+<title><code>a_out</code></title>
+<p>the cloned structure</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.page
new file mode 100644
index 00000000..22a1e907
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructA</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.parse.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.parse.page
new file mode 100644
index 00000000..befbd7ce
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructA.parse.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA.parse"
+ 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="Regress.TestStructA" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_a_parse</api:name>
+ <api:arg>
+ <api:type>RegressTestStructA*</api:type>
+ <api:name>a_out</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const gchar*</api:type>
+ <api:name>string</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_struct_a_parse</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_struct_a_parse (RegressTestStructA* a_out,
+ const gchar* string);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>a_out</code></title>
+<p>the structure that is to be filled</p>
+</item>
+<item>
+<title><code>string</code></title>
+<p>ignored</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.clone.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.clone.page
new file mode 100644
index 00000000..b3a9f993
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.clone.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructB.clone"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_b_clone</api:name>
+ <api:arg>
+ <api:type>RegressTestStructB*</api:type>
+ <api:name>b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestStructB*</api:type>
+ <api:name>b_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_struct_b_clone</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_struct_b_clone (RegressTestStructB* b,
+ RegressTestStructB* b_out);
+</code></synopsis>
+
+
+ <p>Make a copy of a RegressTestStructB</p>
+
+
+
+
+<terms>
+<item>
+<title><code>b</code></title>
+<p>the structure</p>
+</item>
+<item>
+<title><code>b_out</code></title>
+<p>the cloned structure</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.page
new file mode 100644
index 00000000..4ed2b54c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructB"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructC.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructC.page
new file mode 100644
index 00000000..f208fcd8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructC.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructC"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructC</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructD.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructD.page
new file mode 100644
index 00000000..f791d70b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructD.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructD"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructD</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructE.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructE.page
new file mode 100644
index 00000000..ccc8bbd8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructE.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructE"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructE</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructE__some_union__union.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructE__some_union__union.page
new file mode 100644
index 00000000..3b81e621
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructE__some_union__union.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructE__some_union__union"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructE__some_union__union</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructF.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructF.page
new file mode 100644
index 00000000..74e8483f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructF.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructF"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructF</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.frob.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.frob.page
new file mode 100644
index 00000000..7d5ed650
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.frob.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructFixedArray.frob"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructFixedArray" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_fixed_array_frob</api:name>
+ <api:arg>
+ <api:type>RegressTestStructFixedArray*</api:type>
+ <api:name>str</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_struct_fixed_array_frob</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray* str);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>str</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.page
new file mode 100644
index 00000000..f33eed98
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestStructFixedArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructFixedArray"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructFixedArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.instance_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.instance_method.page
new file mode 100644
index 00000000..fa401f55
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.instance_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.instance_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_instance_method</api:name>
+ <api:arg>
+ <api:type>RegressTestSubObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_sub_obj_instance_method</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_sub_obj_instance_method (RegressTestSubObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.new.page
new file mode 100644
index 00000000..fbff9d9f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestObj*</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_sub_obj_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestObj* regress_test_sub_obj_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.page
new file mode 100644
index 00000000..7c6cb98d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.page
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestSubObj</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestObj</code>
+ <item>
+ <code>Regress.TestSubObj</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.unset_bare.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.unset_bare.page
new file mode 100644
index 00000000..5497c250
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObj.unset_bare.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.unset_bare"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_unset_bare</api:name>
+ <api:arg>
+ <api:type>RegressTestSubObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_sub_obj_unset_bare</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_sub_obj_unset_bare (RegressTestSubObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObjClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObjClass.page
new file mode 100644
index 00000000..89543341
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestSubObjClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObjClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestSubObjClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestTypeGUInt64.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestTypeGUInt64.page
new file mode 100644
index 00000000..e0a7bc09
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestTypeGUInt64.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestTypeGUInt64"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestTypeGUInt64</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x-testbool.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x-testbool.page
new file mode 100644
index 00000000..47ad7bed
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x-testbool.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x-testbool"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="property" type="guide"/>
+ <title type="link" role="topic">testbool</title>
+
+ </info>
+ <title>Regress.TestWi8021x:testbool</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.get_testbool.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.get_testbool.page
new file mode 100644
index 00000000..9153172c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.get_testbool.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.get_testbool"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_get_testbool</api:name>
+ <api:arg>
+ <api:type>RegressTestWi8021x*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_wi_802_1x_get_testbool</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_wi_802_1x_get_testbool (RegressTestWi8021x* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.new.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.new.page
new file mode 100644
index 00000000..7afe8b1b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.new.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>RegressTestWi8021x*</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_wi_802_1x_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestWi8021x* regress_test_wi_802_1x_new (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.page
new file mode 100644
index 00000000..29658734
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestWi8021x</title>
+
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestWi8021x</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-csrc"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.set_testbool.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.set_testbool.page
new file mode 100644
index 00000000..bad3b1d0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.set_testbool.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.set_testbool"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_set_testbool</api:name>
+ <api:arg>
+ <api:type>RegressTestWi8021x*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gboolean</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_wi_802_1x_set_testbool</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_wi_802_1x_set_testbool (RegressTestWi8021x* obj,
+ gboolean v);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>v</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.static_method.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.static_method.page
new file mode 100644
index 00000000..c0e98dfb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021x.static_method.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.static_method"
+ 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="Regress.TestWi8021x" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_static_method</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_wi_802_1x_static_method</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_wi_802_1x_static_method (int x);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021xClass.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021xClass.page
new file mode 100644
index 00000000..59593031
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestWi8021xClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021xClass"
+ type="topic"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestWi8021xClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.VaListAlias.page b/tests/scanner/Regress-1.0-C-expected/Regress.VaListAlias.page
new file mode 100644
index 00000000..6b7d031c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.VaListAlias.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.VaListAlias"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.VaListAlias</title>
+
+
+
+ <p>Typedef'd va_list for additional reasons</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.aliased_caller_alloc.page b/tests/scanner/Regress-1.0-C-expected/Regress.aliased_caller_alloc.page
new file mode 100644
index 00000000..769da09a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.aliased_caller_alloc.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.aliased_caller_alloc"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_aliased_caller_alloc</api:name>
+ <api:arg>
+ <api:type>RegressAliasedTestBoxed*</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_aliased_caller_alloc</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_aliased_caller_alloc (RegressAliasedTestBoxed* boxed);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_attribute_func.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_attribute_func.page
new file mode 100644
index 00000000..dbf8b828
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_attribute_func.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_attribute_func"
+ 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>gint</api:type>
+ </api:returns>
+ <api:name>regress_annotation_attribute_func</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const gchar*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_attribute_func</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_annotation_attribute_func (RegressAnnotationObject* object,
+ const gchar* data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>A <link xref="Regress.AnnotationObject"/>.</p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>Some data.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>The return value.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_custom_destroy.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_custom_destroy.page
new file mode 100644
index 00000000..2a474a5e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_custom_destroy.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_custom_destroy"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_custom_destroy</api:name>
+ <api:arg>
+ <api:type>RegressAnnotationCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressAnnotationNotifyFunc</api:type>
+ <api:name>destroy</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_custom_destroy</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_custom_destroy (RegressAnnotationCallback callback,
+ RegressAnnotationNotifyFunc destroy,
+ gpointer data);
+</code></synopsis>
+
+
+ <p>Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+<p>Destroy notification</p>
+</item>
+<item>
+<title><code>destroy</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_get_source_file.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_get_source_file.page
new file mode 100644
index 00000000..a76bade1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_get_source_file.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_get_source_file"
+ 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>char*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_get_source_file</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_get_source_file</title>
+
+<synopsis><code mime="text/x-csrc">
+char* regress_annotation_get_source_file (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>Source file</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_init.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_init.page
new file mode 100644
index 00000000..d2f479a1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_init.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_init"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_init</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>argc</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>char***</api:type>
+ <api:name>argv</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_init</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_init (int* argc,
+ char*** argv);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>argc</code></title>
+<p>The number of args.</p>
+</item>
+<item>
+<title><code>argv</code></title>
+<p>The arguments.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_invalid_regress_annotation.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_invalid_regress_annotation.page
new file mode 100644
index 00000000..e0399cd0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_invalid_regress_annotation.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_invalid_regress_annotation"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_invalid_regress_annotation</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_invalid_regress_annotation</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_invalid_regress_annotation (int foo);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>foo</code></title>
+<p>some text (e.g. example) or else</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_ptr_array.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_ptr_array.page
new file mode 100644
index 00000000..3b83de9a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_ptr_array.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_ptr_array"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_ptr_array</api:name>
+ <api:arg>
+ <api:type>GValue*</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_ptr_array</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_ptr_array (GValue* array);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+<p>the array</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_array.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_array.page
new file mode 100644
index 00000000..d13fee56
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_array.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_return_array"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_return_array</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_return_array</title>
+
+<synopsis><code mime="text/x-csrc">
+char** regress_annotation_return_array (int* length);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>length</code></title>
+<p>Number of return values</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>The return value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_filename.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_filename.page
new file mode 100644
index 00000000..2e484581
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_return_filename.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_return_filename"
+ 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>gchar*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_return_filename</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_return_filename</title>
+
+<synopsis><code mime="text/x-csrc">
+gchar* regress_annotation_return_filename (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>An annotated filename</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_set_source_file.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_set_source_file.page
new file mode 100644
index 00000000..84c616f9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_set_source_file.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_set_source_file"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_set_source_file</api:name>
+ <api:arg>
+ <api:type>char*</api:type>
+ <api:name>fname</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_set_source_file</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_set_source_file (char* fname);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>fname</code></title>
+<p>Source file</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_space_after_comment_bug631690.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_space_after_comment_bug631690.page
new file mode 100644
index 00000000..39cd529d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_space_after_comment_bug631690.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_space_after_comment_bug631690"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_space_after_comment_bug631690</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_space_after_comment_bug631690</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_space_after_comment_bug631690 (void);
+</code></synopsis>
+
+
+ <p>Explicitly test having a space after the ** here.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_array_length.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_array_length.page
new file mode 100644
index 00000000..5d3813d7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_array_length.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_array_length"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_array_length</api:name>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>n_properties</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>utf8*</api:type>
+ <api:name>properties</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_string_array_length</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_string_array_length (guint n_properties,
+ utf8* properties);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_properties</code></title>
+
+</item>
+<item>
+<title><code>properties</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated.page
new file mode 100644
index 00000000..8c685547
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_zero_terminated"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_zero_terminated</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_string_zero_terminated</title>
+
+<synopsis><code mime="text/x-csrc">
+char** regress_annotation_string_zero_terminated (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>The return value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated_out.page
new file mode 100644
index 00000000..13eb1ca1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_string_zero_terminated_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_zero_terminated_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_zero_terminated_out</api:name>
+ <api:arg>
+ <api:type>char***</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_string_zero_terminated_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_string_zero_terminated_out (char*** out);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_test_parsing_bug630862.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_test_parsing_bug630862.page
new file mode 100644
index 00000000..6fc0ad4b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_test_parsing_bug630862.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_test_parsing_bug630862"
+ 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>GObject*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_test_parsing_bug630862</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_test_parsing_bug630862</title>
+
+<synopsis><code mime="text/x-csrc">
+GObject* regress_annotation_test_parsing_bug630862 (void);
+</code></synopsis>
+
+
+ <p>See https://bugzilla.gnome.org/show_bug.cgi?id=630862</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>An object, note the colon:in here</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_transfer_floating.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_transfer_floating.page
new file mode 100644
index 00000000..4db50ca2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_transfer_floating.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_transfer_floating"
+ 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>GObject*</api:type>
+ </api:returns>
+ <api:name>regress_annotation_transfer_floating</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_transfer_floating</title>
+
+<synopsis><code mime="text/x-csrc">
+GObject* regress_annotation_transfer_floating (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>A floating object</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.annotation_versioned.page b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_versioned.page
new file mode 100644
index 00000000..f12a3cf8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.annotation_versioned.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_versioned"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_versioned</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_annotation_versioned</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_annotation_versioned (void);
+</code></synopsis>
+
+
+
+
+
+ <p>Since 0.6</p>
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.atest_error_quark.page b/tests/scanner/Regress-1.0-C-expected/Regress.atest_error_quark.page
new file mode 100644
index 00000000..75bc68c6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.atest_error_quark.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.atest_error_quark"
+ 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>GQuark</api:type>
+ </api:returns>
+ <api:name>regress_atest_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_atest_error_quark</title>
+
+<synopsis><code mime="text/x-csrc">
+GQuark regress_atest_error_quark (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_async_ready_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_async_ready_callback.page
new file mode 100644
index 00000000..eadb6136
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_async_ready_callback.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_async_ready_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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_async_ready_callback</api:name>
+ <api:arg>
+ <api:type>GCancellable*</api:type>
+ <api:name>cancellable</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GAsyncReadyCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_async_ready_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_async_ready_callback (GCancellable* cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>cancellable</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_destroy_notify_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_destroy_notify_callback.page
new file mode 100644
index 00000000..b37a287c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_destroy_notify_callback.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_destroy_notify_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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_destroy_notify_callback</api:name>
+ <api:arg>
+ <api:type>RegressFooCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GDestroyNotify</api:type>
+ <api:name>destroy</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_destroy_notify_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_destroy_notify_callback (RegressFooCallback callback,
+ gpointer data,
+ GDestroyNotify destroy);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>destroy</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_init.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_init.page
new file mode 100644
index 00000000..f035be53
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_init.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_init"
+ 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>gint</api:type>
+ </api:returns>
+ <api:name>regress_foo_init</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_init</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_foo_init (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_method_external_references.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_method_external_references.page
new file mode 100644
index 00000000..5eef0df9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_method_external_references.page
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_method_external_references"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_method_external_references</api:name>
+ <api:arg>
+ <api:type>UtilityObject*</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>UtilityEnumType</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>UtilityFlagType</api:type>
+ <api:name>f</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>UtilityStruct</api:type>
+ <api:name>s</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_method_external_references</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_method_external_references (UtilityObject* object,
+ UtilityEnumType e,
+ UtilityFlagType f,
+ UtilityStruct s);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>f</code></title>
+
+</item>
+<item>
+<title><code>s</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_not_a_constructor_new.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_not_a_constructor_new.page
new file mode 100644
index 00000000..63d57662
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_not_a_constructor_new.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_not_a_constructor_new"
+ 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>RegressFooObject*</api:type>
+ </api:returns>
+ <api:name>regress_foo_not_a_constructor_new</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_not_a_constructor_new</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressFooObject* regress_foo_not_a_constructor_new (void);
+</code></synopsis>
+
+
+ <p>This should be scanned as a top-level function, and shouldn't cause
+a "Can't find matching type for constructor" warning.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_skip_me.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_skip_me.page
new file mode 100644
index 00000000..96773b38
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_skip_me.page
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_skip_me"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_skip_me</api:name>
+ <api:arg>
+ <api:type>RegressFooSkippable</api:type>
+ <api:name>fs</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_skip_me</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_skip_me (RegressFooSkippable fs);
+</code></synopsis>
+
+
+ <p>Does something that's only interesting from C and should not be
+exposed to language bindings.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>fs</code></title>
+<p>a <link xref="Regress.FooSkippable"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant.page
new file mode 100644
index 00000000..41e570ff
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_some_variant"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_some_variant</api:name>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>va_list</api:type>
+ <api:name>args</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_some_variant</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_some_variant (guint x,
+ va_list args);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>args</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant_ptr.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant_ptr.page
new file mode 100644
index 00000000..81483f1a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_some_variant_ptr.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_some_variant_ptr"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_some_variant_ptr</api:name>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>va_list*</api:type>
+ <api:name>args</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_some_variant_ptr</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_some_variant_ptr (guint x,
+ va_list* args);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>args</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_array.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_array.page
new file mode 100644
index 00000000..810eba9a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_array.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_array"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_array</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_array</title>
+
+<synopsis><code mime="text/x-csrc">
+GArray* regress_foo_test_array (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_param.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_param.page
new file mode 100644
index 00000000..57ca7b34
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_param.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_char_param"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_char_param</api:name>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_const_char_param</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_const_char_param (const char* param);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_retval.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_retval.page
new file mode 100644
index 00000000..839bee2c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_char_retval.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_char_retval"
+ 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>const char*</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_char_retval</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_const_char_retval</title>
+
+<synopsis><code mime="text/x-csrc">
+const char* regress_foo_test_const_char_retval (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_param.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_param.page
new file mode 100644
index 00000000..00a1e075
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_param.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_struct_param"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_struct_param</api:name>
+ <api:arg>
+ <api:type>const RegressFooStruct*</api:type>
+ <api:name>param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_const_struct_param</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_const_struct_param (const RegressFooStruct* param);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_retval.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_retval.page
new file mode 100644
index 00000000..527b8ea1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_const_struct_retval.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_struct_retval"
+ 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>const RegressFooStruct*</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_struct_retval</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_const_struct_retval</title>
+
+<synopsis><code mime="text/x-csrc">
+const RegressFooStruct* regress_foo_test_const_struct_retval (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array.page
new file mode 100644
index 00000000..17bf08a5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_string_array"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_string_array</api:name>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_string_array</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_string_array (char** array);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array_with_g.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array_with_g.page
new file mode 100644
index 00000000..91d5824c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_string_array_with_g.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_string_array_with_g"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_string_array_with_g</api:name>
+ <api:arg>
+ <api:type>gchar**</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_string_array_with_g</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_string_array_with_g (gchar** array);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_qualifier.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_qualifier.page
new file mode 100644
index 00000000..8e023665
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_qualifier.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_unsigned_qualifier"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_unsigned_qualifier</api:name>
+ <api:arg>
+ <api:type>unsigned int</api:type>
+ <api:name>unsigned_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_unsigned_qualifier</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_unsigned_qualifier (unsigned int unsigned_param);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>unsigned_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_type.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_type.page
new file mode 100644
index 00000000..04eec058
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_unsigned_type.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_unsigned_type"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_unsigned_type</api:name>
+ <api:arg>
+ <api:type>unsigned</api:type>
+ <api:name>unsigned_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_unsigned_type</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_unsigned_type (unsigned unsigned_param);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>unsigned_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback.page
new file mode 100644
index 00000000..210f53ca
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_varargs_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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_varargs_callback</api:name>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressFooVarargsCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_varargs_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_varargs_callback (gint i,
+ RegressFooVarargsCallback callback);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback2.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback2.page
new file mode 100644
index 00000000..1d49d318
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback2.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_varargs_callback2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_varargs_callback2</api:name>
+ <api:arg>
+ <api:type>RegressFooVarargsCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_varargs_callback2</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_varargs_callback2 (RegressFooVarargsCallback 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-C-expected/Regress.foo_test_varargs_callback3.page b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback3.page
new file mode 100644
index 00000000..19c19326
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.foo_test_varargs_callback3.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_varargs_callback3"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_varargs_callback3</api:name>
+ <api:arg>
+ <api:type>RegressFooVarargsCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressFooVarargsCallback</api:type>
+ <api:name>callback2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_foo_test_varargs_callback3</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_foo_test_varargs_callback3 (RegressFooVarargsCallback callback,
+ RegressFooVarargsCallback callback2);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>callback2</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.func_obj_null_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.func_obj_null_in.page
new file mode 100644
index 00000000..40093e2c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.func_obj_null_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.func_obj_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_func_obj_null_in</api:name>
+ <api:arg>
+ <api:type>RegressTestObj*</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_func_obj_null_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_func_obj_null_in (RegressTestObj* obj);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.global_get_flags_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.global_get_flags_out.page
new file mode 100644
index 00000000..a43baa0c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.global_get_flags_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.global_get_flags_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_global_get_flags_out</api:name>
+ <api:arg>
+ <api:type>RegressTestFlags*</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_global_get_flags_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_global_get_flags_out (RegressTestFlags* v);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>v</code></title>
+<p>A flags value</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.has_parameter_named_attrs.page b/tests/scanner/Regress-1.0-C-expected/Regress.has_parameter_named_attrs.page
new file mode 100644
index 00000000..6fd4e6b9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.has_parameter_named_attrs.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.has_parameter_named_attrs"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_has_parameter_named_attrs</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer*</api:type>
+ <api:name>attributes</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_has_parameter_named_attrs</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_has_parameter_named_attrs (int foo,
+ gpointer* attributes);
+</code></synopsis>
+
+
+ <p>This test case mirrors GnomeKeyringPasswordSchema from
+libgnome-keyring.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>foo</code></title>
+<p>some int</p>
+</item>
+<item>
+<title><code>attributes</code></title>
+<p>list of attributes</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.introspectable_via_alias.page b/tests/scanner/Regress-1.0-C-expected/Regress.introspectable_via_alias.page
new file mode 100644
index 00000000..4d30ec54
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.introspectable_via_alias.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.introspectable_via_alias"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_introspectable_via_alias</api:name>
+ <api:arg>
+ <api:type>RegressPtrArrayAlias*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_introspectable_via_alias</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_introspectable_via_alias (RegressPtrArrayAlias* data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.not_introspectable_via_alias.page b/tests/scanner/Regress-1.0-C-expected/Regress.not_introspectable_via_alias.page
new file mode 100644
index 00000000..6158db44
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.not_introspectable_via_alias.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.not_introspectable_via_alias"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_not_introspectable_via_alias</api:name>
+ <api:arg>
+ <api:type>RegressVaListAlias</api:type>
+ <api:name>ok</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_not_introspectable_via_alias</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_not_introspectable_via_alias (RegressVaListAlias ok);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ok</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.random_function_with_skipped_structure.page b/tests/scanner/Regress-1.0-C-expected/Regress.random_function_with_skipped_structure.page
new file mode 100644
index 00000000..33049796
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.random_function_with_skipped_structure.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.random_function_with_skipped_structure"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_random_function_with_skipped_structure</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressSkippedStructure*</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>double</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_random_function_with_skipped_structure</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_random_function_with_skipped_structure (int x,
+ RegressSkippedStructure* foo,
+ double v);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>v</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.set_abort_on_error.page b/tests/scanner/Regress-1.0-C-expected/Regress.set_abort_on_error.page
new file mode 100644
index 00000000..2853609a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.set_abort_on_error.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.set_abort_on_error"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_set_abort_on_error</api:name>
+ <api:arg>
+ <api:type>gboolean</api:type>
+ <api:name>abort_on_error</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_set_abort_on_error</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_set_abort_on_error (gboolean abort_on_error);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>abort_on_error</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_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_callback.page
new file mode 100644
index 00000000..ee1afcd3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_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_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackArray</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_array_callback (RegressTestCallbackArray 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-C-expected/Regress.test_array_fixed_out_objects.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_out_objects.page
new file mode 100644
index 00000000..81109158
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_out_objects.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_out_objects"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_out_objects</api:name>
+ <api:arg>
+ <api:type>RegressTestObj***</api:type>
+ <api:name>objs</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_fixed_out_objects</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_array_fixed_out_objects (RegressTestObj*** objs);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>objs</code></title>
+<p>An array of <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_in.page
new file mode 100644
index 00000000..21c6d9f3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_in"
+ 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_fixed_size_int_in</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_fixed_size_int_in</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_array_fixed_size_int_in (int* ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>a list of 5 integers</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the sum of the items in <code>ints</code></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_out.page
new file mode 100644
index 00000000..3fa5c4e7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_size_int_out</api:name>
+ <api:arg>
+ <api:type>int**</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_fixed_size_int_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_array_fixed_size_int_out (int** ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>a list of 5 integers ranging from 0 to 4</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_return.page
new file mode 100644
index 00000000..913dc0d6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_fixed_size_int_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_return"
+ 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_fixed_size_int_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_fixed_size_int_return</title>
+
+<synopsis><code mime="text/x-csrc">
+int* regress_test_array_fixed_size_int_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>a list of 5 integers ranging from 0 to 4</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint16_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint16_in.page
new file mode 100644
index 00000000..7d05b00c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint16_in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint16_in"
+ 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_gint16_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint16*</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_gint16_in</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_array_gint16_in (int n_ints,
+ gint16* ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint32_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint32_in.page
new file mode 100644
index 00000000..c5eee2de
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint32_in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint32_in"
+ 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>gint32</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gint32_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint32*</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_gint32_in</title>
+
+<synopsis><code mime="text/x-csrc">
+gint32 regress_test_array_gint32_in (int n_ints,
+ gint32* ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint64_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint64_in.page
new file mode 100644
index 00000000..7a7701d6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint64_in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint64_in"
+ 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>gint64</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gint64_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint64*</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_gint64_in</title>
+
+<synopsis><code mime="text/x-csrc">
+gint64 regress_test_array_gint64_in (int n_ints,
+ gint64* ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint8_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint8_in.page
new file mode 100644
index 00000000..8e685793
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gint8_in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint8_in"
+ 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_gint8_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gint8*</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_gint8_in</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_array_gint8_in (int n_ints,
+ gint8* ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gtype_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gtype_in.page
new file mode 100644
index 00000000..0eab274d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_gtype_in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gtype_in"
+ 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>char*</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gtype_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_types</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GType*</api:type>
+ <api:name>types</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_gtype_in</title>
+
+<synopsis><code mime="text/x-csrc">
+char* regress_test_array_gtype_in (int n_types,
+ GType* types);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_types</code></title>
+
+</item>
+<item>
+<title><code>types</code></title>
+<p>List of types</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>string representation of provided types</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_full_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_full_out.page
new file mode 100644
index 00000000..5eb26d6b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_full_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_full_out"
+ 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_int_full_out</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_int_full_out</title>
+
+<synopsis><code mime="text/x-csrc">
+int* regress_test_array_int_full_out (int* len);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>len</code></title>
+<p>length of the returned array.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>a new array of integers.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_in.page
new file mode 100644
index 00000000..0caeee19
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_in"
+ 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_int_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_int_in</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_array_int_in (int n_ints,
+ int* ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_inout.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_inout.page
new file mode 100644
index 00000000..75d142a0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_inout.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_inout"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_inout</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int**</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_int_inout</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_array_int_inout (int* n_ints,
+ int** ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+<p>the length of <code>ints</code></p>
+</item>
+<item>
+<title><code>ints</code></title>
+<p>a list of integers whose items will be increased by 1, except the first that will be dropped</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_none_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_none_out.page
new file mode 100644
index 00000000..c4698cef
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_none_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_none_out"
+ 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_int_none_out</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_int_none_out</title>
+
+<synopsis><code mime="text/x-csrc">
+int* regress_test_array_int_none_out (int* len);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>len</code></title>
+<p>length of the returned array.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>a static array of integers.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_in.page
new file mode 100644
index 00000000..bab17416
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_in.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_null_in</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_int_null_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_array_int_null_in (int* arr,
+ int len);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+<item>
+<title><code>len</code></title>
+<p>length</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_out.page
new file mode 100644
index 00000000..cdf6bdaa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_null_out.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_null_out</api:name>
+ <api:arg>
+ <api:type>int**</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_int_null_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_array_int_null_out (int** arr,
+ int* len);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+<item>
+<title><code>len</code></title>
+<p>length</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_out.page
new file mode 100644
index 00000000..b88feb22
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_int_out.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_out</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int**</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_array_int_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_array_int_out (int* n_ints,
+ int** ints);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+<p>the length of <code>ints</code></p>
+</item>
+<item>
+<title><code>ints</code></title>
+<p>a list of 5 integers, from 0 to 4 in consecutive order</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_async_ready_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_async_ready_callback.page
new file mode 100644
index 00000000..bd65df08
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_async_ready_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_async_ready_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_async_ready_callback</api:name>
+ <api:arg>
+ <api:type>GAsyncReadyCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_async_ready_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_async_ready_callback (GAsyncReadyCallback 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-C-expected/Regress.test_boolean.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean.page
new file mode 100644
index 00000000..a444eb2a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean"
+ 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>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean</api:name>
+ <api:arg>
+ <api:type>gboolean</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boolean</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_boolean (gboolean in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_false.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_false.page
new file mode 100644
index 00000000..c96a2f9d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_false.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean_false"
+ 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>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean_false</api:name>
+ <api:arg>
+ <api:type>gboolean</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boolean_false</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_boolean_false (gboolean in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_true.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_true.page
new file mode 100644
index 00000000..1fb64c17
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_boolean_true.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean_true"
+ 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>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean_true</api:name>
+ <api:arg>
+ <api:type>gboolean</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_boolean_true</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_boolean_true (gboolean in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_full_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_full_return.page
new file mode 100644
index 00000000..8ada9d2c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_full_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_context_full_return"
+ 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>cairo_t*</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_context_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_cairo_context_full_return</title>
+
+<synopsis><code mime="text/x-csrc">
+cairo_t* regress_test_cairo_context_full_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_none_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_none_in.page
new file mode 100644
index 00000000..059afd52
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_context_none_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_context_none_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_context_none_in</api:name>
+ <api:arg>
+ <api:type>cairo_t*</api:type>
+ <api:name>context</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_cairo_context_none_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_cairo_context_none_in (cairo_t* context);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>context</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_out.page
new file mode 100644
index 00000000..c04a3454
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_full_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_full_out</api:name>
+ <api:arg>
+ <api:type>cairo_surface_t**</api:type>
+ <api:name>surface</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_cairo_surface_full_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_cairo_surface_full_out (cairo_surface_t** surface);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>surface</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_return.page
new file mode 100644
index 00000000..7d77ae66
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_full_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_full_return"
+ 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>cairo_surface_t*</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_cairo_surface_full_return</title>
+
+<synopsis><code mime="text/x-csrc">
+cairo_surface_t* regress_test_cairo_surface_full_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_in.page
new file mode 100644
index 00000000..67302474
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_none_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_none_in</api:name>
+ <api:arg>
+ <api:type>cairo_surface_t*</api:type>
+ <api:name>surface</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_cairo_surface_none_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_cairo_surface_none_in (cairo_surface_t* surface);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>surface</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_return.page
new file mode 100644
index 00000000..a5ac661c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_cairo_surface_none_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_none_return"
+ 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>cairo_surface_t*</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_none_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_cairo_surface_none_return</title>
+
+<synopsis><code mime="text/x-csrc">
+cairo_surface_t* regress_test_cairo_surface_none_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback.page
new file mode 100644
index 00000000..7d2f2c8d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_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_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_callback (RegressTestCallback 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-C-expected/Regress.test_callback_async.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_async.page
new file mode 100644
index 00000000..8c0a62e8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_async.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_async"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_async</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_callback_async</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_callback_async (RegressTestCallbackUserData callback,
+ gpointer user_data);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify.page
new file mode 100644
index 00000000..f7a5e56c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_destroy_notify"
+ 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_callback_destroy_notify</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GDestroyNotify</api:type>
+ <api:name>notify</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_callback_destroy_notify</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_callback_destroy_notify (RegressTestCallbackUserData callback,
+ gpointer user_data,
+ GDestroyNotify notify);
+</code></synopsis>
+
+
+ <p>Notified - callback persists until a DestroyNotify delegate
+is invoked.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>notify</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify_no_user_data.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify_no_user_data.page
new file mode 100644
index 00000000..3b162e28
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_destroy_notify_no_user_data.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_destroy_notify_no_user_data"
+ 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_callback_destroy_notify_no_user_data</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GDestroyNotify</api:type>
+ <api:name>notify</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_callback_destroy_notify_no_user_data</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_callback_destroy_notify_no_user_data (RegressTestCallbackUserData callback,
+ GDestroyNotify notify);
+</code></synopsis>
+
+
+ <p>Adds a scope notified callback with no user data. This can invoke an error
+condition in bindings which needs to be tested.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>notify</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_async.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_async.page
new file mode 100644
index 00000000..5cc15570
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_async.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_thaw_async"
+ 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_callback_thaw_async</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_callback_thaw_async</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_callback_thaw_async (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_notifications.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_notifications.page
new file mode 100644
index 00000000..bb0ed81a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_thaw_notifications.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_thaw_notifications"
+ 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_callback_thaw_notifications</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_callback_thaw_notifications</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_callback_thaw_notifications (void);
+</code></synopsis>
+
+
+ <p>Invokes all callbacks installed by #test_callback_destroy_notify(),
+adding up their return values, and removes them, invoking the
+corresponding destroy notfications.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>Sum of the return values of the invoked callbacks.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_user_data.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_user_data.page
new file mode 100644
index 00000000..3a98a475
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_callback_user_data.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_user_data"
+ 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_callback_user_data</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_callback_user_data</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_callback_user_data (RegressTestCallbackUserData callback,
+ gpointer user_data);
+</code></synopsis>
+
+
+ <p>Call - callback parameter persists for the duration of the method
+call and can be released on return.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_closure.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_closure.page
new file mode 100644
index 00000000..0fdad912
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_closure.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure"
+ 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_closure</api:name>
+ <api:arg>
+ <api:type>GClosure*</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_closure</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_closure (GClosure* closure);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_closure_one_arg.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_closure_one_arg.page
new file mode 100644
index 00000000..0708b5c8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_closure_one_arg.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure_one_arg"
+ 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_closure_one_arg</api:name>
+ <api:arg>
+ <api:type>GClosure*</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>arg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_closure_one_arg</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_closure_one_arg (GClosure* closure,
+ int arg);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+
+</item>
+<item>
+<title><code>arg</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_closure_variant.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_closure_variant.page
new file mode 100644
index 00000000..681b37ae
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_closure_variant.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure_variant"
+ 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>GVariant*</api:type>
+ </api:returns>
+ <api:name>regress_test_closure_variant</api:name>
+ <api:arg>
+ <api:type>GClosure*</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GVariant*</api:type>
+ <api:name>arg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_closure_variant</title>
+
+<synopsis><code mime="text/x-csrc">
+GVariant* regress_test_closure_variant (GClosure* closure,
+ GVariant* arg);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+<p>GClosure which takes one GVariant and returns a GVariant</p>
+</item>
+<item>
+<title><code>arg</code></title>
+<p>a GVariant passed as argument to <code>closure</code></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the return value of <code>closure</code></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_date_in_gvalue.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_date_in_gvalue.page
new file mode 100644
index 00000000..adb21f28
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_date_in_gvalue.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_date_in_gvalue"
+ 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>GValue*</api:type>
+ </api:returns>
+ <api:name>regress_test_date_in_gvalue</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_date_in_gvalue</title>
+
+<synopsis><code mime="text/x-csrc">
+GValue* regress_test_date_in_gvalue (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_def_error_quark.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_def_error_quark.page
new file mode 100644
index 00000000..7ad7eb06
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_def_error_quark.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_def_error_quark"
+ 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>GQuark</api:type>
+ </api:returns>
+ <api:name>regress_test_def_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_def_error_quark</title>
+
+<synopsis><code mime="text/x-csrc">
+GQuark regress_test_def_error_quark (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_double.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_double.page
new file mode 100644
index 00000000..f954fe83
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_double.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_double"
+ 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>gdouble</api:type>
+ </api:returns>
+ <api:name>regress_test_double</api:name>
+ <api:arg>
+ <api:type>gdouble</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_double</title>
+
+<synopsis><code mime="text/x-csrc">
+gdouble regress_test_double (gdouble in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_filename_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_filename_return.page
new file mode 100644
index 00000000..857e4da0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_filename_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_filename_return"
+ 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>GSList*</api:type>
+ </api:returns>
+ <api:name>regress_test_filename_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_filename_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GSList* regress_test_filename_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>list of strings</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_float.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_float.page
new file mode 100644
index 00000000..c395b048
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_float.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_float"
+ 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>gfloat</api:type>
+ </api:returns>
+ <api:name>regress_test_float</api:name>
+ <api:arg>
+ <api:type>gfloat</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_float</title>
+
+<synopsis><code mime="text/x-csrc">
+gfloat regress_test_float (gfloat in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_garray_container_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_garray_container_return.page
new file mode 100644
index 00000000..f17cdd94
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_garray_container_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_garray_container_return"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_test_garray_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_garray_container_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GPtrArray* regress_test_garray_container_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_garray_full_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_garray_full_return.page
new file mode 100644
index 00000000..b127ed7f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_garray_full_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_garray_full_return"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_test_garray_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_garray_full_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GPtrArray* regress_test_garray_full_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gerror_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gerror_callback.page
new file mode 100644
index 00000000..1a5f54cc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gerror_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gerror_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gerror_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_gerror_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_gerror_callback (RegressTestCallbackGError 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-C-expected/Regress.test_ghash_container_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_container_return.page
new file mode 100644
index 00000000..d465113e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_container_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_container_return"
+ 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>GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_container_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GHashTable* regress_test_ghash_container_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_everything_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_everything_return.page
new file mode 100644
index 00000000..616432ae
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_everything_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_everything_return"
+ 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>GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_everything_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GHashTable* regress_test_ghash_everything_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_in.page
new file mode 100644
index 00000000..7603f2aa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_in.page
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_gvalue_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_gvalue_in</api:name>
+ <api:arg>
+ <api:type>GHashTable*</api:type>
+ <api:name>hash</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_gvalue_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_ghash_gvalue_in (GHashTable* hash);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>hash</code></title>
+<p>the hash table returned by
+<link xref="Regress.test_ghash_gvalue_return"/>.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_return.page
new file mode 100644
index 00000000..2e739c81
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_gvalue_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_gvalue_return"
+ 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>GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_gvalue_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_gvalue_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GHashTable* regress_test_ghash_gvalue_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return.page
new file mode 100644
index 00000000..6b53197b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nested_everything_return"
+ 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>GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nested_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_nested_everything_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GHashTable* regress_test_ghash_nested_everything_return (void);
+</code></synopsis>
+
+
+ <p>Specify nested parameterized types directly with the (type ) annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return2.page
new file mode 100644
index 00000000..0c780b5e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nested_everything_return2.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nested_everything_return2"
+ 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>GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nested_everything_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_nested_everything_return2</title>
+
+<synopsis><code mime="text/x-csrc">
+GHashTable* regress_test_ghash_nested_everything_return2 (void);
+</code></synopsis>
+
+
+ <p>Another way of specifying nested parameterized types: using the
+element-type annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in.page
new file mode 100644
index 00000000..8c457ad2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_in</api:name>
+ <api:arg>
+ <api:type>const GHashTable*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_nothing_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_ghash_nothing_in (const GHashTable* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in2.page
new file mode 100644
index 00000000..a56ad65b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_in2.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_in2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_in2</api:name>
+ <api:arg>
+ <api:type>GHashTable*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_nothing_in2</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_ghash_nothing_in2 (GHashTable* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return.page
new file mode 100644
index 00000000..c258ee02
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_return"
+ 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>const GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_nothing_return</title>
+
+<synopsis><code mime="text/x-csrc">
+const GHashTable* regress_test_ghash_nothing_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return2.page
new file mode 100644
index 00000000..d2217447
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_nothing_return2.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_return2"
+ 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>GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_nothing_return2</title>
+
+<synopsis><code mime="text/x-csrc">
+GHashTable* regress_test_ghash_nothing_return2 (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_in.page
new file mode 100644
index 00000000..a538b442
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_in</api:name>
+ <api:arg>
+ <api:type>const GHashTable*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_null_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_ghash_null_in (const GHashTable* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_out.page
new file mode 100644
index 00000000..323469c6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_out</api:name>
+ <api:arg>
+ <api:type>const GHashTable**</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_null_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_ghash_null_out (const GHashTable** out);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_return.page
new file mode 100644
index 00000000..03461fd9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ghash_null_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_return"
+ 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>const GHashTable*</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_ghash_null_return</title>
+
+<synopsis><code mime="text/x-csrc">
+const GHashTable* regress_test_ghash_null_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_container_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_container_return.page
new file mode 100644
index 00000000..32a3c3a6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_container_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_container_return"
+ 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>GList*</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_container_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GList* regress_test_glist_container_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_everything_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_everything_return.page
new file mode 100644
index 00000000..6de1a9c8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_everything_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_everything_return"
+ 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>GList*</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_everything_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GList* regress_test_glist_everything_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in.page
new file mode 100644
index 00000000..d88487f0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_in</api:name>
+ <api:arg>
+ <api:type>const GList*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_nothing_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_glist_nothing_in (const GList* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in2.page
new file mode 100644
index 00000000..7cba8517
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_in2.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_in2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_in2</api:name>
+ <api:arg>
+ <api:type>GList*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_nothing_in2</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_glist_nothing_in2 (GList* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return.page
new file mode 100644
index 00000000..af54aead
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_return"
+ 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>const GList*</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_nothing_return</title>
+
+<synopsis><code mime="text/x-csrc">
+const GList* regress_test_glist_nothing_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return2.page
new file mode 100644
index 00000000..2901e41d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_nothing_return2.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_return2"
+ 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>GList*</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_nothing_return2</title>
+
+<synopsis><code mime="text/x-csrc">
+GList* regress_test_glist_nothing_return2 (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_in.page
new file mode 100644
index 00000000..b6ca3ab3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_null_in</api:name>
+ <api:arg>
+ <api:type>GSList*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_null_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_glist_null_in (GSList* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_out.page
new file mode 100644
index 00000000..13e421db
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_glist_null_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_null_out</api:name>
+ <api:arg>
+ <api:type>GSList**</api:type>
+ <api:name>out_list</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_glist_null_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_glist_null_out (GSList** out_list);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out_list</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_container_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_container_return.page
new file mode 100644
index 00000000..05587fcb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_container_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_container_return"
+ 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>GSList*</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_container_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GSList* regress_test_gslist_container_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_everything_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_everything_return.page
new file mode 100644
index 00000000..a03f4d89
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_everything_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_everything_return"
+ 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>GSList*</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_everything_return</title>
+
+<synopsis><code mime="text/x-csrc">
+GSList* regress_test_gslist_everything_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in.page
new file mode 100644
index 00000000..61a14b1c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_in</api:name>
+ <api:arg>
+ <api:type>const GSList*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_nothing_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_gslist_nothing_in (const GSList* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in2.page
new file mode 100644
index 00000000..0703ec00
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_in2.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_in2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_in2</api:name>
+ <api:arg>
+ <api:type>GSList*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_nothing_in2</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_gslist_nothing_in2 (GSList* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return.page
new file mode 100644
index 00000000..8df79aa5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_return"
+ 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>const GSList*</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_nothing_return</title>
+
+<synopsis><code mime="text/x-csrc">
+const GSList* regress_test_gslist_nothing_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return2.page
new file mode 100644
index 00000000..aeb9a672
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_nothing_return2.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_return2"
+ 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>GSList*</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_nothing_return2</title>
+
+<synopsis><code mime="text/x-csrc">
+GSList* regress_test_gslist_nothing_return2 (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_in.page
new file mode 100644
index 00000000..21d8d5c1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_null_in</api:name>
+ <api:arg>
+ <api:type>GSList*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_null_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_gslist_null_in (GSList* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_out.page
new file mode 100644
index 00000000..d7635199
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gslist_null_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_null_out</api:name>
+ <api:arg>
+ <api:type>GSList**</api:type>
+ <api:name>out_list</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_gslist_null_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_gslist_null_out (GSList** out_list);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out_list</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gtype.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gtype.page
new file mode 100644
index 00000000..76e678bd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gtype.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gtype"
+ 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>GType</api:type>
+ </api:returns>
+ <api:name>regress_test_gtype</api:name>
+ <api:arg>
+ <api:type>GType</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_gtype</title>
+
+<synopsis><code mime="text/x-csrc">
+GType regress_test_gtype (GType in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_as.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_as.page
new file mode 100644
index 00000000..df9d988a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_as.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_as"
+ 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>GVariant*</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_as</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gvariant_as</title>
+
+<synopsis><code mime="text/x-csrc">
+GVariant* regress_test_gvariant_as (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_asv.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_asv.page
new file mode 100644
index 00000000..2d64ab24
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_asv.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_asv"
+ 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>GVariant*</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_asv</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gvariant_asv</title>
+
+<synopsis><code mime="text/x-csrc">
+GVariant* regress_test_gvariant_asv (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_i.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_i.page
new file mode 100644
index 00000000..2eec9944
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_i.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_i"
+ 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>GVariant*</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_i</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gvariant_i</title>
+
+<synopsis><code mime="text/x-csrc">
+GVariant* regress_test_gvariant_i (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_s.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_s.page
new file mode 100644
index 00000000..9ef9d9f7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_s.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_s"
+ 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>GVariant*</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_s</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gvariant_s</title>
+
+<synopsis><code mime="text/x-csrc">
+GVariant* regress_test_gvariant_s (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_v.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_v.page
new file mode 100644
index 00000000..c07b2ac8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_gvariant_v.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_v"
+ 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>GVariant*</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_v</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_gvariant_v</title>
+
+<synopsis><code mime="text/x-csrc">
+GVariant* regress_test_gvariant_v (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_hash_table_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_hash_table_callback.page
new file mode 100644
index 00000000..24862b10
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_hash_table_callback.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_hash_table_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_hash_table_callback</api:name>
+ <api:arg>
+ <api:type>GHashTable*</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestCallbackHashtable</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_hash_table_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_hash_table_callback (GHashTable* data,
+ RegressTestCallbackHashtable callback);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+<p>GHashTable that gets passed to callback</p>
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_int.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_int.page
new file mode 100644
index 00000000..430af30e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_int.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int"
+ 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>gint</api:type>
+ </api:returns>
+ <api:name>regress_test_int</api:name>
+ <api:arg>
+ <api:type>gint</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_int</title>
+
+<synopsis><code mime="text/x-csrc">
+gint regress_test_int (gint in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_int16.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_int16.page
new file mode 100644
index 00000000..d5be61d9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_int16.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int16"
+ 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>gint16</api:type>
+ </api:returns>
+ <api:name>regress_test_int16</api:name>
+ <api:arg>
+ <api:type>gint16</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_int16</title>
+
+<synopsis><code mime="text/x-csrc">
+gint16 regress_test_int16 (gint16 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_int32.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_int32.page
new file mode 100644
index 00000000..be90ac6d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_int32.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int32"
+ 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>gint32</api:type>
+ </api:returns>
+ <api:name>regress_test_int32</api:name>
+ <api:arg>
+ <api:type>gint32</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_int32</title>
+
+<synopsis><code mime="text/x-csrc">
+gint32 regress_test_int32 (gint32 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_int64.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_int64.page
new file mode 100644
index 00000000..d864702f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_int64.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int64"
+ 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>gint64</api:type>
+ </api:returns>
+ <api:name>regress_test_int64</api:name>
+ <api:arg>
+ <api:type>gint64</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_int64</title>
+
+<synopsis><code mime="text/x-csrc">
+gint64 regress_test_int64 (gint64 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_int8.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_int8.page
new file mode 100644
index 00000000..1cfb4319
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_int8.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int8"
+ 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>gint8</api:type>
+ </api:returns>
+ <api:name>regress_test_int8</api:name>
+ <api:arg>
+ <api:type>gint8</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_int8</title>
+
+<synopsis><code mime="text/x-csrc">
+gint8 regress_test_int8 (gint8 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_int_out_utf8.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_int_out_utf8.page
new file mode 100644
index 00000000..80276c00
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_int_out_utf8.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int_out_utf8"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_int_out_utf8</api:name>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_int_out_utf8</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_int_out_utf8 (int* length,
+ const char* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>length</code></title>
+
+</item>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_int_value_arg.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_int_value_arg.page
new file mode 100644
index 00000000..a61c91cd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_int_value_arg.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int_value_arg"
+ 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_int_value_arg</api:name>
+ <api:arg>
+ <api:type>const GValue*</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_int_value_arg</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_int_value_arg (const GValue* v);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>v</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_long.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_long.page
new file mode 100644
index 00000000..30bf3afb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_long.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_long"
+ 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>glong</api:type>
+ </api:returns>
+ <api:name>regress_test_long</api:name>
+ <api:arg>
+ <api:type>glong</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_long</title>
+
+<synopsis><code mime="text/x-csrc">
+glong regress_test_long (glong in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_multi_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_multi_callback.page
new file mode 100644
index 00000000..152c9166
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_multi_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multi_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_multi_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_multi_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+int regress_test_multi_callback (RegressTestCallback 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-C-expected/Regress.test_multi_double_args.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_multi_double_args.page
new file mode 100644
index 00000000..5135297f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_multi_double_args.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multi_double_args"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_multi_double_args</api:name>
+ <api:arg>
+ <api:type>gdouble</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gdouble*</api:type>
+ <api:name>one</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gdouble*</api:type>
+ <api:name>two</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_multi_double_args</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_multi_double_args (gdouble in,
+ gdouble* one,
+ gdouble* two);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>one</code></title>
+
+</item>
+<item>
+<title><code>two</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_multiline_doc_comments.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_multiline_doc_comments.page
new file mode 100644
index 00000000..d660bd83
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_multiline_doc_comments.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multiline_doc_comments"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_multiline_doc_comments</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_multiline_doc_comments</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_multiline_doc_comments (void);
+</code></synopsis>
+
+
+ <p>This is a function.</p><p>It has multiple lines in the documentation.</p><p>The sky is blue.</p><p>You will give me your credit card number.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_nested_parameter.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_nested_parameter.page
new file mode 100644
index 00000000..c28cc8fa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_nested_parameter.page
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<page id="Regress.test_nested_parameter"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_nested_parameter</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_nested_parameter</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_nested_parameter (int a);
+</code></synopsis>
+
+
+ <p>&lt;informaltable&gt;
+ &lt;tgroup cols="3"&gt;
+ &lt;thead&gt;
+ &lt;row&gt;
+ &lt;entry&gt;Syntax&lt;/entry&gt;
+ &lt;entry&gt;Explanation&lt;/entry&gt;
+ &lt;entry&gt;Examples&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;/thead&gt;
+ &lt;tbody&gt;
+ &lt;row&gt;
+ &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
+ &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
+ 0 and 255 or percentages&lt;/entry&gt;
+ &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
+rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;row&gt;
+ &lt;entry&gt;rgba(@r, @g, @b, <code>a</code>)&lt;/entry&gt;
+ &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
+ <code>a</code> is a floating point number between 0 and 1&lt;/entry&gt;
+ &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;/tbody&gt;
+ &lt;/tgroup&gt;
+&lt;/informaltable&gt;</p><p>What we're testing here is that the scanner ignores the <code>a</code> nested inside XML.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>An integer</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_null_gerror_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_null_gerror_callback.page
new file mode 100644
index 00000000..bdcc152d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_null_gerror_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_null_gerror_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_null_gerror_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_null_gerror_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_null_gerror_callback (RegressTestCallbackGError 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-C-expected/Regress.test_owned_gerror_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_owned_gerror_callback.page
new file mode 100644
index 00000000..49f1b360
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_owned_gerror_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_owned_gerror_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_owned_gerror_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallbackOwnedGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_owned_gerror_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_owned_gerror_callback (RegressTestCallbackOwnedGError 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-C-expected/Regress.test_short.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_short.page
new file mode 100644
index 00000000..53d3b1bd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_short.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_short"
+ 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>gshort</api:type>
+ </api:returns>
+ <api:name>regress_test_short</api:name>
+ <api:arg>
+ <api:type>gshort</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_short</title>
+
+<synopsis><code mime="text/x-csrc">
+gshort regress_test_short (gshort in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_simple_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_simple_callback.page
new file mode 100644
index 00000000..514fbfaa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_simple_callback.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_simple_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestSimpleCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_simple_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_simple_callback (RegressTestSimpleCallback 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-C-expected/Regress.test_size.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_size.page
new file mode 100644
index 00000000..3b67a00a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_size.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_size"
+ 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>gsize</api:type>
+ </api:returns>
+ <api:name>regress_test_size</api:name>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_size</title>
+
+<synopsis><code mime="text/x-csrc">
+gsize regress_test_size (gsize in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_skip_unannotated_callback.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_skip_unannotated_callback.page
new file mode 100644
index 00000000..321d087a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_skip_unannotated_callback.page
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<page id="Regress.test_skip_unannotated_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_skip_unannotated_callback</api:name>
+ <api:arg>
+ <api:type>RegressTestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_skip_unannotated_callback</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_skip_unannotated_callback (RegressTestCallback callback);
+</code></synopsis>
+
+
+ <p>Should not emit a warning:
+https://bugzilla.gnome.org/show_bug.cgi?id=685399</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+<p>No annotation here</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ssize.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ssize.page
new file mode 100644
index 00000000..d11446ef
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ssize.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ssize"
+ 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>gssize</api:type>
+ </api:returns>
+ <api:name>regress_test_ssize</api:name>
+ <api:arg>
+ <api:type>gssize</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ssize</title>
+
+<synopsis><code mime="text/x-csrc">
+gssize regress_test_ssize (gssize in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in.page
new file mode 100644
index 00000000..3f9ca2a6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_in"
+ 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>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_in</api:name>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_strv_in</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_strv_in (char** arr);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in_gvalue.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in_gvalue.page
new file mode 100644
index 00000000..44b0c6ce
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_in_gvalue.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_in_gvalue"
+ 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>GValue*</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_in_gvalue</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_strv_in_gvalue</title>
+
+<synopsis><code mime="text/x-csrc">
+GValue* regress_test_strv_in_gvalue (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out.page
new file mode 100644
index 00000000..207e69fe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_strv_out</title>
+
+<synopsis><code mime="text/x-csrc">
+char** regress_test_strv_out (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_c.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_c.page
new file mode 100644
index 00000000..582ab10b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_c.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out_c"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out_c</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_strv_out_c</title>
+
+<synopsis><code mime="text/x-csrc">
+const char* const* regress_test_strv_out_c (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_container.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_container.page
new file mode 100644
index 00000000..0515bce7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_out_container.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out_container"
+ 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>utf8*</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out_container</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_strv_out_container</title>
+
+<synopsis><code mime="text/x-csrc">
+char** regress_test_strv_out_container (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_outarg.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_outarg.page
new file mode 100644
index 00000000..a105b5b2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_strv_outarg.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_outarg"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_outarg</api:name>
+ <api:arg>
+ <api:type>char***</api:type>
+ <api:name>retp</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_strv_outarg</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_strv_outarg (char*** retp);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>retp</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_timet.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_timet.page
new file mode 100644
index 00000000..acada719
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_timet.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_timet"
+ 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>time_t</api:type>
+ </api:returns>
+ <api:name>regress_test_timet</api:name>
+ <api:arg>
+ <api:type>time_t</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_timet</title>
+
+<synopsis><code mime="text/x-csrc">
+time_t regress_test_timet (time_t in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_0.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_0.page
new file mode 100644
index 00000000..3d4c18c2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_0.page
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_0"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_0</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>double*</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_torture_signature_0</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_torture_signature_0 (int x,
+ double* y,
+ int* z,
+ const char* foo,
+ int* q,
+ guint m);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_1.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_1.page
new file mode 100644
index 00000000..7568989d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_1.page
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_1"
+ 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>gboolean</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_1</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>double*</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_torture_signature_1</title>
+
+<synopsis><code mime="text/x-csrc">
+gboolean regress_test_torture_signature_1 (int x,
+ double* y,
+ int* z,
+ const char* foo,
+ int* q,
+ guint m);
+</code></synopsis>
+
+
+ <p>This function throws an error if m is odd.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_2.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_2.page
new file mode 100644
index 00000000..eb615c39
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_torture_signature_2.page
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_2</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GDestroyNotify</api:type>
+ <api:name>notify</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>double*</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int*</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_torture_signature_2</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_torture_signature_2 (int x,
+ RegressTestCallbackUserData callback,
+ gpointer user_data,
+ GDestroyNotify notify,
+ double* y,
+ int* z,
+ const char* foo,
+ int* q,
+ guint m);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>notify</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_uint.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint.page
new file mode 100644
index 00000000..1651512e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint"
+ 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>guint</api:type>
+ </api:returns>
+ <api:name>regress_test_uint</api:name>
+ <api:arg>
+ <api:type>guint</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_uint</title>
+
+<synopsis><code mime="text/x-csrc">
+guint regress_test_uint (guint in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_uint16.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint16.page
new file mode 100644
index 00000000..2af7ee49
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint16.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint16"
+ 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>guint16</api:type>
+ </api:returns>
+ <api:name>regress_test_uint16</api:name>
+ <api:arg>
+ <api:type>guint16</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_uint16</title>
+
+<synopsis><code mime="text/x-csrc">
+guint16 regress_test_uint16 (guint16 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_uint32.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint32.page
new file mode 100644
index 00000000..7ccdde70
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint32.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint32"
+ 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>guint32</api:type>
+ </api:returns>
+ <api:name>regress_test_uint32</api:name>
+ <api:arg>
+ <api:type>guint32</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_uint32</title>
+
+<synopsis><code mime="text/x-csrc">
+guint32 regress_test_uint32 (guint32 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_uint64.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint64.page
new file mode 100644
index 00000000..24a9256a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint64.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint64"
+ 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>guint64</api:type>
+ </api:returns>
+ <api:name>regress_test_uint64</api:name>
+ <api:arg>
+ <api:type>guint64</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_uint64</title>
+
+<synopsis><code mime="text/x-csrc">
+guint64 regress_test_uint64 (guint64 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_uint8.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint8.page
new file mode 100644
index 00000000..7222e742
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_uint8.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint8"
+ 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>guint8</api:type>
+ </api:returns>
+ <api:name>regress_test_uint8</api:name>
+ <api:arg>
+ <api:type>guint8</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_uint8</title>
+
+<synopsis><code mime="text/x-csrc">
+guint8 regress_test_uint8 (guint8 in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ulong.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ulong.page
new file mode 100644
index 00000000..80953700
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ulong.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ulong"
+ 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>gulong</api:type>
+ </api:returns>
+ <api:name>regress_test_ulong</api:name>
+ <api:arg>
+ <api:type>gulong</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ulong</title>
+
+<synopsis><code mime="text/x-csrc">
+gulong regress_test_ulong (gulong in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_unichar.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_unichar.page
new file mode 100644
index 00000000..0349472e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_unichar.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_unichar"
+ 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>gunichar</api:type>
+ </api:returns>
+ <api:name>regress_test_unichar</api:name>
+ <api:arg>
+ <api:type>gunichar</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_unichar</title>
+
+<synopsis><code mime="text/x-csrc">
+gunichar regress_test_unichar (gunichar in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_unsigned_enum_param.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_unsigned_enum_param.page
new file mode 100644
index 00000000..642e75ac
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_unsigned_enum_param.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_unsigned_enum_param"
+ 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>const gchar*</api:type>
+ </api:returns>
+ <api:name>regress_test_unsigned_enum_param</api:name>
+ <api:arg>
+ <api:type>RegressTestEnumUnsigned</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_unsigned_enum_param</title>
+
+<synopsis><code mime="text/x-csrc">
+const gchar* regress_test_unsigned_enum_param (RegressTestEnumUnsigned e);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_ushort.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_ushort.page
new file mode 100644
index 00000000..2b50e72a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_ushort.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ushort"
+ 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>gushort</api:type>
+ </api:returns>
+ <api:name>regress_test_ushort</api:name>
+ <api:arg>
+ <api:type>gushort</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_ushort</title>
+
+<synopsis><code mime="text/x-csrc">
+gushort regress_test_ushort (gushort in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_in.page
new file mode 100644
index 00000000..eaafeae5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_const_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_const_in</api:name>
+ <api:arg>
+ <api:type>const char*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_const_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_utf8_const_in (const char* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_return.page
new file mode 100644
index 00000000..6bcb7861
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_const_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_const_return"
+ 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>const char*</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_const_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_const_return</title>
+
+<synopsis><code mime="text/x-csrc">
+const char* regress_test_utf8_const_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>UTF-8 string</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_inout.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_inout.page
new file mode 100644
index 00000000..ce0a884b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_inout.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_inout"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_inout</api:name>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>inout</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_inout</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_utf8_inout (char** inout);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>inout</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_nonconst_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_nonconst_return.page
new file mode 100644
index 00000000..aa921b00
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_nonconst_return.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_nonconst_return"
+ 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>char*</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_nonconst_return</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_nonconst_return</title>
+
+<synopsis><code mime="text/x-csrc">
+char* regress_test_utf8_nonconst_return (void);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>UTF-8 string</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_in.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_in.page
new file mode 100644
index 00000000..9b196371
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_null_in</api:name>
+ <api:arg>
+ <api:type>char*</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_null_in</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_utf8_null_in (char* in);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_out.page
new file mode 100644
index 00000000..6d4c4551
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_null_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_null_out</api:name>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>char_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_null_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_utf8_null_out (char** char_out);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>char_out</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out.page
new file mode 100644
index 00000000..5084da31
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out</api:name>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_utf8_out (char** out);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_nonconst_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_nonconst_return.page
new file mode 100644
index 00000000..65b2a8a0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_nonconst_return.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out_nonconst_return"
+ 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>char*</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out_nonconst_return</api:name>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_out_nonconst_return</title>
+
+<synopsis><code mime="text/x-csrc">
+char* regress_test_utf8_out_nonconst_return (char** out);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+<p>a copy of "second"</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>a copy of "first"</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_out.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_out.page
new file mode 100644
index 00000000..e3771997
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_utf8_out_out.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out_out</api:name>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>out0</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>char**</api:type>
+ <api:name>out1</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_utf8_out_out</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_utf8_out_out (char** out0,
+ char** out1);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out0</code></title>
+<p>a copy of "first"</p>
+</item>
+<item>
+<title><code>out1</code></title>
+<p>a copy of "second"</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_value_get_fundamental_object.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_value_get_fundamental_object.page
new file mode 100644
index 00000000..3435610c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_value_get_fundamental_object.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_value_get_fundamental_object"
+ 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>RegressTestFundamentalObject*</api:type>
+ </api:returns>
+ <api:name>regress_test_value_get_fundamental_object</api:name>
+ <api:arg>
+ <api:type>const GValue*</api:type>
+ <api:name>value</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_value_get_fundamental_object</title>
+
+<synopsis><code mime="text/x-csrc">
+RegressTestFundamentalObject* regress_test_value_get_fundamental_object (const GValue* value);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>value</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_value_return.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_value_return.page
new file mode 100644
index 00000000..2edb30a3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_value_return.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_value_return"
+ 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>const GValue*</api:type>
+ </api:returns>
+ <api:name>regress_test_value_return</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_value_return</title>
+
+<synopsis><code mime="text/x-csrc">
+const GValue* regress_test_value_return (int i);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+<p>an int</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the int wrapped in a GValue.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_value_set_fundamental_object.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_value_set_fundamental_object.page
new file mode 100644
index 00000000..ba1822ed
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_value_set_fundamental_object.page
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<page id="Regress.test_value_set_fundamental_object"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_value_set_fundamental_object</api:name>
+ <api:arg>
+ <api:type>GValue*</api:type>
+ <api:name>value</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>RegressTestFundamentalObject*</api:type>
+ <api:name>fundamental_object</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>regress_test_value_set_fundamental_object</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_value_set_fundamental_object (GValue* value,
+ RegressTestFundamentalObject* fundamental_object);
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>value</code></title>
+
+</item>
+<item>
+<title><code>fundamental_object</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_versioning.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_versioning.page
new file mode 100644
index 00000000..a389bda5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_versioning.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.test_versioning"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_versioning</api:name>
+ </api:function>
+
+ </info>
+ <title>regress_test_versioning</title>
+
+<synopsis><code mime="text/x-csrc">
+void regress_test_versioning (void);
+</code></synopsis>
+
+
+
+
+
+ <p>Since 1.32.1</p>
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/index.page b/tests/scanner/Regress-1.0-C-expected/index.page
new file mode 100644
index 00000000..a5426d89
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/index.page
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<page id="index"
+ type="guide"
+ style="namespace"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+
+ </info>
+ <title>Index</title>
+
+
+
+
+
+
+
+
+
+ <links type="topic" ui:expanded="true" groups="class" style="linklist">
+ <title>Classes</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.ATestError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.ATestError.page
new file mode 100644
index 00000000..9ac6820d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.ATestError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.ATestError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.ATestError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ATestError.CODE0</code></title>
+
+</item>
+<item>
+<title><code>ATestError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>ATestError.CODE2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AliasedTestBoxed.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AliasedTestBoxed.page
new file mode 100644
index 00000000..9490e4a3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AliasedTestBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AliasedTestBoxed"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AliasedTestBoxed</title>
+
+
+
+ <p>Typedef TestBoxed to test caller-allocates correctness</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.None.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.None.page
new file mode 100644
index 00000000..6dc17b32
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.None.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnAnonymousUnion.None"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnAnonymousUnion.None</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.page
new file mode 100644
index 00000000..2556feda
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnAnonymousUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnAnonymousUnion"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnAnonymousUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationBitfield.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationBitfield.page
new file mode 100644
index 00000000..4e19ef92
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationBitfield.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationBitfield"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationBitfield</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationCallback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationCallback.page
new file mode 100644
index 00000000..9a652d80
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationCallback</title>
+
+
+
+ <p>This is a callback.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationFields.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationFields.page
new file mode 100644
index 00000000..53234545
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationFields.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationFields"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationFields</title>
+
+
+
+ <p>This is a struct for testing field documentation and annotations</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationForeachFunc.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationForeachFunc.page
new file mode 100644
index 00000000..db77a117
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationForeachFunc.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationForeachFunc"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationForeachFunc</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationListCallback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationListCallback.page
new file mode 100644
index 00000000..79844c66
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationListCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationListCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationListCallback</title>
+
+
+
+ <p>This is a callback taking a list.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationNotifyFunc.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationNotifyFunc.page
new file mode 100644
index 00000000..17c80292
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationNotifyFunc.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationNotifyFunc"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationNotifyFunc</title>
+
+
+
+ <p>This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-attribute-signal.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-attribute-signal.page
new file mode 100644
index 00000000..c30c3377
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-attribute-signal.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-attribute-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">attribute-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::attribute-signal</title>
+
+<synopsis><code mime="text/x-python">
+function callback(annotation_object, arg1:String, arg2:String, ):String;
+</code></synopsis>
+
+
+ <p>This signal tests a signal with attributes.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arg1</code></title>
+<p>a value</p>
+</item>
+<item>
+<title><code>arg2</code></title>
+<p>another value</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the return value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page
new file mode 100644
index 00000000..61025917
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-doc-empty-arg-parsing"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">doc-empty-arg-parsing</title>
+
+ </info>
+ <title>Regress.AnnotationObject::doc-empty-arg-parsing</title>
+
+<synopsis><code mime="text/x-python">
+function callback(annotation_object, arg1:gpointer, ):void;
+</code></synopsis>
+
+
+ <p>This signal tests an empty document argument (<code>arg1</code>)</p>
+
+
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arg1</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-function-property.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-function-property.page
new file mode 100644
index 00000000..d9d8b55a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-function-property.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-function-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">function-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:function-property</title>
+
+<synopsis><code mime="text/x-python">
+"function-property" Regress.AnnotationCallback : Read / Write / Construct
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-list-signal.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-list-signal.page
new file mode 100644
index 00000000..4e2044dd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-list-signal.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-list-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">list-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::list-signal</title>
+
+<synopsis><code mime="text/x-python">
+function callback(annotation_object, list:[String], ):void;
+</code></synopsis>
+
+
+ <p>This is a signal which takes a list of strings, but it's not
+known by GObject as it's only marked as G_TYPE_POINTER</p>
+
+
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>list</code></title>
+<p>a list of strings</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-property.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-property.page
new file mode 100644
index 00000000..eba5cef7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-property.page
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-string-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">string-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:string-property</title>
+
+<synopsis><code mime="text/x-python">
+"string-property" String : Read / Write / Construct
+</code></synopsis>
+
+
+ <p>This is a property which is a string</p>
+
+
+ <p>Since 1.0</p>
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-signal.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-signal.page
new file mode 100644
index 00000000..59408b40
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-string-signal.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-string-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">string-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::string-signal</title>
+
+<synopsis><code mime="text/x-python">
+function callback(annotation_object, string:String, ):void;
+</code></synopsis>
+
+
+ <p>This is a signal which has a broken signal handler,
+it says it's pointer but it's actually a string.</p>
+
+
+ <p>Since 1.0</p>
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>string</code></title>
+<p>a string</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-tab-property.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-tab-property.page
new file mode 100644
index 00000000..c2444fa4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject-tab-property.page
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-tab-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">tab-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:tab-property</title>
+
+<synopsis><code mime="text/x-python">
+"tab-property" String : Read / Write / Construct
+</code></synopsis>
+
+
+ <p>This is a property annotation intentionally indented with a mix
+of tabs and strings to test the tab handling capabilities of the scanner.</p>
+
+
+ <p>Since 1.2</p>
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.allow_none.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.allow_none.page
new file mode 100644
index 00000000..414f5c63
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.allow_none.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.allow_none"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_allow_none</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>somearg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.allow_none</title>
+
+<synopsis><code mime="text/x-gjs">
+function allow_none(somearg:String):GObject.Object {
+ // Gjs wrapper for regress_annotation_object_allow_none()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>somearg</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>null</code> always</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleeowns.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleeowns.page
new file mode 100644
index 00000000..8dd15f1c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleeowns.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.calleeowns"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_calleeowns</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.calleeowns</title>
+
+<synopsis><code mime="text/x-gjs">
+function calleeowns():Number {
+ // Gjs wrapper for regress_annotation_object_calleeowns()
+}
+</code></synopsis>
+
+
+ <p>This is a test for out arguments; GObject defaults to transfer</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleesowns.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleesowns.page
new file mode 100644
index 00000000..a12be358
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.calleesowns.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.calleesowns"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_calleesowns</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.calleesowns</title>
+
+<synopsis><code mime="text/x-gjs">
+function calleesowns():Number {
+ // Gjs wrapper for regress_annotation_object_calleesowns()
+}
+</code></synopsis>
+
+
+ <p>This is a test for out arguments, one transferred, other not</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum.page
new file mode 100644
index 00000000..d7e6784d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.compute_sum</title>
+
+<synopsis><code mime="text/x-gjs">
+function compute_sum(nums:[Number]):void {
+ // Gjs wrapper for regress_annotation_object_compute_sum()
+}
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array</p>
+
+
+
+
+<terms>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of numbers</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_n.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_n.page
new file mode 100644
index 00000000..932b1922
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_n.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum_n"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum_n</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.compute_sum_n</title>
+
+<synopsis><code mime="text/x-gjs">
+function compute_sum_n(nums:[Number]):void {
+ // Gjs wrapper for regress_annotation_object_compute_sum_n()
+}
+</code></synopsis>
+
+
+ <p>Test taking an array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of
+ numbers that are zero-terminated</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_nz.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_nz.page
new file mode 100644
index 00000000..3891049b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.compute_sum_nz.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum_nz"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum_nz</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.compute_sum_nz</title>
+
+<synopsis><code mime="text/x-gjs">
+function compute_sum_nz(nums:[Number]):void {
+ // Gjs wrapper for regress_annotation_object_compute_sum_nz()
+}
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of numbers that
+are zero-terminated</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.create_object.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.create_object.page
new file mode 100644
index 00000000..03ceac18
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.create_object.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.create_object"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_create_object</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.create_object</title>
+
+<synopsis><code mime="text/x-gjs">
+function create_object():GObject.Object {
+ // Gjs wrapper for regress_annotation_object_create_object()
+}
+</code></synopsis>
+
+
+ <p>Test returning a caller-owned object</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>The object</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.do_not_use.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.do_not_use.page
new file mode 100644
index 00000000..e89c8fe6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.do_not_use.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.do_not_use"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_do_not_use</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.do_not_use</title>
+
+<synopsis><code mime="text/x-gjs">
+function do_not_use():GObject.Object {
+ // Gjs wrapper for regress_annotation_object_do_not_use()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p><code>null</code> always</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.extra_annos.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.extra_annos.page
new file mode 100644
index 00000000..cd58eed9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.extra_annos.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.extra_annos"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_extra_annos</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.extra_annos</title>
+
+<synopsis><code mime="text/x-gjs">
+function extra_annos():void {
+ // Gjs wrapper for regress_annotation_object_extra_annos()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.foreach.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.foreach.page
new file mode 100644
index 00000000..e4cc4c0b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.foreach.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.foreach"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_foreach</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationForeachFunc</api:type>
+ <api:name>func</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.foreach</title>
+
+<synopsis><code mime="text/x-gjs">
+function foreach(func:Regress.AnnotationForeachFunc):void {
+ // Gjs wrapper for regress_annotation_object_foreach()
+}
+</code></synopsis>
+
+
+ <p>Test taking a call-scoped callback</p>
+
+
+
+
+<terms>
+<item>
+<title><code>func</code></title>
+<p>Callback to invoke</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_hash.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_hash.page
new file mode 100644
index 00000000..2e6ca61a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_hash.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_hash"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>{String: GObject.Object}</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_hash</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.get_hash</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_hash():{String: GObject.Object} {
+ // Gjs wrapper for regress_annotation_object_get_hash()
+}
+</code></synopsis>
+
+
+ <p>This is a test for returning a hash table mapping strings to
+objects.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>hash table</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_objects.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_objects.page
new file mode 100644
index 00000000..c0350d7e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_objects.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_objects"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>[Regress.AnnotationObject]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_objects</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.get_objects</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_objects():[Regress.AnnotationObject] {
+ // Gjs wrapper for regress_annotation_object_get_objects()
+}
+</code></synopsis>
+
+
+ <p>This is a test for returning a list of objects.
+The list itself should be freed, but not the internal objects,
+intentionally similar example to gtk_container_get_children</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>list of objects</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_strings.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_strings.page
new file mode 100644
index 00000000..e36d25a8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.get_strings.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_strings"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>[String]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_strings</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.get_strings</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_strings():[String] {
+ // Gjs wrapper for regress_annotation_object_get_strings()
+}
+</code></synopsis>
+
+
+ <p>This is a test for returning a list of strings, where
+each string needs to be freed.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>list of strings</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.hidden_self.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.hidden_self.page
new file mode 100644
index 00000000..945acf01
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.hidden_self.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.hidden_self"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_hidden_self</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.hidden_self</title>
+
+<synopsis><code mime="text/x-gjs">
+function hidden_self():void {
+ // Gjs wrapper for regress_annotation_object_hidden_self()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.in.page
new file mode 100644
index 00000000..226b2b97
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.in"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_in</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.in</title>
+
+<synopsis><code mime="text/x-gjs">
+function in(inarg:Number):Number {
+ // Gjs wrapper for regress_annotation_object_in()
+}
+</code></synopsis>
+
+
+ <p>This is a test for in arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>inarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout.page
new file mode 100644
index 00000000..885412fb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.inout</title>
+
+<synopsis><code mime="text/x-gjs">
+function inout(inoutarg:Number):Number {
+ // Gjs wrapper for regress_annotation_object_inout()
+}
+</code></synopsis>
+
+
+ <p>This is a test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout2.page
new file mode 100644
index 00000000..34406b7b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout2.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout2"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout2</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.inout2</title>
+
+<synopsis><code mime="text/x-gjs">
+function inout2(inoutarg:Number):Number {
+ // Gjs wrapper for regress_annotation_object_inout2()
+}
+</code></synopsis>
+
+
+ <p>This is a second test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout3.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout3.page
new file mode 100644
index 00000000..2828964e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.inout3.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout3"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout3</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.inout3</title>
+
+<synopsis><code mime="text/x-gjs">
+function inout3(inoutarg:Number):Number {
+ // Gjs wrapper for regress_annotation_object_inout3()
+}
+</code></synopsis>
+
+
+ <p>This is a 3th test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.method.page
new file mode 100644
index 00000000..49d937a1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.method.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_method</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.method</title>
+
+<synopsis><code mime="text/x-gjs">
+function method():Number {
+ // Gjs wrapper for regress_annotation_object_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.notrans.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.notrans.page
new file mode 100644
index 00000000..0424719e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.notrans.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.notrans"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_notrans</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.notrans</title>
+
+<synopsis><code mime="text/x-gjs">
+function notrans():GObject.Object {
+ // Gjs wrapper for regress_annotation_object_notrans()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>An object, not referenced</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.out.page
new file mode 100644
index 00000000..5120baf8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.out.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_out</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.out</title>
+
+<synopsis><code mime="text/x-gjs">
+function out():Number {
+ // Gjs wrapper for regress_annotation_object_out()
+}
+</code></synopsis>
+
+
+ <p>This is a test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>an int</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.page
new file mode 100644
index 00000000..f4f01301
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationObject</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let annotation_object = new Regress.AnnotationObject({
+ <link xref='Regress.AnnotationObject-function-property'>function_property</link>: value,
+ <link xref='Regress.AnnotationObject-string-property'>string_property</link>: value,
+ <link xref='Regress.AnnotationObject-tab-property'>tab_property</link>: value,
+});
+ </code></synopsis>
+
+
+ <p>This is an object used to test annotations.</p>
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.AnnotationObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.parse_args.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.parse_args.page
new file mode 100644
index 00000000..8476fd89
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.parse_args.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.parse_args"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_parse_args</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>argv</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.parse_args</title>
+
+<synopsis><code mime="text/x-gjs">
+function parse_args(argv:[String]):void {
+ // Gjs wrapper for regress_annotation_object_parse_args()
+}
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>argv</code></title>
+<p>Argument vector</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data.page
new file mode 100644
index 00000000..a5dafb97
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data</api:name>
+ <api:arg>
+ <api:type>[guint8]</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.set_data</title>
+
+<synopsis><code mime="text/x-gjs">
+function set_data(data:[guint8]):void {
+ // Gjs wrapper for regress_annotation_object_set_data()
+}
+</code></synopsis>
+
+
+ <p>Test taking a guchar * with a length.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data2.page
new file mode 100644
index 00000000..3fcd8188
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data2.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data2"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data2</api:name>
+ <api:arg>
+ <api:type>[gint8]</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.set_data2</title>
+
+<synopsis><code mime="text/x-gjs">
+function set_data2(data:[gint8]):void {
+ // Gjs wrapper for regress_annotation_object_set_data2()
+}
+</code></synopsis>
+
+
+ <p>Test taking a gchar * with a length.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data3.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data3.page
new file mode 100644
index 00000000..22fb98dd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.set_data3.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data3"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data3</api:name>
+ <api:arg>
+ <api:type>[guint8]</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.set_data3</title>
+
+<synopsis><code mime="text/x-gjs">
+function set_data3(data:[guint8]):void {
+ // Gjs wrapper for regress_annotation_object_set_data3()
+}
+</code></synopsis>
+
+
+ <p>Test taking a gchar * with a length, overriding the array element
+type.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.string_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.string_out.page
new file mode 100644
index 00000000..4d6029a1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.string_out.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.string_out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_string_out</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.string_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function string_out():Boolean {
+ // Gjs wrapper for regress_annotation_object_string_out()
+}
+</code></synopsis>
+
+
+ <p>Test returning a string as an out parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>some boolean</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.use_buffer.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.use_buffer.page
new file mode 100644
index 00000000..c602a896
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.use_buffer.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.use_buffer"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_use_buffer</api:name>
+ <api:arg>
+ <api:type>guint8</api:type>
+ <api:name>bytes</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.use_buffer</title>
+
+<synopsis><code mime="text/x-gjs">
+function use_buffer(bytes:guint8):void {
+ // Gjs wrapper for regress_annotation_object_use_buffer()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>bytes</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.watch_full.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.watch_full.page
new file mode 100644
index 00000000..99bfaf1b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.watch_full.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.watch_full"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_watch_full</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationForeachFunc</api:type>
+ <api:name>func</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.watch_full</title>
+
+<synopsis><code mime="text/x-gjs">
+function watch_full(func:Regress.AnnotationForeachFunc):void {
+ // Gjs wrapper for regress_annotation_object_watch_full()
+}
+</code></synopsis>
+
+
+ <p>Test overriding via the "Rename To" annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>func</code></title>
+<p>The callback</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.with_voidp.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.with_voidp.page
new file mode 100644
index 00000000..6daccb5e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationObject.with_voidp.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.with_voidp"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_with_voidp</api:name>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.prototype.with_voidp</title>
+
+<synopsis><code mime="text/x-gjs">
+function with_voidp(data:gpointer):void {
+ // Gjs wrapper for regress_annotation_object_with_voidp()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+<p>Opaque pointer handle</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationStruct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationStruct.page
new file mode 100644
index 00000000..e2100429
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnnotationStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationStruct</title>
+
+
+
+ <p>This is a test of an array of object in an field of a struct.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooASingle.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooASingle.page
new file mode 100644
index 00000000..09cd98fd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooASingle.page
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<page id="Regress.FooASingle"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooASingle</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooASingle.FOO_SOME_SINGLE_ENUM</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooAddressType.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooAddressType.page
new file mode 100644
index 00000000..008a8f36
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooAddressType.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooAddressType"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooAddressType</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooAddressType.INVALID</code></title>
+
+</item>
+<item>
+<title><code>FooAddressType.IPV4</code></title>
+
+</item>
+<item>
+<title><code>FooAddressType.IPV6</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.add.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.add.page
new file mode 100644
index 00000000..9091617a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.add.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect.add"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBRect" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_brect_add</api:name>
+ <api:arg>
+ <api:type>Regress.FooBRect</api:type>
+ <api:name>b2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBRect.prototype.add</title>
+
+<synopsis><code mime="text/x-gjs">
+function add(b2:Regress.FooBRect):void {
+ // Gjs wrapper for regress_foo_brect_add()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>b2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.new.page
new file mode 100644
index 00000000..2d2b5749
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.new.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBRect" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooBRect</api:type>
+ </api:returns>
+ <api:name>regress_foo_brect_new</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBRect.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new(x:Number, y:Number):Regress.FooBRect {
+ // Gjs wrapper for regress_foo_brect_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.page
new file mode 100644
index 00000000..fd1e9d6e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBRect.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooBRect</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.get_contained_type.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.get_contained_type.page
new file mode 100644
index 00000000..7d82f4f6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.get_contained_type.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion.get_contained_type"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBUnion" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_foo_bunion_get_contained_type</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBUnion.prototype.get_contained_type</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_contained_type():Number {
+ // Gjs wrapper for regress_foo_bunion_get_contained_type()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.new.page
new file mode 100644
index 00000000..e16397c9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBUnion" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooBUnion</api:type>
+ </api:returns>
+ <api:name>regress_foo_bunion_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBUnion.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.FooBUnion {
+ // Gjs wrapper for regress_foo_bunion_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.page
new file mode 100644
index 00000000..8644d96e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooBUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.method.page
new file mode 100644
index 00000000..896d02ad
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.method.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_boxed_method</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBoxed.prototype.method</title>
+
+<synopsis><code mime="text/x-gjs">
+function method():void {
+ // Gjs wrapper for regress_foo_boxed_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.new.page
new file mode 100644
index 00000000..67b1c4fc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooBoxed</api:type>
+ </api:returns>
+ <api:name>regress_foo_boxed_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBoxed.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.FooBoxed {
+ // Gjs wrapper for regress_foo_boxed_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.page
new file mode 100644
index 00000000..bca1f99a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooBoxed</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.page
new file mode 100644
index 00000000..0b4f9e52
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBuffer"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooBuffer</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let foo_buffer = new Regress.FooBuffer();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ <item>
+ <code>Regress.FooBuffer</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.some_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.some_method.page
new file mode 100644
index 00000000..871ec7af
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooBuffer.some_method.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBuffer.some_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBuffer" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_buffer_some_method</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBuffer.prototype.some_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function some_method():void {
+ // Gjs wrapper for regress_foo_buffer_some_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooCallback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooCallback.page
new file mode 100644
index 00000000..52feda29
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.method.page
new file mode 100644
index 00000000..0b1b6b86
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.method.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.FooDBusData.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooDBusData" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_dbus_data_method</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooDBusData.prototype.method</title>
+
+<synopsis><code mime="text/x-gjs">
+function method():void {
+ // Gjs wrapper for regress_foo_dbus_data_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.page
new file mode 100644
index 00000000..b4eaeade
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooDBusData.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooDBusData"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooDBusData</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumFullname.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumFullname.page
new file mode 100644
index 00000000..00169aaf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumFullname.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumFullname"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumFullname</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooEnumFullname.ONE</code></title>
+
+</item>
+<item>
+<title><code>FooEnumFullname.TWO</code></title>
+
+</item>
+<item>
+<title><code>FooEnumFullname.THREE</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumNoType.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumNoType.page
new file mode 100644
index 00000000..d2b41e61
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumNoType.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumNoType"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumNoType</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooEnumNoType.UN</code></title>
+
+</item>
+<item>
+<title><code>FooEnumNoType.DEUX</code></title>
+
+</item>
+<item>
+<title><code>FooEnumNoType.TROIS</code></title>
+
+</item>
+<item>
+<title><code>FooEnumNoType.NEUF</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.method.page
new file mode 100644
index 00000000..e3240c10
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.method.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType.method"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_foo_enum_type_method</api:name>
+ <api:arg>
+ <api:type>Regress.FooEnumType</api:type>
+ <api:name>regress_foo_enum</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>method</title>
+
+<synopsis><code mime="text/x-gjs">
+function method(regress_foo_enum:Regress.FooEnumType):Number {
+ // Gjs wrapper for regress_foo_enum_type_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>regress_foo_enum</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.page
new file mode 100644
index 00000000..c3ff89b3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumType</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooEnumType.ALPHA</code></title>
+
+</item>
+<item>
+<title><code>FooEnumType.BETA</code></title>
+
+</item>
+<item>
+<title><code>FooEnumType.DELTA</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.returnv.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.returnv.page
new file mode 100644
index 00000000..4e42fdeb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEnumType.returnv.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType.returnv"
+ 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>Regress.FooEnumType</api:type>
+ </api:returns>
+ <api:name>regress_foo_enum_type_returnv</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>returnv</title>
+
+<synopsis><code mime="text/x-gjs">
+function returnv(x:Number):Regress.FooEnumType {
+ // Gjs wrapper for regress_foo_enum_type_returnv()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.page
new file mode 100644
index 00000000..8c0b6a23
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooError.GOOD</code></title>
+
+</item>
+<item>
+<title><code>FooError.BAD</code></title>
+
+</item>
+<item>
+<title><code>FooError.UGLY</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.quark.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.quark.page
new file mode 100644
index 00000000..ed023765
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_foo_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>quark</title>
+
+<synopsis><code mime="text/x-gjs">
+function quark():GLib.Quark {
+ // Gjs wrapper for regress_foo_error_quark()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEvent.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEvent.page
new file mode 100644
index 00000000..ce368302
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEvent.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEvent"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooEvent</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventAny.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventAny.page
new file mode 100644
index 00000000..562ec03c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventAny.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEventAny"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooEventAny</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventExpose.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventExpose.page
new file mode 100644
index 00000000..0000add5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooEventExpose.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEventExpose"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooEventExpose</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsNoType.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsNoType.page
new file mode 100644
index 00000000..53539d49
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsNoType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooFlagsNoType"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooFlagsNoType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsType.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsType.page
new file mode 100644
index 00000000..2b4afeb5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooFlagsType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooFlagsType"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooFlagsType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.copy.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.copy.page
new file mode 100644
index 00000000..1a61cfbb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.copy.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooForeignStruct" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooForeignStruct</api:type>
+ </api:returns>
+ <api:name>regress_foo_foreign_struct_copy</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooForeignStruct.prototype.copy</title>
+
+<synopsis><code mime="text/x-gjs">
+function copy():Regress.FooForeignStruct {
+ // Gjs wrapper for regress_foo_foreign_struct_copy()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.new.page
new file mode 100644
index 00000000..814eef35
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooForeignStruct" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooForeignStruct</api:type>
+ </api:returns>
+ <api:name>regress_foo_foreign_struct_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooForeignStruct.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.FooForeignStruct {
+ // Gjs wrapper for regress_foo_foreign_struct_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.page
new file mode 100644
index 00000000..312994a9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooForeignStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooForeignStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface-do_regress_foo.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface-do_regress_foo.page
new file mode 100644
index 00000000..17f6ec94
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface-do_regress_foo.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface-do_regress_foo"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterface::do_regress_foo</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_do_regress_foo(x:Number):void {
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.do_regress_foo.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.do_regress_foo.page
new file mode 100644
index 00000000..993998e4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.do_regress_foo.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface.do_regress_foo"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_interface_do_regress_foo</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooInterface.prototype.do_regress_foo</title>
+
+<synopsis><code mime="text/x-gjs">
+function do_regress_foo(x:Number):void {
+ // Gjs wrapper for regress_foo_interface_do_regress_foo()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.page
new file mode 100644
index 00000000..83ae1d0d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.page
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterface</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let foo_interface = new Regress.FooInterface();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.FooInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.static_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.static_method.page
new file mode 100644
index 00000000..d38a4488
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooInterface.static_method.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface.static_method"
+ 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="Regress.FooInterface" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_interface_static_method</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>static_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function static_method(x:Number):void {
+ // Gjs wrapper for regress_foo_interface_static_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-read_fn.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-read_fn.page
new file mode 100644
index 00000000..4bdaf370
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-read_fn.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-read_fn"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject::read_fn</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_read_fn(offset:Number, length:Number):void {
+}
+</code></synopsis>
+
+
+ <p>Read some stuff.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>offset</code></title>
+<p>offset</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>length</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-signal.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-signal.page
new file mode 100644
index 00000000..6e5657d4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-signal.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="signal" type="guide"/>
+ <title type="link" role="topic">signal</title>
+
+ </info>
+ <title>Regress.FooObject::signal</title>
+
+<synopsis><code mime="text/x-python">
+function callback(foo_object, object:GObject.Object, p0:gpointer, ):String;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>foo_object</code></title>
+<p>instance of <link xref="Regress.FooObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>p0</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-string.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-string.page
new file mode 100644
index 00000000..a738fdd7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-string.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-string"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="property" type="guide"/>
+ <title type="link" role="topic">string</title>
+
+ </info>
+ <title>Regress.FooObject:string</title>
+
+<synopsis><code mime="text/x-python">
+"string" String : Read / Write / Construct
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-virtual_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-virtual_method.page
new file mode 100644
index 00000000..d2ccd866
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject-virtual_method.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-virtual_method"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject::virtual_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_virtual_method(first_param:Number):Boolean {
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>first_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.a_global_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.a_global_method.page
new file mode 100644
index 00000000..83fec18f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.a_global_method.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.a_global_method"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_a_global_method</api:name>
+ <api:arg>
+ <api:type>Utility.Object</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>a_global_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function a_global_method(obj:Utility.Object):void {
+ // Gjs wrapper for regress_foo_object_a_global_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.append_new_stack_layer.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.append_new_stack_layer.page
new file mode 100644
index 00000000..f1bfd923
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.append_new_stack_layer.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.append_new_stack_layer"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooOtherObject</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_append_new_stack_layer</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.append_new_stack_layer</title>
+
+<synopsis><code mime="text/x-gjs">
+function append_new_stack_layer(x:Number):Regress.FooOtherObject {
+ // Gjs wrapper for regress_foo_object_append_new_stack_layer()
+}
+</code></synopsis>
+
+
+ <p>This shouldn't be scanned as a constructor.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.dup_name.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.dup_name.page
new file mode 100644
index 00000000..d74f95bf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.dup_name.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.dup_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>String</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_dup_name</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.dup_name</title>
+
+<synopsis><code mime="text/x-gjs">
+function dup_name():String {
+ // Gjs wrapper for regress_foo_object_dup_name()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.external_type.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.external_type.page
new file mode 100644
index 00000000..7da1b86e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.external_type.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.external_type"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Utility.Object</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_external_type</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.external_type</title>
+
+<synopsis><code mime="text/x-gjs">
+function external_type():Utility.Object {
+ // Gjs wrapper for regress_foo_object_external_type()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p><code>null</code> always</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_default.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_default.page
new file mode 100644
index 00000000..8ab86544
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_default.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.get_default"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooSubobject</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_get_default</api:name>
+ </api:function>
+
+ </info>
+ <title>get_default</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_default():Regress.FooSubobject {
+ // Gjs wrapper for regress_foo_object_get_default()
+}
+</code></synopsis>
+
+
+ <p>This function is intended to match clutter_stage_get_default which
+uses a C sugar return type.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>The global <link xref="Regress.FooSubobject"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_name.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_name.page
new file mode 100644
index 00000000..b9c69d2b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.get_name.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.get_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>String</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_get_name</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.get_name</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_name():String {
+ // Gjs wrapper for regress_foo_object_get_name()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.handle_glyph.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.handle_glyph.page
new file mode 100644
index 00000000..3209f200
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.handle_glyph.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.handle_glyph"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_handle_glyph</api:name>
+ <api:arg>
+ <api:type>Utility.Glyph</api:type>
+ <api:name>glyph</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.handle_glyph</title>
+
+<synopsis><code mime="text/x-gjs">
+function handle_glyph(glyph:Utility.Glyph):void {
+ // Gjs wrapper for regress_foo_object_handle_glyph()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>glyph</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.is_it_time_yet.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.is_it_time_yet.page
new file mode 100644
index 00000000..f42e16bb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.is_it_time_yet.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.is_it_time_yet"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_is_it_time_yet</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>time</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.is_it_time_yet</title>
+
+<synopsis><code mime="text/x-gjs">
+function is_it_time_yet(time:Number):void {
+ // Gjs wrapper for regress_foo_object_is_it_time_yet()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>time</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new.page
new file mode 100644
index 00000000..fa40bfc3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooObject</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.FooObject {
+ // Gjs wrapper for regress_foo_object_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new_as_super.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new_as_super.page
new file mode 100644
index 00000000..0323a1be
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.new_as_super.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.new_as_super"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_new_as_super</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.new_as_super</title>
+
+<synopsis><code mime="text/x-gjs">
+function new_as_super():GObject.Object {
+ // Gjs wrapper for regress_foo_object_new_as_super()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.page
new file mode 100644
index 00000000..1cbea89b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let foo_object = new Regress.FooObject({
+ <link xref='Regress.FooObject-hidden'>hidden</link>: value,
+ <link xref='Regress.FooObject-string'>string</link>: value,
+});
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.read.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.read.page
new file mode 100644
index 00000000..78bdb648
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.read.page
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.read"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_read</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>offset</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.read</title>
+
+<synopsis><code mime="text/x-gjs">
+function read(offset:Number, length:Number):void {
+ // Gjs wrapper for regress_foo_object_read()
+}
+</code></synopsis>
+
+
+ <p>Read some stuff.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>offset</code></title>
+<p>offset</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>length</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.static_meth.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.static_meth.page
new file mode 100644
index 00000000..c4c1045a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.static_meth.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.static_meth"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_static_meth</api:name>
+ </api:function>
+
+ </info>
+ <title>static_meth</title>
+
+<synopsis><code mime="text/x-gjs">
+function static_meth():Number {
+ // Gjs wrapper for regress_foo_object_static_meth()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.various.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.various.page
new file mode 100644
index 00000000..1f509214
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.various.page
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.various"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_various</api:name>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GType</api:type>
+ <api:name>some_type</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.various</title>
+
+<synopsis><code mime="text/x-gjs">
+function various(data:gpointer, some_type:GType):void {
+ // Gjs wrapper for regress_foo_object_various()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>some_type</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.virtual_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.virtual_method.page
new file mode 100644
index 00000000..3467ca20
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObject.virtual_method.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.virtual_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_virtual_method</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>first_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.prototype.virtual_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function virtual_method(first_param:Number):Boolean {
+ // Gjs wrapper for regress_foo_object_virtual_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>first_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObjectCookie.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObjectCookie.page
new file mode 100644
index 00000000..44a63ab1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooObjectCookie.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObjectCookie"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooObjectCookie</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooOtherObject.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooOtherObject.page
new file mode 100644
index 00000000..0916a449
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooOtherObject.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.FooOtherObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooOtherObject</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let foo_other_object = new Regress.FooOtherObject();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooOtherObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.add.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.add.page
new file mode 100644
index 00000000..276450e6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.add.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooRectangle.add"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooRectangle" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_rectangle_add</api:name>
+ <api:arg>
+ <api:type>Regress.FooRectangle</api:type>
+ <api:name>r2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooRectangle.prototype.add</title>
+
+<synopsis><code mime="text/x-gjs">
+function add(r2:Regress.FooRectangle):void {
+ // Gjs wrapper for regress_foo_rectangle_add()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>r2</code></title>
+<p>source rectangle</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.page
new file mode 100644
index 00000000..0cfef622
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooRectangle.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooRectangle"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooRectangle</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStackLayer.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStackLayer.page
new file mode 100644
index 00000000..8a08c9ae
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStackLayer.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.FooStackLayer"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooStackLayer</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooStackLayer.DESKTOP</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.BOTTOM</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.NORMAL</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.TOP</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.DOCK</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.FULLSCREEN</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.FOCUSED_WINDOW</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.OVERRIDE_REDIRECT</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.LAST</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStruct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStruct.page
new file mode 100644
index 00000000..84f5d192
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy-event.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy-event.page
new file mode 100644
index 00000000..961a22e6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy-event.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-destroy-event"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="signal" type="guide"/>
+ <title type="link" role="topic">destroy-event</title>
+
+ </info>
+ <title>Regress.FooSubInterface::destroy-event</title>
+
+<synopsis><code mime="text/x-python">
+function callback(foo_sub_interface, ):void;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>foo_sub_interface</code></title>
+<p>instance of <link xref="Regress.FooSubInterface"/> that is emitting the signal</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy_event.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy_event.page
new file mode 100644
index 00000000..5abc585f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-destroy_event.page
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-destroy_event"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::destroy_event</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_destroy_event():void {
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_bar.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_bar.page
new file mode 100644
index 00000000..81649248
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_bar.page
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-do_bar"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::do_bar</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_do_bar():void {
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_baz.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_baz.page
new file mode 100644
index 00000000..4945c890
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface-do_baz.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-do_baz"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::do_baz</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_do_baz(callback:GObject.Callback):void {
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_bar.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_bar.page
new file mode 100644
index 00000000..a258a3e6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_bar.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface.do_bar"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_sub_interface_do_bar</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooSubInterface.prototype.do_bar</title>
+
+<synopsis><code mime="text/x-gjs">
+function do_bar():void {
+ // Gjs wrapper for regress_foo_sub_interface_do_bar()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_baz.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_baz.page
new file mode 100644
index 00000000..b55a8d78
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.do_baz.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface.do_baz"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_sub_interface_do_baz</api:name>
+ <api:arg>
+ <api:type>GObject.Callback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooSubInterface.prototype.do_baz</title>
+
+<synopsis><code mime="text/x-gjs">
+function do_baz(callback:GObject.Callback):void {
+ // Gjs wrapper for regress_foo_sub_interface_do_baz()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.page
new file mode 100644
index 00000000..0694e3df
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubInterface.page
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let foo_sub_interface = new Regress.FooSubInterface();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.FooSubInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.new.page
new file mode 100644
index 00000000..08cb116d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubobject.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubobject" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooSubobject</api:type>
+ </api:returns>
+ <api:name>regress_foo_subobject_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooSubobject.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.FooSubobject {
+ // Gjs wrapper for regress_foo_subobject_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.page
new file mode 100644
index 00000000..f9cac644
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooSubobject.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubobject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubobject</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let foo_subobject = new Regress.FooSubobject();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ <item>
+ <code>Regress.FooSubobject</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooThingWithArray.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooThingWithArray.page
new file mode 100644
index 00000000..430dce7c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooThingWithArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooThingWithArray"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooThingWithArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUnion.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUnion.page
new file mode 100644
index 00000000..9746f17e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooUnion"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUtilityStruct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUtilityStruct.page
new file mode 100644
index 00000000..2b94f691
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooUtilityStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooUtilityStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooUtilityStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooXEvent.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooXEvent.page
new file mode 100644
index 00000000..c389ef05
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.FooXEvent.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooXEvent"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooXEvent</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeGnomeKeyringPasswordSchema.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeGnomeKeyringPasswordSchema.page
new file mode 100644
index 00000000..44a946ee
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeGnomeKeyringPasswordSchema.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeGnomeKeyringPasswordSchema"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.LikeGnomeKeyringPasswordSchema</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.page
new file mode 100644
index 00000000..fb4831f5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeXklConfigItem"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.LikeXklConfigItem</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.set_name.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.set_name.page
new file mode 100644
index 00000000..f81bc5df
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.LikeXklConfigItem.set_name.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeXklConfigItem.set_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.LikeXklConfigItem" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_like_xkl_config_item_set_name</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>name</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.LikeXklConfigItem.prototype.set_name</title>
+
+<synopsis><code mime="text/x-gjs">
+function set_name(name:String):void {
+ // Gjs wrapper for regress_like_xkl_config_item_set_name()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>name</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.PtrArrayAlias.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.PtrArrayAlias.page
new file mode 100644
index 00000000..f66aee44
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.PtrArrayAlias.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.PtrArrayAlias"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.PtrArrayAlias</title>
+
+
+
+ <p>Typedef'd GPtrArray for some reason</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.page
new file mode 100644
index 00000000..f31b58ec
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestABCError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestABCError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestABCError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestABCError.CODE2</code></title>
+
+</item>
+<item>
+<title><code>TestABCError.CODE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.quark.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.quark.page
new file mode 100644
index 00000000..72f9adc3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestABCError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestABCError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_abc_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>quark</title>
+
+<synopsis><code mime="text/x-gjs">
+function quark():GLib.Quark {
+ // Gjs wrapper for regress_test_abc_error_quark()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.copy.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.copy.page
new file mode 100644
index 00000000..751ce883
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.copy.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxed</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_copy</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.prototype.copy</title>
+
+<synopsis><code mime="text/x-gjs">
+function copy():Regress.TestBoxed {
+ // Gjs wrapper for regress_test_boxed_copy()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.equals.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.equals.page
new file mode 100644
index 00000000..5c23da2d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.equals.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.equals"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_equals</api:name>
+ <api:arg>
+ <api:type>Regress.TestBoxed</api:type>
+ <api:name>other</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.prototype.equals</title>
+
+<synopsis><code mime="text/x-gjs">
+function equals(other:Regress.TestBoxed):Boolean {
+ // Gjs wrapper for regress_test_boxed_equals()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>other</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new.page
new file mode 100644
index 00000000..88e33de3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxed</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.TestBoxed {
+ // Gjs wrapper for regress_test_boxed_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor1.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor1.page
new file mode 100644
index 00000000..801bad21
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor1.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new_alternative_constructor1"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxed</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new_alternative_constructor1</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.new_alternative_constructor1</title>
+
+<synopsis><code mime="text/x-gjs">
+function new_alternative_constructor1(i:Number):Regress.TestBoxed {
+ // Gjs wrapper for regress_test_boxed_new_alternative_constructor1()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor2.page
new file mode 100644
index 00000000..23fa6723
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor2.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new_alternative_constructor2"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxed</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new_alternative_constructor2</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>j</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.new_alternative_constructor2</title>
+
+<synopsis><code mime="text/x-gjs">
+function new_alternative_constructor2(i:Number, j:Number):Regress.TestBoxed {
+ // Gjs wrapper for regress_test_boxed_new_alternative_constructor2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+
+</item>
+<item>
+<title><code>j</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor3.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor3.page
new file mode 100644
index 00000000..8f0c2d28
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.new_alternative_constructor3.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.new_alternative_constructor3"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxed</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_new_alternative_constructor3</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>s</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.new_alternative_constructor3</title>
+
+<synopsis><code mime="text/x-gjs">
+function new_alternative_constructor3(s:String):Regress.TestBoxed {
+ // Gjs wrapper for regress_test_boxed_new_alternative_constructor3()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>s</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.page
new file mode 100644
index 00000000..baa423f2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxed</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.copy.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.copy.page
new file mode 100644
index 00000000..06bccc87
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.copy.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxedB</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_b_copy</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedB.prototype.copy</title>
+
+<synopsis><code mime="text/x-gjs">
+function copy():Regress.TestBoxedB {
+ // Gjs wrapper for regress_test_boxed_b_copy()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.new.page
new file mode 100644
index 00000000..e71147ae
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.new.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedB" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxedB</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_b_new</api:name>
+ <api:arg>
+ <api:type>gint8</api:type>
+ <api:name>some_int8</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>some_long</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedB.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new(some_int8:gint8, some_long:Number):Regress.TestBoxedB {
+ // Gjs wrapper for regress_test_boxed_b_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>some_int8</code></title>
+
+</item>
+<item>
+<title><code>some_long</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.page
new file mode 100644
index 00000000..0e39780b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.new.page
new file mode 100644
index 00000000..542c93e4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedC.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedC" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxedC</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_c_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedC.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.TestBoxedC {
+ // Gjs wrapper for regress_test_boxed_c_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.page
new file mode 100644
index 00000000..18b77d9f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedC.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedC"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedC</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.copy.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.copy.page
new file mode 100644
index 00000000..7b51fd5b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.copy.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxedD</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_copy</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedD.prototype.copy</title>
+
+<synopsis><code mime="text/x-gjs">
+function copy():Regress.TestBoxedD {
+ // Gjs wrapper for regress_test_boxed_d_copy()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.free.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.free.page
new file mode 100644
index 00000000..82df9040
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.free.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.free"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_free</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedD.prototype.free</title>
+
+<synopsis><code mime="text/x-gjs">
+function free():void {
+ // Gjs wrapper for regress_test_boxed_d_free()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.get_magic.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.get_magic.page
new file mode 100644
index 00000000..0f7923e6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.get_magic.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.get_magic"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_get_magic</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedD.prototype.get_magic</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_magic():Number {
+ // Gjs wrapper for regress_test_boxed_d_get_magic()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.new.page
new file mode 100644
index 00000000..cfd50c56
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.new.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxedD</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_new</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>a_string</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>a_int</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedD.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new(a_string:String, a_int:Number):Regress.TestBoxedD {
+ // Gjs wrapper for regress_test_boxed_d_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>a_string</code></title>
+
+</item>
+<item>
+<title><code>a_int</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.page
new file mode 100644
index 00000000..995e80dd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestBoxedD.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedD</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallback.page
new file mode 100644
index 00000000..bed84d50
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackArray.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackArray.page
new file mode 100644
index 00000000..7d3f7b83
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackArray"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackFull.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackFull.page
new file mode 100644
index 00000000..0b8fca1d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackFull.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackFull"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackFull</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackGError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackGError.page
new file mode 100644
index 00000000..804382f5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackGError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackGError"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackGError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackHashtable.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackHashtable.page
new file mode 100644
index 00000000..06ebb706
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackHashtable.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackHashtable"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackHashtable</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackOwnedGError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackOwnedGError.page
new file mode 100644
index 00000000..28b21ea4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackOwnedGError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackOwnedGError"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackOwnedGError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackUserData.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackUserData.page
new file mode 100644
index 00000000..286c830a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestCallbackUserData.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackUserData"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackUserData</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestDEFError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestDEFError.page
new file mode 100644
index 00000000..589059d5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestDEFError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestDEFError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestDEFError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestDEFError.CODE0</code></title>
+
+</item>
+<item>
+<title><code>TestDEFError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestDEFError.CODE2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.page
new file mode 100644
index 00000000..814b474b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnum"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnum</title>
+
+
+
+ <p>By purpose, not all members have documentation</p>
+
+
+
+
+<terms>
+<item>
+<title><code>TestEnum.VALUE1</code></title>
+<p>value 1</p>
+</item>
+<item>
+<title><code>TestEnum.VALUE2</code></title>
+<p>value 2</p>
+</item>
+<item>
+<title><code>TestEnum.VALUE3</code></title>
+
+</item>
+<item>
+<title><code>TestEnum.VALUE4</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.param.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.param.page
new file mode 100644
index 00000000..b4dfb296
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnum.param.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnum.param"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_test_enum_param</api:name>
+ <api:arg>
+ <api:type>Regress.TestEnum</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>param</title>
+
+<synopsis><code mime="text/x-gjs">
+function param(e:Regress.TestEnum):String {
+ // Gjs wrapper for regress_test_enum_param()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumNoGEnum.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumNoGEnum.page
new file mode 100644
index 00000000..5c0c5594
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumNoGEnum.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnumNoGEnum"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnumNoGEnum</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestEnumNoGEnum.EVALUE1</code></title>
+
+</item>
+<item>
+<title><code>TestEnumNoGEnum.EVALUE2</code></title>
+
+</item>
+<item>
+<title><code>TestEnumNoGEnum.EVALUE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumUnsigned.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumUnsigned.page
new file mode 100644
index 00000000..df3cfa1e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestEnumUnsigned.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnumUnsigned"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnumUnsigned</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestEnumUnsigned.VALUE1</code></title>
+
+</item>
+<item>
+<title><code>TestEnumUnsigned.VALUE2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.page
new file mode 100644
index 00000000..d6a6ebb2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestError.CODE2</code></title>
+
+</item>
+<item>
+<title><code>TestError.CODE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.quark.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.quark.page
new file mode 100644
index 00000000..f849bfe4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>quark</title>
+
+<synopsis><code mime="text/x-gjs">
+function quark():GLib.Quark {
+ // Gjs wrapper for regress_test_error_quark()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFlags.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFlags.page
new file mode 100644
index 00000000..d5bfeeb4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFlags.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFlags"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFlags</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.new.page
new file mode 100644
index 00000000..94c80cfa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFloating.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFloating" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestFloating</api:type>
+ </api:returns>
+ <api:name>regress_test_floating_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestFloating.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.TestFloating {
+ // Gjs wrapper for regress_test_floating_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>A new floating <link xref="Regress.TestFloating"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.page
new file mode 100644
index 00000000..07ef3f21
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFloating.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFloating"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFloating</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_floating = new Regress.TestFloating();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>GObject.InitiallyUnowned</code>
+ <item>
+ <code>Regress.TestFloating</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.page
new file mode 100644
index 00000000..a8cb35a0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.page
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObject</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_fundamental_object = new Regress.TestFundamentalObject();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestFundamentalObject</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.ref.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.ref.page
new file mode 100644
index 00000000..b1c37efb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.ref.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject.ref"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestFundamentalObject</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_object_ref</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestFundamentalObject.prototype.ref</title>
+
+<synopsis><code mime="text/x-gjs">
+function ref():Regress.TestFundamentalObject {
+ // Gjs wrapper for regress_test_fundamental_object_ref()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>A new <link xref="Regress.TestFundamentalObject"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.unref.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.unref.page
new file mode 100644
index 00000000..758a30d7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObject.unref.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject.unref"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_object_unref</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestFundamentalObject.prototype.unref</title>
+
+<synopsis><code mime="text/x-gjs">
+function unref():void {
+ // Gjs wrapper for regress_test_fundamental_object_unref()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectCopyFunction.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectCopyFunction.page
new file mode 100644
index 00000000..73a33285
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectCopyFunction.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObjectCopyFunction"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObjectCopyFunction</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectFinalizeFunction.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectFinalizeFunction.page
new file mode 100644
index 00000000..df0e8fba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalObjectFinalizeFunction.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObjectFinalizeFunction"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObjectFinalizeFunction</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.new.page
new file mode 100644
index 00000000..c6a31f90
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.new.page
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalSubObject.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalSubObject"
+ group="constructor"
+ type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestFundamentalSubObject</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_sub_object_new</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestFundamentalSubObject.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new(data:String):Regress.TestFundamentalSubObject {
+ // Gjs wrapper for regress_test_fundamental_sub_object_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.page
new file mode 100644
index 00000000..619eb308
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestFundamentalSubObject.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalSubObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalSubObject</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_fundamental_sub_object = new Regress.TestFundamentalSubObject();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestFundamentalObject</code>
+ <item>
+ <code>Regress.TestFundamentalSubObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo.page
new file mode 100644
index 00000000..176211b3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.do_foo"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_do_foo</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.prototype.do_foo</title>
+
+<synopsis><code mime="text/x-gjs">
+function do_foo(x:Number):void {
+ // Gjs wrapper for regress_test_inherit_drawable_do_foo()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page
new file mode 100644
index 00000000..038b73f9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.do_foo_maybe_throw"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_do_foo_maybe_throw</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.prototype.do_foo_maybe_throw</title>
+
+<synopsis><code mime="text/x-gjs">
+function do_foo_maybe_throw(x:Number):void {
+ // Gjs wrapper for regress_test_inherit_drawable_do_foo_maybe_throw()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_origin.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_origin.page
new file mode 100644
index 00000000..9dd2cbaa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_origin.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.get_origin"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_get_origin</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.prototype.get_origin</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_origin():void {
+ // Gjs wrapper for regress_test_inherit_drawable_get_origin()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_size.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_size.page
new file mode 100644
index 00000000..669ab1ce
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.get_size.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.get_size"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_get_size</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.prototype.get_size</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_size():void {
+ // Gjs wrapper for regress_test_inherit_drawable_get_size()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.page
new file mode 100644
index 00000000..02fa0649
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritDrawable.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestInheritDrawable</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_inherit_drawable = new Regress.TestInheritDrawable();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestInheritDrawable</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritPixmapObjectClass.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritPixmapObjectClass.page
new file mode 100644
index 00000000..0df0396b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInheritPixmapObjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritPixmapObjectClass"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestInheritPixmapObjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInterface.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInterface.page
new file mode 100644
index 00000000..4f398908
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestInterface.page
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestInterface</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_interface = new Regress.TestInterface();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-all.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-all.page
new file mode 100644
index 00000000..c2d87a47
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-all.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-all"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">all</title>
+
+ </info>
+ <title>Regress.TestObj::all</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, ):void;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-allow_none_vfunc.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-allow_none_vfunc.page
new file mode 100644
index 00000000..3febd772
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-allow_none_vfunc.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-allow_none_vfunc"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj::allow_none_vfunc</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_allow_none_vfunc(two:Regress.TestObj):void {
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>two</code></title>
+<p>Another object</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-bare.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-bare.page
new file mode 100644
index 00000000..f1f1b520
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-bare.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-bare"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">bare</title>
+
+ </info>
+ <title>Regress.TestObj:bare</title>
+
+<synopsis><code mime="text/x-python">
+"bare" GObject.Object : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-boxed.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-boxed.page
new file mode 100644
index 00000000..a392a771
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-boxed.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-boxed"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">boxed</title>
+
+ </info>
+ <title>Regress.TestObj:boxed</title>
+
+<synopsis><code mime="text/x-python">
+"boxed" Regress.TestBoxed : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-cleanup.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-cleanup.page
new file mode 100644
index 00000000..8e5e2bfe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-cleanup.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-cleanup"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">cleanup</title>
+
+ </info>
+ <title>Regress.TestObj::cleanup</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, ):void;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-double.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-double.page
new file mode 100644
index 00000000..5e2df6bb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-double.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-double"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">double</title>
+
+ </info>
+ <title>Regress.TestObj:double</title>
+
+<synopsis><code mime="text/x-python">
+"double" Number : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-first.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-first.page
new file mode 100644
index 00000000..d0294e9e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-first.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-first"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">first</title>
+
+ </info>
+ <title>Regress.TestObj::first</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, ):void;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-float.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-float.page
new file mode 100644
index 00000000..0554ba82
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-float.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-float"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">float</title>
+
+ </info>
+ <title>Regress.TestObj:float</title>
+
+<synopsis><code mime="text/x-python">
+"float" Number : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-gtype.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-gtype.page
new file mode 100644
index 00000000..6b222e4e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-gtype.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-gtype"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">gtype</title>
+
+ </info>
+ <title>Regress.TestObj:gtype</title>
+
+<synopsis><code mime="text/x-python">
+"gtype" GType : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table-old.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table-old.page
new file mode 100644
index 00000000..1d3c3c22
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table-old.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-hash-table-old"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">hash-table-old</title>
+
+ </info>
+ <title>Regress.TestObj:hash-table-old</title>
+
+<synopsis><code mime="text/x-python">
+"hash-table-old" {String: gint8} : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table.page
new file mode 100644
index 00000000..f8d3441a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-hash-table.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-hash-table"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">hash-table</title>
+
+ </info>
+ <title>Regress.TestObj:hash-table</title>
+
+<synopsis><code mime="text/x-python">
+"hash-table" {String: gint8} : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-int.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-int.page
new file mode 100644
index 00000000..0c3f4ccb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-int.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-int"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">int</title>
+
+ </info>
+ <title>Regress.TestObj:int</title>
+
+<synopsis><code mime="text/x-python">
+"int" Number : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list-old.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list-old.page
new file mode 100644
index 00000000..9d8ea917
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list-old.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-list-old"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">list-old</title>
+
+ </info>
+ <title>Regress.TestObj:list-old</title>
+
+<synopsis><code mime="text/x-python">
+"list-old" [String] : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list.page
new file mode 100644
index 00000000..02638e9e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-list.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-list"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">list</title>
+
+ </info>
+ <title>Regress.TestObj:list</title>
+
+<synopsis><code mime="text/x-python">
+"list" [String] : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-matrix.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-matrix.page
new file mode 100644
index 00000000..1d832171
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-matrix.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-matrix"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj::matrix</title>
+
+<synopsis><code mime="text/x-gjs">
+function vfunc_matrix(somestr:String):Number {
+}
+</code></synopsis>
+
+
+ <p>This method is virtual. Notably its name differs from the virtual
+slot name, which makes it useful for testing bindings handle this
+case.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>somestr</code></title>
+<p>Meaningless string</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page
new file mode 100644
index 00000000..c359b137
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-array-len-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-array-len-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-array-len-prop</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, arr:[Number], ):void;
+</code></synopsis>
+
+
+ <p>This test signal similar to GSettings::change-event</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arr</code></title>
+<p>numbers, or <code>null</code></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-prop.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-prop.page
new file mode 100644
index 00000000..b1919f9b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-prop.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-array-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-array-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-array-prop</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, arr:[Number], ):void;
+</code></synopsis>
+
+
+ <p>This test signal is like TelepathyGlib's
+ TpChannel:: group-members-changed-detailed:</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arr</code></title>
+<p>numbers</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-foreign-struct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-foreign-struct.page
new file mode 100644
index 00000000..31b8ca38
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-foreign-struct.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-foreign-struct"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-foreign-struct</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-foreign-struct</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, cr:cairo.Context, ):void;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>cr</code></title>
+<p>A cairo context.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-hash-prop.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-hash-prop.page
new file mode 100644
index 00000000..137a4130
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-hash-prop.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-hash-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-hash-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-hash-prop</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, hash:{String: GObject.Value}, ):void;
+</code></synopsis>
+
+
+ <p>This test signal is like TelepathyGlib's
+ TpAccount::status-changed</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>hash</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-int64-prop.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-int64-prop.page
new file mode 100644
index 00000000..6c528c03
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-int64-prop.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-int64-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-int64-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-int64-prop</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, i:Number, ):Number;
+</code></synopsis>
+
+
+ <p>You can use this with regress_test_obj_emit_sig_with_int64, or raise from
+the introspection client langage.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-intarray-ret.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-intarray-ret.page
new file mode 100644
index 00000000..f724bcbf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-intarray-ret.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-intarray-ret"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-intarray-ret</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-intarray-ret</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, i:Number, ):[Number];
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-obj.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-obj.page
new file mode 100644
index 00000000..d7e15e05
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-obj.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-obj"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-obj</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-obj</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, obj:GObject.Object, ):void;
+</code></synopsis>
+
+
+ <p>Test transfer none GObject as a param (tests refcounting).
+Use with regress_test_obj_emit_sig_with_obj</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>obj</code></title>
+<p>A newly created RegressTestObj</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-strv.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-strv.page
new file mode 100644
index 00000000..a63e2076
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-strv.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-strv"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-strv</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-strv</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, strs:[String], ):void;
+</code></synopsis>
+
+
+ <p>Test GStrv as a param.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>strs</code></title>
+<p>strings</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-uint64-prop.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-uint64-prop.page
new file mode 100644
index 00000000..6fbf7a09
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-uint64-prop.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-uint64-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-uint64-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-uint64-prop</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, i:Number, ):Number;
+</code></synopsis>
+
+
+ <p>You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
+the introspection client langage.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-string.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-string.page
new file mode 100644
index 00000000..2e91097a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-string.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-string"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">string</title>
+
+ </info>
+ <title>Regress.TestObj:string</title>
+
+<synopsis><code mime="text/x-python">
+"string" String : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test-with-static-scope-arg.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test-with-static-scope-arg.page
new file mode 100644
index 00000000..b19711f1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test-with-static-scope-arg.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-test-with-static-scope-arg"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">test-with-static-scope-arg</title>
+
+ </info>
+ <title>Regress.TestObj::test-with-static-scope-arg</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, object:Regress.TestSimpleBoxedA, ):void;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>object</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test.page
new file mode 100644
index 00000000..9700cefd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-test.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-test"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">test</title>
+
+ </info>
+ <title>Regress.TestObj::test</title>
+
+<synopsis><code mime="text/x-python">
+function callback(test_obj, ):void;
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.constructor.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.constructor.page
new file mode 100644
index 00000000..4f2183d8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.constructor.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.constructor"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestObj</api:type>
+ </api:returns>
+ <api:name>regress_constructor</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.constructor</title>
+
+<synopsis><code mime="text/x-gjs">
+function constructor():Regress.TestObj {
+ // Gjs wrapper for regress_constructor()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.do_matrix.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.do_matrix.page
new file mode 100644
index 00000000..0770d0d3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.do_matrix.page
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.do_matrix"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_do_matrix</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>somestr</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.do_matrix</title>
+
+<synopsis><code mime="text/x-gjs">
+function do_matrix(somestr:String):Number {
+ // Gjs wrapper for regress_test_obj_do_matrix()
+}
+</code></synopsis>
+
+
+ <p>This method is virtual. Notably its name differs from the virtual
+slot name, which makes it useful for testing bindings handle this
+case.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>somestr</code></title>
+<p>Meaningless string</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_foreign_struct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_foreign_struct.page
new file mode 100644
index 00000000..5e719483
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_foreign_struct.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_foreign_struct"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_foreign_struct</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.emit_sig_with_foreign_struct</title>
+
+<synopsis><code mime="text/x-gjs">
+function emit_sig_with_foreign_struct():void {
+ // Gjs wrapper for regress_test_obj_emit_sig_with_foreign_struct()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_int64.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_int64.page
new file mode 100644
index 00000000..1c46dfbb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_int64.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_int64"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_int64</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.emit_sig_with_int64</title>
+
+<synopsis><code mime="text/x-gjs">
+function emit_sig_with_int64():void {
+ // Gjs wrapper for regress_test_obj_emit_sig_with_int64()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_obj.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_obj.page
new file mode 100644
index 00000000..ea33a826
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_obj.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_obj"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_obj</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.emit_sig_with_obj</title>
+
+<synopsis><code mime="text/x-gjs">
+function emit_sig_with_obj():void {
+ // Gjs wrapper for regress_test_obj_emit_sig_with_obj()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_uint64.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_uint64.page
new file mode 100644
index 00000000..35c06780
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_uint64.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_uint64"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_uint64</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.emit_sig_with_uint64</title>
+
+<synopsis><code mime="text/x-gjs">
+function emit_sig_with_uint64():void {
+ // Gjs wrapper for regress_test_obj_emit_sig_with_uint64()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.forced_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.forced_method.page
new file mode 100644
index 00000000..b3ff3bf7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.forced_method.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.forced_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_forced_method</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.forced_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function forced_method():void {
+ // Gjs wrapper for regress_forced_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method.page
new file mode 100644
index 00000000..9ee87686
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.instance_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_instance_method</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.instance_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function instance_method():Number {
+ // Gjs wrapper for regress_test_obj_instance_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method_callback.page
new file mode 100644
index 00000000..fe260691
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.instance_method_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.instance_method_callback"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_instance_method_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.instance_method_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function instance_method_callback(callback:Regress.TestCallback):void {
+ // Gjs wrapper for regress_test_obj_instance_method_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new.page
new file mode 100644
index 00000000..024db932
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestObj</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_new</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new(obj:Regress.TestObj):Regress.TestObj {
+ // Gjs wrapper for regress_test_obj_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new_callback.page
new file mode 100644
index 00000000..4eaa0365
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new_callback.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.new_callback"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestObj</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_new_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.new_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function new_callback(callback:Regress.TestCallbackUserData):Regress.TestObj {
+ // Gjs wrapper for regress_test_obj_new_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.TestObj.new_from_file.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new_from_file.page
new file mode 100644
index 00000000..c54fa622
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.new_from_file.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.new_from_file"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestObj</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_new_from_file</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.new_from_file</title>
+
+<synopsis><code mime="text/x-gjs">
+function new_from_file(x:String):Regress.TestObj {
+ // Gjs wrapper for regress_test_obj_new_from_file()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.null_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.null_out.page
new file mode 100644
index 00000000..dfc9ef04
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.null_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.null_out"
+ 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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_null_out</api:name>
+ </api:function>
+
+ </info>
+ <title>null_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function null_out():void {
+ // Gjs wrapper for regress_test_obj_null_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.page
new file mode 100644
index 00000000..b8428942
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.page
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_obj = new Regress.TestObj({
+ <link xref='Regress.TestObj-bare'>bare</link>: value,
+ <link xref='Regress.TestObj-boxed'>boxed</link>: value,
+ <link xref='Regress.TestObj-double'>double</link>: value,
+ <link xref='Regress.TestObj-float'>float</link>: value,
+ <link xref='Regress.TestObj-gtype'>gtype</link>: value,
+ <link xref='Regress.TestObj-hash-table'>hash_table</link>: value,
+ <link xref='Regress.TestObj-hash-table-old'>hash_table_old</link>: value,
+ <link xref='Regress.TestObj-int'>int</link>: value,
+ <link xref='Regress.TestObj-list'>list</link>: value,
+ <link xref='Regress.TestObj-list-old'>list_old</link>: value,
+ <link xref='Regress.TestObj-string'>string</link>: value,
+});
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestObj</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.set_bare.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.set_bare.page
new file mode 100644
index 00000000..dca89e84
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.set_bare.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.set_bare"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_set_bare</api:name>
+ <api:arg>
+ <api:type>GObject.Object</api:type>
+ <api:name>bare</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.set_bare</title>
+
+<synopsis><code mime="text/x-gjs">
+function set_bare(bare:GObject.Object):void {
+ // Gjs wrapper for regress_test_obj_set_bare()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>bare</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_inout_param.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_inout_param.page
new file mode 100644
index 00000000..aee3f2c6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_inout_param.page
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_inout_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_inout_param</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.skip_inout_param</title>
+
+<synopsis><code mime="text/x-gjs">
+function skip_inout_param(a:Number, c:Number, inout_d:Number, num1:Number, num2:Number):Boolean {
+ // Gjs wrapper for regress_test_obj_skip_inout_param()
+}
+</code></synopsis>
+
+
+ <p>Check that the out value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>true</code> if the call succeeds, <code>false</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_out_param.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_out_param.page
new file mode 100644
index 00000000..75b7bb2c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_out_param.page
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_out_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_out_param</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.skip_out_param</title>
+
+<synopsis><code mime="text/x-gjs">
+function skip_out_param(a:Number, c:Number, inout_d:Number, num1:Number, num2:Number):Boolean {
+ // Gjs wrapper for regress_test_obj_skip_out_param()
+}
+</code></synopsis>
+
+
+ <p>Check that the out value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>true</code> if the call succeeds, <code>false</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_param.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_param.page
new file mode 100644
index 00000000..cd2081f8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_param.page
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_param</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.skip_param</title>
+
+<synopsis><code mime="text/x-gjs">
+function skip_param(a:Number, c:Number, inout_d:Number, num1:Number, num2:Number):Boolean {
+ // Gjs wrapper for regress_test_obj_skip_param()
+}
+</code></synopsis>
+
+
+ <p>Check that a parameter is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>true</code> if the call succeeds, <code>false</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val.page
new file mode 100644
index 00000000..22ec5729
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val.page
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_return_val"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_return_val</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.skip_return_val</title>
+
+<synopsis><code mime="text/x-gjs">
+function skip_return_val(a:Number, c:Number, inout_d:Number, num1:Number, num2:Number):Boolean {
+ // Gjs wrapper for regress_test_obj_skip_return_val()
+}
+</code></synopsis>
+
+
+ <p>Check that the return value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>true</code> if the call succeeds, <code>false</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val_no_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val_no_out.page
new file mode 100644
index 00000000..74701f7d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.skip_return_val_no_out.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_return_val_no_out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_return_val_no_out</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.skip_return_val_no_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function skip_return_val_no_out(a:Number):Boolean {
+ // Gjs wrapper for regress_test_obj_skip_return_val_no_out()
+}
+</code></synopsis>
+
+
+ <p>Check that the return value is skipped. Succeed if a is nonzero, otherwise
+raise an error.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p><code>true</code> if the call succeeds, <code>false</code> if @error is set.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method.page
new file mode 100644
index 00000000..d1f2e59b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.static_method"
+ 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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_static_method</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>static_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function static_method(x:Number):Number {
+ // Gjs wrapper for regress_test_obj_static_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method_callback.page
new file mode 100644
index 00000000..13e917eb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.static_method_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.static_method_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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_static_method_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>static_method_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function static_method_callback(callback:Regress.TestCallback):void {
+ // Gjs wrapper for regress_test_obj_static_method_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_0.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_0.page
new file mode 100644
index 00000000..78bf63ba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_0.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.torture_signature_0"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_torture_signature_0</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.torture_signature_0</title>
+
+<synopsis><code mime="text/x-gjs">
+function torture_signature_0(x:Number, foo:String, m:Number):void {
+ // Gjs wrapper for regress_test_obj_torture_signature_0()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_1.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_1.page
new file mode 100644
index 00000000..553ddd20
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.torture_signature_1.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.torture_signature_1"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_torture_signature_1</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.prototype.torture_signature_1</title>
+
+<synopsis><code mime="text/x-gjs">
+function torture_signature_1(x:Number, foo:String, m:Number):Boolean {
+ // Gjs wrapper for regress_test_obj_torture_signature_1()
+}
+</code></synopsis>
+
+
+ <p>This function throws an error if m is odd.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.page
new file mode 100644
index 00000000..858e58a8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestOtherError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestOtherError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestOtherError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestOtherError.CODE2</code></title>
+
+</item>
+<item>
+<title><code>TestOtherError.CODE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.quark.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.quark.page
new file mode 100644
index 00000000..d75b6aa4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestOtherError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestOtherError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_unconventional_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>quark</title>
+
+<synopsis><code mime="text/x-gjs">
+function quark():GLib.Quark {
+ // Gjs wrapper for regress_test_unconventional_error_quark()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateEnum.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateEnum.page
new file mode 100644
index 00000000..66b477d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateEnum.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestPrivateEnum"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestPrivateEnum</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateStruct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateStruct.page
new file mode 100644
index 00000000..7b1309da
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestPrivateStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestPrivateStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestPrivateStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceEnum.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceEnum.page
new file mode 100644
index 00000000..2c8b1abb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceEnum.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceEnum"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestReferenceEnum</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestReferenceEnum.0</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.1</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.2</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.3</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.4</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.5</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.const_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.const_return.page
new file mode 100644
index 00000000..7f5dfde3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.const_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.const_return"
+ 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="Regress.TestSimpleBoxedA" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_const_return</api:name>
+ </api:function>
+
+ </info>
+ <title>const_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function const_return():Regress.TestSimpleBoxedA {
+ // Gjs wrapper for regress_test_simple_boxed_a_const_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.copy.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.copy.page
new file mode 100644
index 00000000..6aa09744
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.copy.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_copy</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA.prototype.copy</title>
+
+<synopsis><code mime="text/x-gjs">
+function copy():Regress.TestSimpleBoxedA {
+ // Gjs wrapper for regress_test_simple_boxed_a_copy()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.equals.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.equals.page
new file mode 100644
index 00000000..52e58775
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.equals.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.equals"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_equals</api:name>
+ <api:arg>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ <api:name>other_a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA.prototype.equals</title>
+
+<synopsis><code mime="text/x-gjs">
+function equals(other_a:Regress.TestSimpleBoxedA):Boolean {
+ // Gjs wrapper for regress_test_simple_boxed_a_equals()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>other_a</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.page
new file mode 100644
index 00000000..9117ddb9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedA.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.copy.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.copy.page
new file mode 100644
index 00000000..b1bd51aa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.copy.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedB.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestSimpleBoxedB</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_b_copy</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSimpleBoxedB.prototype.copy</title>
+
+<synopsis><code mime="text/x-gjs">
+function copy():Regress.TestSimpleBoxedB {
+ // Gjs wrapper for regress_test_simple_boxed_b_copy()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.page
new file mode 100644
index 00000000..7ecc623e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleBoxedB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedB"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleBoxedB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleCallback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleCallback.page
new file mode 100644
index 00000000..f8157820
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSimpleCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.clone.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.clone.page
new file mode 100644
index 00000000..ded4a799
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.clone.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA.clone"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_a_clone</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestStructA.prototype.clone</title>
+
+<synopsis><code mime="text/x-gjs">
+function clone():void {
+ // Gjs wrapper for regress_test_struct_a_clone()
+}
+</code></synopsis>
+
+
+ <p>Make a copy of a RegressTestStructA</p>
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.page
new file mode 100644
index 00000000..a6a98173
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructA</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.parse.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.parse.page
new file mode 100644
index 00000000..38406e68
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructA.parse.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA.parse"
+ 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="Regress.TestStructA" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_a_parse</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>string</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>parse</title>
+
+<synopsis><code mime="text/x-gjs">
+function parse(string:String):void {
+ // Gjs wrapper for regress_test_struct_a_parse()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>string</code></title>
+<p>ignored</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.clone.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.clone.page
new file mode 100644
index 00000000..20278cd2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.clone.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructB.clone"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_b_clone</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestStructB.prototype.clone</title>
+
+<synopsis><code mime="text/x-gjs">
+function clone():void {
+ // Gjs wrapper for regress_test_struct_b_clone()
+}
+</code></synopsis>
+
+
+ <p>Make a copy of a RegressTestStructB</p>
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.page
new file mode 100644
index 00000000..21d86261
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructB"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructC.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructC.page
new file mode 100644
index 00000000..6bd58122
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructC.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructC"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructC</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructD.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructD.page
new file mode 100644
index 00000000..aa9f131c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructD.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructD"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructD</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE.page
new file mode 100644
index 00000000..b931c367
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructE"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructE</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE__some_union__union.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE__some_union__union.page
new file mode 100644
index 00000000..3b81e621
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructE__some_union__union.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructE__some_union__union"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructE__some_union__union</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructF.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructF.page
new file mode 100644
index 00000000..cfb434b4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructF.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructF"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructF</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.frob.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.frob.page
new file mode 100644
index 00000000..f0edd05a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.frob.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructFixedArray.frob"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructFixedArray" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_fixed_array_frob</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestStructFixedArray.prototype.frob</title>
+
+<synopsis><code mime="text/x-gjs">
+function frob():void {
+ // Gjs wrapper for regress_test_struct_fixed_array_frob()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.page
new file mode 100644
index 00000000..db6e7893
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestStructFixedArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructFixedArray"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructFixedArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.instance_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.instance_method.page
new file mode 100644
index 00000000..26fc7905
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.instance_method.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.instance_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_instance_method</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSubObj.prototype.instance_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function instance_method():Number {
+ // Gjs wrapper for regress_test_sub_obj_instance_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.new.page
new file mode 100644
index 00000000..31deab7f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestObj</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSubObj.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.TestObj {
+ // Gjs wrapper for regress_test_sub_obj_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.page
new file mode 100644
index 00000000..7147da12
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestSubObj</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_sub_obj = new Regress.TestSubObj();
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestObj</code>
+ <item>
+ <code>Regress.TestSubObj</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.unset_bare.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.unset_bare.page
new file mode 100644
index 00000000..a632f8f4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestSubObj.unset_bare.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.unset_bare"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_unset_bare</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSubObj.prototype.unset_bare</title>
+
+<synopsis><code mime="text/x-gjs">
+function unset_bare():void {
+ // Gjs wrapper for regress_test_sub_obj_unset_bare()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestTypeGUInt64.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestTypeGUInt64.page
new file mode 100644
index 00000000..e0a7bc09
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestTypeGUInt64.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestTypeGUInt64"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestTypeGUInt64</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x-testbool.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x-testbool.page
new file mode 100644
index 00000000..256dbb6d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x-testbool.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x-testbool"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="property" type="guide"/>
+ <title type="link" role="topic">testbool</title>
+
+ </info>
+ <title>Regress.TestWi8021x:testbool</title>
+
+<synopsis><code mime="text/x-python">
+"testbool" Boolean : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.get_testbool.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.get_testbool.page
new file mode 100644
index 00000000..e42b0d74
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.get_testbool.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.get_testbool"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_get_testbool</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestWi8021x.prototype.get_testbool</title>
+
+<synopsis><code mime="text/x-gjs">
+function get_testbool():Boolean {
+ // Gjs wrapper for regress_test_wi_802_1x_get_testbool()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.new.page
new file mode 100644
index 00000000..b8b162cf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.new.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.new"
+ type="topic"
+ style="constructor"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="constructor" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestWi8021x</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestWi8021x.new</title>
+
+<synopsis><code mime="text/x-gjs">
+function new():Regress.TestWi8021x {
+ // Gjs wrapper for regress_test_wi_802_1x_new()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.page
new file mode 100644
index 00000000..d69548f3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.page
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestWi8021x</title>
+
+ <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let test_wi8021x = new Regress.TestWi8021x({
+ <link xref='Regress.TestWi8021x-testbool'>testbool</link>: value,
+});
+ </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestWi8021x</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/x-gjs"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.set_testbool.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.set_testbool.page
new file mode 100644
index 00000000..e052ed5d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.set_testbool.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.set_testbool"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>void</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_set_testbool</api:name>
+ <api:arg>
+ <api:type>Boolean</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestWi8021x.prototype.set_testbool</title>
+
+<synopsis><code mime="text/x-gjs">
+function set_testbool(v:Boolean):void {
+ // Gjs wrapper for regress_test_wi_802_1x_set_testbool()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>v</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.static_method.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.static_method.page
new file mode 100644
index 00000000..ccfe04c6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestWi8021x.static_method.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.static_method"
+ 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="Regress.TestWi8021x" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Number</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_static_method</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>static_method</title>
+
+<synopsis><code mime="text/x-gjs">
+function static_method(x:Number):Number {
+ // Gjs wrapper for regress_test_wi_802_1x_static_method()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.aliased_caller_alloc.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.aliased_caller_alloc.page
new file mode 100644
index 00000000..de2b93b3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.aliased_caller_alloc.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.aliased_caller_alloc"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_aliased_caller_alloc</api:name>
+ </api:function>
+
+ </info>
+ <title>aliased_caller_alloc</title>
+
+<synopsis><code mime="text/x-gjs">
+function aliased_caller_alloc():void {
+ // Gjs wrapper for regress_aliased_caller_alloc()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_attribute_func.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_attribute_func.page
new file mode 100644
index 00000000..8f00a104
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_attribute_func.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_attribute_func"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_annotation_attribute_func</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_attribute_func</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_attribute_func(object:Regress.AnnotationObject, data:String):Number {
+ // Gjs wrapper for regress_annotation_attribute_func()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>A <link xref="Regress.AnnotationObject"/>.</p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>Some data.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>The return value.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_custom_destroy.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_custom_destroy.page
new file mode 100644
index 00000000..c3e96530
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_custom_destroy.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_custom_destroy"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_custom_destroy</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_custom_destroy</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_custom_destroy(callback:Regress.AnnotationCallback):void {
+ // Gjs wrapper for regress_annotation_custom_destroy()
+}
+</code></synopsis>
+
+
+ <p>Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+<p>Destroy notification</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_get_source_file.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_get_source_file.page
new file mode 100644
index 00000000..39f6c148
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_get_source_file.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_get_source_file"
+ 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>filename</api:type>
+ </api:returns>
+ <api:name>regress_annotation_get_source_file</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_get_source_file</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_get_source_file():filename {
+ // Gjs wrapper for regress_annotation_get_source_file()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>Source file</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_init.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_init.page
new file mode 100644
index 00000000..c75d9c27
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_init.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_init"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_init</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>argv</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_init</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_init(argv:[String]):void {
+ // Gjs wrapper for regress_annotation_init()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>argv</code></title>
+<p>The arguments.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_invalid_regress_annotation.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_invalid_regress_annotation.page
new file mode 100644
index 00000000..1997a4db
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_invalid_regress_annotation.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_invalid_regress_annotation"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_invalid_regress_annotation</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_invalid_regress_annotation</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_invalid_regress_annotation(foo:Number):void {
+ // Gjs wrapper for regress_annotation_invalid_regress_annotation()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>foo</code></title>
+<p>some text (e.g. example) or else</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_ptr_array.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_ptr_array.page
new file mode 100644
index 00000000..9bfb1680
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_ptr_array.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_ptr_array"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_ptr_array</api:name>
+ <api:arg>
+ <api:type>[GObject.Value]</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_ptr_array</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_ptr_array(array:[GObject.Value]):void {
+ // Gjs wrapper for regress_annotation_ptr_array()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+<p>the array</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_array.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_array.page
new file mode 100644
index 00000000..3f63c9a5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_array.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_return_array"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_return_array</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_return_array</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_return_array():[String] {
+ // Gjs wrapper for regress_annotation_return_array()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>The return value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_filename.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_filename.page
new file mode 100644
index 00000000..86419455
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_return_filename.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_return_filename"
+ 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>filename</api:type>
+ </api:returns>
+ <api:name>regress_annotation_return_filename</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_return_filename</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_return_filename():filename {
+ // Gjs wrapper for regress_annotation_return_filename()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>An annotated filename</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_set_source_file.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_set_source_file.page
new file mode 100644
index 00000000..a5977b87
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_set_source_file.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_set_source_file"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_set_source_file</api:name>
+ <api:arg>
+ <api:type>filename</api:type>
+ <api:name>fname</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_set_source_file</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_set_source_file(fname:filename):void {
+ // Gjs wrapper for regress_annotation_set_source_file()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>fname</code></title>
+<p>Source file</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_space_after_comment_bug631690.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_space_after_comment_bug631690.page
new file mode 100644
index 00000000..675e00da
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_space_after_comment_bug631690.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_space_after_comment_bug631690"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_space_after_comment_bug631690</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_space_after_comment_bug631690</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_space_after_comment_bug631690():void {
+ // Gjs wrapper for regress_annotation_space_after_comment_bug631690()
+}
+</code></synopsis>
+
+
+ <p>Explicitly test having a space after the ** here.</p>
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_array_length.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_array_length.page
new file mode 100644
index 00000000..347eb6d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_array_length.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_array_length"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_array_length</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>properties</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_string_array_length</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_string_array_length(properties:[String]):void {
+ // Gjs wrapper for regress_annotation_string_array_length()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>properties</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated.page
new file mode 100644
index 00000000..741447ea
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_zero_terminated"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_zero_terminated</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_string_zero_terminated</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_string_zero_terminated():[String] {
+ // Gjs wrapper for regress_annotation_string_zero_terminated()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>The return value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated_out.page
new file mode 100644
index 00000000..cd4d8bef
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_string_zero_terminated_out.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_zero_terminated_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_zero_terminated_out</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>annotation_string_zero_terminated_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_string_zero_terminated_out(out:[String]):void {
+ // Gjs wrapper for regress_annotation_string_zero_terminated_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_test_parsing_bug630862.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_test_parsing_bug630862.page
new file mode 100644
index 00000000..edade5bb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_test_parsing_bug630862.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_test_parsing_bug630862"
+ 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>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_test_parsing_bug630862</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_test_parsing_bug630862</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_test_parsing_bug630862():GObject.Object {
+ // Gjs wrapper for regress_annotation_test_parsing_bug630862()
+}
+</code></synopsis>
+
+
+ <p>See https://bugzilla.gnome.org/show_bug.cgi?id=630862</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>An object, note the colon:in here</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_transfer_floating.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_transfer_floating.page
new file mode 100644
index 00000000..a4fceafb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_transfer_floating.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_transfer_floating"
+ 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>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_transfer_floating</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_transfer_floating</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_transfer_floating():GObject.Object {
+ // Gjs wrapper for regress_annotation_transfer_floating()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>A floating object</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_versioned.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_versioned.page
new file mode 100644
index 00000000..f1d57003
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.annotation_versioned.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_versioned"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_annotation_versioned</api:name>
+ </api:function>
+
+ </info>
+ <title>annotation_versioned</title>
+
+<synopsis><code mime="text/x-gjs">
+function annotation_versioned():void {
+ // Gjs wrapper for regress_annotation_versioned()
+}
+</code></synopsis>
+
+
+
+
+
+ <p>Since 0.6</p>
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.atest_error_quark.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.atest_error_quark.page
new file mode 100644
index 00000000..3aade3ca
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.atest_error_quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.atest_error_quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_atest_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>atest_error_quark</title>
+
+<synopsis><code mime="text/x-gjs">
+function atest_error_quark():GLib.Quark {
+ // Gjs wrapper for regress_atest_error_quark()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_async_ready_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_async_ready_callback.page
new file mode 100644
index 00000000..980a9302
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_async_ready_callback.page
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_async_ready_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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_async_ready_callback</api:name>
+ <api:arg>
+ <api:type>Gio.Cancellable</api:type>
+ <api:name>cancellable</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Gio.AsyncReadyCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_async_ready_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_async_ready_callback(cancellable:Gio.Cancellable, callback:Gio.AsyncReadyCallback):void {
+ // Gjs wrapper for regress_foo_async_ready_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>cancellable</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_destroy_notify_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_destroy_notify_callback.page
new file mode 100644
index 00000000..d5cff2a4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_destroy_notify_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_destroy_notify_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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_destroy_notify_callback</api:name>
+ <api:arg>
+ <api:type>Regress.FooCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_destroy_notify_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_destroy_notify_callback(callback:Regress.FooCallback):void {
+ // Gjs wrapper for regress_foo_destroy_notify_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_init.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_init.page
new file mode 100644
index 00000000..20eb206c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_init.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_init"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_foo_init</api:name>
+ </api:function>
+
+ </info>
+ <title>foo_init</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_init():Number {
+ // Gjs wrapper for regress_foo_init()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_method_external_references.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_method_external_references.page
new file mode 100644
index 00000000..10876aa8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_method_external_references.page
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_method_external_references"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_method_external_references</api:name>
+ <api:arg>
+ <api:type>Utility.Object</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Utility.EnumType</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Utility.FlagType</api:type>
+ <api:name>f</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Utility.Struct</api:type>
+ <api:name>s</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_method_external_references</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_method_external_references(object:Utility.Object, e:Utility.EnumType, f:Utility.FlagType, s:Utility.Struct):void {
+ // Gjs wrapper for regress_foo_method_external_references()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>f</code></title>
+
+</item>
+<item>
+<title><code>s</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_not_a_constructor_new.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_not_a_constructor_new.page
new file mode 100644
index 00000000..31f881b7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_not_a_constructor_new.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_not_a_constructor_new"
+ 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>Regress.FooObject</api:type>
+ </api:returns>
+ <api:name>regress_foo_not_a_constructor_new</api:name>
+ </api:function>
+
+ </info>
+ <title>foo_not_a_constructor_new</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_not_a_constructor_new():Regress.FooObject {
+ // Gjs wrapper for regress_foo_not_a_constructor_new()
+}
+</code></synopsis>
+
+
+ <p>This should be scanned as a top-level function, and shouldn't cause
+a "Can't find matching type for constructor" warning.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_array.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_array.page
new file mode 100644
index 00000000..989084bf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_array.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_array"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_array</api:name>
+ </api:function>
+
+ </info>
+ <title>foo_test_array</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_array():[String] {
+ // Gjs wrapper for regress_foo_test_array()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_param.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_param.page
new file mode 100644
index 00000000..4f095620
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_param.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_char_param"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_char_param</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_test_const_char_param</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_const_char_param(param:String):void {
+ // Gjs wrapper for regress_foo_test_const_char_param()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_retval.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_retval.page
new file mode 100644
index 00000000..3ff92653
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_char_retval.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_char_retval"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_char_retval</api:name>
+ </api:function>
+
+ </info>
+ <title>foo_test_const_char_retval</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_const_char_retval():String {
+ // Gjs wrapper for regress_foo_test_const_char_retval()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_param.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_param.page
new file mode 100644
index 00000000..da103fbf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_param.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_struct_param"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_struct_param</api:name>
+ <api:arg>
+ <api:type>Regress.FooStruct</api:type>
+ <api:name>param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_test_const_struct_param</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_const_struct_param(param:Regress.FooStruct):void {
+ // Gjs wrapper for regress_foo_test_const_struct_param()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_retval.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_retval.page
new file mode 100644
index 00000000..9c7539c3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_const_struct_retval.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_struct_retval"
+ 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>Regress.FooStruct</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_struct_retval</api:name>
+ </api:function>
+
+ </info>
+ <title>foo_test_const_struct_retval</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_const_struct_retval():Regress.FooStruct {
+ // Gjs wrapper for regress_foo_test_const_struct_retval()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array.page
new file mode 100644
index 00000000..fe3b85ac
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_string_array"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_string_array</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_test_string_array</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_string_array(array:[String]):void {
+ // Gjs wrapper for regress_foo_test_string_array()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array_with_g.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array_with_g.page
new file mode 100644
index 00000000..8b5c9018
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_string_array_with_g.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_string_array_with_g"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_string_array_with_g</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_test_string_array_with_g</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_string_array_with_g(array:[String]):void {
+ // Gjs wrapper for regress_foo_test_string_array_with_g()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_qualifier.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_qualifier.page
new file mode 100644
index 00000000..c35d3e99
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_qualifier.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_unsigned_qualifier"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_unsigned_qualifier</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>unsigned_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_test_unsigned_qualifier</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_unsigned_qualifier(unsigned_param:Number):void {
+ // Gjs wrapper for regress_foo_test_unsigned_qualifier()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>unsigned_param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_type.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_type.page
new file mode 100644
index 00000000..9f68b516
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.foo_test_unsigned_type.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_unsigned_type"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_unsigned_type</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>unsigned_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>foo_test_unsigned_type</title>
+
+<synopsis><code mime="text/x-gjs">
+function foo_test_unsigned_type(unsigned_param:Number):void {
+ // Gjs wrapper for regress_foo_test_unsigned_type()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>unsigned_param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.func_obj_null_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.func_obj_null_in.page
new file mode 100644
index 00000000..446001a0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.func_obj_null_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.func_obj_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_func_obj_null_in</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>func_obj_null_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function func_obj_null_in(obj:Regress.TestObj):void {
+ // Gjs wrapper for regress_func_obj_null_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.global_get_flags_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.global_get_flags_out.page
new file mode 100644
index 00000000..bafa5417
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.global_get_flags_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.global_get_flags_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_global_get_flags_out</api:name>
+ </api:function>
+
+ </info>
+ <title>global_get_flags_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function global_get_flags_out():void {
+ // Gjs wrapper for regress_global_get_flags_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.has_parameter_named_attrs.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.has_parameter_named_attrs.page
new file mode 100644
index 00000000..d4f673d8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.has_parameter_named_attrs.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.has_parameter_named_attrs"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_has_parameter_named_attrs</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[guint32]</api:type>
+ <api:name>attributes</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>has_parameter_named_attrs</title>
+
+<synopsis><code mime="text/x-gjs">
+function has_parameter_named_attrs(foo:Number, attributes:[guint32]):void {
+ // Gjs wrapper for regress_has_parameter_named_attrs()
+}
+</code></synopsis>
+
+
+ <p>This test case mirrors GnomeKeyringPasswordSchema from
+libgnome-keyring.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>foo</code></title>
+<p>some int</p>
+</item>
+<item>
+<title><code>attributes</code></title>
+<p>list of attributes</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.introspectable_via_alias.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.introspectable_via_alias.page
new file mode 100644
index 00000000..aa2baa6c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.introspectable_via_alias.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.introspectable_via_alias"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_introspectable_via_alias</api:name>
+ <api:arg>
+ <api:type>Regress.PtrArrayAlias</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>introspectable_via_alias</title>
+
+<synopsis><code mime="text/x-gjs">
+function introspectable_via_alias(data:Regress.PtrArrayAlias):void {
+ // Gjs wrapper for regress_introspectable_via_alias()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.set_abort_on_error.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.set_abort_on_error.page
new file mode 100644
index 00000000..9b300e17
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.set_abort_on_error.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.set_abort_on_error"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_set_abort_on_error</api:name>
+ <api:arg>
+ <api:type>Boolean</api:type>
+ <api:name>abort_on_error</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>set_abort_on_error</title>
+
+<synopsis><code mime="text/x-gjs">
+function set_abort_on_error(abort_on_error:Boolean):void {
+ // Gjs wrapper for regress_set_abort_on_error()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>abort_on_error</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_callback.page
new file mode 100644
index 00000000..112cd23f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_callback.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_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</api:type>
+ </api:returns>
+ <api:name>regress_test_array_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackArray</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_callback(callback:Regress.TestCallbackArray):Number {
+ // Gjs wrapper for regress_test_array_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.test_array_fixed_out_objects.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_out_objects.page
new file mode 100644
index 00000000..51026b59
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_out_objects.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_out_objects"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_out_objects</api:name>
+ </api:function>
+
+ </info>
+ <title>test_array_fixed_out_objects</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_fixed_out_objects():void {
+ // Gjs wrapper for regress_test_array_fixed_out_objects()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_in.page
new file mode 100644
index 00000000..14a6e66e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_in"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_size_int_in</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_fixed_size_int_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_fixed_size_int_in(ints:[Number]):Number {
+ // Gjs wrapper for regress_test_array_fixed_size_int_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>a list of 5 integers</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the sum of the items in <code>ints</code></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_out.page
new file mode 100644
index 00000000..ce62153d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_size_int_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_array_fixed_size_int_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_fixed_size_int_out():void {
+ // Gjs wrapper for regress_test_array_fixed_size_int_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_return.page
new file mode 100644
index 00000000..1e2c6786
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_fixed_size_int_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_return"
+ 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]</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_size_int_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_array_fixed_size_int_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_fixed_size_int_return():[Number] {
+ // Gjs wrapper for regress_test_array_fixed_size_int_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>a list of 5 integers ranging from 0 to 4</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint16_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint16_in.page
new file mode 100644
index 00000000..e4b957e7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint16_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint16_in"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gint16_in</api:name>
+ <api:arg>
+ <api:type>[gint16]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_gint16_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_gint16_in(ints:[gint16]):Number {
+ // Gjs wrapper for regress_test_array_gint16_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint32_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint32_in.page
new file mode 100644
index 00000000..171ad11e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint32_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint32_in"
+ 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>gint32</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gint32_in</api:name>
+ <api:arg>
+ <api:type>[gint32]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_gint32_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_gint32_in(ints:[gint32]):gint32 {
+ // Gjs wrapper for regress_test_array_gint32_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint64_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint64_in.page
new file mode 100644
index 00000000..a8b51a6b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint64_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint64_in"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gint64_in</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_gint64_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_gint64_in(ints:[Number]):Number {
+ // Gjs wrapper for regress_test_array_gint64_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint8_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint8_in.page
new file mode 100644
index 00000000..16ddc7c5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gint8_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint8_in"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gint8_in</api:name>
+ <api:arg>
+ <api:type>[gint8]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_gint8_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_gint8_in(ints:[gint8]):Number {
+ // Gjs wrapper for regress_test_array_gint8_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gtype_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gtype_in.page
new file mode 100644
index 00000000..61e1d0a4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_gtype_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gtype_in"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gtype_in</api:name>
+ <api:arg>
+ <api:type>[GType]</api:type>
+ <api:name>types</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_gtype_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_gtype_in(types:[GType]):String {
+ // Gjs wrapper for regress_test_array_gtype_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>types</code></title>
+<p>List of types</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>string representation of provided types</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_full_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_full_out.page
new file mode 100644
index 00000000..5f580ad7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_full_out.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_full_out"
+ 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]</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_full_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_array_int_full_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_int_full_out():[Number] {
+ // Gjs wrapper for regress_test_array_int_full_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>a new array of integers.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_in.page
new file mode 100644
index 00000000..3d41dca7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_in"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_in</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_int_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_int_in(ints:[Number]):Number {
+ // Gjs wrapper for regress_test_array_int_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_inout.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_inout.page
new file mode 100644
index 00000000..b4094cd8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_inout.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_inout"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_inout</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_int_inout</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_int_inout(ints:[Number]):void {
+ // Gjs wrapper for regress_test_array_int_inout()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>a list of integers whose items will be increased by 1, except the first that will be dropped</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_none_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_none_out.page
new file mode 100644
index 00000000..ac105214
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_none_out.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_none_out"
+ 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]</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_none_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_array_int_none_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_int_none_out():[Number] {
+ // Gjs wrapper for regress_test_array_int_none_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>a static array of integers.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_in.page
new file mode 100644
index 00000000..33b27a00
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_null_in</api:name>
+ <api:arg>
+ <api:type>[Number]</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_array_int_null_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_int_null_in(arr:[Number]):void {
+ // Gjs wrapper for regress_test_array_int_null_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_out.page
new file mode 100644
index 00000000..1e1a3640
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_null_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_null_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_array_int_null_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_int_null_out():void {
+ // Gjs wrapper for regress_test_array_int_null_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_out.page
new file mode 100644
index 00000000..78953ec6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_int_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_array_int_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_array_int_out():void {
+ // Gjs wrapper for regress_test_array_int_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_async_ready_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_async_ready_callback.page
new file mode 100644
index 00000000..89d737c7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_async_ready_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_async_ready_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_async_ready_callback</api:name>
+ <api:arg>
+ <api:type>Gio.AsyncReadyCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_async_ready_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_async_ready_callback(callback:Gio.AsyncReadyCallback):void {
+ // Gjs wrapper for regress_test_async_ready_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean.page
new file mode 100644
index 00000000..e165db21
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean"
+ 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>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean</api:name>
+ <api:arg>
+ <api:type>Boolean</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_boolean</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_boolean(in:Boolean):Boolean {
+ // Gjs wrapper for regress_test_boolean()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_false.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_false.page
new file mode 100644
index 00000000..21e169c0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_false.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean_false"
+ 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>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean_false</api:name>
+ <api:arg>
+ <api:type>Boolean</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_boolean_false</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_boolean_false(in:Boolean):Boolean {
+ // Gjs wrapper for regress_test_boolean_false()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_true.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_true.page
new file mode 100644
index 00000000..e525a2f8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_boolean_true.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean_true"
+ 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>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean_true</api:name>
+ <api:arg>
+ <api:type>Boolean</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_boolean_true</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_boolean_true(in:Boolean):Boolean {
+ // Gjs wrapper for regress_test_boolean_true()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_full_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_full_return.page
new file mode 100644
index 00000000..1c222c6c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_full_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_context_full_return"
+ 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>cairo.Context</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_context_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_cairo_context_full_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_cairo_context_full_return():cairo.Context {
+ // Gjs wrapper for regress_test_cairo_context_full_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_none_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_none_in.page
new file mode 100644
index 00000000..f710ac0a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_context_none_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_context_none_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_context_none_in</api:name>
+ <api:arg>
+ <api:type>cairo.Context</api:type>
+ <api:name>context</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_cairo_context_none_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_cairo_context_none_in(context:cairo.Context):void {
+ // Gjs wrapper for regress_test_cairo_context_none_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>context</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_out.page
new file mode 100644
index 00000000..dcec607e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_full_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_full_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_cairo_surface_full_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_cairo_surface_full_out():void {
+ // Gjs wrapper for regress_test_cairo_surface_full_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_return.page
new file mode 100644
index 00000000..f1b0f96c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_full_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_full_return"
+ 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>cairo.Surface</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_cairo_surface_full_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_cairo_surface_full_return():cairo.Surface {
+ // Gjs wrapper for regress_test_cairo_surface_full_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_in.page
new file mode 100644
index 00000000..783576a0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_none_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_none_in</api:name>
+ <api:arg>
+ <api:type>cairo.Surface</api:type>
+ <api:name>surface</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_cairo_surface_none_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_cairo_surface_none_in(surface:cairo.Surface):void {
+ // Gjs wrapper for regress_test_cairo_surface_none_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>surface</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_return.page
new file mode 100644
index 00000000..72e602ef
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_cairo_surface_none_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_none_return"
+ 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>cairo.Surface</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_none_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_cairo_surface_none_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_cairo_surface_none_return():cairo.Surface {
+ // Gjs wrapper for regress_test_cairo_surface_none_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback.page
new file mode 100644
index 00000000..869dd98c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_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</api:type>
+ </api:returns>
+ <api:name>regress_test_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_callback(callback:Regress.TestCallback):Number {
+ // Gjs wrapper for regress_test_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.test_callback_async.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_async.page
new file mode 100644
index 00000000..7b9ef5b6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_async.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_async"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_async</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_callback_async</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_callback_async(callback:Regress.TestCallbackUserData):void {
+ // Gjs wrapper for regress_test_callback_async()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_destroy_notify.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_destroy_notify.page
new file mode 100644
index 00000000..d147c974
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_destroy_notify.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_destroy_notify"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_destroy_notify</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_callback_destroy_notify</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_callback_destroy_notify(callback:Regress.TestCallbackUserData):Number {
+ // Gjs wrapper for regress_test_callback_destroy_notify()
+}
+</code></synopsis>
+
+
+ <p>Notified - callback persists until a DestroyNotify delegate
+is invoked.</p>
+
+
+
+
+<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.test_callback_destroy_notify_no_user_data.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_destroy_notify_no_user_data.page
new file mode 100644
index 00000000..7fa31a30
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_destroy_notify_no_user_data.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_destroy_notify_no_user_data"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_destroy_notify_no_user_data</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_callback_destroy_notify_no_user_data</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_callback_destroy_notify_no_user_data(callback:Regress.TestCallbackUserData):Number {
+ // Gjs wrapper for regress_test_callback_destroy_notify_no_user_data()
+}
+</code></synopsis>
+
+
+ <p>Adds a scope notified callback with no user data. This can invoke an error
+condition in bindings which needs to be tested.</p>
+
+
+
+
+<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.test_callback_thaw_async.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_thaw_async.page
new file mode 100644
index 00000000..66dec18b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_thaw_async.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_thaw_async"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_thaw_async</api:name>
+ </api:function>
+
+ </info>
+ <title>test_callback_thaw_async</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_callback_thaw_async():Number {
+ // Gjs wrapper for regress_test_callback_thaw_async()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_thaw_notifications.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_thaw_notifications.page
new file mode 100644
index 00000000..9a8b57e1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_thaw_notifications.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_thaw_notifications"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_thaw_notifications</api:name>
+ </api:function>
+
+ </info>
+ <title>test_callback_thaw_notifications</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_callback_thaw_notifications():Number {
+ // Gjs wrapper for regress_test_callback_thaw_notifications()
+}
+</code></synopsis>
+
+
+ <p>Invokes all callbacks installed by #test_callback_destroy_notify(),
+adding up their return values, and removes them, invoking the
+corresponding destroy notfications.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>Sum of the return values of the invoked callbacks.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_user_data.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_user_data.page
new file mode 100644
index 00000000..dd9f5977
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_callback_user_data.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_user_data"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_user_data</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_callback_user_data</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_callback_user_data(callback:Regress.TestCallbackUserData):Number {
+ // Gjs wrapper for regress_test_callback_user_data()
+}
+</code></synopsis>
+
+
+ <p>Call - callback parameter persists for the duration of the method
+call and can be released on return.</p>
+
+
+
+
+<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.test_closure.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure.page
new file mode 100644
index 00000000..a9545447
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_closure</api:name>
+ <api:arg>
+ <api:type>GObject.Closure</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_closure</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_closure(closure:GObject.Closure):Number {
+ // Gjs wrapper for regress_test_closure()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_one_arg.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_one_arg.page
new file mode 100644
index 00000000..3c37f7ac
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_one_arg.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure_one_arg"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_closure_one_arg</api:name>
+ <api:arg>
+ <api:type>GObject.Closure</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>arg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_closure_one_arg</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_closure_one_arg(closure:GObject.Closure, arg:Number):Number {
+ // Gjs wrapper for regress_test_closure_one_arg()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+
+</item>
+<item>
+<title><code>arg</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_variant.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_variant.page
new file mode 100644
index 00000000..2bdbfe6d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_closure_variant.page
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure_variant"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_closure_variant</api:name>
+ <api:arg>
+ <api:type>GObject.Closure</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GLib.Variant</api:type>
+ <api:name>arg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_closure_variant</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_closure_variant(closure:GObject.Closure, arg:GLib.Variant):GLib.Variant {
+ // Gjs wrapper for regress_test_closure_variant()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+<p>GClosure which takes one GVariant and returns a GVariant</p>
+</item>
+<item>
+<title><code>arg</code></title>
+<p>a GVariant passed as argument to <code>closure</code></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the return value of <code>closure</code></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_date_in_gvalue.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_date_in_gvalue.page
new file mode 100644
index 00000000..acb379e7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_date_in_gvalue.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_date_in_gvalue"
+ 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>GObject.Value</api:type>
+ </api:returns>
+ <api:name>regress_test_date_in_gvalue</api:name>
+ </api:function>
+
+ </info>
+ <title>test_date_in_gvalue</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_date_in_gvalue():GObject.Value {
+ // Gjs wrapper for regress_test_date_in_gvalue()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_def_error_quark.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_def_error_quark.page
new file mode 100644
index 00000000..5a82a3f5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_def_error_quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_def_error_quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_def_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>test_def_error_quark</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_def_error_quark():GLib.Quark {
+ // Gjs wrapper for regress_test_def_error_quark()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_double.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_double.page
new file mode 100644
index 00000000..0ed75f62
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_double.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_double"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_double</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_double</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_double(in:Number):Number {
+ // Gjs wrapper for regress_test_double()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_filename_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_filename_return.page
new file mode 100644
index 00000000..b26b613e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_filename_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_filename_return"
+ 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>[filename]</api:type>
+ </api:returns>
+ <api:name>regress_test_filename_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_filename_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_filename_return():[filename] {
+ // Gjs wrapper for regress_test_filename_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>list of strings</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_float.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_float.page
new file mode 100644
index 00000000..30f2ef76
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_float.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_float"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_float</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_float</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_float(in:Number):Number {
+ // Gjs wrapper for regress_test_float()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_container_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_container_return.page
new file mode 100644
index 00000000..a4196285
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_garray_container_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_garray_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_garray_container_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_garray_container_return():[String] {
+ // Gjs wrapper for regress_test_garray_container_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_full_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_full_return.page
new file mode 100644
index 00000000..86b1b78b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_garray_full_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_garray_full_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_garray_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_garray_full_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_garray_full_return():[String] {
+ // Gjs wrapper for regress_test_garray_full_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gerror_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gerror_callback.page
new file mode 100644
index 00000000..31ab83c2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gerror_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gerror_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gerror_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_gerror_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gerror_callback(callback:Regress.TestCallbackGError):void {
+ // Gjs wrapper for regress_test_gerror_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_container_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_container_return.page
new file mode 100644
index 00000000..b002deb8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_container_return"
+ 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>{String: String}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_container_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_container_return():{String: String} {
+ // Gjs wrapper for regress_test_ghash_container_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_everything_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_everything_return.page
new file mode 100644
index 00000000..1c1a0a91
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_everything_return"
+ 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>{String: String}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_everything_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_everything_return():{String: String} {
+ // Gjs wrapper for regress_test_ghash_everything_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_in.page
new file mode 100644
index 00000000..b12b8f8b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_gvalue_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_gvalue_in</api:name>
+ <api:arg>
+ <api:type>{String: GObject.Value}</api:type>
+ <api:name>hash</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_ghash_gvalue_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_gvalue_in(hash:{String: GObject.Value}):void {
+ // Gjs wrapper for regress_test_ghash_gvalue_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>hash</code></title>
+<p>the hash table returned by
+<link xref="Regress.test_ghash_gvalue_return"/>.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_return.page
new file mode 100644
index 00000000..08748ea5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_gvalue_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_gvalue_return"
+ 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>{String: GObject.Value}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_gvalue_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_gvalue_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_gvalue_return():{String: GObject.Value} {
+ // Gjs wrapper for regress_test_ghash_gvalue_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return.page
new file mode 100644
index 00000000..4dece432
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nested_everything_return"
+ 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>{String: {String: String}}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nested_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_nested_everything_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_nested_everything_return():{String: {String: String}} {
+ // Gjs wrapper for regress_test_ghash_nested_everything_return()
+}
+</code></synopsis>
+
+
+ <p>Specify nested parameterized types directly with the (type ) annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return2.page
new file mode 100644
index 00000000..8aa4da37
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nested_everything_return2.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nested_everything_return2"
+ 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>{String: {String: String}}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nested_everything_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_nested_everything_return2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_nested_everything_return2():{String: {String: String}} {
+ // Gjs wrapper for regress_test_ghash_nested_everything_return2()
+}
+</code></synopsis>
+
+
+ <p>Another way of specifying nested parameterized types: using the
+element-type annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in.page
new file mode 100644
index 00000000..62990fce
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_in</api:name>
+ <api:arg>
+ <api:type>{String: String}</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_ghash_nothing_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_nothing_in(in:{String: String}):void {
+ // Gjs wrapper for regress_test_ghash_nothing_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in2.page
new file mode 100644
index 00000000..72d774d8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_in2.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_in2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_in2</api:name>
+ <api:arg>
+ <api:type>{String: String}</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_ghash_nothing_in2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_nothing_in2(in:{String: String}):void {
+ // Gjs wrapper for regress_test_ghash_nothing_in2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return.page
new file mode 100644
index 00000000..e3729a57
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_return"
+ 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>{String: String}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_nothing_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_nothing_return():{String: String} {
+ // Gjs wrapper for regress_test_ghash_nothing_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return2.page
new file mode 100644
index 00000000..7777ab42
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_nothing_return2.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_return2"
+ 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>{String: String}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_nothing_return2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_nothing_return2():{String: String} {
+ // Gjs wrapper for regress_test_ghash_nothing_return2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_in.page
new file mode 100644
index 00000000..413a75bf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_in</api:name>
+ <api:arg>
+ <api:type>{String: String}</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_ghash_null_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_null_in(in:{String: String}):void {
+ // Gjs wrapper for regress_test_ghash_null_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_out.page
new file mode 100644
index 00000000..2c272530
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_null_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_null_out():void {
+ // Gjs wrapper for regress_test_ghash_null_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_return.page
new file mode 100644
index 00000000..df6d6860
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ghash_null_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_return"
+ 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>{String: String}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_ghash_null_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ghash_null_return():{String: String} {
+ // Gjs wrapper for regress_test_ghash_null_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_container_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_container_return.page
new file mode 100644
index 00000000..c3ac7cb1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_container_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_glist_container_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_container_return():[String] {
+ // Gjs wrapper for regress_test_glist_container_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_everything_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_everything_return.page
new file mode 100644
index 00000000..fb31f77e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_everything_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_glist_everything_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_everything_return():[String] {
+ // Gjs wrapper for regress_test_glist_everything_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in.page
new file mode 100644
index 00000000..3c85d190
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_in</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_glist_nothing_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_nothing_in(in:[String]):void {
+ // Gjs wrapper for regress_test_glist_nothing_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in2.page
new file mode 100644
index 00000000..f160d126
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_in2.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_in2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_in2</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_glist_nothing_in2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_nothing_in2(in:[String]):void {
+ // Gjs wrapper for regress_test_glist_nothing_in2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return.page
new file mode 100644
index 00000000..e741d906
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_glist_nothing_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_nothing_return():[String] {
+ // Gjs wrapper for regress_test_glist_nothing_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return2.page
new file mode 100644
index 00000000..0fccdbbf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_nothing_return2.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_return2"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>test_glist_nothing_return2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_nothing_return2():[String] {
+ // Gjs wrapper for regress_test_glist_nothing_return2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_in.page
new file mode 100644
index 00000000..dfedc288
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_null_in</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_glist_null_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_null_in(in:[String]):void {
+ // Gjs wrapper for regress_test_glist_null_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_out.page
new file mode 100644
index 00000000..a1c7c684
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_glist_null_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_null_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_glist_null_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_glist_null_out():void {
+ // Gjs wrapper for regress_test_glist_null_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_container_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_container_return.page
new file mode 100644
index 00000000..5133d114
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_container_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gslist_container_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_container_return():[String] {
+ // Gjs wrapper for regress_test_gslist_container_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_everything_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_everything_return.page
new file mode 100644
index 00000000..f82b1ce6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_everything_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gslist_everything_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_everything_return():[String] {
+ // Gjs wrapper for regress_test_gslist_everything_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in.page
new file mode 100644
index 00000000..34096195
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_in</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_gslist_nothing_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_nothing_in(in:[String]):void {
+ // Gjs wrapper for regress_test_gslist_nothing_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in2.page
new file mode 100644
index 00000000..05e0b569
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_in2.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_in2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_in2</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_gslist_nothing_in2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_nothing_in2(in:[String]):void {
+ // Gjs wrapper for regress_test_gslist_nothing_in2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return.page
new file mode 100644
index 00000000..03597fb4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_return"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gslist_nothing_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_nothing_return():[String] {
+ // Gjs wrapper for regress_test_gslist_nothing_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return2.page
new file mode 100644
index 00000000..0331f922
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_nothing_return2.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_return2"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gslist_nothing_return2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_nothing_return2():[String] {
+ // Gjs wrapper for regress_test_gslist_nothing_return2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_in.page
new file mode 100644
index 00000000..34168c85
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_null_in</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_gslist_null_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_null_in(in:[String]):void {
+ // Gjs wrapper for regress_test_gslist_null_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_out.page
new file mode 100644
index 00000000..4c9f3ca2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gslist_null_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_null_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gslist_null_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gslist_null_out():void {
+ // Gjs wrapper for regress_test_gslist_null_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gtype.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gtype.page
new file mode 100644
index 00000000..824689a2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gtype.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gtype"
+ 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>GType</api:type>
+ </api:returns>
+ <api:name>regress_test_gtype</api:name>
+ <api:arg>
+ <api:type>GType</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_gtype</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gtype(in:GType):GType {
+ // Gjs wrapper for regress_test_gtype()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_as.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_as.page
new file mode 100644
index 00000000..1eedc344
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_as.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_as"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_as</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gvariant_as</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gvariant_as():GLib.Variant {
+ // Gjs wrapper for regress_test_gvariant_as()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_asv.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_asv.page
new file mode 100644
index 00000000..a5709df4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_asv.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_asv"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_asv</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gvariant_asv</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gvariant_asv():GLib.Variant {
+ // Gjs wrapper for regress_test_gvariant_asv()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_i.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_i.page
new file mode 100644
index 00000000..e1e7dc0d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_i.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_i"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_i</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gvariant_i</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gvariant_i():GLib.Variant {
+ // Gjs wrapper for regress_test_gvariant_i()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_s.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_s.page
new file mode 100644
index 00000000..139e0c61
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_s.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_s"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_s</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gvariant_s</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gvariant_s():GLib.Variant {
+ // Gjs wrapper for regress_test_gvariant_s()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_v.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_v.page
new file mode 100644
index 00000000..cec12de7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_gvariant_v.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_v"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_v</api:name>
+ </api:function>
+
+ </info>
+ <title>test_gvariant_v</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_gvariant_v():GLib.Variant {
+ // Gjs wrapper for regress_test_gvariant_v()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>New variant</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_hash_table_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_hash_table_callback.page
new file mode 100644
index 00000000..a49c65c1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_hash_table_callback.page
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<page id="Regress.test_hash_table_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_hash_table_callback</api:name>
+ <api:arg>
+ <api:type>{String: Number}</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestCallbackHashtable</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_hash_table_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_hash_table_callback(data:{String: Number}, callback:Regress.TestCallbackHashtable):void {
+ // Gjs wrapper for regress_test_hash_table_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+<p>GHashTable that gets passed to callback</p>
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int.page
new file mode 100644
index 00000000..6193dd8a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_int</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_int</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_int(in:Number):Number {
+ // Gjs wrapper for regress_test_int()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int16.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int16.page
new file mode 100644
index 00000000..d8efb0b3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int16.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int16"
+ 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>gint16</api:type>
+ </api:returns>
+ <api:name>regress_test_int16</api:name>
+ <api:arg>
+ <api:type>gint16</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_int16</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_int16(in:gint16):gint16 {
+ // Gjs wrapper for regress_test_int16()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int32.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int32.page
new file mode 100644
index 00000000..8015b377
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int32.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int32"
+ 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>gint32</api:type>
+ </api:returns>
+ <api:name>regress_test_int32</api:name>
+ <api:arg>
+ <api:type>gint32</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_int32</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_int32(in:gint32):gint32 {
+ // Gjs wrapper for regress_test_int32()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int64.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int64.page
new file mode 100644
index 00000000..24a69e96
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int64.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int64"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_int64</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_int64</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_int64(in:Number):Number {
+ // Gjs wrapper for regress_test_int64()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int8.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int8.page
new file mode 100644
index 00000000..ab573a0d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int8.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int8"
+ 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>gint8</api:type>
+ </api:returns>
+ <api:name>regress_test_int8</api:name>
+ <api:arg>
+ <api:type>gint8</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_int8</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_int8(in:gint8):gint8 {
+ // Gjs wrapper for regress_test_int8()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_out_utf8.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_out_utf8.page
new file mode 100644
index 00000000..020f9e22
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_out_utf8.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int_out_utf8"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_int_out_utf8</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_int_out_utf8</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_int_out_utf8(in:String):void {
+ // Gjs wrapper for regress_test_int_out_utf8()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_value_arg.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_value_arg.page
new file mode 100644
index 00000000..cb84a3c9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_int_value_arg.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int_value_arg"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_int_value_arg</api:name>
+ <api:arg>
+ <api:type>GObject.Value</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_int_value_arg</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_int_value_arg(v:GObject.Value):Number {
+ // Gjs wrapper for regress_test_int_value_arg()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>v</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_long.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_long.page
new file mode 100644
index 00000000..12bc1aec
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_long.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_long"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_long</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_long</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_long(in:Number):Number {
+ // Gjs wrapper for regress_test_long()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multi_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multi_callback.page
new file mode 100644
index 00000000..ea0646f6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multi_callback.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multi_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</api:type>
+ </api:returns>
+ <api:name>regress_test_multi_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_multi_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_multi_callback(callback:Regress.TestCallback):Number {
+ // Gjs wrapper for regress_test_multi_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.test_multi_double_args.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multi_double_args.page
new file mode 100644
index 00000000..378ace73
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multi_double_args.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multi_double_args"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_multi_double_args</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_multi_double_args</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_multi_double_args(in:Number):void {
+ // Gjs wrapper for regress_test_multi_double_args()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multiline_doc_comments.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multiline_doc_comments.page
new file mode 100644
index 00000000..38a75e75
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_multiline_doc_comments.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multiline_doc_comments"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_multiline_doc_comments</api:name>
+ </api:function>
+
+ </info>
+ <title>test_multiline_doc_comments</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_multiline_doc_comments():void {
+ // Gjs wrapper for regress_test_multiline_doc_comments()
+}
+</code></synopsis>
+
+
+ <p>This is a function.</p><p>It has multiple lines in the documentation.</p><p>The sky is blue.</p><p>You will give me your credit card number.</p>
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_nested_parameter.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_nested_parameter.page
new file mode 100644
index 00000000..54bda89f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_nested_parameter.page
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<page id="Regress.test_nested_parameter"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_nested_parameter</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_nested_parameter</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_nested_parameter(a:Number):void {
+ // Gjs wrapper for regress_test_nested_parameter()
+}
+</code></synopsis>
+
+
+ <p>&lt;informaltable&gt;
+ &lt;tgroup cols="3"&gt;
+ &lt;thead&gt;
+ &lt;row&gt;
+ &lt;entry&gt;Syntax&lt;/entry&gt;
+ &lt;entry&gt;Explanation&lt;/entry&gt;
+ &lt;entry&gt;Examples&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;/thead&gt;
+ &lt;tbody&gt;
+ &lt;row&gt;
+ &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
+ &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
+ 0 and 255 or percentages&lt;/entry&gt;
+ &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
+rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;row&gt;
+ &lt;entry&gt;rgba(@r, @g, @b, <code>a</code>)&lt;/entry&gt;
+ &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
+ <code>a</code> is a floating point number between 0 and 1&lt;/entry&gt;
+ &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;/tbody&gt;
+ &lt;/tgroup&gt;
+&lt;/informaltable&gt;</p><p>What we're testing here is that the scanner ignores the <code>a</code> nested inside XML.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>An integer</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_null_gerror_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_null_gerror_callback.page
new file mode 100644
index 00000000..5af4d58c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_null_gerror_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_null_gerror_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_null_gerror_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_null_gerror_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_null_gerror_callback(callback:Regress.TestCallbackGError):void {
+ // Gjs wrapper for regress_test_null_gerror_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_owned_gerror_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_owned_gerror_callback.page
new file mode 100644
index 00000000..206ac215
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_owned_gerror_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_owned_gerror_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_owned_gerror_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackOwnedGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_owned_gerror_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_owned_gerror_callback(callback:Regress.TestCallbackOwnedGError):void {
+ // Gjs wrapper for regress_test_owned_gerror_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_short.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_short.page
new file mode 100644
index 00000000..59381ae1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_short.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_short"
+ 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>gshort</api:type>
+ </api:returns>
+ <api:name>regress_test_short</api:name>
+ <api:arg>
+ <api:type>gshort</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_short</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_short(in:gshort):gshort {
+ // Gjs wrapper for regress_test_short()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_simple_callback.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_simple_callback.page
new file mode 100644
index 00000000..9d8198f7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_simple_callback.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_simple_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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestSimpleCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_simple_callback</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_simple_callback(callback:Regress.TestSimpleCallback):void {
+ // Gjs wrapper for regress_test_simple_callback()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_size.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_size.page
new file mode 100644
index 00000000..bc6896d3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_size.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_size"
+ 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>gsize</api:type>
+ </api:returns>
+ <api:name>regress_test_size</api:name>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_size</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_size(in:gsize):gsize {
+ // Gjs wrapper for regress_test_size()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ssize.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ssize.page
new file mode 100644
index 00000000..ccc011da
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ssize.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ssize"
+ 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>gssize</api:type>
+ </api:returns>
+ <api:name>regress_test_ssize</api:name>
+ <api:arg>
+ <api:type>gssize</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_ssize</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ssize(in:gssize):gssize {
+ // Gjs wrapper for regress_test_ssize()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in.page
new file mode 100644
index 00000000..7659a72a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_in"
+ 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>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_in</api:name>
+ <api:arg>
+ <api:type>[String]</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_strv_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_strv_in(arr:[String]):Boolean {
+ // Gjs wrapper for regress_test_strv_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in_gvalue.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in_gvalue.page
new file mode 100644
index 00000000..20617c09
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_in_gvalue.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_in_gvalue"
+ 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>GObject.Value</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_in_gvalue</api:name>
+ </api:function>
+
+ </info>
+ <title>test_strv_in_gvalue</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_strv_in_gvalue():GObject.Value {
+ // Gjs wrapper for regress_test_strv_in_gvalue()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out.page
new file mode 100644
index 00000000..477a46fa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_strv_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_strv_out():[String] {
+ // Gjs wrapper for regress_test_strv_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_c.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_c.page
new file mode 100644
index 00000000..d393946c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_c.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out_c"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out_c</api:name>
+ </api:function>
+
+ </info>
+ <title>test_strv_out_c</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_strv_out_c():[String] {
+ // Gjs wrapper for regress_test_strv_out_c()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_container.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_container.page
new file mode 100644
index 00000000..f9bec391
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_out_container.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out_container"
+ 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>[String]</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out_container</api:name>
+ </api:function>
+
+ </info>
+ <title>test_strv_out_container</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_strv_out_container():[String] {
+ // Gjs wrapper for regress_test_strv_out_container()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_outarg.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_outarg.page
new file mode 100644
index 00000000..01bcba42
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_strv_outarg.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_outarg"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_outarg</api:name>
+ </api:function>
+
+ </info>
+ <title>test_strv_outarg</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_strv_outarg():void {
+ // Gjs wrapper for regress_test_strv_outarg()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_timet.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_timet.page
new file mode 100644
index 00000000..65ccab57
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_timet.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_timet"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_timet</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_timet</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_timet(in:Number):Number {
+ // Gjs wrapper for regress_test_timet()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_0.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_0.page
new file mode 100644
index 00000000..16965833
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_0.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_0"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_0</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_torture_signature_0</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_torture_signature_0(x:Number, foo:String, m:Number):void {
+ // Gjs wrapper for regress_test_torture_signature_0()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_1.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_1.page
new file mode 100644
index 00000000..a10b0ab5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_1.page
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_1"
+ 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>Boolean</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_1</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_torture_signature_1</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_torture_signature_1(x:Number, foo:String, m:Number):Boolean {
+ // Gjs wrapper for regress_test_torture_signature_1()
+}
+</code></synopsis>
+
+
+ <p>This function throws an error if m is odd.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_2.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_2.page
new file mode 100644
index 00000000..3a3eb39a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_torture_signature_2.page
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_2"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_2</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_torture_signature_2</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_torture_signature_2(x:Number, callback:Regress.TestCallbackUserData, foo:String, m:Number):void {
+ // Gjs wrapper for regress_test_torture_signature_2()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint.page
new file mode 100644
index 00000000..ac1653a1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_uint</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_uint</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_uint(in:Number):Number {
+ // Gjs wrapper for regress_test_uint()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint16.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint16.page
new file mode 100644
index 00000000..93faff4d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint16.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint16"
+ 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>guint16</api:type>
+ </api:returns>
+ <api:name>regress_test_uint16</api:name>
+ <api:arg>
+ <api:type>guint16</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_uint16</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_uint16(in:guint16):guint16 {
+ // Gjs wrapper for regress_test_uint16()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint32.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint32.page
new file mode 100644
index 00000000..ebab4d6f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint32.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint32"
+ 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>guint32</api:type>
+ </api:returns>
+ <api:name>regress_test_uint32</api:name>
+ <api:arg>
+ <api:type>guint32</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_uint32</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_uint32(in:guint32):guint32 {
+ // Gjs wrapper for regress_test_uint32()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint64.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint64.page
new file mode 100644
index 00000000..942d786f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint64.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint64"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_uint64</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_uint64</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_uint64(in:Number):Number {
+ // Gjs wrapper for regress_test_uint64()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint8.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint8.page
new file mode 100644
index 00000000..f39dcc12
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_uint8.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint8"
+ 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>guint8</api:type>
+ </api:returns>
+ <api:name>regress_test_uint8</api:name>
+ <api:arg>
+ <api:type>guint8</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_uint8</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_uint8(in:guint8):guint8 {
+ // Gjs wrapper for regress_test_uint8()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ulong.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ulong.page
new file mode 100644
index 00000000..76f33101
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ulong.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ulong"
+ 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</api:type>
+ </api:returns>
+ <api:name>regress_test_ulong</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_ulong</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ulong(in:Number):Number {
+ // Gjs wrapper for regress_test_ulong()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unichar.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unichar.page
new file mode 100644
index 00000000..25465b37
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unichar.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_unichar"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_test_unichar</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_unichar</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_unichar(in:String):String {
+ // Gjs wrapper for regress_test_unichar()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unsigned_enum_param.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unsigned_enum_param.page
new file mode 100644
index 00000000..8b7348e8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_unsigned_enum_param.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_unsigned_enum_param"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_test_unsigned_enum_param</api:name>
+ <api:arg>
+ <api:type>Regress.TestEnumUnsigned</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_unsigned_enum_param</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_unsigned_enum_param(e:Regress.TestEnumUnsigned):String {
+ // Gjs wrapper for regress_test_unsigned_enum_param()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ushort.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ushort.page
new file mode 100644
index 00000000..74ada4ba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_ushort.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ushort"
+ 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>gushort</api:type>
+ </api:returns>
+ <api:name>regress_test_ushort</api:name>
+ <api:arg>
+ <api:type>gushort</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_ushort</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_ushort(in:gushort):gushort {
+ // Gjs wrapper for regress_test_ushort()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_in.page
new file mode 100644
index 00000000..63fedb9f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_const_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_const_in</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_utf8_const_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_const_in(in:String):void {
+ // Gjs wrapper for regress_test_utf8_const_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_return.page
new file mode 100644
index 00000000..a63dc22c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_const_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_const_return"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_const_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_utf8_const_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_const_return():String {
+ // Gjs wrapper for regress_test_utf8_const_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>UTF-8 string</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_inout.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_inout.page
new file mode 100644
index 00000000..1f282c2f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_inout.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_inout"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_inout</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>inout</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_utf8_inout</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_inout(inout:String):void {
+ // Gjs wrapper for regress_test_utf8_inout()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>inout</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_nonconst_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_nonconst_return.page
new file mode 100644
index 00000000..2fec9e8c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_nonconst_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_nonconst_return"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_nonconst_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_utf8_nonconst_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_nonconst_return():String {
+ // Gjs wrapper for regress_test_utf8_nonconst_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>UTF-8 string</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_in.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_in.page
new file mode 100644
index 00000000..14f3a550
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_in.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_null_in"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_null_in</api:name>
+ <api:arg>
+ <api:type>String</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_utf8_null_in</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_null_in(in:String):void {
+ // Gjs wrapper for regress_test_utf8_null_in()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_out.page
new file mode 100644
index 00000000..66632ffd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_null_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_null_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_null_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_utf8_null_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_null_out():void {
+ // Gjs wrapper for regress_test_utf8_null_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out.page
new file mode 100644
index 00000000..b1a40622
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_utf8_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_out():void {
+ // Gjs wrapper for regress_test_utf8_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_nonconst_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_nonconst_return.page
new file mode 100644
index 00000000..e8a097ea
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_nonconst_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out_nonconst_return"
+ 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>String</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out_nonconst_return</api:name>
+ </api:function>
+
+ </info>
+ <title>test_utf8_out_nonconst_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_out_nonconst_return():String {
+ // Gjs wrapper for regress_test_utf8_out_nonconst_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+<p>a copy of "first"</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_out.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_out.page
new file mode 100644
index 00000000..07107ed8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_utf8_out_out.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out_out"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out_out</api:name>
+ </api:function>
+
+ </info>
+ <title>test_utf8_out_out</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_utf8_out_out():void {
+ // Gjs wrapper for regress_test_utf8_out_out()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_value_return.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_value_return.page
new file mode 100644
index 00000000..59f03b78
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_value_return.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.test_value_return"
+ 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>GObject.Value</api:type>
+ </api:returns>
+ <api:name>regress_test_value_return</api:name>
+ <api:arg>
+ <api:type>Number</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>test_value_return</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_value_return(i:Number):GObject.Value {
+ // Gjs wrapper for regress_test_value_return()
+}
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+<p>an int</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the int wrapped in a GValue.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_versioning.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_versioning.page
new file mode 100644
index 00000000..eb6ce0f2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_versioning.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.test_versioning"
+ 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>void</api:type>
+ </api:returns>
+ <api:name>regress_test_versioning</api:name>
+ </api:function>
+
+ </info>
+ <title>test_versioning</title>
+
+<synopsis><code mime="text/x-gjs">
+function test_versioning():void {
+ // Gjs wrapper for regress_test_versioning()
+}
+</code></synopsis>
+
+
+
+
+
+ <p>Since 1.32.1</p>
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/index.page b/tests/scanner/Regress-1.0-Gjs-expected/index.page
new file mode 100644
index 00000000..a5426d89
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/index.page
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<page id="index"
+ type="guide"
+ style="namespace"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+
+ </info>
+ <title>Index</title>
+
+
+
+
+
+
+
+
+
+ <links type="topic" ui:expanded="true" groups="class" style="linklist">
+ <title>Classes</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.ATestError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.ATestError.page
new file mode 100644
index 00000000..9ac6820d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.ATestError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.ATestError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.ATestError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ATestError.CODE0</code></title>
+
+</item>
+<item>
+<title><code>ATestError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>ATestError.CODE2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AliasedTestBoxed.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AliasedTestBoxed.page
new file mode 100644
index 00000000..9490e4a3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AliasedTestBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AliasedTestBoxed"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AliasedTestBoxed</title>
+
+
+
+ <p>Typedef TestBoxed to test caller-allocates correctness</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.None.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.None.page
new file mode 100644
index 00000000..6dc17b32
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.None.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnAnonymousUnion.None"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnAnonymousUnion.None</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.page
new file mode 100644
index 00000000..2556feda
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnAnonymousUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnAnonymousUnion"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnAnonymousUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationBitfield.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationBitfield.page
new file mode 100644
index 00000000..4e19ef92
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationBitfield.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationBitfield"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationBitfield</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationCallback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationCallback.page
new file mode 100644
index 00000000..9a652d80
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationCallback</title>
+
+
+
+ <p>This is a callback.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationFields.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationFields.page
new file mode 100644
index 00000000..53234545
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationFields.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationFields"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationFields</title>
+
+
+
+ <p>This is a struct for testing field documentation and annotations</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationForeachFunc.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationForeachFunc.page
new file mode 100644
index 00000000..db77a117
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationForeachFunc.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationForeachFunc"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationForeachFunc</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationListCallback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationListCallback.page
new file mode 100644
index 00000000..79844c66
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationListCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationListCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationListCallback</title>
+
+
+
+ <p>This is a callback taking a list.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationNotifyFunc.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationNotifyFunc.page
new file mode 100644
index 00000000..17c80292
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationNotifyFunc.page
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationNotifyFunc"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationNotifyFunc</title>
+
+
+
+ <p>This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-attribute-signal.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-attribute-signal.page
new file mode 100644
index 00000000..9ed31bc3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-attribute-signal.page
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-attribute-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">attribute-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::attribute-signal</title>
+
+<synopsis><code mime="text/x-python">
+def callback(annotation_object, arg1, arg2, user_param1, ...)
+</code></synopsis>
+
+
+ <p>This signal tests a signal with attributes.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arg1</code></title>
+<p>a value</p>
+</item>
+<item>
+<title><code>arg2</code></title>
+<p>another value</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+<p>the return value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page
new file mode 100644
index 00000000..29eedcc1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-doc-empty-arg-parsing.page
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-doc-empty-arg-parsing"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">doc-empty-arg-parsing</title>
+
+ </info>
+ <title>Regress.AnnotationObject::doc-empty-arg-parsing</title>
+
+<synopsis><code mime="text/x-python">
+def callback(annotation_object, arg1, user_param1, ...)
+</code></synopsis>
+
+
+ <p>This signal tests an empty document argument (<code>arg1</code>)</p>
+
+
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arg1</code></title>
+
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-function-property.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-function-property.page
new file mode 100644
index 00000000..d9d8b55a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-function-property.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-function-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">function-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:function-property</title>
+
+<synopsis><code mime="text/x-python">
+"function-property" Regress.AnnotationCallback : Read / Write / Construct
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-list-signal.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-list-signal.page
new file mode 100644
index 00000000..fdfa65f7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-list-signal.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-list-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">list-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::list-signal</title>
+
+<synopsis><code mime="text/x-python">
+def callback(annotation_object, list, user_param1, ...)
+</code></synopsis>
+
+
+ <p>This is a signal which takes a list of strings, but it's not
+known by GObject as it's only marked as G_TYPE_POINTER</p>
+
+
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>list</code></title>
+<p>a list of strings</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-property.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-property.page
new file mode 100644
index 00000000..a3cb0456
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-property.page
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-string-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">string-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:string-property</title>
+
+<synopsis><code mime="text/x-python">
+"string-property" unicode : Read / Write / Construct
+</code></synopsis>
+
+
+ <p>This is a property which is a string</p>
+
+
+ <p>Since 1.0</p>
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-signal.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-signal.page
new file mode 100644
index 00000000..06e79aa3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-string-signal.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-string-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="signal" type="guide"/>
+ <title type="link" role="topic">string-signal</title>
+
+ </info>
+ <title>Regress.AnnotationObject::string-signal</title>
+
+<synopsis><code mime="text/x-python">
+def callback(annotation_object, string, user_param1, ...)
+</code></synopsis>
+
+
+ <p>This is a signal which has a broken signal handler,
+it says it's pointer but it's actually a string.</p>
+
+
+ <p>Since 1.0</p>
+
+
+<terms>
+<item>
+<title><code>annotation_object</code></title>
+<p>instance of <link xref="Regress.AnnotationObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>string</code></title>
+<p>a string</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-tab-property.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-tab-property.page
new file mode 100644
index 00000000..c417d1ee
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject-tab-property.page
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject-tab-property"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="property" type="guide"/>
+ <title type="link" role="topic">tab-property</title>
+
+ </info>
+ <title>Regress.AnnotationObject:tab-property</title>
+
+<synopsis><code mime="text/x-python">
+"tab-property" unicode : Read / Write / Construct
+</code></synopsis>
+
+
+ <p>This is a property annotation intentionally indented with a mix
+of tabs and strings to test the tab handling capabilities of the scanner.</p>
+
+
+ <p>Since 1.2</p>
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.allow_none.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.allow_none.page
new file mode 100644
index 00000000..a04abd75
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.allow_none.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.allow_none"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_allow_none</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>somearg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.allow_none</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, unicode)
+@returns(GObject.Object)
+def allow_none(self, somearg):
+ # Python wrapper for regress_annotation_object_allow_none()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>somearg</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleeowns.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleeowns.page
new file mode 100644
index 00000000..bebf7737
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleeowns.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.calleeowns"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_calleeowns</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject.Object</api:type>
+ <api:name>toown</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.calleeowns</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, GObject.Object)
+@returns(int)
+def calleeowns(self, toown):
+ # Python wrapper for regress_annotation_object_calleeowns()
+</code></synopsis>
+
+
+ <p>This is a test for out arguments; GObject defaults to transfer</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>toown</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleesowns.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleesowns.page
new file mode 100644
index 00000000..ef9361fd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.calleesowns.page
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.calleesowns"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_calleesowns</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject.Object</api:type>
+ <api:name>toown1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject.Object</api:type>
+ <api:name>toown2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.calleesowns</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, GObject.Object, GObject.Object)
+@returns(int)
+def calleesowns(self, toown1, toown2):
+ # Python wrapper for regress_annotation_object_calleesowns()
+</code></synopsis>
+
+
+ <p>This is a test for out arguments, one transferred, other not</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>toown1</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>toown2</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum.page
new file mode 100644
index 00000000..4f58e6fb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.compute_sum</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, [int])
+@returns(none)
+def compute_sum(self, nums):
+ # Python wrapper for regress_annotation_object_compute_sum()
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of numbers</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_n.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_n.page
new file mode 100644
index 00000000..33463c4f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_n.page
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum_n"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum_n</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.compute_sum_n</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, [int], int)
+@returns(none)
+def compute_sum_n(self, nums, n_nums):
+ # Python wrapper for regress_annotation_object_compute_sum_n()
+</code></synopsis>
+
+
+ <p>Test taking an array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of
+ numbers that are zero-terminated</p>
+</item>
+<item>
+<title><code>n_nums</code></title>
+<p>Length of number array</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_nz.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_nz.page
new file mode 100644
index 00000000..b3beb695
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.compute_sum_nz.page
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.compute_sum_nz"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_compute_sum_nz</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>nums</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_nums</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.compute_sum_nz</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, [int], int)
+@returns(none)
+def compute_sum_nz(self, nums, n_nums):
+ # Python wrapper for regress_annotation_object_compute_sum_nz()
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>nums</code></title>
+<p>Sequence of numbers that
+are zero-terminated</p>
+</item>
+<item>
+<title><code>n_nums</code></title>
+<p>Length of number array</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.create_object.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.create_object.page
new file mode 100644
index 00000000..6498ac29
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.create_object.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.create_object"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_create_object</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.create_object</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns(GObject.Object)
+def create_object(self):
+ # Python wrapper for regress_annotation_object_create_object()
+</code></synopsis>
+
+
+ <p>Test returning a caller-owned object</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.do_not_use.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.do_not_use.page
new file mode 100644
index 00000000..fac9f167
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.do_not_use.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.do_not_use"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_do_not_use</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.do_not_use</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns(GObject.Object)
+def do_not_use(self):
+ # Python wrapper for regress_annotation_object_do_not_use()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.extra_annos.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.extra_annos.page
new file mode 100644
index 00000000..7e032668
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.extra_annos.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.extra_annos"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_extra_annos</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.extra_annos</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns(none)
+def extra_annos(self):
+ # Python wrapper for regress_annotation_object_extra_annos()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.foreach.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.foreach.page
new file mode 100644
index 00000000..1010a017
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.foreach.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.foreach"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_foreach</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.AnnotationForeachFunc</api:type>
+ <api:name>func</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.foreach</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, Regress.AnnotationForeachFunc, gpointer)
+@returns(none)
+def foreach(self, func, user_data):
+ # Python wrapper for regress_annotation_object_foreach()
+</code></synopsis>
+
+
+ <p>Test taking a call-scoped callback</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>func</code></title>
+<p>Callback to invoke</p>
+</item>
+<item>
+<title><code>user_data</code></title>
+<p>Callback user data</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_hash.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_hash.page
new file mode 100644
index 00000000..8d658f50
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_hash.page
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_hash"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>{unicode: GObject.Object}</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_hash</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.get_hash</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns({unicode: GObject.Object})
+def get_hash(self):
+ # Python wrapper for regress_annotation_object_get_hash()
+</code></synopsis>
+
+
+ <p>This is a test for returning a hash table mapping strings to
+objects.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_objects.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_objects.page
new file mode 100644
index 00000000..ef231f5c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_objects.page
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_objects"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>[Regress.AnnotationObject]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_objects</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.get_objects</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns([Regress.AnnotationObject])
+def get_objects(self):
+ # Python wrapper for regress_annotation_object_get_objects()
+</code></synopsis>
+
+
+ <p>This is a test for returning a list of objects.
+The list itself should be freed, but not the internal objects,
+intentionally similar example to gtk_container_get_children</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_strings.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_strings.page
new file mode 100644
index 00000000..13570b66
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.get_strings.page
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.get_strings"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_get_strings</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.get_strings</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns([unicode])
+def get_strings(self):
+ # Python wrapper for regress_annotation_object_get_strings()
+</code></synopsis>
+
+
+ <p>This is a test for returning a list of strings, where
+each string needs to be freed.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.hidden_self.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.hidden_self.page
new file mode 100644
index 00000000..ce1111fd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.hidden_self.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.hidden_self"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_hidden_self</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.hidden_self</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns(none)
+def hidden_self(self):
+ # Python wrapper for regress_annotation_object_hidden_self()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.AnnotationObject"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.in.page
new file mode 100644
index 00000000..0e77f853
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.in.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.in"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_in</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, int)
+@returns(int)
+def in(self, inarg):
+ # Python wrapper for regress_annotation_object_in()
+</code></synopsis>
+
+
+ <p>This is a test for in arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout.page
new file mode 100644
index 00000000..6816eaf4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.inout</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, int)
+@returns(int)
+def inout(self, inoutarg):
+ # Python wrapper for regress_annotation_object_inout()
+</code></synopsis>
+
+
+ <p>This is a test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout2.page
new file mode 100644
index 00000000..aef9deca
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout2.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout2"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout2</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.inout2</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, int)
+@returns(int)
+def inout2(self, inoutarg):
+ # Python wrapper for regress_annotation_object_inout2()
+</code></synopsis>
+
+
+ <p>This is a second test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout3.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout3.page
new file mode 100644
index 00000000..4ba4bf67
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.inout3.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.inout3"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_inout3</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inoutarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.inout3</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, int)
+@returns(int)
+def inout3(self, inoutarg):
+ # Python wrapper for regress_annotation_object_inout3()
+</code></synopsis>
+
+
+ <p>This is a 3th test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>inoutarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.method.page
new file mode 100644
index 00000000..b6badcfe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.method.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_method</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns(int)
+def method(self):
+ # Python wrapper for regress_annotation_object_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.notrans.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.notrans.page
new file mode 100644
index 00000000..aa50a26e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.notrans.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.notrans"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_notrans</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.notrans</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject)
+@returns(GObject.Object)
+def notrans(self):
+ # Python wrapper for regress_annotation_object_notrans()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.out.page
new file mode 100644
index 00000000..606b4a12
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.out.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_out</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>outarg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, int)
+@returns(int)
+def out(self, outarg):
+ # Python wrapper for regress_annotation_object_out()
+</code></synopsis>
+
+
+ <p>This is a test for out arguments</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>outarg</code></title>
+<p>This is an argument test</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.page
new file mode 100644
index 00000000..006766fc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationObject</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+annotation_object = Regress.AnnotationObject(<link xref='Regress.AnnotationObject-function-property'>function_property</link>=value, <link xref='Regress.AnnotationObject-string-property'>string_property</link>=value, <link xref='Regress.AnnotationObject-tab-property'>tab_property</link>=value) </code></synopsis>
+
+
+ <p>This is an object used to test annotations.</p>
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.AnnotationObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.parse_args.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.parse_args.page
new file mode 100644
index 00000000..760e0be7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.parse_args.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.parse_args"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_parse_args</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>argc</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>argv</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.parse_args</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, int, [unicode])
+@returns(none)
+def parse_args(self, argc, argv):
+ # Python wrapper for regress_annotation_object_parse_args()
+</code></synopsis>
+
+
+ <p>Test taking a zero-terminated array with length parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>argc</code></title>
+<p>Length of the argument vector</p>
+</item>
+<item>
+<title><code>argv</code></title>
+<p>Argument vector</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data.page
new file mode 100644
index 00000000..7cd52364
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[guint8]</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.set_data</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, [guint8], gsize)
+@returns(none)
+def set_data(self, data, length):
+ # Python wrapper for regress_annotation_object_set_data()
+</code></synopsis>
+
+
+ <p>Test taking a guchar * with a length.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>Length of the data</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data2.page
new file mode 100644
index 00000000..cd47036a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data2.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data2"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data2</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[gint8]</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.set_data2</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, [gint8], gsize)
+@returns(none)
+def set_data2(self, data, length):
+ # Python wrapper for regress_annotation_object_set_data2()
+</code></synopsis>
+
+
+ <p>Test taking a gchar * with a length.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>Length of the data</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data3.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data3.page
new file mode 100644
index 00000000..b9016e87
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.set_data3.page
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.set_data3"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_set_data3</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[guint8]</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.set_data3</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, [guint8], gsize)
+@returns(none)
+def set_data3(self, data, length):
+ # Python wrapper for regress_annotation_object_set_data3()
+</code></synopsis>
+
+
+ <p>Test taking a gchar * with a length, overriding the array element
+type.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>The data</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>Length of the data</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.string_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.string_out.page
new file mode 100644
index 00000000..c1d085aa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.string_out.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.string_out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_string_out</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>str_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.string_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, unicode)
+@returns(bool)
+def string_out(self, str_out):
+ # Python wrapper for regress_annotation_object_string_out()
+</code></synopsis>
+
+
+ <p>Test returning a string as an out parameter</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>str_out</code></title>
+<p>string return value</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.use_buffer.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.use_buffer.page
new file mode 100644
index 00000000..385fe89f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.use_buffer.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.use_buffer"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_use_buffer</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>guint8</api:type>
+ <api:name>bytes</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.use_buffer</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, guint8)
+@returns(none)
+def use_buffer(self, bytes):
+ # Python wrapper for regress_annotation_object_use_buffer()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="GObject.Object"/></p>
+</item>
+<item>
+<title><code>bytes</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.watch_full.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.watch_full.page
new file mode 100644
index 00000000..66a53d54
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.watch_full.page
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.watch_full"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_watch_full</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.AnnotationForeachFunc</api:type>
+ <api:name>func</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GLib.DestroyNotify</api:type>
+ <api:name>destroy</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.watch_full</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, Regress.AnnotationForeachFunc, gpointer, GLib.DestroyNotify)
+@returns(none)
+def watch_full(self, func, user_data, destroy):
+ # Python wrapper for regress_annotation_object_watch_full()
+</code></synopsis>
+
+
+ <p>Test overriding via the "Rename To" annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.AnnotationObject"/></p>
+</item>
+<item>
+<title><code>func</code></title>
+<p>The callback</p>
+</item>
+<item>
+<title><code>user_data</code></title>
+<p>The callback data</p>
+</item>
+<item>
+<title><code>destroy</code></title>
+<p>Destroy notification</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.with_voidp.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.with_voidp.page
new file mode 100644
index 00000000..bda3e9a0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationObject.with_voidp.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationObject.with_voidp"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.AnnotationObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_object_with_voidp</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.AnnotationObject.with_voidp</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, gpointer)
+@returns(none)
+def with_voidp(self, data):
+ # Python wrapper for regress_annotation_object_with_voidp()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+<p>Opaque pointer handle</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationStruct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationStruct.page
new file mode 100644
index 00000000..e2100429
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnnotationStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.AnnotationStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.AnnotationStruct</title>
+
+
+
+ <p>This is a test of an array of object in an field of a struct.</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooASingle.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooASingle.page
new file mode 100644
index 00000000..09cd98fd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooASingle.page
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<page id="Regress.FooASingle"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooASingle</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooASingle.FOO_SOME_SINGLE_ENUM</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooAddressType.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooAddressType.page
new file mode 100644
index 00000000..008a8f36
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooAddressType.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooAddressType"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooAddressType</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooAddressType.INVALID</code></title>
+
+</item>
+<item>
+<title><code>FooAddressType.IPV4</code></title>
+
+</item>
+<item>
+<title><code>FooAddressType.IPV6</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.add.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.add.page
new file mode 100644
index 00000000..c7e03ace
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.add.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect.add"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBRect" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_brect_add</api:name>
+ <api:arg>
+ <api:type>Regress.FooBRect</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.FooBRect</api:type>
+ <api:name>b2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBRect.add</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooBRect, Regress.FooBRect)
+@returns(none)
+def add(self, b2):
+ # Python wrapper for regress_foo_brect_add()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>b2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.page
new file mode 100644
index 00000000..fd1e9d6e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBRect.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBRect"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooBRect</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.get_contained_type.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.get_contained_type.page
new file mode 100644
index 00000000..4052ec56
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.get_contained_type.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion.get_contained_type"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBUnion" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_foo_bunion_get_contained_type</api:name>
+ <api:arg>
+ <api:type>Regress.FooBUnion</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBUnion.get_contained_type</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooBUnion)
+@returns(int)
+def get_contained_type(self):
+ # Python wrapper for regress_foo_bunion_get_contained_type()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.page
new file mode 100644
index 00000000..8644d96e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBUnion"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooBUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.method.page
new file mode 100644
index 00000000..95f06fbb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.method.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_boxed_method</api:name>
+ <api:arg>
+ <api:type>Regress.FooBoxed</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBoxed.method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooBoxed)
+@returns(none)
+def method(self):
+ # Python wrapper for regress_foo_boxed_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.page
new file mode 100644
index 00000000..bca1f99a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBoxed"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooBoxed</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.page
new file mode 100644
index 00000000..1a515428
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.page
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBuffer"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooBuffer</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+foo_buffer = Regress.FooBuffer() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ <item>
+ <code>Regress.FooBuffer</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.some_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.some_method.page
new file mode 100644
index 00000000..e971b2d6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooBuffer.some_method.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.FooBuffer.some_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooBuffer" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_buffer_some_method</api:name>
+ <api:arg>
+ <api:type>Regress.FooBuffer</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooBuffer.some_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooBuffer)
+@returns(none)
+def some_method(self):
+ # Python wrapper for regress_foo_buffer_some_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooCallback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooCallback.page
new file mode 100644
index 00000000..52feda29
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.method.page
new file mode 100644
index 00000000..fe1b6472
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.method.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.FooDBusData.method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooDBusData" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_dbus_data_method</api:name>
+ <api:arg>
+ <api:type>Regress.FooDBusData</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooDBusData.method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooDBusData)
+@returns(none)
+def method(self):
+ # Python wrapper for regress_foo_dbus_data_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.page
new file mode 100644
index 00000000..b4eaeade
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooDBusData.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooDBusData"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooDBusData</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumFullname.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumFullname.page
new file mode 100644
index 00000000..00169aaf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumFullname.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumFullname"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumFullname</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooEnumFullname.ONE</code></title>
+
+</item>
+<item>
+<title><code>FooEnumFullname.TWO</code></title>
+
+</item>
+<item>
+<title><code>FooEnumFullname.THREE</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumNoType.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumNoType.page
new file mode 100644
index 00000000..d2b41e61
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumNoType.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumNoType"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumNoType</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooEnumNoType.UN</code></title>
+
+</item>
+<item>
+<title><code>FooEnumNoType.DEUX</code></title>
+
+</item>
+<item>
+<title><code>FooEnumNoType.TROIS</code></title>
+
+</item>
+<item>
+<title><code>FooEnumNoType.NEUF</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.method.page
new file mode 100644
index 00000000..a802f265
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.method.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType.method"
+ 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_foo_enum_type_method</api:name>
+ <api:arg>
+ <api:type>Regress.FooEnumType</api:type>
+ <api:name>regress_foo_enum</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooEnumType)
+@returns(int)
+def method(regress_foo_enum):
+ # Python wrapper for regress_foo_enum_type_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>regress_foo_enum</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.page
new file mode 100644
index 00000000..c3ff89b3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooEnumType</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooEnumType.ALPHA</code></title>
+
+</item>
+<item>
+<title><code>FooEnumType.BETA</code></title>
+
+</item>
+<item>
+<title><code>FooEnumType.DELTA</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.returnv.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.returnv.page
new file mode 100644
index 00000000..149cc4fe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEnumType.returnv.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEnumType.returnv"
+ 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>Regress.FooEnumType</api:type>
+ </api:returns>
+ <api:name>regress_foo_enum_type_returnv</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.returnv</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(Regress.FooEnumType)
+def returnv(x):
+ # Python wrapper for regress_foo_enum_type_returnv()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooError.page
new file mode 100644
index 00000000..8c0b6a23
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.FooError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooError.GOOD</code></title>
+
+</item>
+<item>
+<title><code>FooError.BAD</code></title>
+
+</item>
+<item>
+<title><code>FooError.UGLY</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooError.quark.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooError.quark.page
new file mode 100644
index 00000000..81f81a7d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_foo_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.quark</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Quark)
+def quark():
+ # Python wrapper for regress_foo_error_quark()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEvent.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEvent.page
new file mode 100644
index 00000000..ce368302
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEvent.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEvent"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooEvent</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEventAny.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEventAny.page
new file mode 100644
index 00000000..562ec03c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEventAny.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEventAny"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooEventAny</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooEventExpose.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEventExpose.page
new file mode 100644
index 00000000..0000add5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooEventExpose.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooEventExpose"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooEventExpose</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsNoType.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsNoType.page
new file mode 100644
index 00000000..53539d49
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsNoType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooFlagsNoType"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooFlagsNoType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsType.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsType.page
new file mode 100644
index 00000000..2b4afeb5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooFlagsType.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooFlagsType"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooFlagsType</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.copy.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.copy.page
new file mode 100644
index 00000000..1dbb5dc0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.copy.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooForeignStruct" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooForeignStruct</api:type>
+ </api:returns>
+ <api:name>regress_foo_foreign_struct_copy</api:name>
+ <api:arg>
+ <api:type>Regress.FooForeignStruct</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooForeignStruct.copy</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooForeignStruct)
+@returns(Regress.FooForeignStruct)
+def copy(self):
+ # Python wrapper for regress_foo_foreign_struct_copy()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.page
new file mode 100644
index 00000000..312994a9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooForeignStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooForeignStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooForeignStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface-do_regress_foo.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface-do_regress_foo.page
new file mode 100644
index 00000000..d0be1eb5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface-do_regress_foo.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface-do_regress_foo"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterface::do_regress_foo</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooInterface, int)
+@returns(none)
+def do_do_regress_foo(self, x):
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.do_regress_foo.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.do_regress_foo.page
new file mode 100644
index 00000000..3b2f26d6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.do_regress_foo.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface.do_regress_foo"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_interface_do_regress_foo</api:name>
+ <api:arg>
+ <api:type>Regress.FooInterface</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooInterface.do_regress_foo</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooInterface, int)
+@returns(none)
+def do_regress_foo(self, x):
+ # Python wrapper for regress_foo_interface_do_regress_foo()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.page
new file mode 100644
index 00000000..d2a482f7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooInterface</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+foo_interface = Regress.FooInterface() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.FooInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.static_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.static_method.page
new file mode 100644
index 00000000..1c6c1660
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooInterface.static_method.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.FooInterface.static_method"
+ 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="Regress.FooInterface" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_interface_static_method</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooInterface.static_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(none)
+def static_method(x):
+ # Python wrapper for regress_foo_interface_static_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page
new file mode 100644
index 00000000..6cf532b8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-read_fn"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject::read_fn</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, int, int)
+@returns(none)
+def do_read_fn(object, offset, length):
+</code></synopsis>
+
+
+ <p>Read some stuff.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>obj</p>
+</item>
+<item>
+<title><code>offset</code></title>
+<p>offset</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>length</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-signal.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-signal.page
new file mode 100644
index 00000000..ee6c20c5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-signal.page
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-signal"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="signal" type="guide"/>
+ <title type="link" role="topic">signal</title>
+
+ </info>
+ <title>Regress.FooObject::signal</title>
+
+<synopsis><code mime="text/x-python">
+def callback(foo_object, object, p0, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>foo_object</code></title>
+<p>instance of <link xref="Regress.FooObject"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>p0</code></title>
+
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-string.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-string.page
new file mode 100644
index 00000000..9d61f3ab
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-string.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-string"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="property" type="guide"/>
+ <title type="link" role="topic">string</title>
+
+ </info>
+ <title>Regress.FooObject:string</title>
+
+<synopsis><code mime="text/x-python">
+"string" unicode : Read / Write / Construct
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-virtual_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-virtual_method.page
new file mode 100644
index 00000000..01cf6dba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-virtual_method.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject-virtual_method"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject::virtual_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, int)
+@returns(bool)
+def do_virtual_method(object, first_param):
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>first_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.a_global_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.a_global_method.page
new file mode 100644
index 00000000..87645bcf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.a_global_method.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.a_global_method"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_a_global_method</api:name>
+ <api:arg>
+ <api:type>Utility.Object</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.a_global_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Utility.Object)
+@returns(none)
+def a_global_method(obj):
+ # Python wrapper for regress_foo_object_a_global_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.append_new_stack_layer.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.append_new_stack_layer.page
new file mode 100644
index 00000000..23ba26b8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.append_new_stack_layer.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.append_new_stack_layer"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooOtherObject</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_append_new_stack_layer</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.append_new_stack_layer</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, int)
+@returns(Regress.FooOtherObject)
+def append_new_stack_layer(self, x):
+ # Python wrapper for regress_foo_object_append_new_stack_layer()
+</code></synopsis>
+
+
+ <p>This shouldn't be scanned as a constructor.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.dup_name.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.dup_name.page
new file mode 100644
index 00000000..dcc20f6c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.dup_name.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.dup_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>unicode</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_dup_name</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.dup_name</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject)
+@returns(unicode)
+def dup_name(self):
+ # Python wrapper for regress_foo_object_dup_name()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.external_type.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.external_type.page
new file mode 100644
index 00000000..0b32befd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.external_type.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.external_type"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Utility.Object</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_external_type</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.external_type</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject)
+@returns(Utility.Object)
+def external_type(self):
+ # Python wrapper for regress_foo_object_external_type()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.FooObject"/></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_default.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_default.page
new file mode 100644
index 00000000..826efd85
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_default.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.get_default"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.FooSubobject</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_get_default</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.get_default</title>
+
+<synopsis><code mime="text/x-python">
+@returns(Regress.FooSubobject)
+def get_default():
+ # Python wrapper for regress_foo_object_get_default()
+</code></synopsis>
+
+
+ <p>This function is intended to match clutter_stage_get_default which
+uses a C sugar return type.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_name.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_name.page
new file mode 100644
index 00000000..e66d4932
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.get_name.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.get_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>unicode</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_get_name</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.get_name</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject)
+@returns(unicode)
+def get_name(self):
+ # Python wrapper for regress_foo_object_get_name()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.handle_glyph.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.handle_glyph.page
new file mode 100644
index 00000000..e171f820
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.handle_glyph.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.handle_glyph"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_handle_glyph</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Utility.Glyph</api:type>
+ <api:name>glyph</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.handle_glyph</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, Utility.Glyph)
+@returns(none)
+def handle_glyph(self, glyph):
+ # Python wrapper for regress_foo_object_handle_glyph()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>glyph</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.is_it_time_yet.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.is_it_time_yet.page
new file mode 100644
index 00000000..1781562f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.is_it_time_yet.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.is_it_time_yet"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_is_it_time_yet</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>time</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.is_it_time_yet</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, int)
+@returns(none)
+def is_it_time_yet(self, time):
+ # Python wrapper for regress_foo_object_is_it_time_yet()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>time</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.page
new file mode 100644
index 00000000..3265e6b5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooObject</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+foo_object = Regress.FooObject(<link xref='Regress.FooObject-hidden'>hidden</link>=value, <link xref='Regress.FooObject-string'>string</link>=value) </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.read.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.read.page
new file mode 100644
index 00000000..88dee520
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.read.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.read"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_read</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>offset</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.read</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, int, int)
+@returns(none)
+def read(self, offset, length):
+ # Python wrapper for regress_foo_object_read()
+</code></synopsis>
+
+
+ <p>Read some stuff.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>obj</p>
+</item>
+<item>
+<title><code>offset</code></title>
+<p>offset</p>
+</item>
+<item>
+<title><code>length</code></title>
+<p>length</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.static_meth.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.static_meth.page
new file mode 100644
index 00000000..c652a104
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.static_meth.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.static_meth"
+ 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="Regress.FooObject" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_static_meth</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.static_meth</title>
+
+<synopsis><code mime="text/x-python">
+@returns(int)
+def static_meth():
+ # Python wrapper for regress_foo_object_static_meth()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.various.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.various.page
new file mode 100644
index 00000000..efdc5c45
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.various.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.various"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_various</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GType</api:type>
+ <api:name>some_type</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.various</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, gpointer, GType)
+@returns(none)
+def various(self, data, some_type):
+ # Python wrapper for regress_foo_object_various()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>some_type</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.virtual_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.virtual_method.page
new file mode 100644
index 00000000..f4920bed
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject.virtual_method.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObject.virtual_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_foo_object_virtual_method</api:name>
+ <api:arg>
+ <api:type>Regress.FooObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>first_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooObject.virtual_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooObject, int)
+@returns(bool)
+def virtual_method(self, first_param):
+ # Python wrapper for regress_foo_object_virtual_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>first_param</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObjectCookie.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObjectCookie.page
new file mode 100644
index 00000000..44a63ab1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObjectCookie.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooObjectCookie"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooObjectCookie</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooOtherObject.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooOtherObject.page
new file mode 100644
index 00000000..dadf5236
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooOtherObject.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.FooOtherObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooOtherObject</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+foo_other_object = Regress.FooOtherObject() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooOtherObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.add.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.add.page
new file mode 100644
index 00000000..fe924f40
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.add.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.FooRectangle.add"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooRectangle" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_rectangle_add</api:name>
+ <api:arg>
+ <api:type>Regress.FooRectangle</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.FooRectangle</api:type>
+ <api:name>r2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooRectangle.add</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooRectangle, Regress.FooRectangle)
+@returns(none)
+def add(self, r2):
+ # Python wrapper for regress_foo_rectangle_add()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>add to this rect</p>
+</item>
+<item>
+<title><code>r2</code></title>
+<p>source rectangle</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.page
new file mode 100644
index 00000000..0cfef622
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooRectangle.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooRectangle"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooRectangle</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooStackLayer.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooStackLayer.page
new file mode 100644
index 00000000..8a08c9ae
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooStackLayer.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.FooStackLayer"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.FooStackLayer</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>FooStackLayer.DESKTOP</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.BOTTOM</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.NORMAL</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.TOP</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.DOCK</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.FULLSCREEN</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.FOCUSED_WINDOW</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.OVERRIDE_REDIRECT</code></title>
+
+</item>
+<item>
+<title><code>FooStackLayer.LAST</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooStruct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooStruct.page
new file mode 100644
index 00000000..84f5d192
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy-event.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy-event.page
new file mode 100644
index 00000000..a42bb176
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy-event.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-destroy-event"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="signal" type="guide"/>
+ <title type="link" role="topic">destroy-event</title>
+
+ </info>
+ <title>Regress.FooSubInterface::destroy-event</title>
+
+<synopsis><code mime="text/x-python">
+def callback(foo_sub_interface, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>foo_sub_interface</code></title>
+<p>instance of <link xref="Regress.FooSubInterface"/> that is emitting the signal</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy_event.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy_event.page
new file mode 100644
index 00000000..82dbc622
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-destroy_event.page
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-destroy_event"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::destroy_event</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooSubInterface)
+@returns(none)
+def do_destroy_event(self):
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_bar.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_bar.page
new file mode 100644
index 00000000..a035189a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_bar.page
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-do_bar"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::do_bar</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooSubInterface)
+@returns(none)
+def do_do_bar(self):
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_baz.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_baz.page
new file mode 100644
index 00000000..3b0404fa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface-do_baz.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface-do_baz"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface::do_baz</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooSubInterface, GObject.Callback, gpointer)
+@returns(none)
+def do_do_baz(self, callback, user_data):
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_bar.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_bar.page
new file mode 100644
index 00000000..1ecac0d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_bar.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface.do_bar"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_sub_interface_do_bar</api:name>
+ <api:arg>
+ <api:type>Regress.FooSubInterface</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooSubInterface.do_bar</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooSubInterface)
+@returns(none)
+def do_bar(self):
+ # Python wrapper for regress_foo_sub_interface_do_bar()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_baz.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_baz.page
new file mode 100644
index 00000000..071fb0d5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.do_baz.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface.do_baz"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.FooSubInterface" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_sub_interface_do_baz</api:name>
+ <api:arg>
+ <api:type>Regress.FooSubInterface</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject.Callback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.FooSubInterface.do_baz</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooSubInterface, GObject.Callback, gpointer)
+@returns(none)
+def do_baz(self, callback, user_data):
+ # Python wrapper for regress_foo_sub_interface_do_baz()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.page
new file mode 100644
index 00000000..81593d32
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubInterface.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubInterface</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+foo_sub_interface = Regress.FooSubInterface() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.FooSubInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubobject.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubobject.page
new file mode 100644
index 00000000..fc7b5ad1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooSubobject.page
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<page id="Regress.FooSubobject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.FooSubobject</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+foo_subobject = Regress.FooSubobject() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.FooObject</code>
+ <item>
+ <code>Regress.FooSubobject</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooThingWithArray.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooThingWithArray.page
new file mode 100644
index 00000000..430dce7c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooThingWithArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooThingWithArray"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooThingWithArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooUnion.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooUnion.page
new file mode 100644
index 00000000..9746f17e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooUnion.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooUnion"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooUnion</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooUtilityStruct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooUtilityStruct.page
new file mode 100644
index 00000000..2b94f691
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooUtilityStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooUtilityStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.FooUtilityStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooXEvent.page b/tests/scanner/Regress-1.0-Python-expected/Regress.FooXEvent.page
new file mode 100644
index 00000000..c389ef05
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooXEvent.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.FooXEvent"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.FooXEvent</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.LikeGnomeKeyringPasswordSchema.page b/tests/scanner/Regress-1.0-Python-expected/Regress.LikeGnomeKeyringPasswordSchema.page
new file mode 100644
index 00000000..44a946ee
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.LikeGnomeKeyringPasswordSchema.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeGnomeKeyringPasswordSchema"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.LikeGnomeKeyringPasswordSchema</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.page b/tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.page
new file mode 100644
index 00000000..fb4831f5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeXklConfigItem"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.LikeXklConfigItem</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.set_name.page b/tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.set_name.page
new file mode 100644
index 00000000..a6815c8b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.LikeXklConfigItem.set_name.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.LikeXklConfigItem.set_name"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.LikeXklConfigItem" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_like_xkl_config_item_set_name</api:name>
+ <api:arg>
+ <api:type>Regress.LikeXklConfigItem</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>name</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.LikeXklConfigItem.set_name</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.LikeXklConfigItem, unicode)
+@returns(none)
+def set_name(self, name):
+ # Python wrapper for regress_like_xkl_config_item_set_name()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>name</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.PtrArrayAlias.page b/tests/scanner/Regress-1.0-Python-expected/Regress.PtrArrayAlias.page
new file mode 100644
index 00000000..f66aee44
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.PtrArrayAlias.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.PtrArrayAlias"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.PtrArrayAlias</title>
+
+
+
+ <p>Typedef'd GPtrArray for some reason</p>
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.page
new file mode 100644
index 00000000..f31b58ec
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestABCError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestABCError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestABCError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestABCError.CODE2</code></title>
+
+</item>
+<item>
+<title><code>TestABCError.CODE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.quark.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.quark.page
new file mode 100644
index 00000000..8a8114df
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestABCError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestABCError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_abc_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.quark</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Quark)
+def quark():
+ # Python wrapper for regress_test_abc_error_quark()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.copy.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.copy.page
new file mode 100644
index 00000000..6e69b52e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.copy.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxed</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_copy</api:name>
+ <api:arg>
+ <api:type>Regress.TestBoxed</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.copy</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestBoxed)
+@returns(Regress.TestBoxed)
+def copy(self):
+ # Python wrapper for regress_test_boxed_copy()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.equals.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.equals.page
new file mode 100644
index 00000000..b4e88aaf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.equals.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed.equals"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxed" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_equals</api:name>
+ <api:arg>
+ <api:type>Regress.TestBoxed</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestBoxed</api:type>
+ <api:name>other</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxed.equals</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestBoxed, Regress.TestBoxed)
+@returns(bool)
+def equals(self, other):
+ # Python wrapper for regress_test_boxed_equals()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>other</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.page
new file mode 100644
index 00000000..baa423f2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxed.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxed"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxed</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.copy.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.copy.page
new file mode 100644
index 00000000..2629154a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.copy.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxedB</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_b_copy</api:name>
+ <api:arg>
+ <api:type>Regress.TestBoxedB</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedB.copy</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestBoxedB)
+@returns(Regress.TestBoxedB)
+def copy(self):
+ # Python wrapper for regress_test_boxed_b_copy()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.page
new file mode 100644
index 00000000..0e39780b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedB"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedC.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedC.page
new file mode 100644
index 00000000..18b77d9f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedC.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedC"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedC</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.copy.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.copy.page
new file mode 100644
index 00000000..9910236c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.copy.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestBoxedD</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_copy</api:name>
+ <api:arg>
+ <api:type>Regress.TestBoxedD</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedD.copy</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestBoxedD)
+@returns(Regress.TestBoxedD)
+def copy(self):
+ # Python wrapper for regress_test_boxed_d_copy()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.free.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.free.page
new file mode 100644
index 00000000..9750cc3f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.free.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.free"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_free</api:name>
+ <api:arg>
+ <api:type>Regress.TestBoxedD</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedD.free</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestBoxedD)
+@returns(none)
+def free(self):
+ # Python wrapper for regress_test_boxed_d_free()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.get_magic.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.get_magic.page
new file mode 100644
index 00000000..f050eb66
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.get_magic.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD.get_magic"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestBoxedD" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_boxed_d_get_magic</api:name>
+ <api:arg>
+ <api:type>Regress.TestBoxedD</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestBoxedD.get_magic</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestBoxedD)
+@returns(int)
+def get_magic(self):
+ # Python wrapper for regress_test_boxed_d_get_magic()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.page
new file mode 100644
index 00000000..995e80dd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestBoxedD.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestBoxedD"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestBoxedD</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallback.page
new file mode 100644
index 00000000..bed84d50
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackArray.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackArray.page
new file mode 100644
index 00000000..7d3f7b83
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackArray"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackFull.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackFull.page
new file mode 100644
index 00000000..0b8fca1d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackFull.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackFull"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackFull</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackGError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackGError.page
new file mode 100644
index 00000000..804382f5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackGError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackGError"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackGError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackHashtable.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackHashtable.page
new file mode 100644
index 00000000..06ebb706
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackHashtable.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackHashtable"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackHashtable</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackOwnedGError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackOwnedGError.page
new file mode 100644
index 00000000..28b21ea4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackOwnedGError.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackOwnedGError"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackOwnedGError</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackUserData.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackUserData.page
new file mode 100644
index 00000000..286c830a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestCallbackUserData.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestCallbackUserData"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestCallbackUserData</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestDEFError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestDEFError.page
new file mode 100644
index 00000000..589059d5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestDEFError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestDEFError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestDEFError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestDEFError.CODE0</code></title>
+
+</item>
+<item>
+<title><code>TestDEFError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestDEFError.CODE2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.page
new file mode 100644
index 00000000..814b474b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnum"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnum</title>
+
+
+
+ <p>By purpose, not all members have documentation</p>
+
+
+
+
+<terms>
+<item>
+<title><code>TestEnum.VALUE1</code></title>
+<p>value 1</p>
+</item>
+<item>
+<title><code>TestEnum.VALUE2</code></title>
+<p>value 2</p>
+</item>
+<item>
+<title><code>TestEnum.VALUE3</code></title>
+
+</item>
+<item>
+<title><code>TestEnum.VALUE4</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.param.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.param.page
new file mode 100644
index 00000000..24684786
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnum.param.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnum.param"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_test_enum_param</api:name>
+ <api:arg>
+ <api:type>Regress.TestEnum</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.param</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestEnum)
+@returns(unicode)
+def param(e):
+ # Python wrapper for regress_test_enum_param()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumNoGEnum.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumNoGEnum.page
new file mode 100644
index 00000000..5c0c5594
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumNoGEnum.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnumNoGEnum"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnumNoGEnum</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestEnumNoGEnum.EVALUE1</code></title>
+
+</item>
+<item>
+<title><code>TestEnumNoGEnum.EVALUE2</code></title>
+
+</item>
+<item>
+<title><code>TestEnumNoGEnum.EVALUE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumUnsigned.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumUnsigned.page
new file mode 100644
index 00000000..df3cfa1e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestEnumUnsigned.page
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestEnumUnsigned"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestEnumUnsigned</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestEnumUnsigned.VALUE1</code></title>
+
+</item>
+<item>
+<title><code>TestEnumUnsigned.VALUE2</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestError.page
new file mode 100644
index 00000000..d6a6ebb2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestError.CODE2</code></title>
+
+</item>
+<item>
+<title><code>TestError.CODE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestError.quark.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestError.quark.page
new file mode 100644
index 00000000..07a91a37
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.quark</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Quark)
+def quark():
+ # Python wrapper for regress_test_error_quark()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFlags.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFlags.page
new file mode 100644
index 00000000..d5bfeeb4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFlags.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFlags"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFlags</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFloating.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFloating.page
new file mode 100644
index 00000000..a2b80e1d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFloating.page
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFloating"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFloating</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_floating = Regress.TestFloating() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>GObject.InitiallyUnowned</code>
+ <item>
+ <code>Regress.TestFloating</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.page
new file mode 100644
index 00000000..7035407d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObject</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_fundamental_object = Regress.TestFundamentalObject() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestFundamentalObject</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.ref.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.ref.page
new file mode 100644
index 00000000..ed3159d0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.ref.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject.ref"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestFundamentalObject</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_object_ref</api:name>
+ <api:arg>
+ <api:type>Regress.TestFundamentalObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestFundamentalObject.ref</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestFundamentalObject)
+@returns(Regress.TestFundamentalObject)
+def ref(self):
+ # Python wrapper for regress_test_fundamental_object_ref()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.unref.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.unref.page
new file mode 100644
index 00000000..1ecf6c1e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObject.unref.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObject.unref"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestFundamentalObject" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_fundamental_object_unref</api:name>
+ <api:arg>
+ <api:type>Regress.TestFundamentalObject</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestFundamentalObject.unref</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestFundamentalObject)
+@returns(none)
+def unref(self):
+ # Python wrapper for regress_test_fundamental_object_unref()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectCopyFunction.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectCopyFunction.page
new file mode 100644
index 00000000..73a33285
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectCopyFunction.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObjectCopyFunction"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObjectCopyFunction</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectFinalizeFunction.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectFinalizeFunction.page
new file mode 100644
index 00000000..df0e8fba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalObjectFinalizeFunction.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalObjectFinalizeFunction"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalObjectFinalizeFunction</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalSubObject.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalSubObject.page
new file mode 100644
index 00000000..6b1e810a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestFundamentalSubObject.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.TestFundamentalSubObject"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestFundamentalSubObject</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_fundamental_sub_object = Regress.TestFundamentalSubObject() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestFundamentalObject</code>
+ <item>
+ <code>Regress.TestFundamentalSubObject</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo.page
new file mode 100644
index 00000000..1cfcfdcb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.do_foo"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_do_foo</api:name>
+ <api:arg>
+ <api:type>Regress.TestInheritDrawable</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.do_foo</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestInheritDrawable, int)
+@returns(none)
+def do_foo(self, x):
+ # Python wrapper for regress_test_inherit_drawable_do_foo()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page
new file mode 100644
index 00000000..e00b489c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.do_foo_maybe_throw.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.do_foo_maybe_throw"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_do_foo_maybe_throw</api:name>
+ <api:arg>
+ <api:type>Regress.TestInheritDrawable</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.do_foo_maybe_throw</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestInheritDrawable, int)
+@returns(none)
+def do_foo_maybe_throw(self, x):
+ # Python wrapper for regress_test_inherit_drawable_do_foo_maybe_throw()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_origin.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_origin.page
new file mode 100644
index 00000000..357d0694
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_origin.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.get_origin"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_get_origin</api:name>
+ <api:arg>
+ <api:type>Regress.TestInheritDrawable</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.get_origin</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestInheritDrawable, int, int)
+@returns(none)
+def get_origin(self, x, y):
+ # Python wrapper for regress_test_inherit_drawable_get_origin()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_size.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_size.page
new file mode 100644
index 00000000..3bbdfed1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.get_size.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable.get_size"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestInheritDrawable" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_inherit_drawable_get_size</api:name>
+ <api:arg>
+ <api:type>Regress.TestInheritDrawable</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>width</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>height</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestInheritDrawable.get_size</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestInheritDrawable, int, int)
+@returns(none)
+def get_size(self, width, height):
+ # Python wrapper for regress_test_inherit_drawable_get_size()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>width</code></title>
+
+</item>
+<item>
+<title><code>height</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.page
new file mode 100644
index 00000000..1fdd2c89
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritDrawable.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritDrawable"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestInheritDrawable</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_inherit_drawable = Regress.TestInheritDrawable() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestInheritDrawable</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritPixmapObjectClass.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritPixmapObjectClass.page
new file mode 100644
index 00000000..0df0396b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInheritPixmapObjectClass.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInheritPixmapObjectClass"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestInheritPixmapObjectClass</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestInterface.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInterface.page
new file mode 100644
index 00000000..807e18ae
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestInterface.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.TestInterface"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestInterface</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_interface = Regress.TestInterface() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>Regress.TestInterface</code>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-all.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-all.page
new file mode 100644
index 00000000..f8fb4a1c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-all.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-all"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">all</title>
+
+ </info>
+ <title>Regress.TestObj::all</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-allow_none_vfunc.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-allow_none_vfunc.page
new file mode 100644
index 00000000..7a3b9c91
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-allow_none_vfunc.page
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-allow_none_vfunc"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj::allow_none_vfunc</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, Regress.TestObj)
+@returns(none)
+def do_allow_none_vfunc(obj, two):
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+
+</item>
+<item>
+<title><code>two</code></title>
+<p>Another object</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-bare.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-bare.page
new file mode 100644
index 00000000..f1f1b520
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-bare.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-bare"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">bare</title>
+
+ </info>
+ <title>Regress.TestObj:bare</title>
+
+<synopsis><code mime="text/x-python">
+"bare" GObject.Object : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-boxed.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-boxed.page
new file mode 100644
index 00000000..a392a771
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-boxed.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-boxed"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">boxed</title>
+
+ </info>
+ <title>Regress.TestObj:boxed</title>
+
+<synopsis><code mime="text/x-python">
+"boxed" Regress.TestBoxed : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-cleanup.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-cleanup.page
new file mode 100644
index 00000000..f35c0314
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-cleanup.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-cleanup"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">cleanup</title>
+
+ </info>
+ <title>Regress.TestObj::cleanup</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-double.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-double.page
new file mode 100644
index 00000000..70fd579b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-double.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-double"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">double</title>
+
+ </info>
+ <title>Regress.TestObj:double</title>
+
+<synopsis><code mime="text/x-python">
+"double" float : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-first.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-first.page
new file mode 100644
index 00000000..b5bcd2c0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-first.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-first"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">first</title>
+
+ </info>
+ <title>Regress.TestObj::first</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-float.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-float.page
new file mode 100644
index 00000000..87be50fe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-float.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-float"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">float</title>
+
+ </info>
+ <title>Regress.TestObj:float</title>
+
+<synopsis><code mime="text/x-python">
+"float" float : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-gtype.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-gtype.page
new file mode 100644
index 00000000..6b222e4e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-gtype.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-gtype"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">gtype</title>
+
+ </info>
+ <title>Regress.TestObj:gtype</title>
+
+<synopsis><code mime="text/x-python">
+"gtype" GType : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table-old.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table-old.page
new file mode 100644
index 00000000..c796f365
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table-old.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-hash-table-old"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">hash-table-old</title>
+
+ </info>
+ <title>Regress.TestObj:hash-table-old</title>
+
+<synopsis><code mime="text/x-python">
+"hash-table-old" {unicode: gint8} : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table.page
new file mode 100644
index 00000000..c5d426cf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-hash-table.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-hash-table"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">hash-table</title>
+
+ </info>
+ <title>Regress.TestObj:hash-table</title>
+
+<synopsis><code mime="text/x-python">
+"hash-table" {unicode: gint8} : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-int.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-int.page
new file mode 100644
index 00000000..db7a89e1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-int.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-int"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">int</title>
+
+ </info>
+ <title>Regress.TestObj:int</title>
+
+<synopsis><code mime="text/x-python">
+"int" int : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list-old.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list-old.page
new file mode 100644
index 00000000..95367ec2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list-old.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-list-old"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">list-old</title>
+
+ </info>
+ <title>Regress.TestObj:list-old</title>
+
+<synopsis><code mime="text/x-python">
+"list-old" [unicode] : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list.page
new file mode 100644
index 00000000..aca148d8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-list.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-list"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">list</title>
+
+ </info>
+ <title>Regress.TestObj:list</title>
+
+<synopsis><code mime="text/x-python">
+"list" [unicode] : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page
new file mode 100644
index 00000000..742e6da4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-matrix"
+ type="topic"
+ style="vfunc"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="vfunc" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj::matrix</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, unicode)
+@returns(int)
+def do_matrix(obj, somestr):
+</code></synopsis>
+
+
+ <p>This method is virtual. Notably its name differs from the virtual
+slot name, which makes it useful for testing bindings handle this
+case.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>somestr</code></title>
+<p>Meaningless string</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page
new file mode 100644
index 00000000..a228de1f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-array-len-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-array-len-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-array-len-prop</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, arr, len, user_param1, ...)
+</code></synopsis>
+
+
+ <p>This test signal similar to GSettings::change-event</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arr</code></title>
+<p>numbers, or <code>None</code></p>
+</item>
+<item>
+<title><code>len</code></title>
+<p>length of <code>arr</code>, or 0</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-prop.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-prop.page
new file mode 100644
index 00000000..eb1b99ff
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-prop.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-array-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-array-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-array-prop</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, arr, user_param1, ...)
+</code></synopsis>
+
+
+ <p>This test signal is like TelepathyGlib's
+ TpChannel:: group-members-changed-detailed:</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>arr</code></title>
+<p>numbers</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-foreign-struct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-foreign-struct.page
new file mode 100644
index 00000000..36a30d7e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-foreign-struct.page
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-foreign-struct"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-foreign-struct</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-foreign-struct</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, cr, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>cr</code></title>
+<p>A cairo context.</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-hash-prop.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-hash-prop.page
new file mode 100644
index 00000000..2048ad2c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-hash-prop.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-hash-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-hash-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-hash-prop</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, hash, user_param1, ...)
+</code></synopsis>
+
+
+ <p>This test signal is like TelepathyGlib's
+ TpAccount::status-changed</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>hash</code></title>
+
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-int64-prop.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-int64-prop.page
new file mode 100644
index 00000000..a782484b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-int64-prop.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-int64-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-int64-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-int64-prop</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, i, user_param1, ...)
+</code></synopsis>
+
+
+ <p>You can use this with regress_test_obj_emit_sig_with_int64, or raise from
+the introspection client langage.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-intarray-ret.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-intarray-ret.page
new file mode 100644
index 00000000..d070f179
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-intarray-ret.page
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-intarray-ret"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-intarray-ret</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-intarray-ret</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, i, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-obj.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-obj.page
new file mode 100644
index 00000000..d4814a83
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-obj.page
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-obj"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-obj</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-obj</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, obj, user_param1, ...)
+</code></synopsis>
+
+
+ <p>Test transfer none GObject as a param (tests refcounting).
+Use with regress_test_obj_emit_sig_with_obj</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>obj</code></title>
+<p>A newly created RegressTestObj</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-strv.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-strv.page
new file mode 100644
index 00000000..a7037a49
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-strv.page
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-strv"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-strv</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-strv</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, strs, user_param1, ...)
+</code></synopsis>
+
+
+ <p>Test GStrv as a param.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>strs</code></title>
+<p>strings</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-uint64-prop.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-uint64-prop.page
new file mode 100644
index 00000000..c89d1d16
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-uint64-prop.page
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-sig-with-uint64-prop"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">sig-with-uint64-prop</title>
+
+ </info>
+ <title>Regress.TestObj::sig-with-uint64-prop</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, i, user_param1, ...)
+</code></synopsis>
+
+
+ <p>You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
+the introspection client langage.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>i</code></title>
+<p>an integer</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-string.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-string.page
new file mode 100644
index 00000000..fa499937
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-string.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-string"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="property" type="guide"/>
+ <title type="link" role="topic">string</title>
+
+ </info>
+ <title>Regress.TestObj:string</title>
+
+<synopsis><code mime="text/x-python">
+"string" unicode : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test-with-static-scope-arg.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test-with-static-scope-arg.page
new file mode 100644
index 00000000..736814c7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test-with-static-scope-arg.page
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-test-with-static-scope-arg"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">test-with-static-scope-arg</title>
+
+ </info>
+ <title>Regress.TestObj::test-with-static-scope-arg</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, object, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<item>
+<title><code>object</code></title>
+
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test.page
new file mode 100644
index 00000000..e09f531e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-test.page
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj-test"
+ type="topic"
+ style="signal"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="signal" type="guide"/>
+ <title type="link" role="topic">test</title>
+
+ </info>
+ <title>Regress.TestObj::test</title>
+
+<synopsis><code mime="text/x-python">
+def callback(test_obj, user_param1, ...)
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>test_obj</code></title>
+<p>instance of <link xref="Regress.TestObj"/> that is emitting the signal</p>
+</item>
+<title><code>user_param1</code></title>
+<p>first user parameter (if any) specified with the connect() method</p>
+<item>
+<title><code>...</code></title>
+<p>additional user parameters (if any)</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.do_matrix.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.do_matrix.page
new file mode 100644
index 00000000..07eaa505
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.do_matrix.page
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.do_matrix"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_do_matrix</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>somestr</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.do_matrix</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, unicode)
+@returns(int)
+def do_matrix(self, somestr):
+ # Python wrapper for regress_test_obj_do_matrix()
+</code></synopsis>
+
+
+ <p>This method is virtual. Notably its name differs from the virtual
+slot name, which makes it useful for testing bindings handle this
+case.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>somestr</code></title>
+<p>Meaningless string</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_foreign_struct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_foreign_struct.page
new file mode 100644
index 00000000..065d7456
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_foreign_struct.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_foreign_struct"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_foreign_struct</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.emit_sig_with_foreign_struct</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(none)
+def emit_sig_with_foreign_struct(self):
+ # Python wrapper for regress_test_obj_emit_sig_with_foreign_struct()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_int64.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_int64.page
new file mode 100644
index 00000000..fb0679af
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_int64.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_int64"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_int64</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.emit_sig_with_int64</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(none)
+def emit_sig_with_int64(self):
+ # Python wrapper for regress_test_obj_emit_sig_with_int64()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_obj.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_obj.page
new file mode 100644
index 00000000..25154985
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_obj.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_obj"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_obj</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.emit_sig_with_obj</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(none)
+def emit_sig_with_obj(self):
+ # Python wrapper for regress_test_obj_emit_sig_with_obj()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_uint64.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_uint64.page
new file mode 100644
index 00000000..34fbfe39
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_uint64.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.emit_sig_with_uint64"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_emit_sig_with_uint64</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.emit_sig_with_uint64</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(none)
+def emit_sig_with_uint64(self):
+ # Python wrapper for regress_test_obj_emit_sig_with_uint64()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.forced_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.forced_method.page
new file mode 100644
index 00000000..e4770525
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.forced_method.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.forced_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_forced_method</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.forced_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(none)
+def forced_method(self):
+ # Python wrapper for regress_forced_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method.page
new file mode 100644
index 00000000..58c58e31
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.instance_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_instance_method</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.instance_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(int)
+def instance_method(self):
+ # Python wrapper for regress_test_obj_instance_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method_callback.page
new file mode 100644
index 00000000..d491fa61
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.instance_method_callback.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.instance_method_callback"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_instance_method_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.instance_method_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, Regress.TestCallback)
+@returns(none)
+def instance_method_callback(self, callback):
+ # Python wrapper for regress_test_obj_instance_method_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.null_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.null_out.page
new file mode 100644
index 00000000..a1c06605
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.null_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.null_out"
+ 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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_null_out</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.null_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(none)
+def null_out(obj):
+ # Python wrapper for regress_test_obj_null_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.page
new file mode 100644
index 00000000..1ded23c7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestObj</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_obj = Regress.TestObj(<link xref='Regress.TestObj-bare'>bare</link>=value, <link xref='Regress.TestObj-boxed'>boxed</link>=value, <link xref='Regress.TestObj-double'>double</link>=value, <link xref='Regress.TestObj-float'>float</link>=value, <link xref='Regress.TestObj-gtype'>gtype</link>=value, <link xref='Regress.TestObj-hash-table'>hash_table</link>=value, <link xref='Regress.TestObj-hash-table-old'>hash_table_old</link>=value, <link xref='Regress.TestObj-int'>int</link>=value, <link xref='Regress.TestObj-list'>list</link>=value, <link xref='Regress.TestObj-list-old'>list_old</link>=value, <link xref='Regress.TestObj-string'>string</link>=value) </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestObj</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.set_bare.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.set_bare.page
new file mode 100644
index 00000000..63acc894
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.set_bare.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.set_bare"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_set_bare</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GObject.Object</api:type>
+ <api:name>bare</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.set_bare</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, GObject.Object)
+@returns(none)
+def set_bare(self, bare):
+ # Python wrapper for regress_test_obj_set_bare()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>bare</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_inout_param.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_inout_param.page
new file mode 100644
index 00000000..3d32ba0b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_inout_param.page
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_inout_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_inout_param</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.skip_inout_param</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, int, int, float, int, int, int, int)
+@returns(bool)
+def skip_inout_param(self, a, out_b, c, inout_d, out_sum, num1, num2):
+ # Python wrapper for regress_test_obj_skip_inout_param()
+</code></synopsis>
+
+
+ <p>Check that the out value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.TestObj"/>.</p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_out_param.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_out_param.page
new file mode 100644
index 00000000..58c5268b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_out_param.page
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_out_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_out_param</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.skip_out_param</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, int, int, float, int, int, int, int)
+@returns(bool)
+def skip_out_param(self, a, out_b, c, inout_d, out_sum, num1, num2):
+ # Python wrapper for regress_test_obj_skip_out_param()
+</code></synopsis>
+
+
+ <p>Check that the out value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.TestObj"/>.</p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_param.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_param.page
new file mode 100644
index 00000000..c02f3b95
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_param.page
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_param"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_param</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.skip_param</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, int, int, float, int, int, int, int)
+@returns(bool)
+def skip_param(self, a, out_b, c, inout_d, out_sum, num1, num2):
+ # Python wrapper for regress_test_obj_skip_param()
+</code></synopsis>
+
+
+ <p>Check that a parameter is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.TestObj"/>.</p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val.page
new file mode 100644
index 00000000..2aadb427
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val.page
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_return_val"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_return_val</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_b</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>c</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>inout_d</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>out_sum</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num1</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>num2</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.skip_return_val</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, int, int, float, int, int, int, int)
+@returns(bool)
+def skip_return_val(self, a, out_b, c, inout_d, out_sum, num1, num2):
+ # Python wrapper for regress_test_obj_skip_return_val()
+</code></synopsis>
+
+
+ <p>Check that the return value is skipped</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>out_b</code></title>
+<p>A return value.</p>
+</item>
+<item>
+<title><code>c</code></title>
+<p>Other parameter.</p>
+</item>
+<item>
+<title><code>inout_d</code></title>
+<p>Will be incremented.</p>
+</item>
+<item>
+<title><code>out_sum</code></title>
+<p>Return value.</p>
+</item>
+<item>
+<title><code>num1</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>num2</code></title>
+<p>Number.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val_no_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val_no_out.page
new file mode 100644
index 00000000..f0c50f5f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.skip_return_val_no_out.page
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.skip_return_val_no_out"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_skip_return_val_no_out</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.skip_return_val_no_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, int)
+@returns(bool)
+def skip_return_val_no_out(self, a):
+ # Python wrapper for regress_test_obj_skip_return_val_no_out()
+</code></synopsis>
+
+
+ <p>Check that the return value is skipped. Succeed if a is nonzero, otherwise
+raise an error.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>a <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>a</code></title>
+<p>Parameter.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method.page
new file mode 100644
index 00000000..67510263
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.static_method"
+ 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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>float</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_static_method</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.static_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(float)
+def static_method(x):
+ # Python wrapper for regress_test_obj_static_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method_callback.page
new file mode 100644
index 00000000..4d97f31f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.static_method_callback.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.static_method_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="Regress.TestObj" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_static_method_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.static_method_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallback)
+@returns(none)
+def static_method_callback(callback):
+ # Python wrapper for regress_test_obj_static_method_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_0.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_0.page
new file mode 100644
index 00000000..4cc806d4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_0.page
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.torture_signature_0"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_torture_signature_0</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.torture_signature_0</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, int, float, int, unicode, int, int)
+@returns(none)
+def torture_signature_0(self, x, y, z, foo, q, m):
+ # Python wrapper for regress_test_obj_torture_signature_0()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_1.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_1.page
new file mode 100644
index 00000000..7ccc1327
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.torture_signature_1.page
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<page id="Regress.TestObj.torture_signature_1"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_obj_torture_signature_1</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestObj.torture_signature_1</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj, int, float, int, unicode, int, int)
+@returns(bool)
+def torture_signature_1(self, x, y, z, foo, q, m):
+ # Python wrapper for regress_test_obj_torture_signature_1()
+</code></synopsis>
+
+
+ <p>This function throws an error if m is odd.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.page
new file mode 100644
index 00000000..858e58a8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.TestOtherError"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestOtherError</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestOtherError.CODE1</code></title>
+
+</item>
+<item>
+<title><code>TestOtherError.CODE2</code></title>
+
+</item>
+<item>
+<title><code>TestOtherError.CODE3</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.quark.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.quark.page
new file mode 100644
index 00000000..341e774e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestOtherError.quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestOtherError.quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_unconventional_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.quark</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Quark)
+def quark():
+ # Python wrapper for regress_test_unconventional_error_quark()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateEnum.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateEnum.page
new file mode 100644
index 00000000..66b477d2
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateEnum.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestPrivateEnum"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestPrivateEnum</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateStruct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateStruct.page
new file mode 100644
index 00000000..7b1309da
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestPrivateStruct.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestPrivateStruct"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestPrivateStruct</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceEnum.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceEnum.page
new file mode 100644
index 00000000..2c8b1abb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceEnum.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceEnum"
+ type="topic"
+ style="enum"
+ 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="enum" type="guide"/>
+
+ </info>
+ <title>Regress.TestReferenceEnum</title>
+
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>TestReferenceEnum.0</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.1</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.2</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.3</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.4</code></title>
+
+</item>
+<item>
+<title><code>TestReferenceEnum.5</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.const_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.const_return.page
new file mode 100644
index 00000000..499a0475
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.const_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.const_return"
+ 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="Regress.TestSimpleBoxedA" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_const_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA.const_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns(Regress.TestSimpleBoxedA)
+def const_return():
+ # Python wrapper for regress_test_simple_boxed_a_const_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.copy.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.copy.page
new file mode 100644
index 00000000..5e3fc24d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.copy.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_copy</api:name>
+ <api:arg>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA.copy</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestSimpleBoxedA)
+@returns(Regress.TestSimpleBoxedA)
+def copy(self):
+ # Python wrapper for regress_test_simple_boxed_a_copy()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.equals.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.equals.page
new file mode 100644
index 00000000..a9ae5b2f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.equals.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA.equals"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_a_equals</api:name>
+ <api:arg>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestSimpleBoxedA</api:type>
+ <api:name>other_a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA.equals</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestSimpleBoxedA, Regress.TestSimpleBoxedA)
+@returns(bool)
+def equals(self, other_a):
+ # Python wrapper for regress_test_simple_boxed_a_equals()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>other_a</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.page
new file mode 100644
index 00000000..9117ddb9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedA.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedA"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleBoxedA</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.copy.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.copy.page
new file mode 100644
index 00000000..999c8500
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.copy.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedB.copy"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSimpleBoxedB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>Regress.TestSimpleBoxedB</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_boxed_b_copy</api:name>
+ <api:arg>
+ <api:type>Regress.TestSimpleBoxedB</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSimpleBoxedB.copy</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestSimpleBoxedB)
+@returns(Regress.TestSimpleBoxedB)
+def copy(self):
+ # Python wrapper for regress_test_simple_boxed_b_copy()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.page
new file mode 100644
index 00000000..7ecc623e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleBoxedB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleBoxedB"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleBoxedB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleCallback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleCallback.page
new file mode 100644
index 00000000..f8157820
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSimpleCallback.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSimpleCallback"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestSimpleCallback</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.clone.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.clone.page
new file mode 100644
index 00000000..cb2ea92f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.clone.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA.clone"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructA" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_a_clone</api:name>
+ <api:arg>
+ <api:type>Regress.TestStructA</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestStructA</api:type>
+ <api:name>a_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestStructA.clone</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestStructA, Regress.TestStructA)
+@returns(none)
+def clone(self, a_out):
+ # Python wrapper for regress_test_struct_a_clone()
+</code></synopsis>
+
+
+ <p>Make a copy of a RegressTestStructA</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>the structure</p>
+</item>
+<item>
+<title><code>a_out</code></title>
+<p>the cloned structure</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.page
new file mode 100644
index 00000000..a6a98173
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructA</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.parse.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.parse.page
new file mode 100644
index 00000000..bfd3189d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructA.parse.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructA.parse"
+ 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="Regress.TestStructA" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_a_parse</api:name>
+ <api:arg>
+ <api:type>Regress.TestStructA</api:type>
+ <api:name>a_out</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>string</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestStructA.parse</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestStructA, unicode)
+@returns(none)
+def parse(a_out, string):
+ # Python wrapper for regress_test_struct_a_parse()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>a_out</code></title>
+<p>the structure that is to be filled</p>
+</item>
+<item>
+<title><code>string</code></title>
+<p>ignored</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.clone.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.clone.page
new file mode 100644
index 00000000..ea78efdb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.clone.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructB.clone"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructB" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_b_clone</api:name>
+ <api:arg>
+ <api:type>Regress.TestStructB</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestStructB</api:type>
+ <api:name>b_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestStructB.clone</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestStructB, Regress.TestStructB)
+@returns(none)
+def clone(self, b_out):
+ # Python wrapper for regress_test_struct_b_clone()
+</code></synopsis>
+
+
+ <p>Make a copy of a RegressTestStructB</p>
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+<p>the structure</p>
+</item>
+<item>
+<title><code>b_out</code></title>
+<p>the cloned structure</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.page
new file mode 100644
index 00000000..21d86261
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructB.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructB"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructB</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructC.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructC.page
new file mode 100644
index 00000000..6bd58122
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructC.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructC"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructC</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructD.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructD.page
new file mode 100644
index 00000000..aa9f131c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructD.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructD"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructD</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE.page
new file mode 100644
index 00000000..b931c367
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructE"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructE</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE__some_union__union.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE__some_union__union.page
new file mode 100644
index 00000000..3b81e621
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructE__some_union__union.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructE__some_union__union"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructE__some_union__union</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructF.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructF.page
new file mode 100644
index 00000000..cfb434b4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructF.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructF"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructF</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.frob.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.frob.page
new file mode 100644
index 00000000..8f9e2888
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.frob.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructFixedArray.frob"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestStructFixedArray" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_struct_fixed_array_frob</api:name>
+ <api:arg>
+ <api:type>Regress.TestStructFixedArray</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestStructFixedArray.frob</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestStructFixedArray)
+@returns(none)
+def frob(self):
+ # Python wrapper for regress_test_struct_fixed_array_frob()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.page
new file mode 100644
index 00000000..db6e7893
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestStructFixedArray.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestStructFixedArray"
+ type="guide"
+ style="record"
+ 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="record" type="guide"/>
+
+ </info>
+ <title>Regress.TestStructFixedArray</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.instance_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.instance_method.page
new file mode 100644
index 00000000..9806d282
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.instance_method.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.instance_method"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_instance_method</api:name>
+ <api:arg>
+ <api:type>Regress.TestSubObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSubObj.instance_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestSubObj)
+@returns(int)
+def instance_method(self):
+ # Python wrapper for regress_test_sub_obj_instance_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.page
new file mode 100644
index 00000000..b1dc19b1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.page
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestSubObj</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_sub_obj = Regress.TestSubObj() </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestObj</code>
+ <item>
+ <code>Regress.TestSubObj</code>
+ </item>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.unset_bare.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.unset_bare.page
new file mode 100644
index 00000000..2b548390
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestSubObj.unset_bare.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.TestSubObj.unset_bare"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestSubObj" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_sub_obj_unset_bare</api:name>
+ <api:arg>
+ <api:type>Regress.TestSubObj</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestSubObj.unset_bare</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestSubObj)
+@returns(none)
+def unset_bare(self):
+ # Python wrapper for regress_test_sub_obj_unset_bare()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestTypeGUInt64.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestTypeGUInt64.page
new file mode 100644
index 00000000..e0a7bc09
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestTypeGUInt64.page
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page id="Regress.TestTypeGUInt64"
+ type="topic"
+ style="default"
+ 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="default" type="guide"/>
+
+ </info>
+ <title>Regress.TestTypeGUInt64</title>
+
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x-testbool.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x-testbool.page
new file mode 100644
index 00000000..00c168bc
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x-testbool.page
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x-testbool"
+ type="topic"
+ style="property"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="property" type="guide"/>
+ <title type="link" role="topic">testbool</title>
+
+ </info>
+ <title>Regress.TestWi8021x:testbool</title>
+
+<synopsis><code mime="text/x-python">
+"testbool" bool : Read / Write
+</code></synopsis>
+
+
+
+
+
+
+
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.get_testbool.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.get_testbool.page
new file mode 100644
index 00000000..cd83b9da
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.get_testbool.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.get_testbool"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_get_testbool</api:name>
+ <api:arg>
+ <api:type>Regress.TestWi8021x</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestWi8021x.get_testbool</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestWi8021x)
+@returns(bool)
+def get_testbool(self):
+ # Python wrapper for regress_test_wi_802_1x_get_testbool()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.page
new file mode 100644
index 00000000..aef03874
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.page
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x"
+ type="guide"
+ style="class"
+ 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="class" type="guide"/>
+
+ </info>
+ <title>Regress.TestWi8021x</title>
+
+ <synopsis><code>
+from gi.repository import Regress
+
+test_wi8021x = Regress.TestWi8021x(<link xref='Regress.TestWi8021x-testbool'>testbool</link>=value) </code></synopsis>
+
+
+
+
+
+
+
+ <synopsis>
+ <title>Hierarchy</title>
+ <tree>
+ <item>
+ <code>GObject.Object</code>
+ <item>
+ <code>Regress.TestWi8021x</code>
+ </item>
+ </item>
+ </tree>
+ </synopsis>
+
+
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="method" style="linklist">
+ <title>Methods</title>
+ </links>
+ <links type="topic" ui:expanded="true"
+ api:type="function" api:mime="text/python"
+ groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="property" style="linklist">
+ <title>Properties</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="signal" style="linklist">
+ <title>Signals</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
+ <title>Virtual functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.set_testbool.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.set_testbool.page
new file mode 100644
index 00000000..59dbbd94
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.set_testbool.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.set_testbool"
+ type="topic"
+ style="method"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+ <link xref="Regress.TestWi8021x" group="method" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>none</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_set_testbool</api:name>
+ <api:arg>
+ <api:type>Regress.TestWi8021x</api:type>
+ <api:name>self</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>bool</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestWi8021x.set_testbool</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestWi8021x, bool)
+@returns(none)
+def set_testbool(self, v):
+ # Python wrapper for regress_test_wi_802_1x_set_testbool()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>self</code></title>
+
+</item>
+<item>
+<title><code>v</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.static_method.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.static_method.page
new file mode 100644
index 00000000..d2d83e36
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestWi8021x.static_method.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.TestWi8021x.static_method"
+ 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="Regress.TestWi8021x" group="function" type="guide"/>
+ <api:function>
+ <api:returns>
+ <api:type>int</api:type>
+ </api:returns>
+ <api:name>regress_test_wi_802_1x_static_method</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Regress.TestWi8021x.static_method</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def static_method(x):
+ # Python wrapper for regress_test_wi_802_1x_static_method()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.aliased_caller_alloc.page b/tests/scanner/Regress-1.0-Python-expected/Regress.aliased_caller_alloc.page
new file mode 100644
index 00000000..e210a976
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.aliased_caller_alloc.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.aliased_caller_alloc"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_aliased_caller_alloc</api:name>
+ <api:arg>
+ <api:type>Regress.AliasedTestBoxed</api:type>
+ <api:name>boxed</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.aliased_caller_alloc</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AliasedTestBoxed)
+@returns(none)
+def aliased_caller_alloc(boxed):
+ # Python wrapper for regress_aliased_caller_alloc()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>boxed</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_attribute_func.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_attribute_func.page
new file mode 100644
index 00000000..edee18bf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_attribute_func.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_attribute_func"
+ 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_annotation_attribute_func</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationObject</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_attribute_func</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationObject, unicode)
+@returns(int)
+def annotation_attribute_func(object, data):
+ # Python wrapper for regress_annotation_attribute_func()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+<p>A <link xref="Regress.AnnotationObject"/>.</p>
+</item>
+<item>
+<title><code>data</code></title>
+<p>Some data.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_custom_destroy.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_custom_destroy.page
new file mode 100644
index 00000000..860107f1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_custom_destroy.page
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_custom_destroy"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_custom_destroy</api:name>
+ <api:arg>
+ <api:type>Regress.AnnotationCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.AnnotationNotifyFunc</api:type>
+ <api:name>destroy</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_custom_destroy</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.AnnotationCallback, Regress.AnnotationNotifyFunc, gpointer)
+@returns(none)
+def annotation_custom_destroy(callback, destroy, data):
+ # Python wrapper for regress_annotation_custom_destroy()
+</code></synopsis>
+
+
+ <p>Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+<p>Destroy notification</p>
+</item>
+<item>
+<title><code>destroy</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_get_source_file.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_get_source_file.page
new file mode 100644
index 00000000..51a2ce47
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_get_source_file.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_get_source_file"
+ 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>filename</api:type>
+ </api:returns>
+ <api:name>regress_annotation_get_source_file</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_get_source_file</title>
+
+<synopsis><code mime="text/x-python">
+@returns(filename)
+def annotation_get_source_file():
+ # Python wrapper for regress_annotation_get_source_file()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_init.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_init.page
new file mode 100644
index 00000000..16c7ebd8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_init.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_init"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_init</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>argc</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>argv</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_init</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [unicode])
+@returns(none)
+def annotation_init(argc, argv):
+ # Python wrapper for regress_annotation_init()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>argc</code></title>
+<p>The number of args.</p>
+</item>
+<item>
+<title><code>argv</code></title>
+<p>The arguments.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_invalid_regress_annotation.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_invalid_regress_annotation.page
new file mode 100644
index 00000000..58701043
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_invalid_regress_annotation.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_invalid_regress_annotation"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_invalid_regress_annotation</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_invalid_regress_annotation</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(none)
+def annotation_invalid_regress_annotation(foo):
+ # Python wrapper for regress_annotation_invalid_regress_annotation()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>foo</code></title>
+<p>some text (e.g. example) or else</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_ptr_array.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_ptr_array.page
new file mode 100644
index 00000000..62cfbf7b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_ptr_array.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_ptr_array"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_ptr_array</api:name>
+ <api:arg>
+ <api:type>[GObject.Value]</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_ptr_array</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([GObject.Value])
+@returns(none)
+def annotation_ptr_array(array):
+ # Python wrapper for regress_annotation_ptr_array()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+<p>the array</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_array.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_array.page
new file mode 100644
index 00000000..fa1908d1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_array.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_return_array"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_return_array</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_return_array</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns([unicode])
+def annotation_return_array(length):
+ # Python wrapper for regress_annotation_return_array()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>length</code></title>
+<p>Number of return values</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_filename.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_filename.page
new file mode 100644
index 00000000..4cbc4dbe
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_return_filename.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_return_filename"
+ 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>filename</api:type>
+ </api:returns>
+ <api:name>regress_annotation_return_filename</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_return_filename</title>
+
+<synopsis><code mime="text/x-python">
+@returns(filename)
+def annotation_return_filename():
+ # Python wrapper for regress_annotation_return_filename()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_set_source_file.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_set_source_file.page
new file mode 100644
index 00000000..6eb6e853
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_set_source_file.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_set_source_file"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_set_source_file</api:name>
+ <api:arg>
+ <api:type>filename</api:type>
+ <api:name>fname</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_set_source_file</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(filename)
+@returns(none)
+def annotation_set_source_file(fname):
+ # Python wrapper for regress_annotation_set_source_file()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>fname</code></title>
+<p>Source file</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_space_after_comment_bug631690.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_space_after_comment_bug631690.page
new file mode 100644
index 00000000..00154848
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_space_after_comment_bug631690.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_space_after_comment_bug631690"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_space_after_comment_bug631690</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_space_after_comment_bug631690</title>
+
+<synopsis><code mime="text/x-python">
+@returns(none)
+def annotation_space_after_comment_bug631690():
+ # Python wrapper for regress_annotation_space_after_comment_bug631690()
+</code></synopsis>
+
+
+ <p>Explicitly test having a space after the ** here.</p>
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_array_length.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_array_length.page
new file mode 100644
index 00000000..c7d24096
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_array_length.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_array_length"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_array_length</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_properties</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>properties</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_string_array_length</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [unicode])
+@returns(none)
+def annotation_string_array_length(n_properties, properties):
+ # Python wrapper for regress_annotation_string_array_length()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_properties</code></title>
+
+</item>
+<item>
+<title><code>properties</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated.page
new file mode 100644
index 00000000..765658c0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_zero_terminated"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_zero_terminated</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_string_zero_terminated</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def annotation_string_zero_terminated():
+ # Python wrapper for regress_annotation_string_zero_terminated()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated_out.page
new file mode 100644
index 00000000..1a9e2a42
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_string_zero_terminated_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_string_zero_terminated_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_string_zero_terminated_out</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_string_zero_terminated_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def annotation_string_zero_terminated_out(out):
+ # Python wrapper for regress_annotation_string_zero_terminated_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_test_parsing_bug630862.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_test_parsing_bug630862.page
new file mode 100644
index 00000000..868c2d84
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_test_parsing_bug630862.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_test_parsing_bug630862"
+ 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>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_test_parsing_bug630862</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_test_parsing_bug630862</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GObject.Object)
+def annotation_test_parsing_bug630862():
+ # Python wrapper for regress_annotation_test_parsing_bug630862()
+</code></synopsis>
+
+
+ <p>See https://bugzilla.gnome.org/show_bug.cgi?id=630862</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_transfer_floating.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_transfer_floating.page
new file mode 100644
index 00000000..223d1a2b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_transfer_floating.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_transfer_floating"
+ 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>GObject.Object</api:type>
+ </api:returns>
+ <api:name>regress_annotation_transfer_floating</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_transfer_floating</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GObject.Object)
+def annotation_transfer_floating():
+ # Python wrapper for regress_annotation_transfer_floating()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_versioned.page b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_versioned.page
new file mode 100644
index 00000000..51d53cd8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.annotation_versioned.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.annotation_versioned"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_annotation_versioned</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.annotation_versioned</title>
+
+<synopsis><code mime="text/x-python">
+@returns(none)
+def annotation_versioned():
+ # Python wrapper for regress_annotation_versioned()
+</code></synopsis>
+
+
+
+
+
+ <p>Since 0.6</p>
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.atest_error_quark.page b/tests/scanner/Regress-1.0-Python-expected/Regress.atest_error_quark.page
new file mode 100644
index 00000000..9adb4a8b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.atest_error_quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.atest_error_quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_atest_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.atest_error_quark</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Quark)
+def atest_error_quark():
+ # Python wrapper for regress_atest_error_quark()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_async_ready_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_async_ready_callback.page
new file mode 100644
index 00000000..b2c0a69a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_async_ready_callback.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_async_ready_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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_async_ready_callback</api:name>
+ <api:arg>
+ <api:type>Gio.Cancellable</api:type>
+ <api:name>cancellable</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Gio.AsyncReadyCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_async_ready_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Gio.Cancellable, Gio.AsyncReadyCallback, gpointer)
+@returns(none)
+def foo_async_ready_callback(cancellable, callback, user_data):
+ # Python wrapper for regress_foo_async_ready_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>cancellable</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_destroy_notify_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_destroy_notify_callback.page
new file mode 100644
index 00000000..873beb20
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_destroy_notify_callback.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_destroy_notify_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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_destroy_notify_callback</api:name>
+ <api:arg>
+ <api:type>Regress.FooCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GLib.DestroyNotify</api:type>
+ <api:name>destroy</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_destroy_notify_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooCallback, gpointer, GLib.DestroyNotify)
+@returns(none)
+def foo_destroy_notify_callback(callback, data, destroy):
+ # Python wrapper for regress_foo_destroy_notify_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>data</code></title>
+
+</item>
+<item>
+<title><code>destroy</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_init.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_init.page
new file mode 100644
index 00000000..6b62ac46
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_init.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_init"
+ 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_foo_init</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.foo_init</title>
+
+<synopsis><code mime="text/x-python">
+@returns(int)
+def foo_init():
+ # Python wrapper for regress_foo_init()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_method_external_references.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_method_external_references.page
new file mode 100644
index 00000000..4be81792
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_method_external_references.page
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_method_external_references"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_method_external_references</api:name>
+ <api:arg>
+ <api:type>Utility.Object</api:type>
+ <api:name>object</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Utility.EnumType</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Utility.FlagType</api:type>
+ <api:name>f</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Utility.Struct</api:type>
+ <api:name>s</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_method_external_references</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Utility.Object, Utility.EnumType, Utility.FlagType, Utility.Struct)
+@returns(none)
+def foo_method_external_references(object, e, f, s):
+ # Python wrapper for regress_foo_method_external_references()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>object</code></title>
+
+</item>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>f</code></title>
+
+</item>
+<item>
+<title><code>s</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_not_a_constructor_new.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_not_a_constructor_new.page
new file mode 100644
index 00000000..0f9ba11a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_not_a_constructor_new.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_not_a_constructor_new"
+ 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>Regress.FooObject</api:type>
+ </api:returns>
+ <api:name>regress_foo_not_a_constructor_new</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.foo_not_a_constructor_new</title>
+
+<synopsis><code mime="text/x-python">
+@returns(Regress.FooObject)
+def foo_not_a_constructor_new():
+ # Python wrapper for regress_foo_not_a_constructor_new()
+</code></synopsis>
+
+
+ <p>This should be scanned as a top-level function, and shouldn't cause
+a "Can't find matching type for constructor" warning.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_array.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_array.page
new file mode 100644
index 00000000..d8cdbf50
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_array.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_array"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_array</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_array</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def foo_test_array():
+ # Python wrapper for regress_foo_test_array()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_param.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_param.page
new file mode 100644
index 00000000..fa7bc2e8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_param.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_char_param"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_char_param</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_const_char_param</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(none)
+def foo_test_const_char_param(param):
+ # Python wrapper for regress_foo_test_const_char_param()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_retval.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_retval.page
new file mode 100644
index 00000000..34ae3f9c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_char_retval.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_char_retval"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_char_retval</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_const_char_retval</title>
+
+<synopsis><code mime="text/x-python">
+@returns(unicode)
+def foo_test_const_char_retval():
+ # Python wrapper for regress_foo_test_const_char_retval()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_param.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_param.page
new file mode 100644
index 00000000..f32ff39e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_param.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_struct_param"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_struct_param</api:name>
+ <api:arg>
+ <api:type>Regress.FooStruct</api:type>
+ <api:name>param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_const_struct_param</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.FooStruct)
+@returns(none)
+def foo_test_const_struct_param(param):
+ # Python wrapper for regress_foo_test_const_struct_param()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_retval.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_retval.page
new file mode 100644
index 00000000..24337f06
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_const_struct_retval.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_const_struct_retval"
+ 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>Regress.FooStruct</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_const_struct_retval</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_const_struct_retval</title>
+
+<synopsis><code mime="text/x-python">
+@returns(Regress.FooStruct)
+def foo_test_const_struct_retval():
+ # Python wrapper for regress_foo_test_const_struct_retval()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array.page
new file mode 100644
index 00000000..8e242c5a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_string_array"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_string_array</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_string_array</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def foo_test_string_array(array):
+ # Python wrapper for regress_foo_test_string_array()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array_with_g.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array_with_g.page
new file mode 100644
index 00000000..92752bf4
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_string_array_with_g.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_string_array_with_g"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_string_array_with_g</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>array</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_string_array_with_g</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def foo_test_string_array_with_g(array):
+ # Python wrapper for regress_foo_test_string_array_with_g()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>array</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_qualifier.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_qualifier.page
new file mode 100644
index 00000000..2006eaef
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_qualifier.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_unsigned_qualifier"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_unsigned_qualifier</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>unsigned_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_unsigned_qualifier</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(none)
+def foo_test_unsigned_qualifier(unsigned_param):
+ # Python wrapper for regress_foo_test_unsigned_qualifier()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>unsigned_param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_type.page b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_type.page
new file mode 100644
index 00000000..c32efe88
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.foo_test_unsigned_type.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.foo_test_unsigned_type"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_foo_test_unsigned_type</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>unsigned_param</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.foo_test_unsigned_type</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(none)
+def foo_test_unsigned_type(unsigned_param):
+ # Python wrapper for regress_foo_test_unsigned_type()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>unsigned_param</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.func_obj_null_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.func_obj_null_in.page
new file mode 100644
index 00000000..1e737c0f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.func_obj_null_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.func_obj_null_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_func_obj_null_in</api:name>
+ <api:arg>
+ <api:type>Regress.TestObj</api:type>
+ <api:name>obj</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.func_obj_null_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestObj)
+@returns(none)
+def func_obj_null_in(obj):
+ # Python wrapper for regress_func_obj_null_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>obj</code></title>
+<p>A <link xref="Regress.TestObj"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.global_get_flags_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.global_get_flags_out.page
new file mode 100644
index 00000000..825fe351
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.global_get_flags_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.global_get_flags_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_global_get_flags_out</api:name>
+ <api:arg>
+ <api:type>Regress.TestFlags</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.global_get_flags_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestFlags)
+@returns(none)
+def global_get_flags_out(v):
+ # Python wrapper for regress_global_get_flags_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>v</code></title>
+<p>A flags value</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.has_parameter_named_attrs.page b/tests/scanner/Regress-1.0-Python-expected/Regress.has_parameter_named_attrs.page
new file mode 100644
index 00000000..51ae15f7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.has_parameter_named_attrs.page
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<page id="Regress.has_parameter_named_attrs"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_has_parameter_named_attrs</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[guint32]</api:type>
+ <api:name>attributes</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.has_parameter_named_attrs</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [guint32])
+@returns(none)
+def has_parameter_named_attrs(foo, attributes):
+ # Python wrapper for regress_has_parameter_named_attrs()
+</code></synopsis>
+
+
+ <p>This test case mirrors GnomeKeyringPasswordSchema from
+libgnome-keyring.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>foo</code></title>
+<p>some int</p>
+</item>
+<item>
+<title><code>attributes</code></title>
+<p>list of attributes</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.introspectable_via_alias.page b/tests/scanner/Regress-1.0-Python-expected/Regress.introspectable_via_alias.page
new file mode 100644
index 00000000..9fc5a47c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.introspectable_via_alias.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.introspectable_via_alias"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_introspectable_via_alias</api:name>
+ <api:arg>
+ <api:type>Regress.PtrArrayAlias</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.introspectable_via_alias</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.PtrArrayAlias)
+@returns(none)
+def introspectable_via_alias(data):
+ # Python wrapper for regress_introspectable_via_alias()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.set_abort_on_error.page b/tests/scanner/Regress-1.0-Python-expected/Regress.set_abort_on_error.page
new file mode 100644
index 00000000..ad81bff0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.set_abort_on_error.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.set_abort_on_error"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_set_abort_on_error</api:name>
+ <api:arg>
+ <api:type>bool</api:type>
+ <api:name>abort_on_error</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.set_abort_on_error</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(bool)
+@returns(none)
+def set_abort_on_error(abort_on_error):
+ # Python wrapper for regress_set_abort_on_error()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>abort_on_error</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_callback.page
new file mode 100644
index 00000000..536a02cd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_callback.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_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_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackArray</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackArray)
+@returns(int)
+def test_array_callback(callback):
+ # Python wrapper for regress_test_array_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>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_out_objects.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_out_objects.page
new file mode 100644
index 00000000..26ddf0ca
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_out_objects.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_out_objects"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_out_objects</api:name>
+ <api:arg>
+ <api:type>[Regress.TestObj]</api:type>
+ <api:name>objs</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_fixed_out_objects</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([Regress.TestObj])
+@returns(none)
+def test_array_fixed_out_objects(objs):
+ # Python wrapper for regress_test_array_fixed_out_objects()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>objs</code></title>
+<p>An array of <link xref="Regress.TestObj"/></p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_in.page
new file mode 100644
index 00000000..eb816b81
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_in.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_in"
+ 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_fixed_size_int_in</api:name>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_fixed_size_int_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([int])
+@returns(int)
+def test_array_fixed_size_int_in(ints):
+ # Python wrapper for regress_test_array_fixed_size_int_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>a list of 5 integers</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_out.page
new file mode 100644
index 00000000..39db1de3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_array_fixed_size_int_out</api:name>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_fixed_size_int_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([int])
+@returns(none)
+def test_array_fixed_size_int_out(ints):
+ # Python wrapper for regress_test_array_fixed_size_int_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>ints</code></title>
+<p>a list of 5 integers ranging from 0 to 4</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_return.page
new file mode 100644
index 00000000..30cfee8d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_fixed_size_int_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_fixed_size_int_return"
+ 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_fixed_size_int_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_fixed_size_int_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([int])
+def test_array_fixed_size_int_return():
+ # Python wrapper for regress_test_array_fixed_size_int_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint16_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint16_in.page
new file mode 100644
index 00000000..62c1c4c5
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint16_in.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint16_in"
+ 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_gint16_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[gint16]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_gint16_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [gint16])
+@returns(int)
+def test_array_gint16_in(n_ints, ints):
+ # Python wrapper for regress_test_array_gint16_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint32_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint32_in.page
new file mode 100644
index 00000000..948b271b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint32_in.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint32_in"
+ 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>gint32</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gint32_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[gint32]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_gint32_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [gint32])
+@returns(gint32)
+def test_array_gint32_in(n_ints, ints):
+ # Python wrapper for regress_test_array_gint32_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint64_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint64_in.page
new file mode 100644
index 00000000..6756e0d0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint64_in.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint64_in"
+ 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_gint64_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_gint64_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [int])
+@returns(int)
+def test_array_gint64_in(n_ints, ints):
+ # Python wrapper for regress_test_array_gint64_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint8_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint8_in.page
new file mode 100644
index 00000000..a7d70018
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gint8_in.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gint8_in"
+ 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_gint8_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[gint8]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_gint8_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [gint8])
+@returns(int)
+def test_array_gint8_in(n_ints, ints):
+ # Python wrapper for regress_test_array_gint8_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gtype_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gtype_in.page
new file mode 100644
index 00000000..e56b5223
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_gtype_in.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_gtype_in"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_test_array_gtype_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_types</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[GType]</api:type>
+ <api:name>types</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_gtype_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [GType])
+@returns(unicode)
+def test_array_gtype_in(n_types, types):
+ # Python wrapper for regress_test_array_gtype_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_types</code></title>
+
+</item>
+<item>
+<title><code>types</code></title>
+<p>List of types</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_full_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_full_out.page
new file mode 100644
index 00000000..42cbb0f8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_full_out.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_full_out"
+ 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_int_full_out</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_int_full_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns([int])
+def test_array_int_full_out(len):
+ # Python wrapper for regress_test_array_int_full_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>len</code></title>
+<p>length of the returned array.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_in.page
new file mode 100644
index 00000000..8e706e8f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_in.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_in"
+ 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_int_in</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_int_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [int])
+@returns(int)
+def test_array_int_in(n_ints, ints):
+ # Python wrapper for regress_test_array_int_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+
+</item>
+<item>
+<title><code>ints</code></title>
+<p>List of ints</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_inout.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_inout.page
new file mode 100644
index 00000000..b3f4448b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_inout.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_inout"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_inout</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_int_inout</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [int])
+@returns(none)
+def test_array_int_inout(n_ints, ints):
+ # Python wrapper for regress_test_array_int_inout()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+<p>the length of <code>ints</code></p>
+</item>
+<item>
+<title><code>ints</code></title>
+<p>a list of integers whose items will be increased by 1, except the first that will be dropped</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_none_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_none_out.page
new file mode 100644
index 00000000..21e5bac0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_none_out.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_none_out"
+ 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_int_none_out</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_int_none_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns([int])
+def test_array_int_none_out(len):
+ # Python wrapper for regress_test_array_int_none_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>len</code></title>
+<p>length of the returned array.</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_in.page
new file mode 100644
index 00000000..9b3fc8b0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_in.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_null_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_null_in</api:name>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_int_null_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([int], int)
+@returns(none)
+def test_array_int_null_in(arr, len):
+ # Python wrapper for regress_test_array_int_null_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+<item>
+<title><code>len</code></title>
+<p>length</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_out.page
new file mode 100644
index 00000000..5b83b30a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_null_out.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_null_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_null_out</api:name>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>len</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_int_null_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([int], int)
+@returns(none)
+def test_array_int_null_out(arr, len):
+ # Python wrapper for regress_test_array_int_null_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+<item>
+<title><code>len</code></title>
+<p>length</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_out.page
new file mode 100644
index 00000000..b8f44411
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_int_out.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_int_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_array_int_out</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>n_ints</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>[int]</api:type>
+ <api:name>ints</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_array_int_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, [int])
+@returns(none)
+def test_array_int_out(n_ints, ints):
+ # Python wrapper for regress_test_array_int_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>n_ints</code></title>
+<p>the length of <code>ints</code></p>
+</item>
+<item>
+<title><code>ints</code></title>
+<p>a list of 5 integers, from 0 to 4 in consecutive order</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_async_ready_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_async_ready_callback.page
new file mode 100644
index 00000000..1dcf46cd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_async_ready_callback.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_async_ready_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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_async_ready_callback</api:name>
+ <api:arg>
+ <api:type>Gio.AsyncReadyCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_async_ready_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Gio.AsyncReadyCallback)
+@returns(none)
+def test_async_ready_callback(callback):
+ # Python wrapper for regress_test_async_ready_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean.page
new file mode 100644
index 00000000..22d2ebfa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean"
+ 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>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean</api:name>
+ <api:arg>
+ <api:type>bool</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_boolean</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(bool)
+@returns(bool)
+def test_boolean(in):
+ # Python wrapper for regress_test_boolean()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_false.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_false.page
new file mode 100644
index 00000000..877f5820
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_false.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean_false"
+ 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>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean_false</api:name>
+ <api:arg>
+ <api:type>bool</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_boolean_false</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(bool)
+@returns(bool)
+def test_boolean_false(in):
+ # Python wrapper for regress_test_boolean_false()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_true.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_true.page
new file mode 100644
index 00000000..3a1fc20a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_boolean_true.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_boolean_true"
+ 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>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_boolean_true</api:name>
+ <api:arg>
+ <api:type>bool</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_boolean_true</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(bool)
+@returns(bool)
+def test_boolean_true(in):
+ # Python wrapper for regress_test_boolean_true()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_full_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_full_return.page
new file mode 100644
index 00000000..4bf83f02
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_full_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_context_full_return"
+ 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>cairo.Context</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_context_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_cairo_context_full_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns(cairo.Context)
+def test_cairo_context_full_return():
+ # Python wrapper for regress_test_cairo_context_full_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_none_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_none_in.page
new file mode 100644
index 00000000..a30b8d27
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_context_none_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_context_none_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_context_none_in</api:name>
+ <api:arg>
+ <api:type>cairo.Context</api:type>
+ <api:name>context</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_cairo_context_none_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(cairo.Context)
+@returns(none)
+def test_cairo_context_none_in(context):
+ # Python wrapper for regress_test_cairo_context_none_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>context</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_out.page
new file mode 100644
index 00000000..cfda6fdf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_full_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_full_out</api:name>
+ <api:arg>
+ <api:type>cairo.Surface</api:type>
+ <api:name>surface</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_cairo_surface_full_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(cairo.Surface)
+@returns(none)
+def test_cairo_surface_full_out(surface):
+ # Python wrapper for regress_test_cairo_surface_full_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>surface</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_return.page
new file mode 100644
index 00000000..5de20a93
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_full_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_full_return"
+ 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>cairo.Surface</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_cairo_surface_full_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns(cairo.Surface)
+def test_cairo_surface_full_return():
+ # Python wrapper for regress_test_cairo_surface_full_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_in.page
new file mode 100644
index 00000000..af1b9489
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_none_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_none_in</api:name>
+ <api:arg>
+ <api:type>cairo.Surface</api:type>
+ <api:name>surface</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_cairo_surface_none_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(cairo.Surface)
+@returns(none)
+def test_cairo_surface_none_in(surface):
+ # Python wrapper for regress_test_cairo_surface_none_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>surface</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_return.page
new file mode 100644
index 00000000..98fa6eba
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_cairo_surface_none_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_cairo_surface_none_return"
+ 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>cairo.Surface</api:type>
+ </api:returns>
+ <api:name>regress_test_cairo_surface_none_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_cairo_surface_none_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns(cairo.Surface)
+def test_cairo_surface_none_return():
+ # Python wrapper for regress_test_cairo_surface_none_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback.page
new file mode 100644
index 00000000..3481fc13
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_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_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallback)
+@returns(int)
+def test_callback(callback):
+ # Python wrapper for regress_test_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>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_async.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_async.page
new file mode 100644
index 00000000..21dc7ee7
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_async.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_async"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_callback_async</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_callback_async</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackUserData, gpointer)
+@returns(none)
+def test_callback_async(callback, user_data):
+ # Python wrapper for regress_test_callback_async()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify.page
new file mode 100644
index 00000000..86df7941
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify.page
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_destroy_notify"
+ 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_callback_destroy_notify</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GLib.DestroyNotify</api:type>
+ <api:name>notify</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_callback_destroy_notify</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackUserData, gpointer, GLib.DestroyNotify)
+@returns(int)
+def test_callback_destroy_notify(callback, user_data, notify):
+ # Python wrapper for regress_test_callback_destroy_notify()
+</code></synopsis>
+
+
+ <p>Notified - callback persists until a DestroyNotify delegate
+is invoked.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>notify</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify_no_user_data.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify_no_user_data.page
new file mode 100644
index 00000000..05883e8c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_destroy_notify_no_user_data.page
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_destroy_notify_no_user_data"
+ 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_callback_destroy_notify_no_user_data</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GLib.DestroyNotify</api:type>
+ <api:name>notify</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_callback_destroy_notify_no_user_data</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackUserData, GLib.DestroyNotify)
+@returns(int)
+def test_callback_destroy_notify_no_user_data(callback, notify):
+ # Python wrapper for regress_test_callback_destroy_notify_no_user_data()
+</code></synopsis>
+
+
+ <p>Adds a scope notified callback with no user data. This can invoke an error
+condition in bindings which needs to be tested.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>notify</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_async.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_async.page
new file mode 100644
index 00000000..d362cb86
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_async.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_thaw_async"
+ 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_callback_thaw_async</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_callback_thaw_async</title>
+
+<synopsis><code mime="text/x-python">
+@returns(int)
+def test_callback_thaw_async():
+ # Python wrapper for regress_test_callback_thaw_async()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_notifications.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_notifications.page
new file mode 100644
index 00000000..485e69b8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_thaw_notifications.page
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_thaw_notifications"
+ 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_callback_thaw_notifications</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_callback_thaw_notifications</title>
+
+<synopsis><code mime="text/x-python">
+@returns(int)
+def test_callback_thaw_notifications():
+ # Python wrapper for regress_test_callback_thaw_notifications()
+</code></synopsis>
+
+
+ <p>Invokes all callbacks installed by #test_callback_destroy_notify(),
+adding up their return values, and removes them, invoking the
+corresponding destroy notfications.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_user_data.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_user_data.page
new file mode 100644
index 00000000..8ec83767
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_callback_user_data.page
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<page id="Regress.test_callback_user_data"
+ 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_callback_user_data</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_callback_user_data</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackUserData, gpointer)
+@returns(int)
+def test_callback_user_data(callback, user_data):
+ # Python wrapper for regress_test_callback_user_data()
+</code></synopsis>
+
+
+ <p>Call - callback parameter persists for the duration of the method
+call and can be released on return.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure.page
new file mode 100644
index 00000000..d11a8a08
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure"
+ 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_closure</api:name>
+ <api:arg>
+ <api:type>GObject.Closure</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_closure</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(GObject.Closure)
+@returns(int)
+def test_closure(closure):
+ # Python wrapper for regress_test_closure()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_one_arg.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_one_arg.page
new file mode 100644
index 00000000..f8d91f13
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_one_arg.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure_one_arg"
+ 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_closure_one_arg</api:name>
+ <api:arg>
+ <api:type>GObject.Closure</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>arg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_closure_one_arg</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(GObject.Closure, int)
+@returns(int)
+def test_closure_one_arg(closure, arg):
+ # Python wrapper for regress_test_closure_one_arg()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+
+</item>
+<item>
+<title><code>arg</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_variant.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_variant.page
new file mode 100644
index 00000000..7d6a1ac3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_closure_variant.page
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<page id="Regress.test_closure_variant"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_closure_variant</api:name>
+ <api:arg>
+ <api:type>GObject.Closure</api:type>
+ <api:name>closure</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GLib.Variant</api:type>
+ <api:name>arg</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_closure_variant</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(GObject.Closure, GLib.Variant)
+@returns(GLib.Variant)
+def test_closure_variant(closure, arg):
+ # Python wrapper for regress_test_closure_variant()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>closure</code></title>
+<p>GClosure which takes one GVariant and returns a GVariant</p>
+</item>
+<item>
+<title><code>arg</code></title>
+<p>a GVariant passed as argument to <code>closure</code></p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_date_in_gvalue.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_date_in_gvalue.page
new file mode 100644
index 00000000..04289860
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_date_in_gvalue.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_date_in_gvalue"
+ 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>GObject.Value</api:type>
+ </api:returns>
+ <api:name>regress_test_date_in_gvalue</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_date_in_gvalue</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GObject.Value)
+def test_date_in_gvalue():
+ # Python wrapper for regress_test_date_in_gvalue()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_def_error_quark.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_def_error_quark.page
new file mode 100644
index 00000000..95f40e3c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_def_error_quark.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_def_error_quark"
+ 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>GLib.Quark</api:type>
+ </api:returns>
+ <api:name>regress_test_def_error_quark</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_def_error_quark</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Quark)
+def test_def_error_quark():
+ # Python wrapper for regress_test_def_error_quark()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_double.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_double.page
new file mode 100644
index 00000000..9a2b7866
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_double.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_double"
+ 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>float</api:type>
+ </api:returns>
+ <api:name>regress_test_double</api:name>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_double</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(float)
+@returns(float)
+def test_double(in):
+ # Python wrapper for regress_test_double()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_filename_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_filename_return.page
new file mode 100644
index 00000000..d267b55a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_filename_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_filename_return"
+ 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>[filename]</api:type>
+ </api:returns>
+ <api:name>regress_test_filename_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_filename_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([filename])
+def test_filename_return():
+ # Python wrapper for regress_test_filename_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_float.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_float.page
new file mode 100644
index 00000000..9d362f8d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_float.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_float"
+ 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>float</api:type>
+ </api:returns>
+ <api:name>regress_test_float</api:name>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_float</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(float)
+@returns(float)
+def test_float(in):
+ # Python wrapper for regress_test_float()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_container_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_container_return.page
new file mode 100644
index 00000000..43990b2c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_garray_container_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_garray_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_garray_container_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_garray_container_return():
+ # Python wrapper for regress_test_garray_container_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_full_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_full_return.page
new file mode 100644
index 00000000..f0bfb6d3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_garray_full_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_garray_full_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_garray_full_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_garray_full_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_garray_full_return():
+ # Python wrapper for regress_test_garray_full_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gerror_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gerror_callback.page
new file mode 100644
index 00000000..5630526c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gerror_callback.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gerror_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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_gerror_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_gerror_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackGError)
+@returns(none)
+def test_gerror_callback(callback):
+ # Python wrapper for regress_test_gerror_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_container_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_container_return.page
new file mode 100644
index 00000000..ec91c452
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_container_return"
+ 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>{unicode: unicode}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_container_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: unicode})
+def test_ghash_container_return():
+ # Python wrapper for regress_test_ghash_container_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_everything_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_everything_return.page
new file mode 100644
index 00000000..5356c011
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_everything_return"
+ 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>{unicode: unicode}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_everything_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: unicode})
+def test_ghash_everything_return():
+ # Python wrapper for regress_test_ghash_everything_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_in.page
new file mode 100644
index 00000000..8273602b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_in.page
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_gvalue_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_gvalue_in</api:name>
+ <api:arg>
+ <api:type>{unicode: GObject.Value}</api:type>
+ <api:name>hash</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_gvalue_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts({unicode: GObject.Value})
+@returns(none)
+def test_ghash_gvalue_in(hash):
+ # Python wrapper for regress_test_ghash_gvalue_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>hash</code></title>
+<p>the hash table returned by
+<link xref="Regress.test_ghash_gvalue_return"/>.</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_return.page
new file mode 100644
index 00000000..6d6a257f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_gvalue_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_gvalue_return"
+ 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>{unicode: GObject.Value}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_gvalue_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_gvalue_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: GObject.Value})
+def test_ghash_gvalue_return():
+ # Python wrapper for regress_test_ghash_gvalue_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return.page
new file mode 100644
index 00000000..6bc643fb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nested_everything_return"
+ 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>{unicode: {unicode: unicode}}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nested_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_nested_everything_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: {unicode: unicode}})
+def test_ghash_nested_everything_return():
+ # Python wrapper for regress_test_ghash_nested_everything_return()
+</code></synopsis>
+
+
+ <p>Specify nested parameterized types directly with the (type ) annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return2.page
new file mode 100644
index 00000000..1cb34424
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nested_everything_return2.page
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nested_everything_return2"
+ 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>{unicode: {unicode: unicode}}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nested_everything_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_nested_everything_return2</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: {unicode: unicode}})
+def test_ghash_nested_everything_return2():
+ # Python wrapper for regress_test_ghash_nested_everything_return2()
+</code></synopsis>
+
+
+ <p>Another way of specifying nested parameterized types: using the
+element-type annotation.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in.page
new file mode 100644
index 00000000..b1d295cf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_in</api:name>
+ <api:arg>
+ <api:type>{unicode: unicode}</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_nothing_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts({unicode: unicode})
+@returns(none)
+def test_ghash_nothing_in(in):
+ # Python wrapper for regress_test_ghash_nothing_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in2.page
new file mode 100644
index 00000000..df58bb6d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_in2.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_in2"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_in2</api:name>
+ <api:arg>
+ <api:type>{unicode: unicode}</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_nothing_in2</title>
+
+<synopsis><code mime="text/x-python">
+@accepts({unicode: unicode})
+@returns(none)
+def test_ghash_nothing_in2(in):
+ # Python wrapper for regress_test_ghash_nothing_in2()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return.page
new file mode 100644
index 00000000..072fed9b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_return"
+ 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>{unicode: unicode}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_nothing_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: unicode})
+def test_ghash_nothing_return():
+ # Python wrapper for regress_test_ghash_nothing_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return2.page
new file mode 100644
index 00000000..161d3f62
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_nothing_return2.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_nothing_return2"
+ 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>{unicode: unicode}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_nothing_return2</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: unicode})
+def test_ghash_nothing_return2():
+ # Python wrapper for regress_test_ghash_nothing_return2()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_in.page
new file mode 100644
index 00000000..ee3ed32e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_in</api:name>
+ <api:arg>
+ <api:type>{unicode: unicode}</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_null_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts({unicode: unicode})
+@returns(none)
+def test_ghash_null_in(in):
+ # Python wrapper for regress_test_ghash_null_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_out.page
new file mode 100644
index 00000000..683efc41
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_out</api:name>
+ <api:arg>
+ <api:type>{unicode: unicode}</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_null_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts({unicode: unicode})
+@returns(none)
+def test_ghash_null_out(out):
+ # Python wrapper for regress_test_ghash_null_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_return.page
new file mode 100644
index 00000000..ea516226
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ghash_null_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ghash_null_return"
+ 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>{unicode: unicode}</api:type>
+ </api:returns>
+ <api:name>regress_test_ghash_null_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_ghash_null_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns({unicode: unicode})
+def test_ghash_null_return():
+ # Python wrapper for regress_test_ghash_null_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_container_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_container_return.page
new file mode 100644
index 00000000..9d098baa
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_container_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_container_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_glist_container_return():
+ # Python wrapper for regress_test_glist_container_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_everything_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_everything_return.page
new file mode 100644
index 00000000..6b2d3704
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_everything_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_everything_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_glist_everything_return():
+ # Python wrapper for regress_test_glist_everything_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in.page
new file mode 100644
index 00000000..4873a198
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_in</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_nothing_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_glist_nothing_in(in):
+ # Python wrapper for regress_test_glist_nothing_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in2.page
new file mode 100644
index 00000000..e28d3a89
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_in2.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_in2"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_in2</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_nothing_in2</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_glist_nothing_in2(in):
+ # Python wrapper for regress_test_glist_nothing_in2()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return.page
new file mode 100644
index 00000000..b4b12c81
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_nothing_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_glist_nothing_return():
+ # Python wrapper for regress_test_glist_nothing_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return2.page
new file mode 100644
index 00000000..aab83e50
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_nothing_return2.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_nothing_return2"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_nothing_return2</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_glist_nothing_return2():
+ # Python wrapper for regress_test_glist_nothing_return2()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_in.page
new file mode 100644
index 00000000..ac3f3d62
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_null_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_null_in</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_null_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_glist_null_in(in):
+ # Python wrapper for regress_test_glist_null_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_out.page
new file mode 100644
index 00000000..335d1b21
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_glist_null_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_glist_null_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_glist_null_out</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>out_list</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_glist_null_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_glist_null_out(out_list):
+ # Python wrapper for regress_test_glist_null_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out_list</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_container_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_container_return.page
new file mode 100644
index 00000000..702c635c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_container_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_container_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_container_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_container_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_gslist_container_return():
+ # Python wrapper for regress_test_gslist_container_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_everything_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_everything_return.page
new file mode 100644
index 00000000..95fd40c8
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_everything_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_everything_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_everything_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_everything_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_gslist_everything_return():
+ # Python wrapper for regress_test_gslist_everything_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in.page
new file mode 100644
index 00000000..534ac13e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_in</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_nothing_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_gslist_nothing_in(in):
+ # Python wrapper for regress_test_gslist_nothing_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in2.page
new file mode 100644
index 00000000..a7e0635b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_in2.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_in2"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_in2</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_nothing_in2</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_gslist_nothing_in2(in):
+ # Python wrapper for regress_test_gslist_nothing_in2()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return.page
new file mode 100644
index 00000000..ff7d7e56
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_return"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_nothing_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_gslist_nothing_return():
+ # Python wrapper for regress_test_gslist_nothing_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return2.page
new file mode 100644
index 00000000..cf0f67ab
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_nothing_return2.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_nothing_return2"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_nothing_return2</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_nothing_return2</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_gslist_nothing_return2():
+ # Python wrapper for regress_test_gslist_nothing_return2()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_in.page
new file mode 100644
index 00000000..b0174663
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_null_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_null_in</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_null_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_gslist_null_in(in):
+ # Python wrapper for regress_test_gslist_null_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_out.page
new file mode 100644
index 00000000..24ef27f1
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gslist_null_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gslist_null_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_gslist_null_out</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>out_list</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_gslist_null_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_gslist_null_out(out_list):
+ # Python wrapper for regress_test_gslist_null_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out_list</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gtype.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gtype.page
new file mode 100644
index 00000000..38ffb442
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gtype.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gtype"
+ 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>GType</api:type>
+ </api:returns>
+ <api:name>regress_test_gtype</api:name>
+ <api:arg>
+ <api:type>GType</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_gtype</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(GType)
+@returns(GType)
+def test_gtype(in):
+ # Python wrapper for regress_test_gtype()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_as.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_as.page
new file mode 100644
index 00000000..f4c4cd80
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_as.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_as"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_as</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gvariant_as</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Variant)
+def test_gvariant_as():
+ # Python wrapper for regress_test_gvariant_as()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_asv.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_asv.page
new file mode 100644
index 00000000..8357191f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_asv.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_asv"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_asv</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gvariant_asv</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Variant)
+def test_gvariant_asv():
+ # Python wrapper for regress_test_gvariant_asv()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_i.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_i.page
new file mode 100644
index 00000000..c0db4608
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_i.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_i"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_i</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gvariant_i</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Variant)
+def test_gvariant_i():
+ # Python wrapper for regress_test_gvariant_i()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_s.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_s.page
new file mode 100644
index 00000000..454fc8a9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_s.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_s"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_s</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gvariant_s</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Variant)
+def test_gvariant_s():
+ # Python wrapper for regress_test_gvariant_s()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_v.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_v.page
new file mode 100644
index 00000000..e8a6c00f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_gvariant_v.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_gvariant_v"
+ 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>GLib.Variant</api:type>
+ </api:returns>
+ <api:name>regress_test_gvariant_v</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_gvariant_v</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GLib.Variant)
+def test_gvariant_v():
+ # Python wrapper for regress_test_gvariant_v()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_hash_table_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_hash_table_callback.page
new file mode 100644
index 00000000..2f8ebcb6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_hash_table_callback.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_hash_table_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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_hash_table_callback</api:name>
+ <api:arg>
+ <api:type>{unicode: int}</api:type>
+ <api:name>data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestCallbackHashtable</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_hash_table_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts({unicode: int}, Regress.TestCallbackHashtable)
+@returns(none)
+def test_hash_table_callback(data, callback):
+ # Python wrapper for regress_test_hash_table_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>data</code></title>
+<p>GHashTable that gets passed to callback</p>
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_int.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int.page
new file mode 100644
index 00000000..d0398835
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int"
+ 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_int</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_int</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def test_int(in):
+ # Python wrapper for regress_test_int()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_int16.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int16.page
new file mode 100644
index 00000000..7e995172
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int16.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int16"
+ 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>gint16</api:type>
+ </api:returns>
+ <api:name>regress_test_int16</api:name>
+ <api:arg>
+ <api:type>gint16</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_int16</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(gint16)
+@returns(gint16)
+def test_int16(in):
+ # Python wrapper for regress_test_int16()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_int32.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int32.page
new file mode 100644
index 00000000..03e5c07c
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int32.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int32"
+ 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>gint32</api:type>
+ </api:returns>
+ <api:name>regress_test_int32</api:name>
+ <api:arg>
+ <api:type>gint32</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_int32</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(gint32)
+@returns(gint32)
+def test_int32(in):
+ # Python wrapper for regress_test_int32()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_int64.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int64.page
new file mode 100644
index 00000000..645792cf
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int64.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int64"
+ 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_int64</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_int64</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def test_int64(in):
+ # Python wrapper for regress_test_int64()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_int8.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int8.page
new file mode 100644
index 00000000..c733d1bd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int8.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int8"
+ 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>gint8</api:type>
+ </api:returns>
+ <api:name>regress_test_int8</api:name>
+ <api:arg>
+ <api:type>gint8</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_int8</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(gint8)
+@returns(gint8)
+def test_int8(in):
+ # Python wrapper for regress_test_int8()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_int_out_utf8.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int_out_utf8.page
new file mode 100644
index 00000000..f43f0bce
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int_out_utf8.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int_out_utf8"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_int_out_utf8</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>length</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_int_out_utf8</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, unicode)
+@returns(none)
+def test_int_out_utf8(length, in):
+ # Python wrapper for regress_test_int_out_utf8()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>length</code></title>
+
+</item>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_int_value_arg.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int_value_arg.page
new file mode 100644
index 00000000..d7210b5e
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_int_value_arg.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_int_value_arg"
+ 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_int_value_arg</api:name>
+ <api:arg>
+ <api:type>GObject.Value</api:type>
+ <api:name>v</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_int_value_arg</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(GObject.Value)
+@returns(int)
+def test_int_value_arg(v):
+ # Python wrapper for regress_test_int_value_arg()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>v</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_long.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_long.page
new file mode 100644
index 00000000..147cae22
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_long.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_long"
+ 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_long</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_long</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def test_long(in):
+ # Python wrapper for regress_test_long()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_callback.page
new file mode 100644
index 00000000..c195b821
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_callback.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multi_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_multi_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_multi_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallback)
+@returns(int)
+def test_multi_callback(callback):
+ # Python wrapper for regress_test_multi_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>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_double_args.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_double_args.page
new file mode 100644
index 00000000..7946d576
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_multi_double_args.page
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multi_double_args"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_multi_double_args</api:name>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>one</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>two</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_multi_double_args</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(float, float, float)
+@returns(none)
+def test_multi_double_args(in, one, two):
+ # Python wrapper for regress_test_multi_double_args()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>one</code></title>
+
+</item>
+<item>
+<title><code>two</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_multiline_doc_comments.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_multiline_doc_comments.page
new file mode 100644
index 00000000..25161388
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_multiline_doc_comments.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_multiline_doc_comments"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_multiline_doc_comments</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_multiline_doc_comments</title>
+
+<synopsis><code mime="text/x-python">
+@returns(none)
+def test_multiline_doc_comments():
+ # Python wrapper for regress_test_multiline_doc_comments()
+</code></synopsis>
+
+
+ <p>This is a function.</p><p>It has multiple lines in the documentation.</p><p>The sky is blue.</p><p>You will give me your credit card number.</p>
+
+
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_nested_parameter.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_nested_parameter.page
new file mode 100644
index 00000000..98c1fd3b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_nested_parameter.page
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<page id="Regress.test_nested_parameter"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_nested_parameter</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>a</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_nested_parameter</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(none)
+def test_nested_parameter(a):
+ # Python wrapper for regress_test_nested_parameter()
+</code></synopsis>
+
+
+ <p>&lt;informaltable&gt;
+ &lt;tgroup cols="3"&gt;
+ &lt;thead&gt;
+ &lt;row&gt;
+ &lt;entry&gt;Syntax&lt;/entry&gt;
+ &lt;entry&gt;Explanation&lt;/entry&gt;
+ &lt;entry&gt;Examples&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;/thead&gt;
+ &lt;tbody&gt;
+ &lt;row&gt;
+ &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
+ &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
+ 0 and 255 or percentages&lt;/entry&gt;
+ &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
+rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;row&gt;
+ &lt;entry&gt;rgba(@r, @g, @b, <code>a</code>)&lt;/entry&gt;
+ &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
+ <code>a</code> is a floating point number between 0 and 1&lt;/entry&gt;
+ &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
+ &lt;/row&gt;
+ &lt;/tbody&gt;
+ &lt;/tgroup&gt;
+&lt;/informaltable&gt;</p><p>What we're testing here is that the scanner ignores the <code>a</code> nested inside XML.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>a</code></title>
+<p>An integer</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_null_gerror_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_null_gerror_callback.page
new file mode 100644
index 00000000..cdb1b928
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_null_gerror_callback.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_null_gerror_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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_null_gerror_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_null_gerror_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackGError)
+@returns(none)
+def test_null_gerror_callback(callback):
+ # Python wrapper for regress_test_null_gerror_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_owned_gerror_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_owned_gerror_callback.page
new file mode 100644
index 00000000..f33b39ed
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_owned_gerror_callback.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_owned_gerror_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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_owned_gerror_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestCallbackOwnedGError</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_owned_gerror_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestCallbackOwnedGError)
+@returns(none)
+def test_owned_gerror_callback(callback):
+ # Python wrapper for regress_test_owned_gerror_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_short.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_short.page
new file mode 100644
index 00000000..e2f45632
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_short.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_short"
+ 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>gshort</api:type>
+ </api:returns>
+ <api:name>regress_test_short</api:name>
+ <api:arg>
+ <api:type>gshort</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_short</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(gshort)
+@returns(gshort)
+def test_short(in):
+ # Python wrapper for regress_test_short()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_simple_callback.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_simple_callback.page
new file mode 100644
index 00000000..a9fa29c0
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_simple_callback.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_simple_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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_simple_callback</api:name>
+ <api:arg>
+ <api:type>Regress.TestSimpleCallback</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_simple_callback</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestSimpleCallback)
+@returns(none)
+def test_simple_callback(callback):
+ # Python wrapper for regress_test_simple_callback()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>callback</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_size.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_size.page
new file mode 100644
index 00000000..7935c215
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_size.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_size"
+ 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>gsize</api:type>
+ </api:returns>
+ <api:name>regress_test_size</api:name>
+ <api:arg>
+ <api:type>gsize</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_size</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(gsize)
+@returns(gsize)
+def test_size(in):
+ # Python wrapper for regress_test_size()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ssize.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ssize.page
new file mode 100644
index 00000000..47fe2cd3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ssize.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ssize"
+ 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>gssize</api:type>
+ </api:returns>
+ <api:name>regress_test_ssize</api:name>
+ <api:arg>
+ <api:type>gssize</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ssize</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(gssize)
+@returns(gssize)
+def test_ssize(in):
+ # Python wrapper for regress_test_ssize()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in.page
new file mode 100644
index 00000000..1121a7da
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_in"
+ 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>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_in</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>arr</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_strv_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(bool)
+def test_strv_in(arr):
+ # Python wrapper for regress_test_strv_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>arr</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in_gvalue.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in_gvalue.page
new file mode 100644
index 00000000..fcffe1bb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_in_gvalue.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_in_gvalue"
+ 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>GObject.Value</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_in_gvalue</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_strv_in_gvalue</title>
+
+<synopsis><code mime="text/x-python">
+@returns(GObject.Value)
+def test_strv_in_gvalue():
+ # Python wrapper for regress_test_strv_in_gvalue()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out.page
new file mode 100644
index 00000000..eea084cb
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_strv_out</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_strv_out():
+ # Python wrapper for regress_test_strv_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_c.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_c.page
new file mode 100644
index 00000000..c800fa0a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_c.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out_c"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out_c</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_strv_out_c</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_strv_out_c():
+ # Python wrapper for regress_test_strv_out_c()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_container.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_container.page
new file mode 100644
index 00000000..69f6c56f
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_out_container.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_out_container"
+ 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>[unicode]</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_out_container</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_strv_out_container</title>
+
+<synopsis><code mime="text/x-python">
+@returns([unicode])
+def test_strv_out_container():
+ # Python wrapper for regress_test_strv_out_container()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_outarg.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_outarg.page
new file mode 100644
index 00000000..3624f8a9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_strv_outarg.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_strv_outarg"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_strv_outarg</api:name>
+ <api:arg>
+ <api:type>[unicode]</api:type>
+ <api:name>retp</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_strv_outarg</title>
+
+<synopsis><code mime="text/x-python">
+@accepts([unicode])
+@returns(none)
+def test_strv_outarg(retp):
+ # Python wrapper for regress_test_strv_outarg()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>retp</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_timet.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_timet.page
new file mode 100644
index 00000000..51698280
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_timet.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_timet"
+ 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_timet</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_timet</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def test_timet(in):
+ # Python wrapper for regress_test_timet()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_0.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_0.page
new file mode 100644
index 00000000..7875a817
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_0.page
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_0"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_0</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_torture_signature_0</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, float, int, unicode, int, int)
+@returns(none)
+def test_torture_signature_0(x, y, z, foo, q, m):
+ # Python wrapper for regress_test_torture_signature_0()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_1.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_1.page
new file mode 100644
index 00000000..6a499a56
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_1.page
@@ -0,0 +1,91 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_1"
+ 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>bool</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_1</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_torture_signature_1</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, float, int, unicode, int, int)
+@returns(bool)
+def test_torture_signature_1(x, y, z, foo, q, m):
+ # Python wrapper for regress_test_torture_signature_1()
+</code></synopsis>
+
+
+ <p>This function throws an error if m is odd.</p>
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_2.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_2.page
new file mode 100644
index 00000000..01f77785
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_torture_signature_2.page
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<page id="Regress.test_torture_signature_2"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_torture_signature_2</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>x</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>Regress.TestCallbackUserData</api:type>
+ <api:name>callback</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>gpointer</api:type>
+ <api:name>user_data</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>GLib.DestroyNotify</api:type>
+ <api:name>notify</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>float</api:type>
+ <api:name>y</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>z</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>foo</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>q</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>m</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_torture_signature_2</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int, Regress.TestCallbackUserData, gpointer, GLib.DestroyNotify, float, int, unicode, int, int)
+@returns(none)
+def test_torture_signature_2(x, callback, user_data, notify, y, z, foo, q, m):
+ # Python wrapper for regress_test_torture_signature_2()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+
+</item>
+<item>
+<title><code>callback</code></title>
+
+</item>
+<item>
+<title><code>user_data</code></title>
+
+</item>
+<item>
+<title><code>notify</code></title>
+
+</item>
+<item>
+<title><code>y</code></title>
+
+</item>
+<item>
+<title><code>z</code></title>
+
+</item>
+<item>
+<title><code>foo</code></title>
+
+</item>
+<item>
+<title><code>q</code></title>
+
+</item>
+<item>
+<title><code>m</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint.page
new file mode 100644
index 00000000..f6943c0a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint"
+ 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_uint</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_uint</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def test_uint(in):
+ # Python wrapper for regress_test_uint()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint16.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint16.page
new file mode 100644
index 00000000..5ace288d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint16.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint16"
+ 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>guint16</api:type>
+ </api:returns>
+ <api:name>regress_test_uint16</api:name>
+ <api:arg>
+ <api:type>guint16</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_uint16</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(guint16)
+@returns(guint16)
+def test_uint16(in):
+ # Python wrapper for regress_test_uint16()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint32.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint32.page
new file mode 100644
index 00000000..084d6192
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint32.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint32"
+ 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>guint32</api:type>
+ </api:returns>
+ <api:name>regress_test_uint32</api:name>
+ <api:arg>
+ <api:type>guint32</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_uint32</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(guint32)
+@returns(guint32)
+def test_uint32(in):
+ # Python wrapper for regress_test_uint32()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint64.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint64.page
new file mode 100644
index 00000000..b2234a3a
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint64.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint64"
+ 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_uint64</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_uint64</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def test_uint64(in):
+ # Python wrapper for regress_test_uint64()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint8.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint8.page
new file mode 100644
index 00000000..94e367b6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_uint8.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_uint8"
+ 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>guint8</api:type>
+ </api:returns>
+ <api:name>regress_test_uint8</api:name>
+ <api:arg>
+ <api:type>guint8</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_uint8</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(guint8)
+@returns(guint8)
+def test_uint8(in):
+ # Python wrapper for regress_test_uint8()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ulong.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ulong.page
new file mode 100644
index 00000000..dc98e475
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ulong.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ulong"
+ 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_ulong</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ulong</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(int)
+def test_ulong(in):
+ # Python wrapper for regress_test_ulong()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_unichar.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_unichar.page
new file mode 100644
index 00000000..abc373ea
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_unichar.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_unichar"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_test_unichar</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_unichar</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(unicode)
+def test_unichar(in):
+ # Python wrapper for regress_test_unichar()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_unsigned_enum_param.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_unsigned_enum_param.page
new file mode 100644
index 00000000..eb7ff64b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_unsigned_enum_param.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_unsigned_enum_param"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_test_unsigned_enum_param</api:name>
+ <api:arg>
+ <api:type>Regress.TestEnumUnsigned</api:type>
+ <api:name>e</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_unsigned_enum_param</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(Regress.TestEnumUnsigned)
+@returns(unicode)
+def test_unsigned_enum_param(e):
+ # Python wrapper for regress_test_unsigned_enum_param()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>e</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_ushort.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ushort.page
new file mode 100644
index 00000000..4bebadc3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_ushort.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_ushort"
+ 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>gushort</api:type>
+ </api:returns>
+ <api:name>regress_test_ushort</api:name>
+ <api:arg>
+ <api:type>gushort</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_ushort</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(gushort)
+@returns(gushort)
+def test_ushort(in):
+ # Python wrapper for regress_test_ushort()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_in.page
new file mode 100644
index 00000000..4d4ff1af
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_const_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_const_in</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_const_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(none)
+def test_utf8_const_in(in):
+ # Python wrapper for regress_test_utf8_const_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_return.page
new file mode 100644
index 00000000..7149eac9
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_const_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_const_return"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_const_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_const_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns(unicode)
+def test_utf8_const_return():
+ # Python wrapper for regress_test_utf8_const_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_inout.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_inout.page
new file mode 100644
index 00000000..28ecfc27
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_inout.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_inout"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_inout</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>inout</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_inout</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(none)
+def test_utf8_inout(inout):
+ # Python wrapper for regress_test_utf8_inout()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>inout</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_nonconst_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_nonconst_return.page
new file mode 100644
index 00000000..1d1be7dd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_nonconst_return.page
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_nonconst_return"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_nonconst_return</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_nonconst_return</title>
+
+<synopsis><code mime="text/x-python">
+@returns(unicode)
+def test_utf8_nonconst_return():
+ # Python wrapper for regress_test_utf8_nonconst_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_in.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_in.page
new file mode 100644
index 00000000..8074cafd
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_in.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_null_in"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_null_in</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>in</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_null_in</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(none)
+def test_utf8_null_in(in):
+ # Python wrapper for regress_test_utf8_null_in()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>in</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_out.page
new file mode 100644
index 00000000..da98d744
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_null_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_null_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_null_out</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>char_out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_null_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(none)
+def test_utf8_null_out(char_out):
+ # Python wrapper for regress_test_utf8_null_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>char_out</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out.page
new file mode 100644
index 00000000..3aa56f02
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out.page
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(none)
+def test_utf8_out(out):
+ # Python wrapper for regress_test_utf8_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_nonconst_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_nonconst_return.page
new file mode 100644
index 00000000..0b775cc3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_nonconst_return.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out_nonconst_return"
+ 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>unicode</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out_nonconst_return</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>out</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_out_nonconst_return</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode)
+@returns(unicode)
+def test_utf8_out_nonconst_return(out):
+ # Python wrapper for regress_test_utf8_out_nonconst_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out</code></title>
+<p>a copy of "second"</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_out.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_out.page
new file mode 100644
index 00000000..5a6bc2e6
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_utf8_out_out.page
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page id="Regress.test_utf8_out_out"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_utf8_out_out</api:name>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>out0</api:name>
+ </api:arg>
+ <api:arg>
+ <api:type>unicode</api:type>
+ <api:name>out1</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_utf8_out_out</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(unicode, unicode)
+@returns(none)
+def test_utf8_out_out(out0, out1):
+ # Python wrapper for regress_test_utf8_out_out()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>out0</code></title>
+<p>a copy of "first"</p>
+</item>
+<item>
+<title><code>out1</code></title>
+<p>a copy of "second"</p>
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_value_return.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_value_return.page
new file mode 100644
index 00000000..ef9f97e3
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_value_return.page
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<page id="Regress.test_value_return"
+ 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>GObject.Value</api:type>
+ </api:returns>
+ <api:name>regress_test_value_return</api:name>
+ <api:arg>
+ <api:type>int</api:type>
+ <api:name>i</api:name>
+ </api:arg>
+ </api:function>
+
+ </info>
+ <title>Index.test_value_return</title>
+
+<synopsis><code mime="text/x-python">
+@accepts(int)
+@returns(GObject.Value)
+def test_value_return(i):
+ # Python wrapper for regress_test_value_return()
+</code></synopsis>
+
+
+
+
+
+
+
+<terms>
+<item>
+<title><code>i</code></title>
+<p>an int</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+{formatter.format(node, node.retval.doc)}
+</item>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_versioning.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_versioning.page
new file mode 100644
index 00000000..847a5c33
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_versioning.page
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<page id="Regress.test_versioning"
+ 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>none</api:type>
+ </api:returns>
+ <api:name>regress_test_versioning</api:name>
+ </api:function>
+
+ </info>
+ <title>Index.test_versioning</title>
+
+<synopsis><code mime="text/x-python">
+@returns(none)
+def test_versioning():
+ # Python wrapper for regress_test_versioning()
+</code></synopsis>
+
+
+
+
+
+ <p>Since 1.32.1</p>
+
+
+<terms>
+</terms>
+
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/index.page b/tests/scanner/Regress-1.0-Python-expected/index.page
new file mode 100644
index 00000000..a5426d89
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/index.page
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<page id="index"
+ type="guide"
+ style="namespace"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+
+
+ </info>
+ <title>Index</title>
+
+
+
+
+
+
+
+
+
+ <links type="topic" ui:expanded="true" groups="class" style="linklist">
+ <title>Classes</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="function" style="linklist">
+ <title>Functions</title>
+ </links>
+ <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+ <title>Other</title>
+ </links>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index a3e77db1..a5651134 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -6,9 +6,8 @@ and/or use gtk-doc annotations. -->
xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
- <include name="GObject" version="2.0"/>
<include name="Gio" version="2.0"/>
+ <include name="Utility" version="1.0"/>
<include name="cairo" version="1.0"/>
<c:include name="regress.h"/>
<namespace name="Regress"
@@ -17,36 +16,1951 @@ and/or use gtk-doc annotations. -->
c:identifier-prefixes="Regress"
c:symbol-prefixes="regress">
<alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
- <doc xml:whitespace="preserve">Typedef TestBoxed to test caller-allocates correctness</doc>
+ <doc xml:space="preserve">Typedef TestBoxed to test caller-allocates correctness</doc>
<type name="TestBoxed" c:type="RegressTestBoxed"/>
</alias>
+ <alias name="FooObjectCookie" c:type="RegressFooObjectCookie">
+ <type name="gpointer" c:type="gpointer"/>
+ </alias>
+ <alias name="FooXEvent" c:type="RegressFooXEvent">
+ <type name="gpointer" c:type="gpointer"/>
+ </alias>
<alias name="IntSet" c:type="RegressIntSet" introspectable="0">
- <doc xml:whitespace="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
+ <doc xml:space="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
<type name="Intset" c:type="RegressIntset"/>
</alias>
<alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
- <doc xml:whitespace="preserve">Typedef'd GPtrArray for some reason</doc>
+ <doc xml:space="preserve">Typedef'd GPtrArray for some reason</doc>
<type name="GLib.PtrArray" c:type="GPtrArray"/>
</alias>
<alias name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64">
<type name="guint64" c:type="guint64"/>
</alias>
<alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
- <doc xml:whitespace="preserve">Typedef'd va_list for additional reasons</doc>
+ <doc xml:space="preserve">Typedef'd va_list for additional reasons</doc>
<type name="va_list" c:type="va_list"/>
</alias>
+ <constant name="ANNOTATION_CALCULATED_DEFINE"
+ value="100"
+ c:type="REGRESS_ANNOTATION_CALCULATED_DEFINE">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="ANNOTATION_CALCULATED_LARGE"
+ value="10000000000UL"
+ c:type="REGRESS_ANNOTATION_CALCULATED_LARGE"
+ version="1.4">
+ <doc xml:space="preserve">Constant to define a calculated large value</doc>
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="ANNOTATION_CALCULATED_LARGE_DIV"
+ value="1000000UL"
+ c:type="REGRESS_ANNOTATION_CALCULATED_LARGE_DIV">
+ <doc xml:space="preserve">Constant to define a calculated large value</doc>
+ <type name="gint" c:type="gint"/>
+ </constant>
<enumeration name="ATestError"
c:type="RegressATestError"
glib:error-domain="regress-atest-error">
- <member name="code0" value="0" c:identifier="REGRESS_ATEST_ERROR_CODE0"/>
- <member name="code1" value="1" c:identifier="REGRESS_ATEST_ERROR_CODE1"/>
- <member name="code2" value="2" c:identifier="REGRESS_ATEST_ERROR_CODE2"/>
+ <member name="code0" value="0" c:identifier="REGRESS_ATEST_ERROR_CODE0">
+ </member>
+ <member name="code1" value="1" c:identifier="REGRESS_ATEST_ERROR_CODE1">
+ </member>
+ <member name="code2" value="2" c:identifier="REGRESS_ATEST_ERROR_CODE2">
+ </member>
</enumeration>
+ <record name="AnAnonymousUnion" c:type="RegressAnAnonymousUnion">
+ <field name="x" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ <union>
+ <field name="a" writable="1">
+ <array zero-terminated="0"
+ c:type="RegressLikeGnomeKeyringPasswordSchema"
+ fixed-size="2">
+ <type name="LikeGnomeKeyringPasswordSchema"
+ c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
+ </array>
+ </field>
+ <field name="padding" writable="1">
+ <array zero-terminated="0" c:type="guint" fixed-size="4">
+ <type name="guint" c:type="guint"/>
+ </array>
+ </field>
+ </union>
+ </record>
+ <bitfield name="AnnotationBitfield" c:type="RegressAnnotationBitfield">
+ <member name="foo" value="1" c:identifier="ANN_FLAG_FOO">
+ </member>
+ <member name="bar" value="2" c:identifier="ANN_FLAG_BAR">
+ </member>
+ </bitfield>
+ <callback name="AnnotationCallback" c:type="RegressAnnotationCallback">
+ <doc xml:space="preserve">This is a callback.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">array of ints</doc>
+ <type name="gint" c:type="const gint*"/>
+ </return-value>
+ <parameters>
+ <parameter name="in" transfer-ownership="none">
+ <doc xml:space="preserve">array of ints</doc>
+ <type name="gint" c:type="const gint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="AnnotationFields" c:type="RegressAnnotationFields">
+ <doc xml:space="preserve">This is a struct for testing field documentation and annotations</doc>
+ <field name="field1" writable="1">
+ <doc xml:space="preserve">Some documentation</doc>
+ <type name="gint" c:type="int"/>
+ </field>
+ <field name="arr" writable="1">
+ <doc xml:space="preserve">an array of length @len</doc>
+ <array length="2" zero-terminated="0" c:type="guchar*">
+ <type name="guint8" c:type="guchar"/>
+ </array>
+ </field>
+ <field name="len" writable="1">
+ <doc xml:space="preserve">the length of array</doc>
+ <type name="gulong" c:type="gulong"/>
+ </field>
+ </record>
+ <callback name="AnnotationForeachFunc"
+ c:type="RegressAnnotationForeachFunc">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </parameter>
+ <parameter name="item" transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="AnnotationListCallback"
+ c:type="RegressAnnotationListCallback">
+ <doc xml:space="preserve">This is a callback taking a list.</doc>
+ <return-value transfer-ownership="container">
+ <doc xml:space="preserve">list of strings</doc>
+ <type name="GLib.List" c:type="GList*">
+ <type name="utf8"/>
+ </type>
+ </return-value>
+ <parameters>
+ <parameter name="in" transfer-ownership="none">
+ <doc xml:space="preserve">list of strings</doc>
+ <type name="GLib.List" c:type="GList*">
+ <type name="utf8"/>
+ </type>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="AnnotationNotifyFunc" c:type="RegressAnnotationNotifyFunc">
+ <doc xml:space="preserve">This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none" closure="0">
+ <doc xml:space="preserve">The user data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="AnnotationObject"
+ c:symbol-prefix="annotation_object"
+ c:type="RegressAnnotationObject"
+ parent="GObject.Object"
+ glib:type-name="RegressAnnotationObject"
+ glib:get-type="regress_annotation_object_get_type"
+ glib:type-struct="AnnotationObjectClass">
+ <attribute name="org.example.Test" value="cows"/>
+ <doc xml:space="preserve">This is an object used to test annotations.</doc>
+ <method name="allow_none"
+ c:identifier="regress_annotation_object_allow_none">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%NULL always</doc>
+ <type name="GObject.Object" c:type="GObject*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="somearg" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="calleeowns"
+ c:identifier="regress_annotation_object_calleeowns">
+ <doc xml:space="preserve">This is a test for out arguments; GObject defaults to transfer</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="toown"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="GObject.Object" c:type="GObject**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="calleesowns"
+ c:identifier="regress_annotation_object_calleesowns">
+ <doc xml:space="preserve">This is a test for out arguments, one transferred, other not</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="toown1"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="GObject.Object" c:type="GObject**"/>
+ </parameter>
+ <parameter name="toown2"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="GObject.Object" c:type="GObject**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="compute_sum"
+ c:identifier="regress_annotation_object_compute_sum">
+ <doc xml:space="preserve">Test taking a zero-terminated array</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="nums" transfer-ownership="none">
+ <doc xml:space="preserve">Sequence of numbers</doc>
+ <array zero-terminated="0" c:type="int*">
+ <type name="gint" c:type="int"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="compute_sum_n"
+ c:identifier="regress_annotation_object_compute_sum_n">
+ <doc xml:space="preserve">Test taking an array with length parameter</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="nums" transfer-ownership="none">
+ <doc xml:space="preserve">Sequence of
+ numbers that are zero-terminated</doc>
+ <array length="1" zero-terminated="0" c:type="int*">
+ <type name="gint" c:type="int"/>
+ </array>
+ </parameter>
+ <parameter name="n_nums" transfer-ownership="none">
+ <doc xml:space="preserve">Length of number array</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="compute_sum_nz"
+ c:identifier="regress_annotation_object_compute_sum_nz">
+ <doc xml:space="preserve">Test taking a zero-terminated array with length parameter</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="nums" transfer-ownership="none">
+ <doc xml:space="preserve">Sequence of numbers that
+are zero-terminated</doc>
+ <array length="1" zero-terminated="1" c:type="int*">
+ <type name="gint" c:type="int"/>
+ </array>
+ </parameter>
+ <parameter name="n_nums" transfer-ownership="none">
+ <doc xml:space="preserve">Length of number array</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="create_object"
+ c:identifier="regress_annotation_object_create_object">
+ <doc xml:space="preserve">Test returning a caller-owned object</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">The object</doc>
+ <type name="GObject.Object" c:type="GObject*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="do_not_use"
+ c:identifier="regress_annotation_object_do_not_use"
+ deprecated="1"
+ deprecated-version="0.12">
+ <doc-deprecated xml:space="preserve">Use regress_annotation_object_create_object() instead.</doc-deprecated>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%NULL always</doc>
+ <type name="GObject.Object" c:type="GObject*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="extra_annos"
+ c:identifier="regress_annotation_object_extra_annos">
+ <attribute name="org.foobar" value="testvalue"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="foreach" c:identifier="regress_annotation_object_foreach">
+ <doc xml:space="preserve">Test taking a call-scoped callback</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="1">
+ <doc xml:space="preserve">Callback to invoke</doc>
+ <type name="AnnotationForeachFunc"
+ c:type="RegressAnnotationForeachFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <doc xml:space="preserve">Callback user data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_hash"
+ c:identifier="regress_annotation_object_get_hash">
+ <doc xml:space="preserve">This is a test for returning a hash table mapping strings to
+objects.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">hash table</doc>
+ <type name="GLib.HashTable" c:type="GHashTable*">
+ <type name="utf8"/>
+ <type name="GObject.Object"/>
+ </type>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_objects"
+ c:identifier="regress_annotation_object_get_objects">
+ <doc xml:space="preserve">This is a test for returning a list of objects.
+The list itself should be freed, but not the internal objects,
+intentionally similar example to gtk_container_get_children</doc>
+ <return-value transfer-ownership="container">
+ <doc xml:space="preserve">list of objects</doc>
+ <type name="GLib.SList" c:type="GSList*">
+ <type name="AnnotationObject"/>
+ </type>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_strings"
+ c:identifier="regress_annotation_object_get_strings">
+ <doc xml:space="preserve">This is a test for returning a list of strings, where
+each string needs to be freed.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">list of strings</doc>
+ <type name="GLib.List" c:type="GList*">
+ <type name="utf8"/>
+ </type>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="hidden_self"
+ c:identifier="regress_annotation_object_hidden_self">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="gpointer"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="in" c:identifier="regress_annotation_object_in">
+ <doc xml:space="preserve">This is a test for in arguments</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="inarg" transfer-ownership="none">
+ <doc xml:space="preserve">This is an argument test</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="inout" c:identifier="regress_annotation_object_inout">
+ <doc xml:space="preserve">This is a test for out arguments</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="inoutarg"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">This is an argument test</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="inout2" c:identifier="regress_annotation_object_inout2">
+ <doc xml:space="preserve">This is a second test for out arguments</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="inoutarg"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">This is an argument test</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="inout3" c:identifier="regress_annotation_object_inout3">
+ <doc xml:space="preserve">This is a 3th test for out arguments</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="inoutarg"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full"
+ allow-none="1">
+ <doc xml:space="preserve">This is an argument test</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="method" c:identifier="regress_annotation_object_method">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="notrans" c:identifier="regress_annotation_object_notrans">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">An object, not referenced</doc>
+ <type name="GObject.Object" c:type="GObject*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="out" c:identifier="regress_annotation_object_out">
+ <doc xml:space="preserve">This is a test for out arguments</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">an int</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="outarg"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">This is an argument test</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_args"
+ c:identifier="regress_annotation_object_parse_args">
+ <doc xml:space="preserve">Test taking a zero-terminated array with length parameter</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="argc"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">Length of the argument vector</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ <parameter name="argv"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">Argument vector</doc>
+ <array length="0" zero-terminated="1" c:type="char***">
+ <type name="utf8" c:type="char**"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_data"
+ c:identifier="regress_annotation_object_set_data">
+ <doc xml:space="preserve">Test taking a guchar * with a length.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">The data</doc>
+ <array length="1" zero-terminated="0" c:type="guchar*">
+ <type name="guint8" c:type="guchar"/>
+ </array>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <doc xml:space="preserve">Length of the data</doc>
+ <type name="gsize" c:type="gsize"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_data2"
+ c:identifier="regress_annotation_object_set_data2">
+ <doc xml:space="preserve">Test taking a gchar * with a length.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">The data</doc>
+ <array length="1" zero-terminated="0" c:type="gchar*">
+ <type name="gint8"/>
+ </array>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <doc xml:space="preserve">Length of the data</doc>
+ <type name="gsize" c:type="gsize"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_data3"
+ c:identifier="regress_annotation_object_set_data3">
+ <doc xml:space="preserve">Test taking a gchar * with a length, overriding the array element
+type.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">The data</doc>
+ <array length="1" zero-terminated="0" c:type="gpointer">
+ <type name="guint8"/>
+ </array>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <doc xml:space="preserve">Length of the data</doc>
+ <type name="gsize" c:type="gsize"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="string_out"
+ c:identifier="regress_annotation_object_string_out">
+ <doc xml:space="preserve">Test returning a string as an out parameter</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">some boolean</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="str_out"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">string return value</doc>
+ <type name="utf8" c:type="char**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="use_buffer"
+ c:identifier="regress_annotation_object_use_buffer">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #GObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="bytes" transfer-ownership="none">
+ <type name="guint8" c:type="guchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="watch"
+ c:identifier="regress_annotation_object_watch"
+ shadowed-by="watch_full"
+ introspectable="0">
+ <doc xml:space="preserve">This is here just for the sake of being overriden by its
+regress_annotation_object_watch_full().</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="func" transfer-ownership="none" closure="1">
+ <doc xml:space="preserve">The callback</doc>
+ <type name="AnnotationForeachFunc"
+ c:type="RegressAnnotationForeachFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <doc xml:space="preserve">The callback data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="watch_full"
+ c:identifier="regress_annotation_object_watch_full"
+ shadows="watch">
+ <doc xml:space="preserve">Test overriding via the "Rename To" annotation.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressAnnotationObject</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="notified"
+ closure="1"
+ destroy="2">
+ <doc xml:space="preserve">The callback</doc>
+ <type name="AnnotationForeachFunc"
+ c:type="RegressAnnotationForeachFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <doc xml:space="preserve">The callback data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="destroy" transfer-ownership="none" scope="async">
+ <doc xml:space="preserve">Destroy notification</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="with_voidp"
+ c:identifier="regress_annotation_object_with_voidp">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <doc xml:space="preserve">Opaque pointer handle</doc>
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="function-property"
+ writable="1"
+ construct="1"
+ transfer-ownership="none">
+ <type name="AnnotationCallback" c:type="gpointer"/>
+ </property>
+ <property name="string-property"
+ version="1.0"
+ deprecated="1"
+ deprecated-version="1.2"
+ writable="1"
+ construct="1"
+ transfer-ownership="none">
+ <doc xml:space="preserve">This is a property which is a string</doc>
+ <doc-deprecated xml:space="preserve">Use better-string-property instead</doc-deprecated>
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="tab-property"
+ version="1.2"
+ writable="1"
+ construct="1"
+ transfer-ownership="none">
+ <doc xml:space="preserve">This is a property annotation intentionally indented with a mix
+of tabs and strings to test the tab handling capabilities of the scanner.</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <glib:signal name="attribute-signal" when="last">
+ <doc xml:space="preserve">This signal tests a signal with attributes.</doc>
+ <return-value transfer-ownership="full">
+ <attribute name="some.annotation.foo3" value="val3"/>
+ <doc xml:space="preserve">the return value</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="arg1" transfer-ownership="none">
+ <attribute name="some.annotation.foo1" value="val1"/>
+ <doc xml:space="preserve">a value</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="arg2" transfer-ownership="none">
+ <attribute name="some.annotation.foo2" value="val2"/>
+ <doc xml:space="preserve">another value</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="doc-empty-arg-parsing" when="last">
+ <doc xml:space="preserve">This signal tests an empty document argument (@arg1)</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="arg1" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="list-signal" when="last">
+ <doc xml:space="preserve">This is a signal which takes a list of strings, but it's not
+known by GObject as it's only marked as G_TYPE_POINTER</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="container">
+ <doc xml:space="preserve">a list of strings</doc>
+ <type name="GLib.List" c:type="gpointer">
+ <type name="utf8"/>
+ </type>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="string-signal"
+ when="last"
+ version="1.0"
+ deprecated="1"
+ deprecated-version="1.2">
+ <doc xml:space="preserve">This is a signal which has a broken signal handler,
+it says it's pointer but it's actually a string.</doc>
+ <doc-deprecated xml:space="preserve">Use other-signal instead</doc-deprecated>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="string" transfer-ownership="none">
+ <doc xml:space="preserve">a string</doc>
+ <type name="utf8" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="AnnotationObjectClass"
+ c:type="RegressAnnotationObjectClass"
+ glib:is-gtype-struct-for="AnnotationObject">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="AnnotationStruct" c:type="RegressAnnotationStruct">
+ <doc xml:space="preserve">This is a test of an array of object in an field of a struct.</doc>
+ <field name="objects" writable="1">
+ <array zero-terminated="0"
+ c:type="RegressAnnotationObject"
+ fixed-size="10">
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </array>
+ </field>
+ </record>
+ <constant name="BOOL_CONSTANT" value="true" c:type="REGRESS_BOOL_CONSTANT">
+ <type name="gboolean" c:type="gboolean"/>
+ </constant>
<constant name="DOUBLE_CONSTANT"
value="44.220000"
c:type="REGRESS_DOUBLE_CONSTANT">
<type name="gdouble" c:type="gdouble"/>
</constant>
+ <constant name="FOO_DEFINE_SHOULD_BE_EXPOSED"
+ value="should be exposed"
+ c:type="REGRESS_FOO_DEFINE_SHOULD_BE_EXPOSED">
+ <type name="utf8" c:type="gchar*"/>
+ </constant>
+ <constant name="FOO_PIE_IS_TASTY"
+ value="3.141590"
+ c:type="REGRESS_FOO_PIE_IS_TASTY">
+ <type name="gdouble" c:type="gdouble"/>
+ </constant>
+ <constant name="FOO_SUCCESS_INT"
+ value="4408"
+ c:type="REGRESS_FOO_SUCCESS_INT">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <enumeration name="FooASingle" c:type="RegressFooASingle">
+ <member name="foo_some_single_enum"
+ value="0"
+ c:identifier="REGRESS_FOO_SOME_SINGLE_ENUM">
+ </member>
+ </enumeration>
+ <enumeration name="FooAddressType" c:type="RegressFooAddressType">
+ <member name="invalid"
+ value="0"
+ c:identifier="REGRESS_FOO_ADDRESS_INVALID">
+ </member>
+ <member name="ipv4" value="1" c:identifier="REGRESS_FOO_ADDRESS_IPV4">
+ </member>
+ <member name="ipv6" value="2" c:identifier="REGRESS_FOO_ADDRESS_IPV6">
+ </member>
+ </enumeration>
+ <record name="FooBRect"
+ c:type="RegressFooBRect"
+ glib:type-name="RegressFooBRect"
+ glib:get-type="regress_foo_brect_get_type"
+ c:symbol-prefix="foo_brect">
+ <field name="x" writable="1">
+ <type name="gdouble" c:type="double"/>
+ </field>
+ <field name="y" writable="1">
+ <type name="gdouble" c:type="double"/>
+ </field>
+ <constructor name="new" c:identifier="regress_foo_brect_new">
+ <return-value transfer-ownership="full">
+ <type name="FooBRect" c:type="RegressFooBRect*"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gdouble" c:type="double"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <type name="gdouble" c:type="double"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="add" c:identifier="regress_foo_brect_add">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="b1" transfer-ownership="none">
+ <type name="FooBRect" c:type="RegressFooBRect*"/>
+ </instance-parameter>
+ <parameter name="b2" transfer-ownership="none">
+ <type name="FooBRect" c:type="RegressFooBRect*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <union name="FooBUnion"
+ c:type="RegressFooBUnion"
+ glib:type-name="RegressFooBUnion"
+ glib:get-type="regress_foo_bunion_get_type"
+ c:symbol-prefix="foo_bunion">
+ <field name="type" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ <field name="v" writable="1">
+ <type name="gdouble" c:type="double"/>
+ </field>
+ <field name="rect" writable="1">
+ <type name="FooBRect" c:type="RegressFooBRect*"/>
+ </field>
+ <constructor name="new" c:identifier="regress_foo_bunion_new">
+ <return-value transfer-ownership="full">
+ <type name="FooBUnion" c:type="RegressFooBUnion*"/>
+ </return-value>
+ </constructor>
+ <method name="get_contained_type"
+ c:identifier="regress_foo_bunion_get_contained_type">
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="bunion" transfer-ownership="none">
+ <type name="FooBUnion" c:type="RegressFooBUnion*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </union>
+ <record name="FooBoxed"
+ c:type="RegressFooBoxed"
+ glib:type-name="RegressFooBoxed"
+ glib:get-type="regress_foo_boxed_get_type"
+ c:symbol-prefix="foo_boxed">
+ <constructor name="new" c:identifier="regress_foo_boxed_new">
+ <return-value transfer-ownership="full">
+ <type name="FooBoxed" c:type="RegressFooBoxed*"/>
+ </return-value>
+ </constructor>
+ <method name="method" c:identifier="regress_foo_boxed_method">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="FooBoxed" c:type="RegressFooBoxed*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <class name="FooBuffer"
+ c:symbol-prefix="foo_buffer"
+ c:type="RegressFooBuffer"
+ parent="FooObject"
+ glib:type-name="RegressFooBuffer"
+ glib:get-type="regress_foo_buffer_get_type"
+ glib:type-struct="FooBufferClass">
+ <implements name="FooInterface"/>
+ <method name="some_method" c:identifier="regress_foo_buffer_some_method">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="buffer" transfer-ownership="none">
+ <type name="FooBuffer" c:type="RegressFooBuffer*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="FooBufferClass"
+ c:type="RegressFooBufferClass"
+ disguised="1"
+ glib:is-gtype-struct-for="FooBuffer">
+ </record>
+ <callback name="FooCallback" c:type="RegressFooCallback">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="regress_foo" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </parameter>
+ <parameter name="b" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="FooDBusData"
+ c:type="RegressFooDBusData"
+ glib:type-name="RegressFooDBusData"
+ glib:get-type="regress_foo_dbus_data_get_type"
+ c:symbol-prefix="foo_dbus_data">
+ <method name="method" c:identifier="regress_foo_dbus_data_method">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="dbusdata" transfer-ownership="none">
+ <type name="FooDBusData" c:type="RegressFooDBusData*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="FooEnumFullname" c:type="RegressFooEnumFullname">
+ <member name="one"
+ value="1"
+ c:identifier="REGRESS_FOO_ENUM_FULLNAME_ONE">
+ </member>
+ <member name="two"
+ value="2"
+ c:identifier="REGRESS_FOO_ENUM_FULLNAME_TWO">
+ </member>
+ <member name="three"
+ value="3"
+ c:identifier="REGRESS_FOO_ENUM_FULLNAME_THREE">
+ </member>
+ </enumeration>
+ <enumeration name="FooEnumNoType" c:type="RegressFooEnumNoType">
+ <member name="un" value="1" c:identifier="REGRESS_FOO_ENUM_UN">
+ </member>
+ <member name="deux" value="2" c:identifier="REGRESS_FOO_ENUM_DEUX">
+ </member>
+ <member name="trois" value="3" c:identifier="REGRESS_FOO_ENUM_TROIS">
+ </member>
+ <member name="neuf" value="9" c:identifier="REGRESS_FOO_ENUM_NEUF">
+ </member>
+ </enumeration>
+ <enumeration name="FooEnumType"
+ glib:type-name="RegressFooEnumType"
+ glib:get-type="regress_foo_enum_type_get_type"
+ c:type="RegressFooEnumType">
+ <member name="alpha"
+ value="0"
+ c:identifier="REGRESS_FOO_ENUM_ALPHA"
+ glib:nick="alpha">
+ </member>
+ <member name="beta"
+ value="1"
+ c:identifier="REGRESS_FOO_ENUM_BETA"
+ glib:nick="beta">
+ </member>
+ <member name="delta"
+ value="2"
+ c:identifier="REGRESS_FOO_ENUM_DELTA"
+ glib:nick="delta">
+ </member>
+ <function name="method" c:identifier="regress_foo_enum_type_method">
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="regress_foo_enum" transfer-ownership="none">
+ <type name="FooEnumType" c:type="RegressFooEnumType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="returnv" c:identifier="regress_foo_enum_type_returnv">
+ <return-value transfer-ownership="none">
+ <type name="FooEnumType" c:type="RegressFooEnumType"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ </enumeration>
+ <enumeration name="FooError"
+ glib:type-name="RegressFooError"
+ glib:get-type="regress_foo_error_get_type"
+ c:type="RegressFooError"
+ glib:error-domain="regress_foo-error-quark">
+ <member name="good"
+ value="0"
+ c:identifier="REGRESS_FOO_ERROR_GOOD"
+ glib:nick="good">
+ </member>
+ <member name="bad"
+ value="1"
+ c:identifier="REGRESS_FOO_ERROR_BAD"
+ glib:nick="bad">
+ </member>
+ <member name="ugly"
+ value="2"
+ c:identifier="REGRESS_FOO_ERROR_UGLY"
+ glib:nick="ugly">
+ </member>
+ <function name="quark" c:identifier="regress_foo_error_quark">
+ <return-value transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ </function>
+ </enumeration>
+ <union name="FooEvent" c:type="RegressFooEvent">
+ <field name="type" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ <field name="any" writable="1">
+ <type name="FooEventAny" c:type="RegressFooEventAny"/>
+ </field>
+ <field name="expose" writable="1">
+ <type name="FooEventExpose" c:type="RegressFooEventExpose"/>
+ </field>
+ </union>
+ <record name="FooEventAny" c:type="RegressFooEventAny">
+ <field name="send_event" writable="1">
+ <type name="gint8" c:type="gint8"/>
+ </field>
+ </record>
+ <record name="FooEventExpose" c:type="RegressFooEventExpose">
+ <field name="send_event" writable="1">
+ <type name="gint8" c:type="gint8"/>
+ </field>
+ <field name="count" writable="1">
+ <type name="gint" c:type="gint"/>
+ </field>
+ </record>
+ <bitfield name="FooFlagsNoType" c:type="RegressFooFlagsNoType">
+ <member name="ett" value="1" c:identifier="REGRESS_FOO_FLAGS_ETT">
+ </member>
+ <member name="tva" value="2" c:identifier="REGRESS_FOO_FLAGS_TVA">
+ </member>
+ <member name="fyra" value="4" c:identifier="REGRESS_FOO_FLAGS_FYRA">
+ </member>
+ </bitfield>
+ <bitfield name="FooFlagsType"
+ glib:type-name="RegressFooFlagsType"
+ glib:get-type="regress_foo_flags_type_get_type"
+ c:type="RegressFooFlagsType">
+ <member name="first"
+ value="1"
+ c:identifier="REGRESS_FOO_FLAGS_FIRST"
+ glib:nick="first">
+ </member>
+ <member name="second"
+ value="2"
+ c:identifier="REGRESS_FOO_FLAGS_SECOND"
+ glib:nick="second">
+ </member>
+ <member name="third"
+ value="4"
+ c:identifier="REGRESS_FOO_FLAGS_THIRD"
+ glib:nick="third">
+ </member>
+ </bitfield>
+ <record name="FooForeignStruct"
+ c:type="RegressFooForeignStruct"
+ foreign="1">
+ <field name="regress_foo" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ <constructor name="new" c:identifier="regress_foo_foreign_struct_new">
+ <return-value transfer-ownership="full">
+ <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
+ </return-value>
+ </constructor>
+ <method name="copy" c:identifier="regress_foo_foreign_struct_copy">
+ <return-value transfer-ownership="full">
+ <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="original" transfer-ownership="none">
+ <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <interface name="FooInterface"
+ c:symbol-prefix="foo_interface"
+ c:type="RegressFooInterface"
+ glib:type-name="RegressFooInterface"
+ glib:get-type="regress_foo_interface_get_type"
+ glib:type-struct="FooInterfaceIface">
+ <function name="static_method"
+ c:identifier="regress_foo_interface_static_method">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="do_regress_foo" invoker="do_regress_foo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="FooInterface" c:type="RegressFooInterface*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="do_regress_foo"
+ c:identifier="regress_foo_interface_do_regress_foo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="iface" transfer-ownership="none">
+ <type name="FooInterface" c:type="RegressFooInterface*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ </interface>
+ <record name="FooInterfaceIface"
+ c:type="RegressFooInterfaceIface"
+ glib:is-gtype-struct-for="FooInterface">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="do_regress_foo">
+ <callback name="do_regress_foo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="FooInterface" c:type="RegressFooInterface*"/>
+ </parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <class name="FooObject"
+ c:symbol-prefix="foo_object"
+ c:type="RegressFooObject"
+ parent="GObject.Object"
+ glib:type-name="RegressFooObject"
+ glib:get-type="regress_foo_object_get_type"
+ glib:type-struct="FooObjectClass">
+ <implements name="FooInterface"/>
+ <constructor name="new" c:identifier="regress_foo_object_new">
+ <return-value transfer-ownership="full">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_as_super"
+ c:identifier="regress_foo_object_new_as_super">
+ <return-value transfer-ownership="full">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </return-value>
+ </constructor>
+ <function name="a_global_method"
+ c:identifier="regress_foo_object_a_global_method">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="Utility.Object" c:type="UtilityObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="get_default"
+ c:identifier="regress_foo_object_get_default">
+ <doc xml:space="preserve">This function is intended to match clutter_stage_get_default which
+uses a C sugar return type.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">The global #RegressFooSubobject</doc>
+ <type name="FooSubobject" c:type="RegressFooObject*"/>
+ </return-value>
+ </function>
+ <function name="static_meth"
+ c:identifier="regress_foo_object_static_meth">
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </return-value>
+ </function>
+ <virtual-method name="read_fn" invoker="read">
+ <doc xml:space="preserve">Read some stuff.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <doc xml:space="preserve">offset</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <doc xml:space="preserve">length</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="virtual_method" invoker="virtual_method">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="first_param" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="append_new_stack_layer"
+ c:identifier="regress_foo_object_append_new_stack_layer">
+ <doc xml:space="preserve">This shouldn't be scanned as a constructor.</doc>
+ <return-value transfer-ownership="none">
+ <type name="FooOtherObject" c:type="RegressFooOtherObject*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dup_name" c:identifier="regress_foo_object_dup_name">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="external_type"
+ c:identifier="regress_foo_object_external_type">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%NULL always</doc>
+ <type name="Utility.Object" c:type="UtilityObject*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressFooObject</doc>
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_name" c:identifier="regress_foo_object_get_name">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="handle_glyph"
+ c:identifier="regress_foo_object_handle_glyph">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="glyph" transfer-ownership="none">
+ <type name="Utility.Glyph" c:type="UtilityGlyph"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_it_time_yet"
+ c:identifier="regress_foo_object_is_it_time_yet">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="time" transfer-ownership="none">
+ <type name="glong" c:type="time_t"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="new_cookie"
+ c:identifier="regress_foo_object_new_cookie"
+ introspectable="0">
+ <doc xml:space="preserve">Not sure why this test is here...</doc>
+ <return-value>
+ <type name="FooObjectCookie" c:type="RegressFooObjectCookie"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="target" transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="read" c:identifier="regress_foo_object_read">
+ <doc xml:space="preserve">Read some stuff.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <doc xml:space="preserve">offset</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <doc xml:space="preserve">length</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="skipped_method"
+ c:identifier="regress_foo_object_skipped_method"
+ introspectable="0">
+ <doc xml:space="preserve">This is only useful from C.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="take_all"
+ c:identifier="regress_foo_object_take_all"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="various" c:identifier="regress_foo_object_various">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ <parameter name="some_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="virtual_method"
+ c:identifier="regress_foo_object_virtual_method">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </instance-parameter>
+ <parameter name="first_param" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="hidden"
+ introspectable="0"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type/>
+ </property>
+ <property name="string"
+ writable="1"
+ construct="1"
+ transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="some_int">
+ <type name="gint" c:type="int"/>
+ </field>
+ <glib:signal name="signal" when="last">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object"/>
+ </parameter>
+ <parameter name="p0" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="FooObjectClass"
+ c:type="RegressFooObjectClass"
+ glib:is-gtype-struct-for="FooObject">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="virtual_method">
+ <callback name="virtual_method">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </parameter>
+ <parameter name="first_param" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="read_fn">
+ <callback name="read_fn">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <doc xml:space="preserve">offset</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <doc xml:space="preserve">length</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_reserved">
+ <array zero-terminated="0" c:type="GCallback" fixed-size="4">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </array>
+ </field>
+ </record>
+ <class name="FooOtherObject"
+ c:symbol-prefix="foo_other_object"
+ c:type="RegressFooOtherObject"
+ parent="GObject.Object"
+ glib:type-name="RegressFooOtherObject"
+ glib:get-type="regress_foo_other_object_get_type"
+ glib:type-struct="FooOtherObjectClass">
+ </class>
+ <record name="FooOtherObjectClass"
+ c:type="RegressFooOtherObjectClass"
+ disguised="1"
+ glib:is-gtype-struct-for="FooOtherObject">
+ </record>
+ <record name="FooRectangle" c:type="RegressFooRectangle">
+ <field name="x" writable="1">
+ <type name="gint" c:type="gint"/>
+ </field>
+ <field name="y" writable="1">
+ <type name="gint" c:type="gint"/>
+ </field>
+ <field name="width" writable="1">
+ <type name="gint" c:type="gint"/>
+ </field>
+ <field name="height" writable="1">
+ <type name="gint" c:type="gint"/>
+ </field>
+ <method name="add" c:identifier="regress_foo_rectangle_add">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="r1"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">add to this rect</doc>
+ <type name="FooRectangle" c:type="RegressFooRectangle*"/>
+ </instance-parameter>
+ <parameter name="r2" transfer-ownership="none">
+ <doc xml:space="preserve">source rectangle</doc>
+ <type name="FooRectangle" c:type="const RegressFooRectangle*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <function name="new"
+ c:identifier="regress_foo_rectangle_new"
+ introspectable="0">
+ <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
+it because it's not a boxed type.</doc>
+ <return-value>
+ <type name="FooRectangle" c:type="RegressFooRectangle*"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ </record>
+ <enumeration name="FooSkippable"
+ introspectable="0"
+ c:type="RegressFooSkippable">
+ <doc xml:space="preserve">Some type that is only interesting from C and should not be
+exposed to language bindings.</doc>
+ <member name="one" value="0" c:identifier="REGRESS_FOO_SKIPPABLE_ONE">
+ <doc xml:space="preserve">a skippable enum value</doc>
+ </member>
+ <member name="two" value="1" c:identifier="REGRESS_FOO_SKIPPABLE_TWO">
+ <doc xml:space="preserve">another skippable enum value</doc>
+ </member>
+ </enumeration>
+ <enumeration name="FooStackLayer" c:type="RegressFooStackLayer">
+ <member name="desktop"
+ value="0"
+ c:identifier="REGRESS_FOO_LAYER_DESKTOP">
+ </member>
+ <member name="bottom" value="1" c:identifier="REGRESS_FOO_LAYER_BOTTOM">
+ </member>
+ <member name="normal" value="2" c:identifier="REGRESS_FOO_LAYER_NORMAL">
+ </member>
+ <member name="top" value="4" c:identifier="REGRESS_FOO_LAYER_TOP">
+ </member>
+ <member name="dock" value="4" c:identifier="REGRESS_FOO_LAYER_DOCK">
+ </member>
+ <member name="fullscreen"
+ value="5"
+ c:identifier="REGRESS_FOO_LAYER_FULLSCREEN">
+ </member>
+ <member name="focused_window"
+ value="6"
+ c:identifier="REGRESS_FOO_LAYER_FOCUSED_WINDOW">
+ </member>
+ <member name="override_redirect"
+ value="7"
+ c:identifier="REGRESS_FOO_LAYER_OVERRIDE_REDIRECT">
+ </member>
+ <member name="last" value="8" c:identifier="REGRESS_FOO_LAYER_LAST">
+ </member>
+ </enumeration>
+ <record name="FooStruct" c:type="RegressFooStruct">
+ <field name="priv" writable="1">
+ <type name="FooStructPrivate" c:type="RegressFooStructPrivate*"/>
+ </field>
+ <field name="member" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="FooStructPrivate"
+ c:type="RegressFooStructPrivate"
+ disguised="1">
+ </record>
+ <interface name="FooSubInterface"
+ c:symbol-prefix="foo_sub_interface"
+ c:type="RegressFooSubInterface"
+ glib:type-name="RegressFooSubInterface"
+ glib:get-type="regress_foo_sub_interface_get_type"
+ glib:type-struct="FooSubInterfaceIface">
+ <prerequisite name="FooInterface"/>
+ <virtual-method name="destroy_event">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="do_bar" invoker="do_bar">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="do_baz" invoker="do_baz">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </instance-parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="call"
+ closure="1">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="do_bar" c:identifier="regress_foo_sub_interface_do_bar">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="do_baz" c:identifier="regress_foo_sub_interface_do_baz">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </instance-parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="call"
+ closure="1">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <glib:signal name="destroy-event" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </interface>
+ <record name="FooSubInterfaceIface"
+ c:type="RegressFooSubInterfaceIface"
+ glib:is-gtype-struct-for="FooSubInterface">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="destroy_event">
+ <callback name="destroy_event">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="do_bar">
+ <callback name="do_bar">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="do_baz">
+ <callback name="do_baz">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <class name="FooSubobject"
+ c:symbol-prefix="foo_subobject"
+ c:type="RegressFooSubobject"
+ parent="FooObject"
+ abstract="1"
+ glib:type-name="RegressFooSubobject"
+ glib:get-type="regress_foo_subobject_get_type"
+ glib:type-struct="FooSubobjectClass">
+ <implements name="FooInterface"/>
+ <constructor name="new" c:identifier="regress_foo_subobject_new">
+ <return-value transfer-ownership="full">
+ <type name="FooSubobject" c:type="RegressFooSubobject*"/>
+ </return-value>
+ </constructor>
+ <field name="parent_instance">
+ <type name="FooObject" c:type="RegressFooObject"/>
+ </field>
+ </class>
+ <record name="FooSubobjectClass"
+ c:type="RegressFooSubobjectClass"
+ glib:is-gtype-struct-for="FooSubobject">
+ <field name="parent_class">
+ <type name="FooObjectClass" c:type="RegressFooObjectClass"/>
+ </field>
+ </record>
+ <record name="FooThingWithArray" c:type="RegressFooThingWithArray">
+ <field name="x" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ <field name="y" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ <field name="lines" writable="1">
+ <array zero-terminated="0" c:type="char" fixed-size="80">
+ <type name="gchar" c:type="char"/>
+ </array>
+ </field>
+ <field name="data" writable="1">
+ <type name="guint8" c:type="guchar*"/>
+ </field>
+ </record>
+ <union name="FooUnion" c:type="RegressFooUnion">
+ <field name="regress_foo" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </union>
+ <record name="FooUtilityStruct" c:type="RegressFooUtilityStruct">
+ <field name="bar" writable="1">
+ <type name="Utility.Struct" c:type="UtilityStruct"/>
+ </field>
+ </record>
+ <callback name="FooVarargsCallback"
+ c:type="RegressFooVarargsCallback"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="param" transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <varargs/>
+ </parameter>
+ </parameters>
+ </callback>
+ <constant name="GI_SCANNER_ELSE"
+ value="3"
+ c:type="REGRESS_GI_SCANNER_ELSE">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="GI_SCANNER_IFDEF"
+ value="3"
+ c:type="REGRESS_GI_SCANNER_IFDEF">
+ <type name="gint" c:type="gint"/>
+ </constant>
<constant name="GUINT64_CONSTANT"
value="18446744073709551615"
c:type="REGRESS_GUINT64_CONSTANT">
@@ -66,7 +1980,7 @@ and/or use gtk-doc annotations. -->
<type name="gint" c:type="gint"/>
</constant>
<record name="Intset" c:type="RegressIntset" disguised="1">
- <doc xml:whitespace="preserve">Like telepathy-glib's TpIntset.</doc>
+ <doc xml:space="preserve">Like telepathy-glib's TpIntset.</doc>
</record>
<constant name="LONG_STRING_CONSTANT"
value="TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL,HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO,AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL,POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF,PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
@@ -87,11 +2001,47 @@ and/or use gtk-doc annotations. -->
<type name="gdouble" c:type="double"/>
</field>
</record>
+ <record name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem">
+ <field name="name" writable="1">
+ <array zero-terminated="0" c:type="gchar" fixed-size="32">
+ <type name="gchar" c:type="gchar"/>
+ </array>
+ </field>
+ <method name="set_name"
+ c:identifier="regress_like_xkl_config_item_set_name">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem*"/>
+ </instance-parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <constant name="MAXUINT64"
+ value="18446744073709551615"
+ c:type="REGRESS_MAXUINT64">
+ <type name="guint64" c:type="guint64"/>
+ </constant>
+ <constant name="MININT64"
+ value="-9223372036854775808"
+ c:type="REGRESS_MININT64">
+ <type name="gint64" c:type="gint64"/>
+ </constant>
<constant name="Mixed_Case_Constant"
value="4423"
c:type="REGRESS_Mixed_Case_Constant">
<type name="gint" c:type="gint"/>
</constant>
+ <constant name="NEGATIVE_INT_CONSTANT"
+ value="-42"
+ c:type="REGRESS_NEGATIVE_INT_CONSTANT">
+ <type name="gint" c:type="gint"/>
+ </constant>
<constant name="STRING_CONSTANT"
value="Some String"
c:type="REGRESS_STRING_CONSTANT">
@@ -100,7 +2050,7 @@ and/or use gtk-doc annotations. -->
<record name="SkippedStructure"
c:type="RegressSkippedStructure"
introspectable="0">
- <doc xml:whitespace="preserve">This should be skipped, and moreover, all function which
+ <doc xml:space="preserve">This should be skipped, and moreover, all function which
use it should be.</doc>
<field name="x" writable="1">
<type name="gint" c:type="int"/>
@@ -117,15 +2067,18 @@ use it should be.</doc>
<member name="code1"
value="1"
c:identifier="REGRESS_TEST_ABC_ERROR_CODE1"
- glib:nick="code1"/>
+ glib:nick="code1">
+ </member>
<member name="code2"
value="2"
c:identifier="REGRESS_TEST_ABC_ERROR_CODE2"
- glib:nick="code2"/>
+ glib:nick="code2">
+ </member>
<member name="code3"
value="3"
c:identifier="REGRESS_TEST_ABC_ERROR_CODE3"
- glib:nick="code3"/>
+ glib:nick="code3">
+ </member>
<function name="quark" c:identifier="regress_test_abc_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
@@ -191,12 +2144,20 @@ use it should be.</doc>
<return-value transfer-ownership="full">
<type name="TestBoxed" c:type="RegressTestBoxed*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="TestBoxed" c:type="RegressTestBoxed*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="equals" c:identifier="regress_test_boxed_equals">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="TestBoxed" c:type="RegressTestBoxed*"/>
+ </instance-parameter>
<parameter name="other" transfer-ownership="none">
<type name="TestBoxed" c:type="RegressTestBoxed*"/>
</parameter>
@@ -231,6 +2192,11 @@ use it should be.</doc>
<return-value transfer-ownership="full">
<type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
+ </instance-parameter>
+ </parameters>
</method>
</record>
<record name="TestBoxedC"
@@ -250,6 +2216,55 @@ use it should be.</doc>
</return-value>
</constructor>
</record>
+ <record name="TestBoxedD"
+ c:type="RegressTestBoxedD"
+ glib:type-name="RegressTestBoxedD"
+ glib:get-type="regress_test_boxed_d_get_type"
+ c:symbol-prefix="test_boxed_d">
+ <constructor name="new" c:identifier="regress_test_boxed_d_new">
+ <return-value transfer-ownership="full">
+ <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
+ </return-value>
+ <parameters>
+ <parameter name="a_string" transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="a_int" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="copy" c:identifier="regress_test_boxed_d_copy">
+ <return-value transfer-ownership="full">
+ <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="free" c:identifier="regress_test_boxed_d_free">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_magic" c:identifier="regress_test_boxed_d_get_magic">
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="boxed" transfer-ownership="none">
+ <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
<record name="TestBoxedPrivate"
c:type="RegressTestBoxedPrivate"
disguised="1">
@@ -288,15 +2303,15 @@ use it should be.</doc>
</return-value>
<parameters>
<parameter name="foo" transfer-ownership="none">
- <doc xml:whitespace="preserve">the investment rate</doc>
+ <doc xml:space="preserve">the investment rate</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="bar" transfer-ownership="none">
- <doc xml:whitespace="preserve">how much money</doc>
+ <doc xml:space="preserve">how much money</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="path" transfer-ownership="none">
- <doc xml:whitespace="preserve">Path to file</doc>
+ <doc xml:space="preserve">Path to file</doc>
<type name="filename" c:type="char*"/>
</parameter>
</parameters>
@@ -318,7 +2333,7 @@ use it should be.</doc>
</return-value>
<parameters>
<parameter name="data" transfer-ownership="none">
- <doc xml:whitespace="preserve">a hash table; will be modified</doc>
+ <doc xml:space="preserve">a hash table; will be modified</doc>
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8"/>
<type name="gint"/>
@@ -333,7 +2348,7 @@ use it should be.</doc>
</return-value>
<parameters>
<parameter name="error" transfer-ownership="full">
- <doc xml:whitespace="preserve">GError instance; must be freed by the callback</doc>
+ <doc xml:space="preserve">GError instance; must be freed by the callback</doc>
<type name="GLib.Error" c:type="GError*"/>
</parameter>
</parameters>
@@ -353,34 +2368,44 @@ use it should be.</doc>
glib:error-domain="regress-test-def-error">
<member name="code0"
value="0"
- c:identifier="REGRESS_TEST_DEF_ERROR_CODE0"/>
+ c:identifier="REGRESS_TEST_DEF_ERROR_CODE0">
+ </member>
<member name="code1"
value="1"
- c:identifier="REGRESS_TEST_DEF_ERROR_CODE1"/>
+ c:identifier="REGRESS_TEST_DEF_ERROR_CODE1">
+ </member>
<member name="code2"
value="2"
- c:identifier="REGRESS_TEST_DEF_ERROR_CODE2"/>
+ c:identifier="REGRESS_TEST_DEF_ERROR_CODE2">
+ </member>
</enumeration>
<enumeration name="TestEnum"
glib:type-name="RegressTestEnum"
glib:get-type="regress_test_enum_get_type"
c:type="RegressTestEnum">
+ <doc xml:space="preserve">By purpose, not all members have documentation</doc>
<member name="value1"
value="0"
c:identifier="REGRESS_TEST_VALUE1"
- glib:nick="value1"/>
+ glib:nick="value1">
+ <doc xml:space="preserve">value 1</doc>
+ </member>
<member name="value2"
value="1"
c:identifier="REGRESS_TEST_VALUE2"
- glib:nick="value2"/>
+ glib:nick="value2">
+ <doc xml:space="preserve">value 2</doc>
+ </member>
<member name="value3"
value="-1"
c:identifier="REGRESS_TEST_VALUE3"
- glib:nick="value3"/>
+ glib:nick="value3">
+ </member>
<member name="value4"
value="48"
c:identifier="REGRESS_TEST_VALUE4"
- glib:nick="value4"/>
+ glib:nick="value4">
+ </member>
<function name="param" c:identifier="regress_test_enum_param">
<return-value transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
@@ -393,9 +2418,12 @@ use it should be.</doc>
</function>
</enumeration>
<enumeration name="TestEnumNoGEnum" c:type="RegressTestEnumNoGEnum">
- <member name="evalue1" value="0" c:identifier="REGRESS_TEST_EVALUE1"/>
- <member name="evalue2" value="42" c:identifier="REGRESS_TEST_EVALUE2"/>
- <member name="evalue3" value="48" c:identifier="REGRESS_TEST_EVALUE3"/>
+ <member name="evalue1" value="0" c:identifier="REGRESS_TEST_EVALUE1">
+ </member>
+ <member name="evalue2" value="42" c:identifier="REGRESS_TEST_EVALUE2">
+ </member>
+ <member name="evalue3" value="48" c:identifier="REGRESS_TEST_EVALUE3">
+ </member>
</enumeration>
<enumeration name="TestEnumUnsigned"
glib:type-name="RegressTestEnumUnsigned"
@@ -404,11 +2432,13 @@ use it should be.</doc>
<member name="value1"
value="1"
c:identifier="REGRESS_TEST_UNSIGNED_VALUE1"
- glib:nick="value1"/>
+ glib:nick="value1">
+ </member>
<member name="value2"
value="2147483648"
c:identifier="REGRESS_TEST_UNSIGNED_VALUE2"
- glib:nick="value2"/>
+ glib:nick="value2">
+ </member>
</enumeration>
<enumeration name="TestError"
glib:type-name="RegressTestError"
@@ -418,15 +2448,18 @@ use it should be.</doc>
<member name="code1"
value="1"
c:identifier="REGRESS_TEST_ERROR_CODE1"
- glib:nick="code1"/>
+ glib:nick="code1">
+ </member>
<member name="code2"
value="2"
c:identifier="REGRESS_TEST_ERROR_CODE2"
- glib:nick="code2"/>
+ glib:nick="code2">
+ </member>
<member name="code3"
value="3"
c:identifier="REGRESS_TEST_ERROR_CODE3"
- glib:nick="code3"/>
+ glib:nick="code3">
+ </member>
<function name="quark" c:identifier="regress_test_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
@@ -440,15 +2473,18 @@ use it should be.</doc>
<member name="flag1"
value="1"
c:identifier="TEST_FLAG1"
- glib:nick="flag1"/>
+ glib:nick="flag1">
+ </member>
<member name="flag2"
value="2"
c:identifier="TEST_FLAG2"
- glib:nick="flag2"/>
+ glib:nick="flag2">
+ </member>
<member name="flag3"
value="4"
c:identifier="TEST_FLAG3"
- glib:nick="flag3"/>
+ glib:nick="flag3">
+ </member>
</bitfield>
<class name="TestFloating"
c:symbol-prefix="test_floating"
@@ -459,7 +2495,7 @@ use it should be.</doc>
glib:type-struct="TestFloatingClass">
<constructor name="new" c:identifier="regress_test_floating_new">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">A new floating #RegressTestFloating</doc>
+ <doc xml:space="preserve">A new floating #RegressTestFloating</doc>
<type name="TestFloating" c:type="RegressTestFloating*"/>
</return-value>
</constructor>
@@ -489,16 +2525,30 @@ use it should be.</doc>
glib:get-value-func="regress_test_value_get_fundamental_object">
<method name="ref" c:identifier="regress_test_fundamental_object_ref">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">A new #RegressTestFundamentalObject</doc>
+ <doc xml:space="preserve">A new #RegressTestFundamentalObject</doc>
<type name="TestFundamentalObject"
c:type="RegressTestFundamentalObject*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="fundamental_object"
+ transfer-ownership="none">
+ <type name="TestFundamentalObject"
+ c:type="RegressTestFundamentalObject*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="unref"
c:identifier="regress_test_fundamental_object_unref">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="fundamental_object"
+ transfer-ownership="none">
+ <type name="TestFundamentalObject"
+ c:type="RegressTestFundamentalObject*"/>
+ </instance-parameter>
+ </parameters>
</method>
<field name="instance">
<type name="GObject.TypeInstance" c:type="GTypeInstance"/>
@@ -586,6 +2636,111 @@ use it should be.</doc>
c:type="RegressTestFundamentalObjectClass"/>
</field>
</record>
+ <class name="TestInheritDrawable"
+ c:symbol-prefix="test_inherit_drawable"
+ c:type="RegressTestInheritDrawable"
+ parent="GObject.Object"
+ abstract="1"
+ glib:type-name="RegressTestInheritDrawable"
+ glib:get-type="regress_test_inherit_drawable_get_type"
+ glib:type-struct="TestInheritDrawableClass">
+ <method name="do_foo"
+ c:identifier="regress_test_inherit_drawable_do_foo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="TestInheritDrawable"
+ c:type="RegressTestInheritDrawable*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="do_foo_maybe_throw"
+ c:identifier="regress_test_inherit_drawable_do_foo_maybe_throw"
+ throws="1">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="TestInheritDrawable"
+ c:type="RegressTestInheritDrawable*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_origin"
+ c:identifier="regress_test_inherit_drawable_get_origin">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="TestInheritDrawable"
+ c:type="RegressTestInheritDrawable*"/>
+ </instance-parameter>
+ <parameter name="x"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ <parameter name="y"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_size"
+ c:identifier="regress_test_inherit_drawable_get_size">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="TestInheritDrawable"
+ c:type="RegressTestInheritDrawable*"/>
+ </instance-parameter>
+ <parameter name="width"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <type name="guint" c:type="guint*"/>
+ </parameter>
+ <parameter name="height"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <type name="guint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ </class>
+ <record name="TestInheritDrawableClass"
+ c:type="RegressTestInheritDrawableClass"
+ glib:is-gtype-struct-for="TestInheritDrawable">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="TestInheritPixmapObjectClass"
+ c:type="RegressTestInheritPixmapObjectClass">
+ <field name="parent_class" writable="1">
+ <type name="TestInheritDrawableClass"
+ c:type="RegressTestInheritDrawableClass"/>
+ </field>
+ </record>
<interface name="TestInterface"
c:symbol-prefix="test_interface"
c:type="RegressTestInterface"
@@ -618,7 +2773,7 @@ use it should be.</doc>
</return-value>
<parameters>
<parameter name="obj" transfer-ownership="none">
- <doc xml:whitespace="preserve">A #RegressTestObj</doc>
+ <doc xml:space="preserve">A #RegressTestObj</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
</parameters>
@@ -667,7 +2822,7 @@ use it should be.</doc>
caller-allocates="0"
transfer-ownership="full"
allow-none="1">
- <doc xml:whitespace="preserve">A #RegressTestObj</doc>
+ <doc xml:space="preserve">A #RegressTestObj</doc>
<type name="TestObj" c:type="RegressTestObj**"/>
</parameter>
</parameters>
@@ -702,36 +2857,47 @@ use it should be.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="two" transfer-ownership="none" allow-none="1">
- <doc xml:whitespace="preserve">Another object</doc>
+ <doc xml:space="preserve">Another object</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="matrix" invoker="do_matrix">
- <doc xml:whitespace="preserve">This method is virtual. Notably its name differs from the virtual
+ <doc xml:space="preserve">This method is virtual. Notably its name differs from the virtual
slot name, which makes it useful for testing bindings handle this
case.</doc>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="somestr" transfer-ownership="none">
- <doc xml:whitespace="preserve">Meaningless string</doc>
+ <doc xml:space="preserve">Meaningless string</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</virtual-method>
<method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
- <doc xml:whitespace="preserve">This method is virtual. Notably its name differs from the virtual
+ <doc xml:space="preserve">This method is virtual. Notably its name differs from the virtual
slot name, which makes it useful for testing bindings handle this
case.</doc>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="somestr" transfer-ownership="none">
- <doc xml:whitespace="preserve">Meaningless string</doc>
+ <doc xml:space="preserve">Meaningless string</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
@@ -741,35 +2907,66 @@ case.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="emit_sig_with_int64"
c:identifier="regress_test_obj_emit_sig_with_int64">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="emit_sig_with_obj"
c:identifier="regress_test_obj_emit_sig_with_obj">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="emit_sig_with_uint64"
c:identifier="regress_test_obj_emit_sig_with_uint64">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="forced_method" c:identifier="regress_forced_method">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="instance_method"
c:identifier="regress_test_obj_instance_method">
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="instance_method_callback"
c:identifier="regress_test_obj_instance_method_callback">
@@ -777,6 +2974,9 @@ case.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="callback"
transfer-ownership="none"
allow-none="1"
@@ -790,6 +2990,9 @@ case.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="bare" transfer-ownership="none" allow-none="1">
<type name="GObject.Object" c:type="GObject*"/>
</parameter>
@@ -798,25 +3001,29 @@ case.</doc>
<method name="skip_inout_param"
c:identifier="regress_test_obj_skip_inout_param"
throws="1">
- <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
+ <doc xml:space="preserve">Check that the out value is skipped</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+ <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj.</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="a" transfer-ownership="none">
- <doc xml:whitespace="preserve">Parameter.</doc>
+ <doc xml:space="preserve">Parameter.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="out_b"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Return value.</doc>
+ <doc xml:space="preserve">Return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="c" transfer-ownership="none">
- <doc xml:whitespace="preserve">Other parameter.</doc>
+ <doc xml:space="preserve">Other parameter.</doc>
<type name="gdouble" c:type="gdouble"/>
</parameter>
<parameter name="inout_d"
@@ -824,22 +3031,22 @@ case.</doc>
caller-allocates="0"
transfer-ownership="full"
skip="1">
- <doc xml:whitespace="preserve">Will be incremented.</doc>
+ <doc xml:space="preserve">Will be incremented.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="out_sum"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Return value.</doc>
+ <doc xml:space="preserve">Return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="num1" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="num2" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
@@ -847,14 +3054,18 @@ case.</doc>
<method name="skip_out_param"
c:identifier="regress_test_obj_skip_out_param"
throws="1">
- <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
+ <doc xml:space="preserve">Check that the out value is skipped</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+ <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj.</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="a" transfer-ownership="none">
- <doc xml:whitespace="preserve">Parameter.</doc>
+ <doc xml:space="preserve">Parameter.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="out_b"
@@ -862,33 +3073,33 @@ case.</doc>
caller-allocates="0"
transfer-ownership="full"
skip="1">
- <doc xml:whitespace="preserve">Return value.</doc>
+ <doc xml:space="preserve">Return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="c" transfer-ownership="none">
- <doc xml:whitespace="preserve">Other parameter.</doc>
+ <doc xml:space="preserve">Other parameter.</doc>
<type name="gdouble" c:type="gdouble"/>
</parameter>
<parameter name="inout_d"
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Will be incremented.</doc>
+ <doc xml:space="preserve">Will be incremented.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="out_sum"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Return value.</doc>
+ <doc xml:space="preserve">Return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="num1" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="num2" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
@@ -896,47 +3107,51 @@ case.</doc>
<method name="skip_param"
c:identifier="regress_test_obj_skip_param"
throws="1">
- <doc xml:whitespace="preserve">Check that a parameter is skipped</doc>
+ <doc xml:space="preserve">Check that a parameter is skipped</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+ <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj.</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="a" transfer-ownership="none">
- <doc xml:whitespace="preserve">Parameter.</doc>
+ <doc xml:space="preserve">Parameter.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="out_b"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Return value.</doc>
+ <doc xml:space="preserve">Return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="c" transfer-ownership="none" skip="1">
- <doc xml:whitespace="preserve">Other parameter.</doc>
+ <doc xml:space="preserve">Other parameter.</doc>
<type name="gdouble" c:type="gdouble"/>
</parameter>
<parameter name="inout_d"
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Will be incremented.</doc>
+ <doc xml:space="preserve">Will be incremented.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="out_sum"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Return value.</doc>
+ <doc xml:space="preserve">Return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="num1" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="num2" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
@@ -944,47 +3159,51 @@ case.</doc>
<method name="skip_return_val"
c:identifier="regress_test_obj_skip_return_val"
throws="1">
- <doc xml:whitespace="preserve">Check that the return value is skipped</doc>
+ <doc xml:space="preserve">Check that the return value is skipped</doc>
<return-value transfer-ownership="none" skip="1">
- <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+ <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressTestObj</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="a" transfer-ownership="none">
- <doc xml:whitespace="preserve">Parameter.</doc>
+ <doc xml:space="preserve">Parameter.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="out_b"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">A return value.</doc>
+ <doc xml:space="preserve">A return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="c" transfer-ownership="none">
- <doc xml:whitespace="preserve">Other parameter.</doc>
+ <doc xml:space="preserve">Other parameter.</doc>
<type name="gdouble" c:type="gdouble"/>
</parameter>
<parameter name="inout_d"
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Will be incremented.</doc>
+ <doc xml:space="preserve">Will be incremented.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="out_sum"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">Return value.</doc>
+ <doc xml:space="preserve">Return value.</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="num1" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="num2" transfer-ownership="none">
- <doc xml:whitespace="preserve">Number.</doc>
+ <doc xml:space="preserve">Number.</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
@@ -992,15 +3211,19 @@ case.</doc>
<method name="skip_return_val_no_out"
c:identifier="regress_test_obj_skip_return_val_no_out"
throws="1">
- <doc xml:whitespace="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
+ <doc xml:space="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
raise an error.</doc>
<return-value transfer-ownership="none" skip="1">
- <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+ <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressTestObj</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="a" transfer-ownership="none">
- <doc xml:whitespace="preserve">Parameter.</doc>
+ <doc xml:space="preserve">Parameter.</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
@@ -1011,6 +3234,10 @@ raise an error.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -1043,11 +3270,15 @@ raise an error.</doc>
<method name="torture_signature_1"
c:identifier="regress_test_obj_torture_signature_1"
throws="1">
- <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
+ <doc xml:space="preserve">This function throws an error if m is odd.</doc>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -1084,13 +3315,13 @@ raise an error.</doc>
<type name="TestBoxed"/>
</property>
<property name="double" writable="1" transfer-ownership="none">
- <type name="gdouble"/>
+ <type name="gdouble" c:type="gdouble"/>
</property>
<property name="float" writable="1" transfer-ownership="none">
- <type name="gfloat"/>
+ <type name="gfloat" c:type="gfloat"/>
</property>
<property name="gtype" writable="1" transfer-ownership="none">
- <type name="GType"/>
+ <type name="GType" c:type="GType"/>
</property>
<property name="hash-table" writable="1" transfer-ownership="container">
<type name="GLib.HashTable">
@@ -1107,20 +3338,20 @@ raise an error.</doc>
</type>
</property>
<property name="int" writable="1" transfer-ownership="none">
- <type name="gint"/>
+ <type name="gint" c:type="gint"/>
</property>
<property name="list" writable="1" transfer-ownership="none">
- <type name="GLib.List">
+ <type name="GLib.List" c:type="gpointer">
<type name="utf8"/>
</type>
</property>
<property name="list-old" writable="1" transfer-ownership="none">
- <type name="GLib.List">
+ <type name="GLib.List" c:type="gpointer">
<type name="utf8"/>
</type>
</property>
<property name="string" writable="1" transfer-ownership="none">
- <type name="utf8"/>
+ <type name="utf8" c:type="gchar*"/>
</property>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
@@ -1164,28 +3395,46 @@ raise an error.</doc>
action="1"
no-hooks="1">
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="cleanup" when="cleanup">
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="first" when="first">
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
</glib:signal>
+ <glib:signal name="sig-with-array-len-prop" when="last">
+ <doc xml:space="preserve">This test signal similar to GSettings::change-event</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="arr" transfer-ownership="none" allow-none="1">
+ <doc xml:space="preserve">numbers, or %NULL</doc>
+ <array length="1" zero-terminated="0" c:type="gpointer">
+ <type name="guint"/>
+ </array>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <doc xml:space="preserve">length of @arr, or 0</doc>
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
<glib:signal name="sig-with-array-prop" when="last">
- <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
+ <doc xml:space="preserve">This test signal is like TelepathyGlib's
TpChannel:: group-members-changed-detailed:</doc>
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="arr" transfer-ownership="none">
- <doc xml:whitespace="preserve">numbers</doc>
+ <doc xml:space="preserve">numbers</doc>
<array name="GLib.Array">
<type name="guint"/>
</array>
@@ -1194,20 +3443,20 @@ raise an error.</doc>
</glib:signal>
<glib:signal name="sig-with-foreign-struct" when="last">
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
- <doc xml:whitespace="preserve">A cairo context.</doc>
+ <doc xml:space="preserve">A cairo context.</doc>
<type name="cairo.Context"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="sig-with-hash-prop" when="last">
- <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
+ <doc xml:space="preserve">This test signal is like TelepathyGlib's
TpAccount::status-changed</doc>
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="hash" transfer-ownership="none">
@@ -1219,39 +3468,52 @@ raise an error.</doc>
</parameters>
</glib:signal>
<glib:signal name="sig-with-int64-prop" when="last">
- <doc xml:whitespace="preserve">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
+ <doc xml:space="preserve">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
the introspection client langage.</doc>
<return-value transfer-ownership="none">
- <type name="gint64"/>
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="i" transfer-ownership="none">
+ <doc xml:space="preserve">an integer</doc>
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="sig-with-intarray-ret" when="last">
+ <return-value transfer-ownership="full">
+ <array name="GLib.Array">
+ <type name="gint"/>
+ </array>
</return-value>
<parameters>
<parameter name="i" transfer-ownership="none">
- <doc xml:whitespace="preserve">an integer</doc>
- <type name="gint64"/>
+ <doc xml:space="preserve">an integer</doc>
+ <type name="gint" c:type="gint"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="sig-with-obj" when="last">
- <doc xml:whitespace="preserve">Test transfer none GObject as a param (tests refcounting).
+ <doc xml:space="preserve">Test transfer none GObject as a param (tests refcounting).
Use with regress_test_obj_emit_sig_with_obj</doc>
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="obj" transfer-ownership="none">
- <doc xml:whitespace="preserve">A newly created RegressTestObj</doc>
+ <doc xml:space="preserve">A newly created RegressTestObj</doc>
<type name="GObject.Object"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="sig-with-strv" when="last">
- <doc xml:whitespace="preserve">Test GStrv as a param.</doc>
+ <doc xml:space="preserve">Test GStrv as a param.</doc>
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="strs" transfer-ownership="none">
- <doc xml:whitespace="preserve">strings</doc>
+ <doc xml:space="preserve">strings</doc>
<array>
<type name="utf8"/>
</array>
@@ -1259,21 +3521,21 @@ Use with regress_test_obj_emit_sig_with_obj</doc>
</parameters>
</glib:signal>
<glib:signal name="sig-with-uint64-prop" when="last">
- <doc xml:whitespace="preserve">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
+ <doc xml:space="preserve">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
the introspection client langage.</doc>
<return-value transfer-ownership="none">
- <type name="guint64"/>
+ <type name="guint64" c:type="guint64"/>
</return-value>
<parameters>
<parameter name="i" transfer-ownership="none">
- <doc xml:whitespace="preserve">an integer</doc>
- <type name="guint64"/>
+ <doc xml:space="preserve">an integer</doc>
+ <type name="guint64" c:type="guint64"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="test" when="last" no-recurse="1" no-hooks="1">
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="test-with-static-scope-arg"
@@ -1281,7 +3543,7 @@ the introspection client langage.</doc>
no-recurse="1"
no-hooks="1">
<return-value transfer-ownership="none">
- <type name="none"/>
+ <type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="object" transfer-ownership="none">
@@ -1303,10 +3565,11 @@ the introspection client langage.</doc>
</return-value>
<parameters>
<parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
<parameter name="somestr" transfer-ownership="none">
- <doc xml:whitespace="preserve">Meaningless string</doc>
+ <doc xml:space="preserve">Meaningless string</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
@@ -1322,7 +3585,7 @@ the introspection client langage.</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
<parameter name="two" transfer-ownership="none" allow-none="1">
- <doc xml:whitespace="preserve">Another object</doc>
+ <doc xml:space="preserve">Another object</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
</parameters>
@@ -1357,15 +3620,18 @@ the introspection client langage.</doc>
<member name="code1"
value="1"
c:identifier="REGRESS_TEST_OTHER_ERROR_CODE1"
- glib:nick="code1"/>
+ glib:nick="code1">
+ </member>
<member name="code2"
value="2"
c:identifier="REGRESS_TEST_OTHER_ERROR_CODE2"
- glib:nick="code2"/>
+ glib:nick="code2">
+ </member>
<member name="code3"
value="3"
c:identifier="REGRESS_TEST_OTHER_ERROR_CODE3"
- glib:nick="code3"/>
+ glib:nick="code3">
+ </member>
<function name="quark"
c:identifier="regress_test_unconventional_error_quark">
<return-value transfer-ownership="none">
@@ -1376,10 +3642,12 @@ the introspection client langage.</doc>
<bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
<member name="public_enum_before"
value="1"
- c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE"/>
+ c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE">
+ </member>
<member name="public_enum_after"
value="4"
- c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER"/>
+ c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER">
+ </member>
</bitfield>
<record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
<field name="this_is_public_before" writable="1">
@@ -1392,6 +3660,20 @@ the introspection client langage.</doc>
<type name="gint" c:type="gint"/>
</field>
</record>
+ <enumeration name="TestReferenceEnum" c:type="RegressTestReferenceEnum">
+ <member name="0" value="4" c:identifier="REGRESS_TEST_REFERENCE_0">
+ </member>
+ <member name="1" value="2" c:identifier="REGRESS_TEST_REFERENCE_1">
+ </member>
+ <member name="2" value="54" c:identifier="REGRESS_TEST_REFERENCE_2">
+ </member>
+ <member name="3" value="4" c:identifier="REGRESS_TEST_REFERENCE_3">
+ </member>
+ <member name="4" value="216" c:identifier="REGRESS_TEST_REFERENCE_4">
+ </member>
+ <member name="5" value="-217" c:identifier="REGRESS_TEST_REFERENCE_5">
+ </member>
+ </enumeration>
<record name="TestSimpleBoxedA"
c:type="RegressTestSimpleBoxedA"
glib:type-name="RegressTestSimpleBoxedA"
@@ -1413,12 +3695,20 @@ the introspection client langage.</doc>
<return-value transfer-ownership="full">
<type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="a" transfer-ownership="none">
+ <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
+ <instance-parameter name="a" transfer-ownership="none">
+ <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
+ </instance-parameter>
<parameter name="other_a" transfer-ownership="none">
<type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
</parameter>
@@ -1447,6 +3737,11 @@ the introspection client langage.</doc>
<return-value transfer-ownership="full">
<type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
</return-value>
+ <parameters>
+ <instance-parameter name="b" transfer-ownership="none">
+ <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
+ </instance-parameter>
+ </parameters>
</method>
</record>
<callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
@@ -1468,16 +3763,20 @@ the introspection client langage.</doc>
<type name="TestEnum" c:type="RegressTestEnum"/>
</field>
<method name="clone" c:identifier="regress_test_struct_a_clone">
- <doc xml:whitespace="preserve">Make a copy of a RegressTestStructA</doc>
+ <doc xml:space="preserve">Make a copy of a RegressTestStructA</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="a" transfer-ownership="none">
+ <doc xml:space="preserve">the structure</doc>
+ <type name="TestStructA" c:type="RegressTestStructA*"/>
+ </instance-parameter>
<parameter name="a_out"
direction="out"
caller-allocates="1"
transfer-ownership="none">
- <doc xml:whitespace="preserve">the cloned structure</doc>
+ <doc xml:space="preserve">the cloned structure</doc>
<type name="TestStructA" c:type="RegressTestStructA*"/>
</parameter>
</parameters>
@@ -1491,11 +3790,11 @@ the introspection client langage.</doc>
direction="out"
caller-allocates="1"
transfer-ownership="none">
- <doc xml:whitespace="preserve">the structure that is to be filled</doc>
+ <doc xml:space="preserve">the structure that is to be filled</doc>
<type name="TestStructA" c:type="RegressTestStructA*"/>
</parameter>
<parameter name="string" transfer-ownership="none">
- <doc xml:whitespace="preserve">ignored</doc>
+ <doc xml:space="preserve">ignored</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
@@ -1509,16 +3808,20 @@ the introspection client langage.</doc>
<type name="TestStructA" c:type="RegressTestStructA"/>
</field>
<method name="clone" c:identifier="regress_test_struct_b_clone">
- <doc xml:whitespace="preserve">Make a copy of a RegressTestStructB</doc>
+ <doc xml:space="preserve">Make a copy of a RegressTestStructB</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="b" transfer-ownership="none">
+ <doc xml:space="preserve">the structure</doc>
+ <type name="TestStructB" c:type="RegressTestStructB*"/>
+ </instance-parameter>
<parameter name="b_out"
direction="out"
caller-allocates="1"
transfer-ownership="none">
- <doc xml:whitespace="preserve">the cloned structure</doc>
+ <doc xml:space="preserve">the cloned structure</doc>
<type name="TestStructB" c:type="RegressTestStructB*"/>
</parameter>
</parameters>
@@ -1632,6 +3935,12 @@ the introspection client langage.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="str" transfer-ownership="none">
+ <type name="TestStructFixedArray"
+ c:type="RegressTestStructFixedArray*"/>
+ </instance-parameter>
+ </parameters>
</method>
</record>
<class name="TestSubObj"
@@ -1651,11 +3960,21 @@ the introspection client langage.</doc>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestSubObj" c:type="RegressTestSubObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestSubObj" c:type="RegressTestSubObj*"/>
+ </instance-parameter>
+ </parameters>
</method>
<field name="parent_instance">
<type name="TestObj" c:type="RegressTestObj"/>
@@ -1696,6 +4015,11 @@ the introspection client langage.</doc>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
+ <parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
+ </instance-parameter>
+ </parameters>
</method>
<method name="set_testbool"
c:identifier="regress_test_wi_802_1x_set_testbool">
@@ -1703,13 +4027,16 @@ the introspection client langage.</doc>
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="obj" transfer-ownership="none">
+ <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
+ </instance-parameter>
<parameter name="v" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<property name="testbool" writable="1" transfer-ownership="none">
- <type name="gboolean"/>
+ <type name="gboolean" c:type="gboolean"/>
</property>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
@@ -1744,19 +4071,549 @@ the introspection client langage.</doc>
</parameter>
</parameters>
</function>
+ <function name="annotation_attribute_func"
+ c:identifier="regress_annotation_attribute_func">
+ <return-value transfer-ownership="none">
+ <attribute name="some.other.annotation" value="value2"/>
+ <attribute name="yet.another.annotation" value="another_value"/>
+ <doc xml:space="preserve">The return value.</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressAnnotationObject.</doc>
+ <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <attribute name="some.annotation" value="value"/>
+ <attribute name="another.annotation" value="blahvalue"/>
+ <doc xml:space="preserve">Some data.</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_custom_destroy"
+ c:identifier="regress_annotation_custom_destroy">
+ <doc xml:space="preserve">Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="1">
+ <doc xml:space="preserve">Destroy notification</doc>
+ <type name="AnnotationCallback" c:type="RegressAnnotationCallback"/>
+ </parameter>
+ <parameter name="destroy"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2">
+ <type name="AnnotationNotifyFunc"
+ c:type="RegressAnnotationNotifyFunc"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_get_source_file"
+ c:identifier="regress_annotation_get_source_file">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">Source file</doc>
+ <type name="filename" c:type="char*"/>
+ </return-value>
+ </function>
+ <function name="annotation_init" c:identifier="regress_annotation_init">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="argc"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">The number of args.</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ <parameter name="argv"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">The arguments.</doc>
+ <array length="0" zero-terminated="0" c:type="char***">
+ <type name="utf8" c:type="char**"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_invalid_regress_annotation"
+ c:identifier="regress_annotation_invalid_regress_annotation">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="foo" transfer-ownership="none">
+ <doc xml:space="preserve">some text (e.g. example) or else</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_ptr_array"
+ c:identifier="regress_annotation_ptr_array">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="array" transfer-ownership="none">
+ <doc xml:space="preserve">the array</doc>
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="GObject.Value"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_return_array"
+ c:identifier="regress_annotation_return_array">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">The return value</doc>
+ <array length="0" zero-terminated="0" c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="length"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">Number of return values</doc>
+ <type name="gint" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_return_filename"
+ c:identifier="regress_annotation_return_filename">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">An annotated filename</doc>
+ <type name="filename" c:type="gchar*"/>
+ </return-value>
+ </function>
+ <function name="annotation_set_source_file"
+ c:identifier="regress_annotation_set_source_file">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fname" transfer-ownership="none">
+ <doc xml:space="preserve">Source file</doc>
+ <type name="filename" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_space_after_comment_bug631690"
+ c:identifier="regress_annotation_space_after_comment_bug631690">
+ <doc xml:space="preserve">Explicitly test having a space after the ** here.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="annotation_string_array_length"
+ c:identifier="regress_annotation_string_array_length">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="n_properties" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="properties" transfer-ownership="none">
+ <array length="0" zero-terminated="0" c:type="gchar*">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_string_zero_terminated"
+ c:identifier="regress_annotation_string_zero_terminated">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">The return value</doc>
+ <array c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </function>
+ <function name="annotation_string_zero_terminated_out"
+ c:identifier="regress_annotation_string_zero_terminated_out">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="out"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <array c:type="char***">
+ <type name="utf8" c:type="char**"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="annotation_test_parsing_bug630862"
+ c:identifier="regress_annotation_test_parsing_bug630862">
+ <doc xml:space="preserve">See https://bugzilla.gnome.org/show_bug.cgi?id=630862</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">An object, note the colon:in here</doc>
+ <type name="GObject.Object" c:type="GObject*"/>
+ </return-value>
+ </function>
+ <function name="annotation_transfer_floating"
+ c:identifier="regress_annotation_transfer_floating">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">A floating object</doc>
+ <type name="GObject.Object" c:type="GObject*"/>
+ </return-value>
+ </function>
+ <function name="annotation_versioned"
+ c:identifier="regress_annotation_versioned"
+ version="0.6">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
<function name="atest_error_quark"
c:identifier="regress_atest_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
+ <function name="foo_async_ready_callback"
+ c:identifier="regress_foo_async_ready_callback">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ allow-none="1"
+ scope="async"
+ closure="2">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_destroy_notify_callback"
+ c:identifier="regress_foo_destroy_notify_callback">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="notified"
+ closure="1"
+ destroy="2">
+ <type name="FooCallback" c:type="RegressFooCallback"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="destroy" transfer-ownership="none" scope="async">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_enum_type_method"
+ c:identifier="regress_foo_enum_type_method"
+ moved-to="FooEnumType.method">
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="regress_foo_enum" transfer-ownership="none">
+ <type name="FooEnumType" c:type="RegressFooEnumType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_enum_type_returnv"
+ c:identifier="regress_foo_enum_type_returnv"
+ moved-to="FooEnumType.returnv">
+ <return-value transfer-ownership="none">
+ <type name="FooEnumType" c:type="RegressFooEnumType"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_error_quark"
+ c:identifier="regress_foo_error_quark"
+ moved-to="FooError.quark">
+ <return-value transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ </function>
+ <function name="foo_init" c:identifier="regress_foo_init">
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ </function>
+ <function name="foo_interface_static_method"
+ c:identifier="regress_foo_interface_static_method"
+ moved-to="FooInterface.static_method">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_method_external_references"
+ c:identifier="regress_foo_method_external_references">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Utility.Object" c:type="UtilityObject*"/>
+ </parameter>
+ <parameter name="e" transfer-ownership="none">
+ <type name="Utility.EnumType" c:type="UtilityEnumType"/>
+ </parameter>
+ <parameter name="f" transfer-ownership="none">
+ <type name="Utility.FlagType" c:type="UtilityFlagType"/>
+ </parameter>
+ <parameter name="s" transfer-ownership="none">
+ <type name="Utility.Struct" c:type="UtilityStruct"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_not_a_constructor_new"
+ c:identifier="regress_foo_not_a_constructor_new">
+ <doc xml:space="preserve">This should be scanned as a top-level function, and shouldn't cause
+a "Can't find matching type for constructor" warning.</doc>
+ <return-value transfer-ownership="none">
+ <type name="FooObject" c:type="RegressFooObject*"/>
+ </return-value>
+ </function>
+ <function name="foo_rectangle_new"
+ c:identifier="regress_foo_rectangle_new"
+ moved-to="FooRectangle.new"
+ introspectable="0">
+ <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
+it because it's not a boxed type.</doc>
+ <return-value>
+ <type name="FooRectangle" c:type="RegressFooRectangle*"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_skip_me"
+ c:identifier="regress_foo_skip_me"
+ introspectable="0">
+ <doc xml:space="preserve">Does something that's only interesting from C and should not be
+exposed to language bindings.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fs" transfer-ownership="none">
+ <doc xml:space="preserve">a #RegressFooSkippable</doc>
+ <type name="FooSkippable" c:type="RegressFooSkippable"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_some_variant"
+ c:identifier="regress_foo_some_variant"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_some_variant_ptr"
+ c:identifier="regress_foo_some_variant_ptr"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <type name="va_list" c:type="va_list*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_array" c:identifier="regress_foo_test_array">
+ <return-value transfer-ownership="container">
+ <array name="GLib.Array" c:type="GArray*">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </function>
+ <function name="foo_test_const_char_param"
+ c:identifier="regress_foo_test_const_char_param">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="param" transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_const_char_retval"
+ c:identifier="regress_foo_test_const_char_retval">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </return-value>
+ </function>
+ <function name="foo_test_const_struct_param"
+ c:identifier="regress_foo_test_const_struct_param">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="param" transfer-ownership="none">
+ <type name="FooStruct" c:type="const RegressFooStruct*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_const_struct_retval"
+ c:identifier="regress_foo_test_const_struct_retval">
+ <return-value transfer-ownership="none">
+ <type name="FooStruct" c:type="const RegressFooStruct*"/>
+ </return-value>
+ </function>
+ <function name="foo_test_string_array"
+ c:identifier="regress_foo_test_string_array">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="array" transfer-ownership="none">
+ <array c:type="char**">
+ <type name="utf8" c:type="char*"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_string_array_with_g"
+ c:identifier="regress_foo_test_string_array_with_g">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="array" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_unsigned_qualifier"
+ c:identifier="regress_foo_test_unsigned_qualifier">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="unsigned_param" transfer-ownership="none">
+ <type name="guint" c:type="unsigned int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_unsigned_type"
+ c:identifier="regress_foo_test_unsigned_type">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="unsigned_param" transfer-ownership="none">
+ <type name="guint" c:type="unsigned"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_varargs_callback"
+ c:identifier="regress_foo_test_varargs_callback"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="i" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="callback" transfer-ownership="none">
+ <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_varargs_callback2"
+ c:identifier="regress_foo_test_varargs_callback2"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callback" transfer-ownership="none">
+ <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="foo_test_varargs_callback3"
+ c:identifier="regress_foo_test_varargs_callback3"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callback" transfer-ownership="none">
+ <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
+ </parameter>
+ <parameter name="callback2" transfer-ownership="none">
+ <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="obj" transfer-ownership="none" allow-none="1">
- <doc xml:whitespace="preserve">A #RegressTestObj</doc>
+ <doc xml:space="preserve">A #RegressTestObj</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
</parameters>
@@ -1771,25 +4628,25 @@ the introspection client langage.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">A flags value</doc>
+ <doc xml:space="preserve">A flags value</doc>
<type name="TestFlags" c:type="RegressTestFlags*"/>
</parameter>
</parameters>
</function>
<function name="has_parameter_named_attrs"
c:identifier="regress_has_parameter_named_attrs">
- <doc xml:whitespace="preserve">This test case mirrors GnomeKeyringPasswordSchema from
+ <doc xml:space="preserve">This test case mirrors GnomeKeyringPasswordSchema from
libgnome-keyring.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="foo" transfer-ownership="none">
- <doc xml:whitespace="preserve">some int</doc>
+ <doc xml:space="preserve">some int</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="attributes" transfer-ownership="none">
- <doc xml:whitespace="preserve">list of attributes</doc>
+ <doc xml:space="preserve">list of attributes</doc>
<array zero-terminated="0" c:type="gpointer" fixed-size="32">
<type name="guint32" c:type="gpointer"/>
</array>
@@ -1876,7 +4733,7 @@ libgnome-keyring.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">An array of #RegressTestObj</doc>
+ <doc xml:space="preserve">An array of #RegressTestObj</doc>
<array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
<type name="TestObj" c:type="RegressTestObj**"/>
</array>
@@ -1886,12 +4743,12 @@ libgnome-keyring.</doc>
<function name="test_array_fixed_size_int_in"
c:identifier="regress_test_array_fixed_size_int_in">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">the sum of the items in @ints</doc>
+ <doc xml:space="preserve">the sum of the items in @ints</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<parameter name="ints" transfer-ownership="none">
- <doc xml:whitespace="preserve">a list of 5 integers</doc>
+ <doc xml:space="preserve">a list of 5 integers</doc>
<array zero-terminated="0" c:type="int*" fixed-size="5">
<type name="gint" c:type="int"/>
</array>
@@ -1908,7 +4765,7 @@ libgnome-keyring.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
+ <doc xml:space="preserve">a list of 5 integers ranging from 0 to 4</doc>
<array zero-terminated="0" c:type="int**" fixed-size="5">
<type name="gint" c:type="int*"/>
</array>
@@ -1918,7 +4775,7 @@ libgnome-keyring.</doc>
<function name="test_array_fixed_size_int_return"
c:identifier="regress_test_array_fixed_size_int_return">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
+ <doc xml:space="preserve">a list of 5 integers ranging from 0 to 4</doc>
<array zero-terminated="0" c:type="int*" fixed-size="5">
<type name="gint" c:type="int"/>
</array>
@@ -1934,7 +4791,7 @@ libgnome-keyring.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="ints" transfer-ownership="none">
- <doc xml:whitespace="preserve">List of ints</doc>
+ <doc xml:space="preserve">List of ints</doc>
<array length="0" zero-terminated="0" c:type="gint16*">
<type name="gint16" c:type="gint16"/>
</array>
@@ -1951,7 +4808,7 @@ libgnome-keyring.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="ints" transfer-ownership="none">
- <doc xml:whitespace="preserve">List of ints</doc>
+ <doc xml:space="preserve">List of ints</doc>
<array length="0" zero-terminated="0" c:type="gint32*">
<type name="gint32" c:type="gint32"/>
</array>
@@ -1968,7 +4825,7 @@ libgnome-keyring.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="ints" transfer-ownership="none">
- <doc xml:whitespace="preserve">List of ints</doc>
+ <doc xml:space="preserve">List of ints</doc>
<array length="0" zero-terminated="0" c:type="gint64*">
<type name="gint64" c:type="gint64"/>
</array>
@@ -1985,7 +4842,7 @@ libgnome-keyring.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="ints" transfer-ownership="none">
- <doc xml:whitespace="preserve">List of ints</doc>
+ <doc xml:space="preserve">List of ints</doc>
<array length="0" zero-terminated="0" c:type="gint8*">
<type name="gint8" c:type="gint8"/>
</array>
@@ -1995,7 +4852,7 @@ libgnome-keyring.</doc>
<function name="test_array_gtype_in"
c:identifier="regress_test_array_gtype_in">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">string representation of provided types</doc>
+ <doc xml:space="preserve">string representation of provided types</doc>
<type name="utf8" c:type="char*"/>
</return-value>
<parameters>
@@ -2003,7 +4860,7 @@ libgnome-keyring.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="types" transfer-ownership="none">
- <doc xml:whitespace="preserve">List of types</doc>
+ <doc xml:space="preserve">List of types</doc>
<array length="0" zero-terminated="0" c:type="GType*">
<type name="GType" c:type="GType"/>
</array>
@@ -2013,7 +4870,7 @@ libgnome-keyring.</doc>
<function name="test_array_int_full_out"
c:identifier="regress_test_array_int_full_out">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">a new array of integers.</doc>
+ <doc xml:space="preserve">a new array of integers.</doc>
<array length="0" zero-terminated="0" c:type="int*">
<type name="gint" c:type="int"/>
</array>
@@ -2023,7 +4880,7 @@ libgnome-keyring.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">length of the returned array.</doc>
+ <doc xml:space="preserve">length of the returned array.</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
@@ -2038,7 +4895,7 @@ libgnome-keyring.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="ints" transfer-ownership="none">
- <doc xml:whitespace="preserve">List of ints</doc>
+ <doc xml:space="preserve">List of ints</doc>
<array length="0" zero-terminated="0" c:type="int*">
<type name="gint" c:type="int"/>
</array>
@@ -2055,14 +4912,14 @@ libgnome-keyring.</doc>
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">the length of @ints</doc>
+ <doc xml:space="preserve">the length of @ints</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="ints"
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
+ <doc xml:space="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
<array length="0" zero-terminated="0" c:type="int**">
<type name="gint" c:type="int*"/>
</array>
@@ -2072,7 +4929,7 @@ libgnome-keyring.</doc>
<function name="test_array_int_none_out"
c:identifier="regress_test_array_int_none_out">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">a static array of integers.</doc>
+ <doc xml:space="preserve">a static array of integers.</doc>
<array length="0" zero-terminated="0" c:type="int*">
<type name="gint" c:type="int"/>
</array>
@@ -2082,7 +4939,7 @@ libgnome-keyring.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">length of the returned array.</doc>
+ <doc xml:space="preserve">length of the returned array.</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
@@ -2099,7 +4956,7 @@ libgnome-keyring.</doc>
</array>
</parameter>
<parameter name="len" transfer-ownership="none">
- <doc xml:whitespace="preserve">length</doc>
+ <doc xml:space="preserve">length</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
@@ -2123,7 +4980,7 @@ libgnome-keyring.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">length</doc>
+ <doc xml:space="preserve">length</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
@@ -2138,14 +4995,14 @@ libgnome-keyring.</doc>
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">the length of @ints</doc>
+ <doc xml:space="preserve">the length of @ints</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="ints"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
+ <doc xml:space="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
<array length="0" zero-terminated="0" c:type="int**">
<type name="gint" c:type="int*"/>
</array>
@@ -2285,7 +5142,7 @@ libgnome-keyring.</doc>
</function>
<function name="test_callback_destroy_notify"
c:identifier="regress_test_callback_destroy_notify">
- <doc xml:whitespace="preserve">Notified - callback persists until a DestroyNotify delegate
+ <doc xml:space="preserve">Notified - callback persists until a DestroyNotify delegate
is invoked.</doc>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
@@ -2307,6 +5164,26 @@ is invoked.</doc>
</parameter>
</parameters>
</function>
+ <function name="test_callback_destroy_notify_no_user_data"
+ c:identifier="regress_test_callback_destroy_notify_no_user_data">
+ <doc xml:space="preserve">Adds a scope notified callback with no user data. This can invoke an error
+condition in bindings which needs to be tested.</doc>
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="notified"
+ destroy="1">
+ <type name="TestCallbackUserData"
+ c:type="RegressTestCallbackUserData"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="async">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="test_callback_thaw_async"
c:identifier="regress_test_callback_thaw_async">
<return-value transfer-ownership="none">
@@ -2315,17 +5192,17 @@ is invoked.</doc>
</function>
<function name="test_callback_thaw_notifications"
c:identifier="regress_test_callback_thaw_notifications">
- <doc xml:whitespace="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
+ <doc xml:space="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
adding up their return values, and removes them, invoking the
corresponding destroy notfications.</doc>
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">Sum of the return values of the invoked callbacks.</doc>
+ <doc xml:space="preserve">Sum of the return values of the invoked callbacks.</doc>
<type name="gint" c:type="int"/>
</return-value>
</function>
<function name="test_callback_user_data"
c:identifier="regress_test_callback_user_data">
- <doc xml:whitespace="preserve">Call - callback parameter persists for the duration of the method
+ <doc xml:space="preserve">Call - callback parameter persists for the duration of the method
call and can be released on return.</doc>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
@@ -2370,16 +5247,16 @@ call and can be released on return.</doc>
<function name="test_closure_variant"
c:identifier="regress_test_closure_variant">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">the return value of @closure</doc>
+ <doc xml:space="preserve">the return value of @closure</doc>
<type name="GLib.Variant" c:type="GVariant*"/>
</return-value>
<parameters>
<parameter name="closure" transfer-ownership="none">
- <doc xml:whitespace="preserve">GClosure which takes one GVariant and returns a GVariant</doc>
+ <doc xml:space="preserve">GClosure which takes one GVariant and returns a GVariant</doc>
<type name="GObject.Closure" c:type="GClosure*"/>
</parameter>
<parameter name="arg" transfer-ownership="none" allow-none="1">
- <doc xml:whitespace="preserve">a GVariant passed as argument to @closure</doc>
+ <doc xml:space="preserve">a GVariant passed as argument to @closure</doc>
<type name="GLib.Variant" c:type="GVariant*"/>
</parameter>
</parameters>
@@ -2428,7 +5305,7 @@ call and can be released on return.</doc>
<function name="test_filename_return"
c:identifier="regress_test_filename_return">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">list of strings</doc>
+ <doc xml:space="preserve">list of strings</doc>
<type name="GLib.SList" c:type="GSList*">
<type name="filename"/>
</type>
@@ -2496,7 +5373,8 @@ call and can be released on return.</doc>
</return-value>
<parameters>
<parameter name="hash" transfer-ownership="none">
- <doc xml:whitespace="preserve">the hash table returned by regress_test_ghash_gvalue_return().</doc>
+ <doc xml:space="preserve">the hash table returned by
+regress_test_ghash_gvalue_return().</doc>
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8"/>
<type name="GObject.Value"/>
@@ -2515,7 +5393,7 @@ call and can be released on return.</doc>
</function>
<function name="test_ghash_nested_everything_return"
c:identifier="regress_test_ghash_nested_everything_return">
- <doc xml:whitespace="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
+ <doc xml:space="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
<return-value transfer-ownership="full">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8"/>
@@ -2528,7 +5406,7 @@ call and can be released on return.</doc>
</function>
<function name="test_ghash_nested_everything_return2"
c:identifier="regress_test_ghash_nested_everything_return2">
- <doc xml:whitespace="preserve">Another way of specifying nested parameterized types: using the
+ <doc xml:space="preserve">Another way of specifying nested parameterized types: using the
element-type annotation.</doc>
<return-value transfer-ownership="full">
<type name="GLib.HashTable" c:type="GHashTable*">
@@ -2815,32 +5693,32 @@ element-type annotation.</doc>
</function>
<function name="test_gvariant_as" c:identifier="regress_test_gvariant_as">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">New variant</doc>
+ <doc xml:space="preserve">New variant</doc>
<type name="GLib.Variant" c:type="GVariant*"/>
</return-value>
</function>
<function name="test_gvariant_asv"
c:identifier="regress_test_gvariant_asv">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">New variant</doc>
+ <doc xml:space="preserve">New variant</doc>
<type name="GLib.Variant" c:type="GVariant*"/>
</return-value>
</function>
<function name="test_gvariant_i" c:identifier="regress_test_gvariant_i">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">New variant</doc>
+ <doc xml:space="preserve">New variant</doc>
<type name="GLib.Variant" c:type="GVariant*"/>
</return-value>
</function>
<function name="test_gvariant_s" c:identifier="regress_test_gvariant_s">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">New variant</doc>
+ <doc xml:space="preserve">New variant</doc>
<type name="GLib.Variant" c:type="GVariant*"/>
</return-value>
</function>
<function name="test_gvariant_v" c:identifier="regress_test_gvariant_v">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">New variant</doc>
+ <doc xml:space="preserve">New variant</doc>
<type name="GLib.Variant" c:type="GVariant*"/>
</return-value>
</function>
@@ -2851,7 +5729,7 @@ element-type annotation.</doc>
</return-value>
<parameters>
<parameter name="data" transfer-ownership="none">
- <doc xml:whitespace="preserve">GHashTable that gets passed to callback</doc>
+ <doc xml:space="preserve">GHashTable that gets passed to callback</doc>
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8"/>
<type name="gint"/>
@@ -2990,7 +5868,7 @@ element-type annotation.</doc>
</function>
<function name="test_multiline_doc_comments"
c:identifier="regress_test_multiline_doc_comments">
- <doc xml:whitespace="preserve">This is a function.
+ <doc xml:space="preserve">This is a function.
It has multiple lines in the documentation.
@@ -3003,7 +5881,7 @@ You will give me your credit card number.</doc>
</function>
<function name="test_nested_parameter"
c:identifier="regress_test_nested_parameter">
- <doc xml:whitespace="preserve">&lt;informaltable&gt;
+ <doc xml:space="preserve">&lt;informaltable&gt;
&lt;tgroup cols="3"&gt;
&lt;thead&gt;
&lt;row&gt;
@@ -3036,7 +5914,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
</return-value>
<parameters>
<parameter name="a" transfer-ownership="none">
- <doc xml:whitespace="preserve">An integer</doc>
+ <doc xml:space="preserve">An integer</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
@@ -3105,6 +5983,21 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
</parameter>
</parameters>
</function>
+ <function name="test_skip_unannotated_callback"
+ c:identifier="regress_test_skip_unannotated_callback"
+ introspectable="0">
+ <doc xml:space="preserve">Should not emit a warning:
+https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callback" transfer-ownership="none">
+ <doc xml:space="preserve">No annotation here</doc>
+ <type name="TestCallback" c:type="RegressTestCallback"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="test_ssize" c:identifier="regress_test_ssize">
<return-value transfer-ownership="none">
<type name="gssize" c:type="gssize"/>
@@ -3126,11 +6019,11 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
direction="out"
caller-allocates="1"
transfer-ownership="none">
- <doc xml:whitespace="preserve">the structure that is to be filled</doc>
+ <doc xml:space="preserve">the structure that is to be filled</doc>
<type name="TestStructA" c:type="RegressTestStructA*"/>
</parameter>
<parameter name="string" transfer-ownership="none">
- <doc xml:whitespace="preserve">ignored</doc>
+ <doc xml:space="preserve">ignored</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
@@ -3238,7 +6131,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
<function name="test_torture_signature_1"
c:identifier="regress_test_torture_signature_1"
throws="1">
- <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
+ <doc xml:space="preserve">This function throws an error if m is odd.</doc>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
@@ -3433,7 +6326,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
<function name="test_utf8_const_return"
c:identifier="regress_test_utf8_const_return">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">UTF-8 string</doc>
+ <doc xml:space="preserve">UTF-8 string</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
</function>
@@ -3453,7 +6346,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
<function name="test_utf8_nonconst_return"
c:identifier="regress_test_utf8_nonconst_return">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">UTF-8 string</doc>
+ <doc xml:space="preserve">UTF-8 string</doc>
<type name="utf8" c:type="char*"/>
</return-value>
</function>
@@ -3499,7 +6392,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
<function name="test_utf8_out_nonconst_return"
c:identifier="regress_test_utf8_out_nonconst_return">
<return-value transfer-ownership="full">
- <doc xml:whitespace="preserve">a copy of "first"</doc>
+ <doc xml:space="preserve">a copy of "first"</doc>
<type name="utf8" c:type="char*"/>
</return-value>
<parameters>
@@ -3507,7 +6400,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">a copy of "second"</doc>
+ <doc xml:space="preserve">a copy of "second"</doc>
<type name="utf8" c:type="char**"/>
</parameter>
</parameters>
@@ -3522,14 +6415,14 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">a copy of "first"</doc>
+ <doc xml:space="preserve">a copy of "first"</doc>
<type name="utf8" c:type="char**"/>
</parameter>
<parameter name="out1"
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <doc xml:whitespace="preserve">a copy of "second"</doc>
+ <doc xml:space="preserve">a copy of "second"</doc>
<type name="utf8" c:type="char**"/>
</parameter>
</parameters>
@@ -3550,12 +6443,12 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
<function name="test_value_return"
c:identifier="regress_test_value_return">
<return-value transfer-ownership="none">
- <doc xml:whitespace="preserve">the int wrapped in a GValue.</doc>
+ <doc xml:space="preserve">the int wrapped in a GValue.</doc>
<type name="GObject.Value" c:type="const GValue*"/>
</return-value>
<parameters>
<parameter name="i" transfer-ownership="none">
- <doc xml:whitespace="preserve">an int</doc>
+ <doc xml:space="preserve">an int</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
@@ -3579,9 +6472,15 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
<function name="test_versioning"
c:identifier="regress_test_versioning"
version="1.32.1"
- deprecated="Use foobar instead"
+ deprecated="1"
deprecated-version="1.33.3"
stability="Unstable">
+ <doc-version xml:space="preserve">Actually, this function was introduced earlier
+ than this, but it didn't do anything before this version.</doc-version>
+ <doc-deprecated xml:space="preserve">This function has been deprecated,
+ because it sucks. Use foobar instead.</doc-deprecated>
+ <doc-stability xml:space="preserve">Maybe someday we will find the time
+ to stabilize this function. Who knows?</doc-stability>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
diff --git a/tests/scanner/Regress-1.0-sections-expected.txt b/tests/scanner/Regress-1.0-sections-expected.txt
new file mode 100644
index 00000000..96df7c59
--- /dev/null
+++ b/tests/scanner/Regress-1.0-sections-expected.txt
@@ -0,0 +1,362 @@
+
+<SECTION>
+<FILE>main</FILE>
+<TITLE>Main</TITLE>
+regress_aliased_caller_alloc
+regress_annotation_attribute_func
+regress_annotation_custom_destroy
+regress_annotation_get_source_file
+regress_annotation_init
+regress_annotation_invalid_regress_annotation
+regress_annotation_ptr_array
+regress_annotation_return_array
+regress_annotation_return_filename
+regress_annotation_set_source_file
+regress_annotation_space_after_comment_bug631690
+regress_annotation_string_array_length
+regress_annotation_string_zero_terminated
+regress_annotation_string_zero_terminated_out
+regress_annotation_test_parsing_bug630862
+regress_annotation_transfer_floating
+regress_annotation_versioned
+regress_atest_error_quark
+regress_foo_async_ready_callback
+regress_foo_destroy_notify_callback
+regress_foo_enum_type_method
+regress_foo_enum_type_returnv
+regress_foo_error_quark
+regress_foo_init
+regress_foo_interface_static_method
+regress_foo_method_external_references
+regress_foo_not_a_constructor_new
+regress_foo_rectangle_new
+regress_foo_skip_me
+regress_foo_some_variant
+regress_foo_some_variant_ptr
+regress_foo_test_array
+regress_foo_test_const_char_param
+regress_foo_test_const_char_retval
+regress_foo_test_const_struct_param
+regress_foo_test_const_struct_retval
+regress_foo_test_string_array
+regress_foo_test_string_array_with_g
+regress_foo_test_unsigned_qualifier
+regress_foo_test_unsigned_type
+regress_foo_test_varargs_callback
+regress_foo_test_varargs_callback2
+regress_foo_test_varargs_callback3
+regress_func_obj_null_in
+regress_global_get_flags_out
+regress_has_parameter_named_attrs
+regress_introspectable_via_alias
+regress_not_introspectable_via_alias
+regress_random_function_with_skipped_structure
+regress_set_abort_on_error
+regress_test_abc_error_quark
+regress_test_array_callback
+regress_test_array_fixed_out_objects
+regress_test_array_fixed_size_int_in
+regress_test_array_fixed_size_int_out
+regress_test_array_fixed_size_int_return
+regress_test_array_gint16_in
+regress_test_array_gint32_in
+regress_test_array_gint64_in
+regress_test_array_gint8_in
+regress_test_array_gtype_in
+regress_test_array_int_full_out
+regress_test_array_int_in
+regress_test_array_int_inout
+regress_test_array_int_none_out
+regress_test_array_int_null_in
+regress_test_array_int_null_out
+regress_test_array_int_out
+regress_test_async_ready_callback
+regress_test_boolean
+regress_test_boolean_false
+regress_test_boolean_true
+regress_test_cairo_context_full_return
+regress_test_cairo_context_none_in
+regress_test_cairo_surface_full_out
+regress_test_cairo_surface_full_return
+regress_test_cairo_surface_none_in
+regress_test_cairo_surface_none_return
+regress_test_callback
+regress_test_callback_async
+regress_test_callback_destroy_notify
+regress_test_callback_destroy_notify_no_user_data
+regress_test_callback_thaw_async
+regress_test_callback_thaw_notifications
+regress_test_callback_user_data
+regress_test_closure
+regress_test_closure_one_arg
+regress_test_closure_variant
+regress_test_date_in_gvalue
+regress_test_def_error_quark
+regress_test_double
+regress_test_enum_param
+regress_test_error_quark
+regress_test_filename_return
+regress_test_float
+regress_test_garray_container_return
+regress_test_garray_full_return
+regress_test_gerror_callback
+regress_test_ghash_container_return
+regress_test_ghash_everything_return
+regress_test_ghash_gvalue_in
+regress_test_ghash_gvalue_return
+regress_test_ghash_nested_everything_return
+regress_test_ghash_nested_everything_return2
+regress_test_ghash_nothing_in
+regress_test_ghash_nothing_in2
+regress_test_ghash_nothing_return
+regress_test_ghash_nothing_return2
+regress_test_ghash_null_in
+regress_test_ghash_null_out
+regress_test_ghash_null_return
+regress_test_glist_container_return
+regress_test_glist_everything_return
+regress_test_glist_nothing_in
+regress_test_glist_nothing_in2
+regress_test_glist_nothing_return
+regress_test_glist_nothing_return2
+regress_test_glist_null_in
+regress_test_glist_null_out
+regress_test_gslist_container_return
+regress_test_gslist_everything_return
+regress_test_gslist_nothing_in
+regress_test_gslist_nothing_in2
+regress_test_gslist_nothing_return
+regress_test_gslist_nothing_return2
+regress_test_gslist_null_in
+regress_test_gslist_null_out
+regress_test_gtype
+regress_test_gvariant_as
+regress_test_gvariant_asv
+regress_test_gvariant_i
+regress_test_gvariant_s
+regress_test_gvariant_v
+regress_test_hash_table_callback
+regress_test_int
+regress_test_int16
+regress_test_int32
+regress_test_int64
+regress_test_int8
+regress_test_int_out_utf8
+regress_test_int_value_arg
+regress_test_long
+regress_test_multi_callback
+regress_test_multi_double_args
+regress_test_multiline_doc_comments
+regress_test_nested_parameter
+regress_test_null_gerror_callback
+regress_test_owned_gerror_callback
+regress_test_short
+regress_test_simple_boxed_a_const_return
+regress_test_simple_callback
+regress_test_size
+regress_test_skip_unannotated_callback
+regress_test_ssize
+regress_test_struct_a_parse
+regress_test_strv_in
+regress_test_strv_in_gvalue
+regress_test_strv_out
+regress_test_strv_out_c
+regress_test_strv_out_container
+regress_test_strv_outarg
+regress_test_timet
+regress_test_torture_signature_0
+regress_test_torture_signature_1
+regress_test_torture_signature_2
+regress_test_uint
+regress_test_uint16
+regress_test_uint32
+regress_test_uint64
+regress_test_uint8
+regress_test_ulong
+regress_test_unconventional_error_quark
+regress_test_unichar
+regress_test_unsigned_enum_param
+regress_test_ushort
+regress_test_utf8_const_in
+regress_test_utf8_const_return
+regress_test_utf8_inout
+regress_test_utf8_nonconst_return
+regress_test_utf8_null_in
+regress_test_utf8_null_out
+regress_test_utf8_out
+regress_test_utf8_out_nonconst_return
+regress_test_utf8_out_out
+regress_test_value_get_fundamental_object
+regress_test_value_return
+regress_test_value_set_fundamental_object
+regress_test_versioning
+
+<SECTION>
+<FILE>regress-annotation-object</FILE>
+<TITLE>RegressAnnotationObject</TITLE>
+RegressAnnotationObject
+RegressAnnotationObjectClass
+regress_annotation_object_allow_none
+regress_annotation_object_calleeowns
+regress_annotation_object_calleesowns
+regress_annotation_object_compute_sum
+regress_annotation_object_compute_sum_n
+regress_annotation_object_compute_sum_nz
+regress_annotation_object_create_object
+regress_annotation_object_do_not_use
+regress_annotation_object_extra_annos
+regress_annotation_object_foreach
+regress_annotation_object_get_hash
+regress_annotation_object_get_objects
+regress_annotation_object_get_strings
+regress_annotation_object_hidden_self
+regress_annotation_object_in
+regress_annotation_object_inout
+regress_annotation_object_inout2
+regress_annotation_object_inout3
+regress_annotation_object_method
+regress_annotation_object_notrans
+regress_annotation_object_out
+regress_annotation_object_parse_args
+regress_annotation_object_set_data
+regress_annotation_object_set_data2
+regress_annotation_object_set_data3
+regress_annotation_object_string_out
+regress_annotation_object_use_buffer
+regress_annotation_object_watch
+regress_annotation_object_watch_full
+regress_annotation_object_with_voidp
+
+<SECTION>
+<FILE>regress-foo-buffer</FILE>
+<TITLE>RegressFooBuffer</TITLE>
+RegressFooBuffer
+RegressFooBufferClass
+regress_foo_buffer_some_method
+
+<SECTION>
+<FILE>regress-foo-interface</FILE>
+<TITLE>RegressFooInterface</TITLE>
+RegressFooInterface
+RegressFooInterfaceIface
+regress_foo_interface_do_regress_foo
+regress_foo_interface_static_method
+
+<SECTION>
+<FILE>regress-foo-object</FILE>
+<TITLE>RegressFooObject</TITLE>
+RegressFooObject
+RegressFooObjectClass
+regress_foo_object_append_new_stack_layer
+regress_foo_object_dup_name
+regress_foo_object_external_type
+regress_foo_object_get_name
+regress_foo_object_handle_glyph
+regress_foo_object_is_it_time_yet
+regress_foo_object_new_cookie
+regress_foo_object_read
+regress_foo_object_skipped_method
+regress_foo_object_take_all
+regress_foo_object_various
+regress_foo_object_virtual_method
+regress_foo_object_a_global_method
+regress_foo_object_get_default
+regress_foo_object_static_meth
+
+<SECTION>
+<FILE>regress-foo-other-object</FILE>
+<TITLE>RegressFooOtherObject</TITLE>
+RegressFooOtherObject
+RegressFooOtherObjectClass
+
+<SECTION>
+<FILE>regress-foo-sub-interface</FILE>
+<TITLE>RegressFooSubInterface</TITLE>
+RegressFooSubInterface
+RegressFooSubInterfaceIface
+regress_foo_sub_interface_do_bar
+regress_foo_sub_interface_do_baz
+
+<SECTION>
+<FILE>regress-foo-subobject</FILE>
+<TITLE>RegressFooSubobject</TITLE>
+RegressFooSubobject
+RegressFooSubobjectClass
+
+<SECTION>
+<FILE>regress-test-floating</FILE>
+<TITLE>RegressTestFloating</TITLE>
+RegressTestFloating
+RegressTestFloatingClass
+
+<SECTION>
+<FILE>regress-test-fundamental-object</FILE>
+<TITLE>RegressTestFundamentalObject</TITLE>
+RegressTestFundamentalObject
+RegressTestFundamentalObjectClass
+regress_test_fundamental_object_ref
+regress_test_fundamental_object_unref
+
+<SECTION>
+<FILE>regress-test-fundamental-sub-object</FILE>
+<TITLE>RegressTestFundamentalSubObject</TITLE>
+RegressTestFundamentalSubObject
+RegressTestFundamentalSubObjectClass
+
+<SECTION>
+<FILE>regress-test-inherit-drawable</FILE>
+<TITLE>RegressTestInheritDrawable</TITLE>
+RegressTestInheritDrawable
+RegressTestInheritDrawableClass
+regress_test_inherit_drawable_do_foo
+regress_test_inherit_drawable_do_foo_maybe_throw
+regress_test_inherit_drawable_get_origin
+regress_test_inherit_drawable_get_size
+
+<SECTION>
+<FILE>regress-test-interface</FILE>
+<TITLE>RegressTestInterface</TITLE>
+RegressTestInterface
+RegressTestInterfaceIface
+
+<SECTION>
+<FILE>regress-test-obj</FILE>
+<TITLE>RegressTestObj</TITLE>
+RegressTestObj
+RegressTestObjClass
+regress_test_obj_do_matrix
+regress_test_obj_emit_sig_with_foreign_struct
+regress_test_obj_emit_sig_with_int64
+regress_test_obj_emit_sig_with_obj
+regress_test_obj_emit_sig_with_uint64
+regress_forced_method
+regress_test_obj_instance_method
+regress_test_obj_instance_method_callback
+regress_test_obj_set_bare
+regress_test_obj_skip_inout_param
+regress_test_obj_skip_out_param
+regress_test_obj_skip_param
+regress_test_obj_skip_return_val
+regress_test_obj_skip_return_val_no_out
+regress_test_obj_torture_signature_0
+regress_test_obj_torture_signature_1
+regress_test_obj_null_out
+regress_test_obj_static_method
+regress_test_obj_static_method_callback
+
+<SECTION>
+<FILE>regress-test-sub-obj</FILE>
+<TITLE>RegressTestSubObj</TITLE>
+RegressTestSubObj
+RegressTestSubObjClass
+regress_test_sub_obj_instance_method
+regress_test_sub_obj_unset_bare
+
+<SECTION>
+<FILE>regress-test-wi8021x</FILE>
+<TITLE>RegressTestWi8021x</TITLE>
+RegressTestWi8021x
+RegressTestWi8021xClass
+regress_test_wi_802_1x_get_testbool
+regress_test_wi_802_1x_set_testbool
+regress_test_wi_802_1x_static_method
diff --git a/tests/scanner/SLetter-1.0-expected.gir b/tests/scanner/SLetter-1.0-expected.gir
index c6da0df4..a98ebb27 100644
--- a/tests/scanner/SLetter-1.0-expected.gir
+++ b/tests/scanner/SLetter-1.0-expected.gir
@@ -6,8 +6,6 @@ and/or use gtk-doc annotations. -->
xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
- <include name="GObject" version="2.0"/>
<include name="Gio" version="2.0"/>
<c:include name="sletter.h"/>
<namespace name="SLetter"
@@ -18,9 +16,12 @@ and/or use gtk-doc annotations. -->
<enumeration name="DBusError"
c:type="SDBusError"
glib:error-domain="s-dbus-error">
- <member name="code1" value="1" c:identifier="S_DBUS_ERROR_CODE1"/>
- <member name="code2" value="2" c:identifier="S_DBUS_ERROR_CODE2"/>
- <member name="code3" value="3" c:identifier="S_DBUS_ERROR_CODE3"/>
+ <member name="code1" value="1" c:identifier="S_DBUS_ERROR_CODE1">
+ </member>
+ <member name="code2" value="2" c:identifier="S_DBUS_ERROR_CODE2">
+ </member>
+ <member name="code3" value="3" c:identifier="S_DBUS_ERROR_CODE3">
+ </member>
</enumeration>
<record name="Point" c:type="SPoint">
<field name="x" writable="1">
@@ -33,9 +34,12 @@ and/or use gtk-doc annotations. -->
<enumeration name="SpawnError"
c:type="SSpawnError"
glib:error-domain="s-spawn-error">
- <member name="code1" value="1" c:identifier="S_SPAWN_ERROR_CODE1"/>
- <member name="code2" value="2" c:identifier="S_SPAWN_ERROR_CODE2"/>
- <member name="code3" value="3" c:identifier="S_SPAWN_ERROR_CODE3"/>
+ <member name="code1" value="1" c:identifier="S_SPAWN_ERROR_CODE1">
+ </member>
+ <member name="code2" value="2" c:identifier="S_SPAWN_ERROR_CODE2">
+ </member>
+ <member name="code3" value="3" c:identifier="S_SPAWN_ERROR_CODE3">
+ </member>
</enumeration>
<function name="dbus_error_quark" c:identifier="s_dbus_error_quark">
<return-value transfer-ownership="none">
diff --git a/tests/scanner/TestInherit-1.0-expected.gir b/tests/scanner/TestInherit-1.0-expected.gir
index 6b16ab70..1f1a3286 100644
--- a/tests/scanner/TestInherit-1.0-expected.gir
+++ b/tests/scanner/TestInherit-1.0-expected.gir
@@ -29,6 +29,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="Drawable" c:type="TestInheritDrawable*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -41,6 +44,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="Drawable" c:type="TestInheritDrawable*"/>
+ </instance-parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
@@ -52,6 +58,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="Drawable" c:type="TestInheritDrawable*"/>
+ </instance-parameter>
<parameter name="x"
direction="out"
caller-allocates="0"
@@ -71,6 +80,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="drawable" transfer-ownership="none">
+ <type name="Drawable" c:type="TestInheritDrawable*"/>
+ </instance-parameter>
<parameter name="width"
direction="out"
caller-allocates="0"
diff --git a/tests/scanner/Typedefs-1.0-expected.gir b/tests/scanner/Typedefs-1.0-expected.gir
new file mode 100644
index 00000000..9bfd0d08
--- /dev/null
+++ b/tests/scanner/Typedefs-1.0-expected.gir
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations. -->
+<repository version="1.2"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+ <include name="GObject" version="2.0"/>
+ <package name="gobject-2.0"/>
+ <c:include name="typedefs.h"/>
+ <namespace name="Typedefs"
+ version="1.0"
+ shared-library="libtypedefs.so"
+ c:identifier-prefixes="Typedefs"
+ c:symbol-prefixes="typedefs">
+ <record name="BoxedWithAnonymousTypedef"
+ c:type="TypedefsBoxedWithAnonymousTypedef"
+ glib:type-name="TypedefsBoxedWithAnonymousTypedef"
+ glib:get-type="typedefs_boxed_with_anonymous_typedef_get_type"
+ c:symbol-prefix="boxed_with_anonymous_typedef">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="BoxedWithHiddenStruct"
+ c:type="TypedefsBoxedWithHiddenStruct"
+ glib:type-name="TypedefsBoxedWithHiddenStruct"
+ glib:get-type="typedefs_boxed_with_hidden_struct_get_type"
+ c:symbol-prefix="boxed_with_hidden_struct">
+ </record>
+ <record name="BoxedWithTagAndTypedef"
+ c:type="TypedefsBoxedWithTagAndTypedef"
+ glib:type-name="TypedefsBoxedWithTagAndTypedef"
+ glib:get-type="typedefs_boxed_with_tag_and_typedef_get_type"
+ c:symbol-prefix="boxed_with_tag_and_typedef">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="BoxedWithTypedefAfter"
+ c:type="TypedefsBoxedWithTypedefAfter"
+ glib:type-name="TypedefsBoxedWithTypedefAfter"
+ glib:get-type="typedefs_boxed_with_typedef_after_get_type"
+ c:symbol-prefix="boxed_with_typedef_after">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="BoxedWithTypedefBefore"
+ c:type="TypedefsBoxedWithTypedefBefore"
+ glib:type-name="TypedefsBoxedWithTypedefBefore"
+ glib:get-type="typedefs_boxed_with_typedef_before_get_type"
+ c:symbol-prefix="boxed_with_typedef_before">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="StructWithAnonymousTypedef"
+ c:type="TypedefsStructWithAnonymousTypedef">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="StructWithTagAndTypedef"
+ c:type="TypedefsStructWithTagAndTypedef">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="StructWithTypedefAfter"
+ c:type="TypedefsStructWithTypedefAfter">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ <record name="StructWithTypedefBefore"
+ c:type="TypedefsStructWithTypedefBefore">
+ <field name="value" writable="1">
+ <type name="gint" c:type="int"/>
+ </field>
+ </record>
+ </namespace>
+</repository>
diff --git a/tests/scanner/Utility-1.0-expected.gir b/tests/scanner/Utility-1.0-expected.gir
index 747f99c1..0bd38297 100644
--- a/tests/scanner/Utility-1.0-expected.gir
+++ b/tests/scanner/Utility-1.0-expected.gir
@@ -6,7 +6,6 @@ and/or use gtk-doc annotations. -->
xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
<include name="GObject" version="2.0"/>
<package name="gobject-2.0"/>
<c:include name="utility.h"/>
@@ -20,6 +19,7 @@ and/or use gtk-doc annotations. -->
</alias>
<record name="Buffer" c:type="UtilityBuffer">
<field name="data" writable="1">
+ <doc xml:space="preserve">the data</doc>
<type name="gpointer"/>
</field>
<field name="length" writable="1">
@@ -40,9 +40,12 @@ and/or use gtk-doc annotations. -->
</record>
</union>
<enumeration name="EnumType" c:type="UtilityEnumType">
- <member name="a" value="0" c:identifier="UTILITY_ENUM_A"/>
- <member name="b" value="1" c:identifier="UTILITY_ENUM_B"/>
- <member name="c" value="2" c:identifier="UTILITY_ENUM_C"/>
+ <member name="a" value="0" c:identifier="UTILITY_ENUM_A">
+ </member>
+ <member name="b" value="1" c:identifier="UTILITY_ENUM_B">
+ </member>
+ <member name="c" value="2" c:identifier="UTILITY_ENUM_C">
+ </member>
</enumeration>
<callback name="FileFunc" c:type="UtilityFileFunc">
<return-value transfer-ownership="none">
@@ -58,9 +61,12 @@ and/or use gtk-doc annotations. -->
</parameters>
</callback>
<bitfield name="FlagType" c:type="UtilityFlagType">
- <member name="a" value="1" c:identifier="UTILITY_FLAG_A"/>
- <member name="b" value="2" c:identifier="UTILITY_FLAG_B"/>
- <member name="c" value="4" c:identifier="UTILITY_FLAG_C"/>
+ <member name="a" value="1" c:identifier="UTILITY_FLAG_A">
+ </member>
+ <member name="b" value="2" c:identifier="UTILITY_FLAG_B">
+ </member>
+ <member name="c" value="4" c:identifier="UTILITY_FLAG_C">
+ </member>
</bitfield>
<class name="Object"
c:symbol-prefix="object"
@@ -74,6 +80,9 @@ and/or use gtk-doc annotations. -->
<type name="none" c:type="void"/>
</return-value>
<parameters>
+ <instance-parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="UtilityObject*"/>
+ </instance-parameter>
<parameter name="path" transfer-ownership="none">
<type name="utf8" c:type="const char*"/>
</parameter>
diff --git a/tests/scanner/WarnLib-1.0-expected.gir b/tests/scanner/WarnLib-1.0-expected.gir
new file mode 100644
index 00000000..47e3666c
--- /dev/null
+++ b/tests/scanner/WarnLib-1.0-expected.gir
@@ -0,0 +1,153 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations. -->
+<repository version="1.2"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+ <include name="Gio" version="2.0"/>
+ <c:include name="warnlib.h"/>
+ <namespace name="WarnLib"
+ version="1.0"
+ shared-library=""
+ c:identifier-prefixes="WarnLib"
+ c:symbol-prefixes="warnlib_">
+ <interface name="Whatever"
+ c:symbol-prefix="whatever"
+ c:type="WarnLibWhatever"
+ glib:type-name="WarnLibWhatever"
+ glib:get-type="warnlib_whatever_get_type"
+ glib:type-struct="WhateverIface">
+ <virtual-method name="do_boo" invoker="do_boo">
+ <doc xml:space="preserve">Does boo.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">a WarnLibWhatever</doc>
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <doc xml:space="preserve">x parameter</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <doc xml:space="preserve">y parameter</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="do_moo" invoker="do_moo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </instance-parameter>
+ <parameter name="arg1" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="arg2" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="do_boo" c:identifier="warnlib_whatever_do_boo">
+ <doc xml:space="preserve">Does boo.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">a WarnLibWhatever</doc>
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </instance-parameter>
+ <parameter name="arg1" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="arg2" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="do_moo" c:identifier="warnlib_whatever_do_moo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </instance-parameter>
+ <parameter name="arg1" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="arg2" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ </interface>
+ <record name="WhateverIface"
+ c:type="WarnLibWhateverIface"
+ glib:is-gtype-struct-for="Whatever">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="do_moo">
+ <callback name="do_moo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </parameter>
+ <parameter name="arg1" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="arg2" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="do_boo">
+ <callback name="do_boo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">a WarnLibWhatever</doc>
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </parameter>
+ <parameter name="x" transfer-ownership="none">
+ <doc xml:space="preserve">x parameter</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <doc xml:space="preserve">y parameter</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <function name="throw_unpaired"
+ c:identifier="warnlib_throw_unpaired"
+ throws="1">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="unpaired_error_quark"
+ c:identifier="warnlib_unpaired_error_quark">
+ <return-value transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ </function>
+ </namespace>
+</repository>
diff --git a/tests/scanner/annotation.c b/tests/scanner/annotation.c
index d23239d5..30dc72ef 100644
--- a/tests/scanner/annotation.c
+++ b/tests/scanner/annotation.c
@@ -3,7 +3,7 @@
char backslash_parsing_tester = '\\';
-G_DEFINE_TYPE (AnnotationObject, annotation_object, G_TYPE_OBJECT);
+G_DEFINE_TYPE (RegressAnnotationObject, regress_annotation_object, G_TYPE_OBJECT);
enum {
PROP_0,
@@ -20,13 +20,13 @@ enum {
LAST_SIGNAL
};
-static guint annotation_object_signals[LAST_SIGNAL] = { 0 };
+static guint regress_annotation_object_signals[LAST_SIGNAL] = { 0 };
static void
-annotation_object_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+regress_annotation_object_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
switch (prop_id)
{
@@ -43,10 +43,10 @@ annotation_object_set_property (GObject *object,
}
static void
-annotation_object_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+regress_annotation_object_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
switch (prop_id)
{
@@ -63,18 +63,18 @@ annotation_object_get_property (GObject *object,
}
static void
-annotation_object_class_init (AnnotationObjectClass *klass)
+regress_annotation_object_class_init (RegressAnnotationObjectClass *klass)
{
GObjectClass *gobject_class;
gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->set_property = annotation_object_set_property;
- gobject_class->get_property = annotation_object_get_property;
+ gobject_class->set_property = regress_annotation_object_set_property;
+ gobject_class->get_property = regress_annotation_object_get_property;
/**
- * AnnotationObject::string-signal:
- * @annotation: the annotation object
+ * RegressAnnotationObject::string-signal:
+ * @regress_annotation: the regress_annotation object
* @string: (type utf8): a string
*
* This is a signal which has a broken signal handler,
@@ -83,7 +83,7 @@ annotation_object_class_init (AnnotationObjectClass *klass)
* Since: 1.0
* Deprecated: 1.2: Use other-signal instead
*/
- annotation_object_signals[STRING_SIGNAL] =
+ regress_annotation_object_signals[STRING_SIGNAL] =
g_signal_new ("string-signal",
G_OBJECT_CLASS_TYPE (gobject_class),
G_SIGNAL_RUN_LAST,
@@ -93,14 +93,14 @@ annotation_object_class_init (AnnotationObjectClass *klass)
G_TYPE_NONE, 1, G_TYPE_POINTER);
/**
- * AnnotationObject::list-signal:
- * @annotation: the annotation object
+ * RegressAnnotationObject::list-signal:
+ * @regress_annotation: the regress_annotation object
* @list: (type GLib.List) (element-type utf8) (transfer container): a list of strings
*
* This is a signal which takes a list of strings, but it's not
* known by GObject as it's only marked as G_TYPE_POINTER
*/
- annotation_object_signals[LIST_SIGNAL] =
+ regress_annotation_object_signals[LIST_SIGNAL] =
g_signal_new ("list-signal",
G_OBJECT_CLASS_TYPE (gobject_class),
G_SIGNAL_RUN_LAST,
@@ -110,13 +110,13 @@ annotation_object_class_init (AnnotationObjectClass *klass)
G_TYPE_NONE, 1, G_TYPE_POINTER);
/**
- * AnnotationObject::doc-empty-arg-parsing:
- * @annotation: the annotation object
+ * RegressAnnotationObject::doc-empty-arg-parsing:
+ * @regress_annotation: the regress_annotation object
* @arg1:
*
* This signal tests an empty document argument (@arg1)
*/
- annotation_object_signals[DOC_EMPTY_ARG_PARSING] =
+ regress_annotation_object_signals[DOC_EMPTY_ARG_PARSING] =
g_signal_new ("doc-empty-arg-parsing",
G_OBJECT_CLASS_TYPE (gobject_class),
G_SIGNAL_RUN_LAST,
@@ -126,16 +126,16 @@ annotation_object_class_init (AnnotationObjectClass *klass)
G_TYPE_NONE, 1, G_TYPE_POINTER);
/**
- * AnnotationObject::attribute-signal:
- * @annotation: the annotation object
- * @arg1: (attribute some.annotation.foo1 val1): a value
- * @arg2: (attribute some.annotation.foo2 val2): another value
+ * RegressAnnotationObject::attribute-signal:
+ * @regress_annotation: the regress_annotation object
+ * @arg1: (attributes some.annotation.foo1=val1): a value
+ * @arg2: (attributes some.annotation.foo2=val2): another value
*
* This signal tests a signal with attributes.
*
- * Returns: (attribute some.annotation.foo3 val3): the return value
+ * Returns: (attributes some.annotation.foo3=val3): the return value
*/
- annotation_object_signals[ATTRIBUTE_SIGNAL] =
+ regress_annotation_object_signals[ATTRIBUTE_SIGNAL] =
g_signal_new ("attribute-signal",
G_OBJECT_CLASS_TYPE (gobject_class),
G_SIGNAL_RUN_LAST,
@@ -148,7 +148,7 @@ annotation_object_class_init (AnnotationObjectClass *klass)
G_TYPE_STRING);
/**
- * AnnotationObject:string-property:
+ * RegressAnnotationObject:string-property:
*
* This is a property which is a string
*
@@ -163,9 +163,7 @@ annotation_object_class_init (AnnotationObjectClass *klass)
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
/**
- * AnnotationObject:function-property:
- *
- * Type: AnnotationCallback
+ * RegressAnnotationObject:function-property: (type RegressAnnotationCallback)
*/
g_object_class_install_property (gobject_class,
PROP_FUNCTION_PROPERTY,
@@ -175,7 +173,7 @@ annotation_object_class_init (AnnotationObjectClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
/**
- * AnnotationObject:tab-property:
+ * RegressAnnotationObject:tab-property:
*
* This is a property annotation intentionally indented with a mix
* of tabs and strings to test the tab handling capabilities of the scanner.
@@ -192,25 +190,25 @@ annotation_object_class_init (AnnotationObjectClass *klass)
}
static void
-annotation_object_init (AnnotationObject *object)
+regress_annotation_object_init (RegressAnnotationObject *object)
{
}
/**
- * annotation_object_method:
+ * regress_annotation_object_method:
* @object: a #GObject
*
* Return value: an int
**/
gint
-annotation_object_method (AnnotationObject *object)
+regress_annotation_object_method (RegressAnnotationObject *object)
{
return 1;
}
/**
- * annotation_object_out:
+ * regress_annotation_object_out:
* @object: a #GObject
* @outarg: (out): This is an argument test
*
@@ -219,14 +217,14 @@ annotation_object_method (AnnotationObject *object)
* Return value: an int
*/
gint
-annotation_object_out (AnnotationObject *object, int *outarg)
+regress_annotation_object_out (RegressAnnotationObject *object, int *outarg)
{
*outarg = 2;
return 1;
}
/**
- * annotation_object_in:
+ * regress_annotation_object_in:
* @object: a #GObject
* @inarg: (in) (transfer none): This is an argument test
*
@@ -235,14 +233,14 @@ annotation_object_out (AnnotationObject *object, int *outarg)
* Return value: an int
*/
gint
-annotation_object_in (AnnotationObject *object, int *inarg)
+regress_annotation_object_in (RegressAnnotationObject *object, int *inarg)
{
return *inarg;
}
/**
- * annotation_object_inout:
+ * regress_annotation_object_inout:
* @object: a #GObject
* @inoutarg: (inout): This is an argument test
*
@@ -251,13 +249,13 @@ annotation_object_in (AnnotationObject *object, int *inarg)
* Return value: an int
*/
gint
-annotation_object_inout (AnnotationObject *object, int *inoutarg)
+regress_annotation_object_inout (RegressAnnotationObject *object, int *inoutarg)
{
return *inoutarg += 1;
}
/**
- * annotation_object_inout2:
+ * regress_annotation_object_inout2:
* @object: a #GObject
* @inoutarg: (inout): This is an argument test
*
@@ -266,14 +264,14 @@ annotation_object_inout (AnnotationObject *object, int *inoutarg)
* Return value: an int
*/
gint
-annotation_object_inout2 (AnnotationObject *object, int *inoutarg)
+regress_annotation_object_inout2 (RegressAnnotationObject *object, int *inoutarg)
{
return *inoutarg += 1;
}
/**
- * annotation_object_inout3:
+ * regress_annotation_object_inout3:
* @object: a #GObject
* @inoutarg: (inout) (allow-none): This is an argument test
*
@@ -282,7 +280,7 @@ annotation_object_inout2 (AnnotationObject *object, int *inoutarg)
* Return value: an int
*/
gint
-annotation_object_inout3 (AnnotationObject *object, int *inoutarg)
+regress_annotation_object_inout3 (RegressAnnotationObject *object, int *inoutarg)
{
if (inoutarg)
return *inoutarg + 1;
@@ -290,7 +288,7 @@ annotation_object_inout3 (AnnotationObject *object, int *inoutarg)
}
/**
- * annotation_object_calleeowns:
+ * regress_annotation_object_calleeowns:
* @object: a #GObject
* @toown: (out): a #GObject
*
@@ -299,14 +297,14 @@ annotation_object_inout3 (AnnotationObject *object, int *inoutarg)
* Return value: an int
*/
gint
-annotation_object_calleeowns (AnnotationObject *object, GObject **toown)
+regress_annotation_object_calleeowns (RegressAnnotationObject *object, GObject **toown)
{
return 1;
}
/**
- * annotation_object_calleesowns:
+ * regress_annotation_object_calleesowns:
* @object: a #GObject
* @toown1: (out) (transfer full): a #GObject
* @toown2: (out) (transfer none): a #GObject
@@ -316,16 +314,16 @@ annotation_object_calleeowns (AnnotationObject *object, GObject **toown)
* Return value: an int
*/
gint
-annotation_object_calleesowns (AnnotationObject *object,
- GObject **toown1,
- GObject **toown2)
+regress_annotation_object_calleesowns (RegressAnnotationObject *object,
+ GObject **toown1,
+ GObject **toown2)
{
return 1;
}
/**
- * annotation_object_get_strings:
+ * regress_annotation_object_get_strings:
* @object: a #GObject
*
* This is a test for returning a list of strings, where
@@ -334,16 +332,16 @@ annotation_object_calleesowns (AnnotationObject *object,
* Return value: (element-type utf8) (transfer full): list of strings
*/
GList*
-annotation_object_get_strings (AnnotationObject *object)
+regress_annotation_object_get_strings (RegressAnnotationObject *object)
{
GList *list = NULL;
- list = g_list_prepend (list, g_strdup ("annotation"));
+ list = g_list_prepend (list, g_strdup ("regress_annotation"));
list = g_list_prepend (list, g_strdup ("bar"));
return list;
}
/**
- * annotation_object_get_hash:
+ * regress_annotation_object_get_hash:
* @object: a #GObject
*
* This is a test for returning a hash table mapping strings to
@@ -352,7 +350,7 @@ annotation_object_get_strings (AnnotationObject *object)
* Return value: (element-type utf8 GObject) (transfer full): hash table
*/
GHashTable*
-annotation_object_get_hash (AnnotationObject *object)
+regress_annotation_object_get_hash (RegressAnnotationObject *object)
{
GHashTable *hash = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, g_object_unref);
@@ -362,27 +360,27 @@ annotation_object_get_hash (AnnotationObject *object)
}
/**
- * annotation_object_with_voidp:
+ * regress_annotation_object_with_voidp:
* @data: Opaque pointer handle
*/
void
-annotation_object_with_voidp (AnnotationObject *object, void *data)
+regress_annotation_object_with_voidp (RegressAnnotationObject *object, void *data)
{
}
/**
- * annotation_object_get_objects:
+ * regress_annotation_object_get_objects:
* @object: a #GObject
*
* This is a test for returning a list of objects.
* The list itself should be freed, but not the internal objects,
* intentionally similar example to gtk_container_get_children
*
- * Return value: (element-type AnnotationObject) (transfer container): list of objects
+ * Return value: (element-type RegressAnnotationObject) (transfer container): list of objects
*/
GSList*
-annotation_object_get_objects (AnnotationObject *object)
+regress_annotation_object_get_objects (RegressAnnotationObject *object)
{
GSList *list = NULL;
list = g_slist_prepend (list, object);
@@ -390,7 +388,7 @@ annotation_object_get_objects (AnnotationObject *object)
}
/**
- * annotation_object_create_object:
+ * regress_annotation_object_create_object:
* @object: a #GObject
*
* Test returning a caller-owned object
@@ -398,39 +396,39 @@ annotation_object_get_objects (AnnotationObject *object)
* Return value: (transfer full): The object
**/
GObject*
-annotation_object_create_object (AnnotationObject *object)
+regress_annotation_object_create_object (RegressAnnotationObject *object)
{
- return g_object_ref (object);
+ return g_object_ref (object);
}
/**
- * annotation_object_use_buffer:
+ * regress_annotation_object_use_buffer:
* @object: a #GObject
*
**/
void
-annotation_object_use_buffer (AnnotationObject *object,
- guchar *bytes)
+regress_annotation_object_use_buffer (RegressAnnotationObject *object,
+ guchar *bytes)
{
}
/**
- * annotation_object_compute_sum:
+ * regress_annotation_object_compute_sum:
* @object: a #GObject
* @nums: (array): Sequence of numbers
*
* Test taking a zero-terminated array
**/
void
-annotation_object_compute_sum (AnnotationObject *object,
- int *nums)
+regress_annotation_object_compute_sum (RegressAnnotationObject *object,
+ int *nums)
{
}
/**
- * annotation_object_compute_sum_n:
+ * regress_annotation_object_compute_sum_n:
* @object: a #GObject
* @nums: (array length=n_nums zero-terminated=0): Sequence of
* numbers that are zero-terminated
@@ -439,16 +437,16 @@ annotation_object_compute_sum (AnnotationObject *object,
* Test taking an array with length parameter
**/
void
-annotation_object_compute_sum_n(AnnotationObject *object,
- int *nums,
- int n_nums)
+regress_annotation_object_compute_sum_n(RegressAnnotationObject *object,
+ int *nums,
+ int n_nums)
{
}
/**
- * annotation_object_compute_sum_nz:
- * @object: a #AnnotationObject
+ * regress_annotation_object_compute_sum_nz:
+ * @object: a #RegressAnnotationObject
* @nums: (array length=n_nums zero-terminated=1): Sequence of numbers that
* are zero-terminated
* @n_nums: Length of number array
@@ -456,32 +454,32 @@ annotation_object_compute_sum_n(AnnotationObject *object,
* Test taking a zero-terminated array with length parameter
**/
void
-annotation_object_compute_sum_nz(AnnotationObject *object,
- int *nums,
- int n_nums)
+regress_annotation_object_compute_sum_nz(RegressAnnotationObject *object,
+ int *nums,
+ int n_nums)
{
}
/**
- * annotation_object_parse_args:
- * @object: a #AnnotationObject
+ * regress_annotation_object_parse_args:
+ * @object: a #RegressAnnotationObject
* @argc: (inout): Length of the argument vector
* @argv: (inout) (array length=argc zero-terminated=1): Argument vector
*
* Test taking a zero-terminated array with length parameter
**/
void
-annotation_object_parse_args(AnnotationObject *object,
- int *argc,
- char ***argv)
+regress_annotation_object_parse_args(RegressAnnotationObject *object,
+ int *argc,
+ char ***argv)
{
}
/**
- * annotation_object_string_out:
- * @object: a #AnnotationObject
+ * regress_annotation_object_string_out:
+ * @object: a #RegressAnnotationObject
* @str_out: (out) (transfer full): string return value
*
* Test returning a string as an out parameter
@@ -489,63 +487,63 @@ annotation_object_parse_args(AnnotationObject *object,
* Returns: some boolean
**/
gboolean
-annotation_object_string_out(AnnotationObject *object,
- char **str_out)
+regress_annotation_object_string_out(RegressAnnotationObject *object,
+ char **str_out)
{
return FALSE;
}
/**
- * annotation_object_foreach:
- * @object: a #AnnotationObject
+ * regress_annotation_object_foreach:
+ * @object: a #RegressAnnotationObject
* @func: (scope call): Callback to invoke
* @user_data: Callback user data
*
* Test taking a call-scoped callback
**/
void
-annotation_object_foreach (AnnotationObject *object,
- AnnotationForeachFunc func,
- gpointer user_data)
+regress_annotation_object_foreach (RegressAnnotationObject *object,
+ RegressAnnotationForeachFunc func,
+ gpointer user_data)
{
-
+
}
/**
- * annotation_object_set_data:
- * @object: a #AnnotationObject
+ * regress_annotation_object_set_data:
+ * @object: a #RegressAnnotationObject
* @data: (array length=length): The data
* @length: Length of the data
*
* Test taking a guchar * with a length.
**/
void
-annotation_object_set_data (AnnotationObject *object,
- const guchar *data,
- gsize length)
+regress_annotation_object_set_data (RegressAnnotationObject *object,
+ const guchar *data,
+ gsize length)
{
-
+
}
/**
- * annotation_object_set_data2:
- * @object: a #AnnotationObject
+ * regress_annotation_object_set_data2:
+ * @object: a #RegressAnnotationObject
* @data: (array length=length) (element-type gint8): The data
* @length: Length of the data
*
* Test taking a gchar * with a length.
**/
void
-annotation_object_set_data2 (AnnotationObject *object,
- const gchar *data,
- gsize length)
+regress_annotation_object_set_data2 (RegressAnnotationObject *object,
+ const gchar *data,
+ gsize length)
{
-
+
}
/**
- * annotation_object_set_data3:
- * @object: a #AnnotationObject
+ * regress_annotation_object_set_data3:
+ * @object: a #RegressAnnotationObject
* @data: (array length=length) (element-type guint8): The data
* @length: Length of the data
*
@@ -553,233 +551,229 @@ annotation_object_set_data2 (AnnotationObject *object,
* type.
**/
void
-annotation_object_set_data3 (AnnotationObject *object,
- gpointer data,
- gsize length)
+regress_annotation_object_set_data3 (RegressAnnotationObject *object,
+ gpointer data,
+ gsize length)
{
-
+
}
/**
- * annotation_object_allow_none:
+ * regress_annotation_object_allow_none:
* @object: a #GObject
* @somearg: (allow-none):
*
* Returns: (transfer none): %NULL always
**/
GObject*
-annotation_object_allow_none (AnnotationObject *object, const gchar *somearg)
+regress_annotation_object_allow_none (RegressAnnotationObject *object, const gchar *somearg)
{
return NULL;
}
/**
- * annotation_object_notrans:
+ * regress_annotation_object_notrans:
* @object: a #GObject
*
* Returns: (transfer none): An object, not referenced
**/
GObject*
-annotation_object_notrans (AnnotationObject *object)
+regress_annotation_object_notrans (RegressAnnotationObject *object)
{
return NULL;
}
/**
- * annotation_object_do_not_use:
+ * regress_annotation_object_do_not_use:
* @object: a #GObject
*
* Returns: (transfer none): %NULL always
- * Deprecated: 0.12: Use annotation_object_create_object() instead.
+ * Deprecated: 0.12: Use regress_annotation_object_create_object() instead.
**/
GObject*
-annotation_object_do_not_use (AnnotationObject *object)
+regress_annotation_object_do_not_use (RegressAnnotationObject *object)
{
return NULL;
}
/**
- * annotation_object_watch: (skip)
- * @object: A #AnnotationObject
+ * regress_annotation_object_watch: (skip)
+ * @object: A #RegressAnnotationObject
* @func: The callback
* @user_data: The callback data
*
* This is here just for the sake of being overriden by its
- * annotation_object_watch_full().
+ * regress_annotation_object_watch_full().
*/
void
-annotation_object_watch (AnnotationObject *object,
- AnnotationForeachFunc func,
- gpointer user_data)
+regress_annotation_object_watch (RegressAnnotationObject *object,
+ RegressAnnotationForeachFunc func,
+ gpointer user_data)
{
}
/**
- * annotation_object_watch_full:
- * @object: A #AnnotationObject
+ * regress_annotation_object_watch_full: (rename-to regress_annotation_object_watch)
+ * @object: A #RegressAnnotationObject
* @func: The callback
* @user_data: The callback data
* @destroy: Destroy notification
*
* Test overriding via the "Rename To" annotation.
- *
- * Rename to: annotation_object_watch
*/
void
-annotation_object_watch_full (AnnotationObject *object,
- AnnotationForeachFunc func,
- gpointer user_data,
- GDestroyNotify destroy)
+regress_annotation_object_watch_full (RegressAnnotationObject *object,
+ RegressAnnotationForeachFunc func,
+ gpointer user_data,
+ GDestroyNotify destroy)
{
}
/**
- * annotation_object_hidden_self:
- * @object: (type AnnotationObject): A #AnnotationObject
+ * regress_annotation_object_hidden_self:
+ * @object: (type RegressAnnotationObject): A #RegressAnnotationObject
**/
void
-annotation_object_hidden_self (gpointer object)
+regress_annotation_object_hidden_self (gpointer object)
{
}
/**
- * annotation_init:
- * @argc: (inout): The number of args.
+ * regress_annotation_init:
+ * @argc: (inout): The number of args.
* @argv: (inout) (array length=argc): The arguments.
**/
void
-annotation_init (int *argc, char ***argv)
+regress_annotation_init (int *argc, char ***argv)
{
}
/**
- * annotation_return_array:
+ * regress_annotation_return_array:
* @length: (out): Number of return values
*
* Return value: (transfer full) (array length=length): The return value
**/
char **
-annotation_return_array (int *length)
+regress_annotation_return_array (int *length)
{
return NULL;
}
/**
- * annotation_string_zero_terminated:
+ * regress_annotation_string_zero_terminated:
*
* Return value: (transfer full) (array zero-terminated=1): The return value
**/
char **
-annotation_string_zero_terminated (void)
+regress_annotation_string_zero_terminated (void)
{
return NULL;
}
/**
- * annotation_string_zero_terminated_out:
+ * regress_annotation_string_zero_terminated_out:
* @out: (array zero-terminated=1) (inout):
**/
void
-annotation_string_zero_terminated_out (char ***out)
+regress_annotation_string_zero_terminated_out (char ***out)
{
}
/**
- * annotation_versioned:
+ * regress_annotation_versioned:
*
* Since: 0.6
**/
void
-annotation_versioned (void)
+regress_annotation_versioned (void)
{
}
/**
- * annotation_string_array_length:
+ * regress_annotation_string_array_length:
* @n_properties:
* @properties: (array length=n_properties) (element-type utf8):
*/
void
-annotation_string_array_length (guint n_properties, const gchar * const properties[])
+regress_annotation_string_array_length (guint n_properties, const gchar * const properties[])
{
}
/**
- * annotation_object_extra_annos:
- *
- * Attributes: (org.foobar testvalue)
+ * regress_annotation_object_extra_annos: (attributes org.foobar=testvalue)
*/
void
-annotation_object_extra_annos (AnnotationObject *object)
+regress_annotation_object_extra_annos (RegressAnnotationObject *object)
{
}
/**
- * annotation_custom_destroy:
+ * regress_annotation_custom_destroy:
* @callback: (destroy destroy) (closure data): Destroy notification
*
* Test messing up the heuristic of closure/destroy-notification
* detection, and fixing it via annotations.
*/
void
-annotation_custom_destroy (AnnotationCallback callback,
- AnnotationNotifyFunc destroy,
- gpointer data)
+regress_annotation_custom_destroy (RegressAnnotationCallback callback,
+ RegressAnnotationNotifyFunc destroy,
+ gpointer data)
{
}
/**
- * annotation_get_source_file:
+ * regress_annotation_get_source_file:
*
* Return value: (type filename) (transfer full): Source file
*/
char *
-annotation_get_source_file (void)
+regress_annotation_get_source_file (void)
{
return NULL;
}
/**
- * annotation_set_source_file:
+ * regress_annotation_set_source_file:
* @fname: (type filename): Source file
*
*/
void
-annotation_set_source_file (const char *fname)
+regress_annotation_set_source_file (const char *fname)
{
}
/**
- * annotation_ptr_array:
- * @array: (element-type GLib.Value): the array
+ * regress_annotation_ptr_array:
+ * @array: (element-type GObject.Value): the array
*/
void
-annotation_ptr_array (GPtrArray *array)
+regress_annotation_ptr_array (GPtrArray *array)
{
}
/**
- * annotation_attribute_func:
- * @object: A #AnnotationObject.
- * @data: (attribute some.annotation value) (attribute another.annotation blahvalue): Some data.
+ * regress_annotation_attribute_func:
+ * @object: A #RegressAnnotationObject.
+ * @data: (attributes some.annotation=value another.annotation=blahvalue): Some data.
*
- * Returns: (attribute some.other.annotation value2) (attribute yet.another.annotation another_value): The return value.
+ * Returns: (attributes some.other.annotation=value2 yet.another.annotation=another_value): The return value.
*/
gint
-annotation_attribute_func (AnnotationObject *object,
- const gchar *data)
+regress_annotation_attribute_func (RegressAnnotationObject *object,
+ const gchar *data)
{
return 42;
}
/**
- * annotation_invalid_annotation:
+ * regress_annotation_invalid_regress_annotation:
* @foo: some text (e.g. example) or else
*/
void
-annotation_invalid_annotation (int foo)
+regress_annotation_invalid_regress_annotation (int foo)
{
}
@@ -789,47 +783,47 @@ char backslash_parsing_tester_2 = '\\';
/**
- * annotation_test_parsing_bug630862:
+ * regress_annotation_test_parsing_bug630862:
*
* See https://bugzilla.gnome.org/show_bug.cgi?id=630862
*
* Returns: (transfer none): An object, note the colon:in here
*/
GObject *
-annotation_test_parsing_bug630862 (void)
+regress_annotation_test_parsing_bug630862 (void)
{
return NULL;
}
-/**
- * annotation_space_after_comment_bug631690:
+/**
+ * regress_annotation_space_after_comment_bug631690:
*
* Explicitly test having a space after the ** here.
*/
void
-annotation_space_after_comment_bug631690 (void)
+regress_annotation_space_after_comment_bug631690 (void)
{
}
/**
- * annotation_return_filename:
+ * regress_annotation_return_filename:
*
* Returns: (type filename): An annotated filename
*/
gchar*
-annotation_return_filename (void)
+regress_annotation_return_filename (void)
{
return "a utf-8 filename";
}
/**
- * annotation_transfer_floating:
+ * regress_annotation_transfer_floating:
*
* Returns: (transfer floating): A floating object
*/
GObject *
-annotation_transfer_floating(void)
+regress_annotation_transfer_floating(void)
{
return NULL;
}
diff --git a/tests/scanner/annotation.h b/tests/scanner/annotation.h
index b3b4bd4c..b0cbe42d 100644
--- a/tests/scanner/annotation.h
+++ b/tests/scanner/annotation.h
@@ -1,5 +1,5 @@
-#ifndef __ANNOTATION_OBJECT_H__
-#define __ANNOTATION_OBJECT_H__
+#ifndef __REGRESS_ANNOTATION_OBJECT_H__
+#define __REGRESS_ANNOTATION_OBJECT_H__
#include <glib-object.h>
@@ -7,190 +7,201 @@ typedef enum /*< flags,prefix=ANN >*/
{
ANN_FLAG_FOO = 1,
ANN_FLAG_BAR = 2
-} AnnotationBitfield;
+} RegressAnnotationBitfield;
/**
- * AnnotationCallback:
+ * RegressAnnotationCallback:
* @in: (in) (transfer none): array of ints
*
* This is a callback.
* Return value: (transfer none): array of ints
*/
-typedef const gint* (*AnnotationCallback) (const gint *in);
+typedef const gint* (*RegressAnnotationCallback) (const gint *in);
/**
- * AnnotationListCallback:
+ * RegressAnnotationListCallback:
* @in: (in) (transfer none) (element-type utf8): list of strings
*
* This is a callback taking a list.
* Return value: (transfer container) (element-type utf8): list of strings
*/
-typedef GList* (*AnnotationListCallback) (GList *in);
+typedef GList* (*RegressAnnotationListCallback) (GList *in);
/**
- * AnnotationNotifyFunc:
+ * RegressAnnotationNotifyFunc:
* @data: (closure): The user data
*
* This is a callback with a 'closure' argument that is not named
* 'user_data' and hence has to be annotated.
*/
-typedef void (*AnnotationNotifyFunc) (gpointer data);
+typedef void (*RegressAnnotationNotifyFunc) (gpointer data);
/**
- * AnnotationObject:
+ * RegressAnnotationObject: (attributes org.example.Test=cows)
*
* This is an object used to test annotations.
- *
- * Attributes: (org.example.Test cows)
*/
-typedef struct _AnnotationObject AnnotationObject;
-typedef struct _AnnotationObjectClass AnnotationObjectClass;
+typedef struct _RegressAnnotationObject RegressAnnotationObject;
+typedef struct _RegressAnnotationObjectClass RegressAnnotationObjectClass;
-typedef void (*AnnotationForeachFunc) (AnnotationObject *object,
+typedef void (*RegressAnnotationForeachFunc) (RegressAnnotationObject *object,
const char *item,
gpointer user_data);
-struct _AnnotationObject
+struct _RegressAnnotationObject
{
GObject parent_instance;
};
-struct _AnnotationObjectClass
+struct _RegressAnnotationObjectClass
{
GObjectClass parent_class;
};
-GType annotation_object_get_type (void);
+GType regress_annotation_object_get_type (void);
-gint annotation_object_method (AnnotationObject *object);
-gint annotation_object_out (AnnotationObject *object,
+gint regress_annotation_object_method (RegressAnnotationObject *object);
+gint regress_annotation_object_out (RegressAnnotationObject *object,
int *outarg);
-GObject* annotation_object_create_object(AnnotationObject *object);
-GObject* annotation_object_allow_none (AnnotationObject *object,
+GObject* regress_annotation_object_create_object(RegressAnnotationObject *object);
+GObject* regress_annotation_object_allow_none (RegressAnnotationObject *object,
const gchar *somearg);
-GObject* annotation_object_notrans (AnnotationObject *object);
-gint annotation_object_inout (AnnotationObject *object,
+GObject* regress_annotation_object_notrans (RegressAnnotationObject *object);
+gint regress_annotation_object_inout (RegressAnnotationObject *object,
int *inoutarg);
-gint annotation_object_inout2 (AnnotationObject *object,
+gint regress_annotation_object_inout2 (RegressAnnotationObject *object,
int *inoutarg);
-gint annotation_object_inout3 (AnnotationObject *object,
+gint regress_annotation_object_inout3 (RegressAnnotationObject *object,
int *inoutarg);
-gint annotation_object_in (AnnotationObject *object,
+gint regress_annotation_object_in (RegressAnnotationObject *object,
int *inarg);
-gint annotation_object_calleeowns (AnnotationObject *object,
+gint regress_annotation_object_calleeowns (RegressAnnotationObject *object,
GObject **toown);
-gint annotation_object_calleesowns (AnnotationObject *object,
+gint regress_annotation_object_calleesowns (RegressAnnotationObject *object,
GObject **toown1,
GObject **toown2);
-GList* annotation_object_get_strings (AnnotationObject *object);
-GHashTable*annotation_object_get_hash (AnnotationObject *object);
-void annotation_object_with_voidp (AnnotationObject *object,
+GList* regress_annotation_object_get_strings (RegressAnnotationObject *object);
+GHashTable*regress_annotation_object_get_hash (RegressAnnotationObject *object);
+void regress_annotation_object_with_voidp (RegressAnnotationObject *object,
void *data);
-GSList* annotation_object_get_objects (AnnotationObject *object);
+GSList* regress_annotation_object_get_objects (RegressAnnotationObject *object);
-void annotation_object_use_buffer (AnnotationObject *object,
+void regress_annotation_object_use_buffer (RegressAnnotationObject *object,
guchar *bytes);
-void annotation_object_compute_sum (AnnotationObject *object,
+void regress_annotation_object_compute_sum (RegressAnnotationObject *object,
int *nums);
-void annotation_object_compute_sum_n(AnnotationObject *object,
+void regress_annotation_object_compute_sum_n(RegressAnnotationObject *object,
int *nums,
int n_nums);
-void annotation_object_compute_sum_nz(AnnotationObject *object,
+void regress_annotation_object_compute_sum_nz(RegressAnnotationObject *object,
int *nums,
int n_nums);
-void annotation_object_parse_args (AnnotationObject *object,
+void regress_annotation_object_parse_args (RegressAnnotationObject *object,
int *argc,
char ***argv);
-gboolean annotation_object_string_out (AnnotationObject *object,
+gboolean regress_annotation_object_string_out (RegressAnnotationObject *object,
char **str_out);
-void annotation_object_foreach (AnnotationObject *object,
- AnnotationForeachFunc func,
+void regress_annotation_object_foreach (RegressAnnotationObject *object,
+ RegressAnnotationForeachFunc func,
gpointer user_data);
-void annotation_object_set_data (AnnotationObject *object,
+void regress_annotation_object_set_data (RegressAnnotationObject *object,
const guchar *data,
gsize length);
-void annotation_object_set_data2 (AnnotationObject *object,
+void regress_annotation_object_set_data2 (RegressAnnotationObject *object,
const gchar *data,
gsize length);
-void annotation_object_set_data3 (AnnotationObject *object,
+void regress_annotation_object_set_data3 (RegressAnnotationObject *object,
gpointer data,
gsize length);
-GObject* annotation_object_do_not_use (AnnotationObject *object);
-void annotation_object_watch (AnnotationObject *object,
- AnnotationForeachFunc func,
+GObject* regress_annotation_object_do_not_use (RegressAnnotationObject *object);
+void regress_annotation_object_watch (RegressAnnotationObject *object,
+ RegressAnnotationForeachFunc func,
gpointer user_data);
-void annotation_object_watch_full (AnnotationObject *object,
- AnnotationForeachFunc func,
+void regress_annotation_object_watch_full (RegressAnnotationObject *object,
+ RegressAnnotationForeachFunc func,
gpointer user_data,
GDestroyNotify destroy);
-void annotation_object_hidden_self (gpointer object);
+void regress_annotation_object_hidden_self (gpointer object);
-void annotation_init (int *argc,
+void regress_annotation_init (int *argc,
char ***argv);
-char ** annotation_return_array (int *length);
-void annotation_versioned (void);
-char ** annotation_string_zero_terminated (void);
-void annotation_string_zero_terminated_out (char ***out);
+char ** regress_annotation_return_array (int *length);
+void regress_annotation_versioned (void);
+char ** regress_annotation_string_zero_terminated (void);
+void regress_annotation_string_zero_terminated_out (char ***out);
-void annotation_string_array_length (guint n_properties, const gchar * const properties[]);
+void regress_annotation_string_array_length (guint n_properties, const gchar * const properties[]);
-void annotation_object_extra_annos (AnnotationObject *object);
+void regress_annotation_object_extra_annos (RegressAnnotationObject *object);
-void annotation_custom_destroy (AnnotationCallback callback,
- AnnotationNotifyFunc destroy,
+void regress_annotation_custom_destroy (RegressAnnotationCallback callback,
+ RegressAnnotationNotifyFunc destroy,
gpointer data);
-char * annotation_get_source_file (void);
-void annotation_set_source_file (const char *fname);
+char * regress_annotation_get_source_file (void);
+void regress_annotation_set_source_file (const char *fname);
-gint annotation_attribute_func (AnnotationObject *object,
+gint regress_annotation_attribute_func (RegressAnnotationObject *object,
const gchar *data);
-void annotation_invalid_annotation (int foo);
+void regress_annotation_invalid_regress_annotation (int foo);
/**
- * AnnotationStruct:
+ * RegressAnnotationStruct:
*
* This is a test of an array of object in an field of a struct.
*/
-struct AnnotationStruct
+struct RegressAnnotationStruct
+{
+ RegressAnnotationObject *objects[10];
+};
+
+/**
+ * RegressAnnotationFields:
+ * @field1: Some documentation
+ * @arr: (array length=len): an array of length @len
+ * @len: the length of array
+ *
+ * This is a struct for testing field documentation and annotations
+ */
+struct RegressAnnotationFields
{
- AnnotationObject *objects[10];
+ int field1;
+ guchar *arr;
+ gulong len;
};
-void annotation_ptr_array (GPtrArray *array);
+void regress_annotation_ptr_array (GPtrArray *array);
-GObject * annotation_test_parsing_bug630862 (void);
+GObject * regress_annotation_test_parsing_bug630862 (void);
-void annotation_space_after_comment_bug631690 (void);
+void regress_annotation_space_after_comment_bug631690 (void);
-gchar* annotation_return_filename (void);
+gchar* regress_annotation_return_filename (void);
-GObject * annotation_transfer_floating(void);
+GObject * regress_annotation_transfer_floating(void);
/* This one we can handle properly */
-#define ANNOTATION_CALCULATED_DEFINE (10 * 10)
+#define REGRESS_ANNOTATION_CALCULATED_DEFINE (10 * 10)
/**
- * ANNOTATION_CALCULATED_LARGE:
+ * REGRESS_ANNOTATION_CALCULATED_LARGE: (value 10000000000UL)
*
* Constant to define a calculated large value
*
- * Value: 10000000000UL
+ * Since: 1.4
*/
-#define ANNOTATION_CALCULATED_LARGE (1000 * G_GINT64_CONSTANT (10000000))
+#define REGRESS_ANNOTATION_CALCULATED_LARGE (1000 * G_GINT64_CONSTANT (10000000))
/**
- * ANNOTATION_CALCULATED_LARGE_DIV:
+ * REGRESS_ANNOTATION_CALCULATED_LARGE_DIV: (value 1000000UL)
*
* Constant to define a calculated large value
- *
- * Value: 1000000UL
*/
-#define ANNOTATION_CALCULATED_LARGE_DIV (1000 / G_GINT64_CONSTANT (10000000))
+#define REGRESS_ANNOTATION_CALCULATED_LARGE_DIV (1000 / G_GINT64_CONSTANT (10000000))
-#endif /* __ANNOTATION_OBJECT_H__ */
+#endif /* __REGRESS_ANNOTATION_OBJECT_H__ */
diff --git a/tests/scanner/annotationparser/Makefile.am b/tests/scanner/annotationparser/Makefile.am
new file mode 100644
index 00000000..3003df85
--- /dev/null
+++ b/tests/scanner/annotationparser/Makefile.am
@@ -0,0 +1,68 @@
+include $(top_srcdir)/common.mk
+
+TESTS = \
+ test_parser.py \
+ test_patterns.py
+
+TESTS_ENVIRONMENT = builddir=$(builddir) top_builddir=$(top_builddir) srcdir=$(srcdir) top_srcdir=$(top_srcdir) \
+ PYTHON=$(PYTHON) UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir)
+LOG_COMPILER = $(top_srcdir)/tests/gi-tester
+
+EXTRA_DIST = \
+ $(TESTS) \
+ README \
+ tests.xsd \
+ gi/annotation_allow_none.xml \
+ gi/annotation_array.xml \
+ gi/annotation_attributes.xml \
+ gi/annotation_closure.xml \
+ gi/annotation_constructor.xml \
+ gi/annotation_destroy.xml \
+ gi/annotation_element_type.xml \
+ gi/annotation_foreign.xml \
+ gi/annotation_get_value_func.xml \
+ gi/annotation_in.xml \
+ gi/annotation_in_out.xml \
+ gi/annotation_method.xml \
+ gi/annotation_out.xml \
+ gi/annotation_ref_func.xml \
+ gi/annotation_rename_to.xml \
+ gi/annotation_scope.xml \
+ gi/annotation_set_value_func.xml \
+ gi/annotation_skip.xml \
+ gi/annotation_transfer.xml \
+ gi/annotation_type.xml \
+ gi/annotation_unref_func.xml \
+ gi/annotation_value.xml \
+ gi/annotation_virtual.xml \
+ gi/annotations.xml \
+ gi/identifier.xml \
+ gi/identifier_section.xml \
+ gi/identifier_symbol.xml \
+ gi/parameter.xml \
+ gi/parameter_varargs.xml \
+ gi/syntax.xml \
+ gi/syntax_indentation.xml \
+ gi/syntax_multiline_annotations.xml \
+ gi/syntax_nested_tags.xml \
+ gi/syntax_paragraph_breaks.xml \
+ gi/syntax_whitespace.xml \
+ gi/tag.xml \
+ gi/tag_deprecated.xml \
+ gi/tag_description.xml \
+ gi/tag_returns.xml \
+ gi/tag_since.xml \
+ gi/tag_stability.xml \
+ gtkdoc/gobject/gtypes.h.xml \
+ gtkdoc/gobject/gtypes.c.xml \
+ gtkdoc/gobject/giface.h.xml \
+ gtkdoc/gobject/giface.c.xml \
+ gtkdoc/fail/tester.h.xml \
+ gtkdoc/fail/tester.c.xml \
+ gtkdoc/empty/tester.c.xml \
+ gtkdoc/bugs/tester.h.xml \
+ gtkdoc/bugs/tester.c.xml \
+ gtkdoc/annotations/tester.h.xml \
+ gtkdoc/annotations/tester.c.xml \
+ gtkdoc/gobject/gobject.h.xml \
+ gtkdoc/gobject/gobject.c.xml
diff --git a/tests/scanner/annotationparser/README b/tests/scanner/annotationparser/README
new file mode 100644
index 00000000..1dbc64e1
--- /dev/null
+++ b/tests/scanner/annotationparser/README
@@ -0,0 +1,52 @@
+test_patterns.py
+================
+
+Notes
+-----
+
+The tests included within test_patterns.py are designed to torture the regular
+expression programs used to match different parts of GTK-Doc comment blocks
+by giscanner/annotationparser.py
+
+
+test_parser.py
+==============
+
+Notes
+-----
+
+- the names of the directories containing test .xml and the .xml files themselves should
+ not contain the hyphen ('-') character. This because we use the directory and file
+ names to generate valid Python method names (where the hyphen character is illegal).
+
+- GTK-Doc comment blocks can contain XML (DocBook) fragments on their own. You can wrap such
+ comment blocks into a CDATA section to prevent the tests XML parser from doing the
+ wrong thing.
+ Occasionally, GTK-Doc comment blocks containing XML (DocBook) fragments can also contain
+ CDATA sections on their own. This can be handled by wrapping the GTK-Doc comment block into
+ a CDATA section as described above, and escape the embedded GTK-Doc CDATA section's
+ opening bracket "<!" with "{{!" and the matching close bracket ">" with "!}}".
+
+- *Note well* that trailing whitespace characters in test .xml files are not there by accident.
+ So whatever your text editor of choice or scm du jour might claim, trailing whitespace
+ is required!
+
+
+Test files
+----------
+
+gtk-doc/*.xml:
+ The GTK-Doc comment block tests in this directory are copied verbatim from the GTK-Doc
+ test suite. Not all of these tests make sense from GTK-Doc's point of view without the
+ actual C sources they document, but are great for testing the level of understanding
+ GtkDocCommentBlockParser has about the GTK-Doc comment block syntax.
+
+ GTK-Doc tests originally taken at revision:
+ http://git.gnome.org/browse/gtk-doc/tree/tests?id=2a6b01253fe41412172a60f26705114b953d0a95
+ and should be updated regularly to reflect changes in the GTK-Doc project.
+ - updated 2013/07/30 to 1846fc7e904f6f56b74c366d205d6bb946eac17e
+
+gobject-introspection/*.xml:
+ GTK-Doc comment blocks specifically designed to ensure GtkDocCommentBlockParser does the
+ right thing and continues to function correctly. The goal is to exercise all possible
+ combinations of tags, parameters and annotations (both current and deprecated syntax).
diff --git a/tests/scanner/annotationparser/gi/annotation_allow_none.xml b/tests/scanner/annotationparser/gi/annotation_allow_none.xml
new file mode 100644
index 00000000..ae6b3b37
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_allow_none.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_inout:
+ * @object: a #GObject
+ * @inoutarg: (inout) (allow-none): This is an argument test
+ *
+ * This is a test for out arguments
+ *
+ * Return value: (allow-none): an int
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_inout</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #GObject</description>
+ </parameter>
+ <parameter>
+ <name>inoutarg</name>
+ <annotations>
+ <annotation>
+ <name>inout</name>
+ </annotation>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>This is an argument test</description>
+ </parameter>
+ </parameters>
+ <description>This is a test for out arguments</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>an int</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_inout:
+ * @object: a #GObject
+ * @inoutarg: (inout) (allow-none): This is an argument test
+ *
+ * This is a test for out arguments
+ *
+ * Returns: (allow-none): an int
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_array.xml b/tests/scanner/annotationparser/gi/annotation_array.xml
new file mode 100644
index 00000000..3a7cbc0b
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_array.xml
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_compute_sum:
+ * @nums: (array): Sequence of numbers
+ *
+ * Test taking a zero-terminated array
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_compute_sum</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>nums</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ </annotation>
+ </annotations>
+ <description>Sequence of numbers</description>
+ </parameter>
+ </parameters>
+ <description>Test taking a zero-terminated array</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_compute_sum:
+ * @nums: (array): Sequence of numbers
+ *
+ * Test taking a zero-terminated array
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_compute_sum_n:
+ * @object: a #AnnotationObject
+ * @nums: (array length=n_nums zero-terminated=0): Sequence of
+ * numbers that are zero-terminated
+ * @n_nums: Length of number array
+ *
+ * Test taking an array with length parameter
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_compute_sum_n</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>nums</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>length</name>
+ <value>n_nums</value>
+ </option>
+ <option>
+ <name>zero-terminated</name>
+ <value>0</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Sequence of
+ numbers that are zero-terminated</description>
+ </parameter>
+ <parameter>
+ <name>n_nums</name>
+ <description>Length of number array</description>
+ </parameter>
+ </parameters>
+ <description>Test taking an array with length parameter</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_compute_sum_n:
+ * @object: a #AnnotationObject
+ * @nums: (array length=n_nums zero-terminated=0): Sequence of
+ * numbers that are zero-terminated
+ * @n_nums: Length of number array
+ *
+ * Test taking an array with length parameter
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_compute_sum_nz:
+ * @object: a #AnnotationObject
+ * @nums: (array length=n_nums zero-terminated=1): Sequence of numbers that
+ * are zero-terminated
+ * @n_nums: Length of number array
+ *
+ * Test taking a zero-terminated array with length parameter
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_compute_sum_nz</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>nums</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>length</name>
+ <value>n_nums</value>
+ </option>
+ <option>
+ <name>zero-terminated</name>
+ <value>1</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Sequence of numbers that
+are zero-terminated</description>
+ </parameter>
+ <parameter>
+ <name>n_nums</name>
+ <description>Length of number array</description>
+ </parameter>
+ </parameters>
+ <description>Test taking a zero-terminated array with length parameter</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_compute_sum_nz:
+ * @object: a #AnnotationObject
+ * @nums: (array length=n_nums zero-terminated=1): Sequence of numbers that
+ * are zero-terminated
+ * @n_nums: Length of number array
+ *
+ * Test taking a zero-terminated array with length parameter
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_parse_args:
+ * @object: a #AnnotationObject
+ * @argc: (inout): Length of the argument vector
+ * @argv: (inout) (array length=argc zero-terminated=1): Argument vector
+ *
+ * Test taking a zero-terminated array with length parameter
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_parse_args</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>argc</name>
+ <annotations>
+ <annotation>
+ <name>inout</name>
+ </annotation>
+ </annotations>
+ <description>Length of the argument vector</description>
+ </parameter>
+ <parameter>
+ <name>argv</name>
+ <annotations>
+ <annotation>
+ <name>inout</name>
+ </annotation>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>length</name>
+ <value>argc</value>
+ </option>
+ <option>
+ <name>zero-terminated</name>
+ <value>1</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Argument vector</description>
+ </parameter>
+ </parameters>
+ <description>Test taking a zero-terminated array with length parameter</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_parse_args:
+ * @object: a #AnnotationObject
+ * @argc: (inout): Length of the argument vector
+ * @argv: (inout) (array length=argc zero-terminated=1): Argument vector
+ *
+ * Test taking a zero-terminated array with length parameter
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_set_data:
+ * @object: a #AnnotationObject
+ * @data: (array length=length): The data
+ * @length: Length of the data
+ *
+ * Test taking a guchar * with a length.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_set_data</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>data</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>length</name>
+ <value>length</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>The data</description>
+ </parameter>
+ <parameter>
+ <name>length</name>
+ <description>Length of the data</description>
+ </parameter>
+ </parameters>
+ <description>Test taking a guchar * with a length.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_set_data:
+ * @object: a #AnnotationObject
+ * @data: (array length=length): The data
+ * @length: Length of the data
+ *
+ * Test taking a guchar * with a length.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_string_zero_terminated:
+ * @data: (array fixed-size=2): a third value
+ *
+ * Return value: (transfer full) (array zero-terminated=1): The return value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_string_zero_terminated</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>data</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>fixed-size</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a third value</description>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>zero-terminated</name>
+ <value>1</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>The return value</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_string_zero_terminated:
+ * @data: (array fixed-size=2): a third value
+ *
+ * Returns: (transfer full) (array zero-terminated=1): The return value
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_string_zero_terminated:
+ * @data: (array invalid fixed-size=2): a third value
+ *
+ * Return value: (transfer full) (array zero-terminated=1): The return value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_string_zero_terminated</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>data</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>invalid</name>
+ </option>
+ <option>
+ <name>fixed-size</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a third value</description>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>zero-terminated</name>
+ <value>1</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>The return value</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: invalid "array" annotation option: "invalid"</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_string_zero_terminated:
+ * @data: (array invalid fixed-size=2): a third value
+ *
+ * Returns: (transfer full) (array zero-terminated=1): The return value
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * g_app_launch_context_get_environment:
+ * @arg1: (array zero-terminated): ...
+ * @arg2: (array length): ...
+ *
+ * Returns: (array zero-terminated=yes): the child's environment
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>g_app_launch_context_get_environment</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>arg1</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>zero-terminated</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>...</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>length</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>...</description>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>zero-terminated</name>
+ <value>yes</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the child's environment</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: "array" annotation option "zero-terminated" needs a value</message>
+ <message>4: Warning: Test: "array" annotation option "length" needs a value</message>
+ <message>6: Warning: Test: invalid "array" annotation option "zero-terminated" value "yes", must be an integer</message>
+ </messages>
+ </parser>
+ <output>/**
+ * g_app_launch_context_get_environment:
+ * @arg1: (array zero-terminated): ...
+ * @arg2: (array length): ...
+ *
+ * Returns: (array zero-terminated=yes): the child's environment
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_attributes.xml b/tests/scanner/annotationparser/gi/annotation_attributes.xml
new file mode 100644
index 00000000..e9d9b429
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_attributes.xml
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * AnnotationObject: (attributes org.example.test1=horses org.example.test2 org.example.test3=cows)
+ *
+ * This is an object used to test annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.test1</name>
+ <value>horses</value>
+ </option>
+ <option>
+ <name>org.example.test2</name>
+ </option>
+ <option>
+ <name>org.example.test3</name>
+ <value>cows</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.test1=horses org.example.test2 org.example.test3=cows)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Attributes:" tag
+ -->
+ <input>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ *
+ * Attributes: (org.example.test1 horses) (org.example.test2) (org.example.test3 cows)
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.test1</name>
+ <value>horses</value>
+ </option>
+ <option>
+ <name>org.example.test2</name>
+ </option>
+ <option>
+ <name>org.example.test3</name>
+ <value>cows</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.test1 horses) (org.example.test2) (org.example.test3 cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.test1=horses org.example.test2 org.example.test3=cows)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Variation of "Attributes:" tag
+ -->
+ <input>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ *
+ * Attributes: (org.example.test1 horses))
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.test1 horses))
+ ^</message>
+ <message>6: Error: Test: unbalanced parentheses, annotations will be ignored:
+Attributes: (org.example.test1 horses))
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ (attributes) annotation on the identifier together with a
+ deprecated "Attributes:" tag.
+ -->
+ <input>/**
+ * AnnotationObject: (attributes org.example.test1=horses)
+ *
+ * This is an object used to test annotations.
+ *
+ * Attributes: (org.example.test1 horses) (org.example.test2 cows)
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.test1</name>
+ <value>horses</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.test1 horses) (org.example.test2 cows)
+ ^</message>
+ <message>6: Error: Test: Duplicate "Attributes:" annotation will be ignored:
+ * Attributes: (org.example.test1 horses) (org.example.test2 cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.test1=horses)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Attributes:" tag in the wrong location
+ -->
+ <input>/**
+ * AnnotationObject:
+ *
+ * Attributes: (org.example.Test horses) (org.example.test2 cows)
+ *
+ * This is an object used to test annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.Test</name>
+ <value>horses</value>
+ </option>
+ <option>
+ <name>org.example.test2</name>
+ <value>cows</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.Test horses) (org.example.test2 cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.Test=horses org.example.test2=cows)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * AnnotationObject:
+ *
+ * Attributes: (org.example.Test horses cows)
+ *
+ * This is an object used to test annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.Test horses cows)
+ ^</message>
+ <message>4: Error: Test: malformed "Attributes:" tag will be ignored:
+ * Attributes: (org.example.Test horses cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attributes some.annotation.foo1=val1): a value
+ * @arg2: (attributes some.annotation.foo2=val2): another value
+ * @arg3: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attributes some.annotation.foo3=val3): the return value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject::attribute-signal</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>annotation</name>
+ <description>the annotation object</description>
+ </parameter>
+ <parameter>
+ <name>arg1</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo1</name>
+ <value>val1</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo2</name>
+ <value>val2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>another value</description>
+ </parameter>
+ <parameter>
+ <name>arg3</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>fixed-size</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a third value</description>
+ </parameter>
+ </parameters>
+ <description>This signal tests a signal with attributes.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo3</name>
+ <value>val3</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the return value</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attributes some.annotation.foo1=val1): a value
+ * @arg2: (attributes some.annotation.foo2=val2): another value
+ * @arg3: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attributes some.annotation.foo3=val3): the return value
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated (attribute) annotation.
+ -->
+ <input>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attribute some.annotation.foo1): a value
+ * @arg2: (attribute some.annotation.foo2 val2): another value
+ * @arg3: (attribute x y z): something special
+ * @arg4: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attribute some.annotation.foo3 val3): the return value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject::attribute-signal</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>annotation</name>
+ <description>the annotation object</description>
+ </parameter>
+ <parameter>
+ <name>arg1</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo1</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo2</name>
+ <value>val2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>another value</description>
+ </parameter>
+ <parameter>
+ <name>arg3</name>
+ <description>something special</description>
+ </parameter>
+ <parameter>
+ <name>arg4</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>fixed-size</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a third value</description>
+ </parameter>
+ </parameters>
+ <description>This signal tests a signal with attributes.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo3</name>
+ <value>val3</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the return value</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * @arg1: (attribute some.annotation.foo1): a value
+ ^</message>
+ <message>5: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * @arg2: (attribute some.annotation.foo2 val2): another value
+ ^</message>
+ <message>6: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * @arg3: (attribute x y z): something special
+ ^</message>
+ <message>6: Error: Test: malformed "(attribute)" annotation will be ignored:
+ * @arg3: (attribute x y z): something special
+ ^</message>
+ <message>11: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * Returns: (attribute some.annotation.foo3 val3): the return value
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attributes some.annotation.foo1): a value
+ * @arg2: (attributes some.annotation.foo2=val2): another value
+ * @arg3: something special
+ * @arg4: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attributes some.annotation.foo3=val3): the return value
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_closure.xml b/tests/scanner/annotationparser/gi/annotation_closure.xml
new file mode 100644
index 00000000..f67862c5
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_closure.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * AnnotationNotifyFunc:
+ * @data: (closure): The user data
+ *
+ * This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationNotifyFunc</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>data</name>
+ <annotations>
+ <annotation>
+ <name>closure</name>
+ </annotation>
+ </annotations>
+ <description>The user data</description>
+ </parameter>
+ </parameters>
+ <description>This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationNotifyFunc:
+ * @data: (closure): The user data
+ *
+ * This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy) (closure data): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_custom_destroy</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>callback</name>
+ <annotations>
+ <annotation>
+ <name>destroy</name>
+ <options>
+ <option>
+ <name>destroy</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>closure</name>
+ <options>
+ <option>
+ <name>data</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Destroy notification</description>
+ </parameter>
+ </parameters>
+ <description>Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy) (closure data): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy) (closure data=invalid): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_custom_destroy</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>callback</name>
+ <annotations>
+ <annotation>
+ <name>destroy</name>
+ <options>
+ <option>
+ <name>destroy</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>closure</name>
+ <options>
+ <option>
+ <name>data=invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Destroy notification</description>
+ </parameter>
+ </parameters>
+ <description>Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</description>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * @callback: (destroy destroy) (closure data=invalid): Destroy notification
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy) (closure data=invalid): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_constructor.xml b/tests/scanner/annotationparser/gi/annotation_constructor.xml
new file mode 100644
index 00000000..8c0aeb28
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_constructor.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * regress_constructor: (constructor)
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_constructor</name>
+ <annotations>
+ <annotation>
+ <name>constructor</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_constructor: (constructor)
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_destroy.xml b/tests/scanner/annotationparser/gi/annotation_destroy.xml
new file mode 100644
index 00000000..e504a962
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_destroy.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy) (closure data): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_custom_destroy</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>callback</name>
+ <annotations>
+ <annotation>
+ <name>destroy</name>
+ <options>
+ <option>
+ <name>destroy</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>closure</name>
+ <options>
+ <option>
+ <name>data</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Destroy notification</description>
+ </parameter>
+ </parameters>
+ <description>Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy) (closure data): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy=invalid) (closure data): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_custom_destroy</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>callback</name>
+ <annotations>
+ <annotation>
+ <name>destroy</name>
+ <options>
+ <option>
+ <name>destroy=invalid</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>closure</name>
+ <options>
+ <option>
+ <name>data</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Destroy notification</description>
+ </parameter>
+ </parameters>
+ <description>Test messing up the heuristic of closure/destroy-notification
+detection, and fixing it via annotations.</description>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * @callback: (destroy destroy=invalid) (closure data): Destroy notification
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_custom_destroy:
+ * @callback: (destroy destroy=invalid) (closure data): Destroy notification
+ *
+ * Test messing up the heuristic of closure/destroy-notification
+ * detection, and fixing it via annotations.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_element_type.xml b/tests/scanner/annotationparser/gi/annotation_element_type.xml
new file mode 100644
index 00000000..65b3dd09
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_element_type.xml
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * foo_test_array:
+ * @a: (element-type):
+ * @b: (element-type x y z):
+ *
+ * Returns: (element-type utf8) (transfer container): returns %NULL.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_test_array</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ </annotation>
+ </annotations>
+ </parameter>
+ <parameter>
+ <name>b</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>x</name>
+ </option>
+ <option>
+ <name>y</name>
+ </option>
+ <option>
+ <name>z</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>container</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>returns %NULL.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: "element-type" annotation takes at least one option, none given</message>
+ <message>4: Warning: Test: "element-type" annotation takes at most 2 options, 3 given</message>
+ </messages>
+ </parser>
+ <output>/**
+ * foo_test_array:
+ * @a: (element-type):
+ * @b: (element-type x y z):
+ *
+ * Returns: (element-type utf8) (transfer container): returns %NULL.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * RegressTestObj::sig-with-hash-prop:
+ * @self: an object
+ * @hash: (element-type utf8 GObject.Value):
+ *
+ * This test signal is like TelepathyGlib's
+ * TpAccount::status-changed
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestObj::sig-with-hash-prop</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>an object</description>
+ </parameter>
+ <parameter>
+ <name>hash</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ <option>
+ <name>GObject.Value</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </parameter>
+ </parameters>
+ <description>This test signal is like TelepathyGlib's
+ TpAccount::status-changed</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * RegressTestObj::sig-with-hash-prop:
+ * @self: an object
+ * @hash: (element-type utf8 GObject.Value):
+ *
+ * This test signal is like TelepathyGlib's
+ * TpAccount::status-changed
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * regress_test_ghash_nested_everything_return2:
+ *
+ * Another way of specifying nested parameterized types: using the
+ * element-type annotation.
+ *
+ * Return value: (element-type utf8 GLib.HashTable<utf8,utf8>) (transfer full):
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_ghash_nested_everything_return2</name>
+ </identifier>
+ <description>Another way of specifying nested parameterized types: using the
+element-type annotation.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ <option>
+ <name>GLib.HashTable(utf8,utf8)</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_test_ghash_nested_everything_return2:
+ *
+ * Another way of specifying nested parameterized types: using the
+ * element-type annotation.
+ *
+ * Returns: (element-type utf8 GLib.HashTable(utf8,utf8)) (transfer full):
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type invalid utf8=invalid GLib.HashTable(utf8,utf8)): returns %NULL.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_test_array</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>invalid utf8=invalid GLib.HashTable(utf8,utf8)</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>returns %NULL.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * Returns: (element-type invalid utf8=invalid GLib.HashTable(utf8,utf8)): returns %NULL.
+ ^</message>
+ </messages>
+ </parser>
+ <output> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type invalid utf8=invalid GLib.HashTable(utf8,utf8)): returns %NULL.
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_test_array</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8=invalid GLib.HashTable(utf8,utf8) invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>returns %NULL.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * Returns: (element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.
+ ^</message>
+ </messages>
+ </parser>
+ <output> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_foreign.xml b/tests/scanner/annotationparser/gi/annotation_foreign.xml
new file mode 100644
index 00000000..e65e9747
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_foreign.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * FooForeignStruct: (foreign)
+ *
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>FooForeignStruct</name>
+ <annotations>
+ <annotation>
+ <name>foreign</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ </docblock>
+ </parser>
+ <output>/**
+ * FooForeignStruct: (foreign)
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_get_value_func.xml b/tests/scanner/annotationparser/gi/annotation_get_value_func.xml
new file mode 100644
index 00000000..3e96f837
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_get_value_func.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * RegressTestFundamentalObject: (get-value-func regress_test_value_get_fundamental_object)
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>get-value-func</name>
+ <options>
+ <option>
+ <name>regress_test_value_get_fundamental_object</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (get-value-func regress_test_value_get_fundamental_object)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Get value func:" tag syntax
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * This object tests regressions...
+ *
+ * Get value func: regress_test_value_get_fundamental_object
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>get-value-func</name>
+ <options>
+ <option>
+ <name>regress_test_value_get_fundamental_object</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Get value func" has been deprecated, please use annotations on the identifier instead:
+ * Get value func: regress_test_value_get_fundamental_object
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (get-value-func regress_test_value_get_fundamental_object)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Get value func:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * Get value func: regress_test_value_get_fundamental_object
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>get-value-func</name>
+ <options>
+ <option>
+ <name>regress_test_value_get_fundamental_object</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Get value func" has been deprecated, please use annotations on the identifier instead:
+ * Get value func: regress_test_value_get_fundamental_object
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (get-value-func regress_test_value_get_fundamental_object)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * RegressTestFundamentalObject: (get-value-func regress_test_value_get_fundamental_object=invalid)
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>get-value-func</name>
+ <options>
+ <option>
+ <name>regress_test_value_get_fundamental_object=invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * RegressTestFundamentalObject: (get-value-func regress_test_value_get_fundamental_object=invalid)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (get-value-func regress_test_value_get_fundamental_object=invalid)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_in.xml b/tests/scanner/annotationparser/gi/annotation_in.xml
new file mode 100644
index 00000000..26daf5a6
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_in.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_in:
+ * @object: a #GObject
+ * @inarg: (in) (transfer none): This is an argument test
+ *
+ * This is a test for in arguments
+ *
+ * Return value: an int
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_in</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #GObject</description>
+ </parameter>
+ <parameter>
+ <name>inarg</name>
+ <annotations>
+ <annotation>
+ <name>in</name>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>none</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>This is an argument test</description>
+ </parameter>
+ </parameters>
+ <description>This is a test for in arguments</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>an int</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_in:
+ * @object: a #GObject
+ * @inarg: (in) (transfer none): This is an argument test
+ *
+ * This is a test for in arguments
+ *
+ * Returns: an int
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_in_out.xml b/tests/scanner/annotationparser/gi/annotation_in_out.xml
new file mode 100644
index 00000000..1900229e
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_in_out.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_inout:
+ * @object: a #GObject
+ * @inoutarg: (inout): This is an argument test
+ * @inoutarg2: (in-out): This is an argument test
+ *
+ * This is a test for inout arguments
+ *
+ * Return value: an int
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_inout</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #GObject</description>
+ </parameter>
+ <parameter>
+ <name>inoutarg</name>
+ <annotations>
+ <annotation>
+ <name>inout</name>
+ </annotation>
+ </annotations>
+ <description>This is an argument test</description>
+ </parameter>
+ <parameter>
+ <name>inoutarg2</name>
+ <annotations>
+ <annotation>
+ <name>inout</name>
+ </annotation>
+ </annotations>
+ <description>This is an argument test</description>
+ </parameter>
+ </parameters>
+ <description>This is a test for inout arguments</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>an int</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>5: Warning: Test: "in-out" annotation has been deprecated, please use "inout" instead:
+ * @inoutarg2: (in-out): This is an argument test
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_inout:
+ * @object: a #GObject
+ * @inoutarg: (inout): This is an argument test
+ * @inoutarg2: (inout): This is an argument test
+ *
+ * This is a test for inout arguments
+ *
+ * Returns: an int
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_method.xml b/tests/scanner/annotationparser/gi/annotation_method.xml
new file mode 100644
index 00000000..3b9f1b87
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_method.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * regress_forced_method: (method)
+ * @obj: A #RegressTestObj
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_forced_method</name>
+ <annotations>
+ <annotation>
+ <name>method</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>obj</name>
+ <description>A #RegressTestObj</description>
+ </parameter>
+ </parameters>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_forced_method: (method)
+ * @obj: A #RegressTestObj
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_out.xml b/tests/scanner/annotationparser/gi/annotation_out.xml
new file mode 100644
index 00000000..7bfc8638
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_out.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_out:
+ * @object: a #GObject
+ * @outarg: (out): This is an argument test
+ *
+ * This is a test for out arguments
+ *
+ * Return value: an int
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_out</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #GObject</description>
+ </parameter>
+ <parameter>
+ <name>outarg</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ </annotation>
+ </annotations>
+ <description>This is an argument test</description>
+ </parameter>
+ </parameters>
+ <description>This is a test for out arguments</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>an int</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_out:
+ * @object: a #GObject
+ * @outarg: (out): This is an argument test
+ *
+ * This is a test for out arguments
+ *
+ * Returns: an int
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * regress_test_struct_a_clone:
+ * @a: the structure
+ * @a_out: (out caller-allocates): the cloned structure
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_struct_a_clone</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>the structure</description>
+ </parameter>
+ <parameter>
+ <name>a_out</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ <options>
+ <option>
+ <name>caller-allocates</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the cloned structure</description>
+ </parameter>
+ </parameters>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_test_struct_a_clone:
+ * @a: the structure
+ * @a_out: (out caller-allocates): the cloned structure
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * regress_test_struct_a_clone:
+ * @a: the structure
+ * @a_out: (out callee-allocates): the cloned structure
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_struct_a_clone</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>the structure</description>
+ </parameter>
+ <parameter>
+ <name>a_out</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ <options>
+ <option>
+ <name>callee-allocates</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the cloned structure</description>
+ </parameter>
+ </parameters>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_test_struct_a_clone:
+ * @a: the structure
+ * @a_out: (out callee-allocates): the cloned structure
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * regress_test_struct_a_clone:
+ * @a: (out invalid): the structure
+ * @a_out: (out callee-allocates=invalid): the cloned structure
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_struct_a_clone</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ <options>
+ <option>
+ <name>invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the structure</description>
+ </parameter>
+ <parameter>
+ <name>a_out</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ <options>
+ <option>
+ <name>callee-allocates=invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the cloned structure</description>
+ </parameter>
+ </parameters>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * @a_out: (out callee-allocates=invalid): the cloned structure
+ ^</message>
+ <message>3: Warning: Test: invalid "out" annotation option: "invalid"</message>
+ <message>4: Warning: Test: invalid "out" annotation option: "callee-allocates=invalid"</message>
+ </messages>
+ </parser>
+ <output>/**
+ * regress_test_struct_a_clone:
+ * @a: (out invalid): the structure
+ * @a_out: (out callee-allocates=invalid): the cloned structure
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_ref_func.xml b/tests/scanner/annotationparser/gi/annotation_ref_func.xml
new file mode 100644
index 00000000..a967102a
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_ref_func.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref)
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>ref-func</name>
+ <options>
+ <option>
+ <name>regress_test_fundamental_object_ref</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Ref func:" tag syntax
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * This object tests regressions...
+ *
+ * Ref func: regress_test_fundamental_object_ref
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>ref-func</name>
+ <options>
+ <option>
+ <name>regress_test_fundamental_object_ref</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Ref func" has been deprecated, please use annotations on the identifier instead:
+ * Ref func: regress_test_fundamental_object_ref
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Ref func:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * Ref func: regress_test_fundamental_object_ref
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>ref-func</name>
+ <options>
+ <option>
+ <name>regress_test_fundamental_object_ref</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Ref func" has been deprecated, please use annotations on the identifier instead:
+ * Ref func: regress_test_fundamental_object_ref
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref=invalid)
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>ref-func</name>
+ <options>
+ <option>
+ <name>regress_test_fundamental_object_ref=invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref=invalid)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref=invalid)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_rename_to.xml b/tests/scanner/annotationparser/gi/annotation_rename_to.xml
new file mode 100644
index 00000000..2987d889
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_rename_to.xml
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_watch_full: (rename-to annotation_object_watch)
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ * @destroy: Destroy notification
+ *
+ * Test overriding via the "Rename To" annotation.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_watch_full</name>
+ <annotations>
+ <annotation>
+ <name>rename-to</name>
+ <options>
+ <option>
+ <name>annotation_object_watch</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>A #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>func</name>
+ <description>The callback</description>
+ </parameter>
+ <parameter>
+ <name>user_data</name>
+ <description>The callback data</description>
+ </parameter>
+ <parameter>
+ <name>destroy</name>
+ <description>Destroy notification</description>
+ </parameter>
+ </parameters>
+ <description>Test overriding via the "Rename To" annotation.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_watch_full: (rename-to annotation_object_watch)
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ * @destroy: Destroy notification
+ *
+ * Test overriding via the "Rename To" annotation.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Rename to:" tag syntax
+ -->
+ <input>/**
+ * annotation_object_watch_full:
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ * @destroy: Destroy notification
+ *
+ * Test overriding via the "Rename To" annotation.
+ *
+ * Rename to: annotation_object_watch
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_watch_full</name>
+ <annotations>
+ <annotation>
+ <name>rename-to</name>
+ <options>
+ <option>
+ <name>annotation_object_watch</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>A #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>func</name>
+ <description>The callback</description>
+ </parameter>
+ <parameter>
+ <name>user_data</name>
+ <description>The callback data</description>
+ </parameter>
+ <parameter>
+ <name>destroy</name>
+ <description>Destroy notification</description>
+ </parameter>
+ </parameters>
+ <description>Test overriding via the "Rename To" annotation.</description>
+ </docblock>
+ <messages>
+ <message>10: Warning: Test: GObject-Introspection specific GTK-Doc tag "Rename to" has been deprecated, please use annotations on the identifier instead:
+ * Rename to: annotation_object_watch
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_watch_full: (rename-to annotation_object_watch)
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ * @destroy: Destroy notification
+ *
+ * Test overriding via the "Rename To" annotation.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Rename to:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * annotation_object_watch_full:
+ *
+ * Rename to: annotation_object_watch
+ *
+ * Test overriding via the "Rename To" annotation.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_watch_full</name>
+ <annotations>
+ <annotation>
+ <name>rename-to</name>
+ <options>
+ <option>
+ <name>annotation_object_watch</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test overriding via the "Rename To" annotation.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Rename to" has been deprecated, please use annotations on the identifier instead:
+ * Rename to: annotation_object_watch
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_watch_full: (rename-to annotation_object_watch)
+ *
+ * Test overriding via the "Rename To" annotation.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_watch_full: (rename-to annotation_object_watch=invalid)
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ * @destroy: Destroy notification
+ *
+ * Test overriding via the "Rename To" annotation.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_watch_full</name>
+ <annotations>
+ <annotation>
+ <name>rename-to</name>
+ <options>
+ <option>
+ <name>annotation_object_watch=invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>A #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>func</name>
+ <description>The callback</description>
+ </parameter>
+ <parameter>
+ <name>user_data</name>
+ <description>The callback data</description>
+ </parameter>
+ <parameter>
+ <name>destroy</name>
+ <description>Destroy notification</description>
+ </parameter>
+ </parameters>
+ <description>Test overriding via the "Rename To" annotation.</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * annotation_object_watch_full: (rename-to annotation_object_watch=invalid)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_watch_full: (rename-to annotation_object_watch=invalid)
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ * @destroy: Destroy notification
+ *
+ * Test overriding via the "Rename To" annotation.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_scope.xml b/tests/scanner/annotationparser/gi/annotation_scope.xml
new file mode 100644
index 00000000..3a22274a
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_scope.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_foreach:
+ * @object: a #AnnotationObject
+ * @func: (scope call): Callback to invoke
+ * @user_data: Callback user data
+ *
+ * Test taking a call-scoped callback
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_foreach</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>func</name>
+ <annotations>
+ <annotation>
+ <name>scope</name>
+ <options>
+ <option>
+ <name>call</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>Callback to invoke</description>
+ </parameter>
+ <parameter>
+ <name>user_data</name>
+ <description>Callback user data</description>
+ </parameter>
+ </parameters>
+ <description>Test taking a call-scoped callback</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_foreach:
+ * @object: a #AnnotationObject
+ * @func: (scope call): Callback to invoke
+ * @user_data: Callback user data
+ *
+ * Test taking a call-scoped callback
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * regress_test_callback_destroy_notify:
+ * @callback: (scope notified):
+ *
+ * Notified - callback persists until a DestroyNotify delegate
+ * is invoked.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_callback_destroy_notify</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>callback</name>
+ <annotations>
+ <annotation>
+ <name>scope</name>
+ <options>
+ <option>
+ <name>notified</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </parameter>
+ </parameters>
+ <description>Notified - callback persists until a DestroyNotify delegate
+is invoked.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_test_callback_destroy_notify:
+ * @callback: (scope notified):
+ *
+ * Notified - callback persists until a DestroyNotify delegate
+ * is invoked.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * regress_test_callback_async:
+ * @callback: (scope async):
+ *
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_callback_async</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>callback</name>
+ <annotations>
+ <annotation>
+ <name>scope</name>
+ <options>
+ <option>
+ <name>async</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </parameter>
+ </parameters>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_test_callback_async:
+ * @callback: (scope async):
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_set_value_func.xml b/tests/scanner/annotationparser/gi/annotation_set_value_func.xml
new file mode 100644
index 00000000..f98944b5
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_set_value_func.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * RegressTestFundamentalObject: (set-value-func regress_test_value_set_fundamental_object)
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>set-value-func</name>
+ <options>
+ <option>
+ <name>regress_test_value_set_fundamental_object</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (set-value-func regress_test_value_set_fundamental_object)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Set value func:" tag syntax
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * This object tests regressions...
+ *
+ * Set value func: regress_test_value_set_fundamental_object
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>set-value-func</name>
+ <options>
+ <option>
+ <name>regress_test_value_set_fundamental_object</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Set value func" has been deprecated, please use annotations on the identifier instead:
+ * Set value func: regress_test_value_set_fundamental_object
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (set-value-func regress_test_value_set_fundamental_object)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Set value func:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * Set value func: regress_test_value_set_fundamental_object
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>set-value-func</name>
+ <options>
+ <option>
+ <name>regress_test_value_set_fundamental_object</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Set value func" has been deprecated, please use annotations on the identifier instead:
+ * Set value func: regress_test_value_set_fundamental_object
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (set-value-func regress_test_value_set_fundamental_object)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_skip.xml b/tests/scanner/annotationparser/gi/annotation_skip.xml
new file mode 100644
index 00000000..e0352e03
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_skip.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_watch: (skip)
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ *
+ * This is here just for the sake of being overriden by its
+ * annotation_object_watch_full().
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_watch</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>A #AnnotationObject</description>
+ </parameter>
+ <parameter>
+ <name>func</name>
+ <description>The callback</description>
+ </parameter>
+ <parameter>
+ <name>user_data</name>
+ <description>The callback data</description>
+ </parameter>
+ </parameters>
+ <description>This is here just for the sake of being overriden by its
+annotation_object_watch_full().</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_watch: (skip)
+ * @object: A #AnnotationObject
+ * @func: The callback
+ * @user_data: The callback data
+ *
+ * This is here just for the sake of being overriden by its
+ * annotation_object_watch_full().
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_watch: (skip yes)
+ *
+ * This is here just for the sake of being overriden by its
+ * annotation_object_watch_full().
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_watch</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ <options>
+ <option>
+ <name>yes</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is here just for the sake of being overriden by its
+annotation_object_watch_full().</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: "skip" annotation needs no options, 1 given</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_watch: (skip yes)
+ *
+ * This is here just for the sake of being overriden by its
+ * annotation_object_watch_full().
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_transfer.xml b/tests/scanner/annotationparser/gi/annotation_transfer.xml
new file mode 100644
index 00000000..9b4ded1a
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_transfer.xml
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * AnnotationObject::list-signal:
+ * @annotation: the annotation object
+ * @list: (type GLib.List) (element-type utf8) (transfer container): a list of strings
+ *
+ * This is a signal which takes a list of strings, but it's not
+ * known by GObject as it's only marked as G_TYPE_POINTER
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject::list-signal</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>annotation</name>
+ <description>the annotation object</description>
+ </parameter>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.List</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>container</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a list of strings</description>
+ </parameter>
+ </parameters>
+ <description>This is a signal which takes a list of strings, but it's not
+known by GObject as it's only marked as G_TYPE_POINTER</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject::list-signal:
+ * @annotation: the annotation object
+ * @list: (type GLib.List) (element-type utf8) (transfer container): a list of strings
+ *
+ * This is a signal which takes a list of strings, but it's not
+ * known by GObject as it's only marked as G_TYPE_POINTER
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_in:
+ * @object: a #GObject
+ * @inarg: (in) (transfer none): This is an argument test
+ *
+ * This is a test for in arguments
+ *
+ * Return value: an int
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_in</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>a #GObject</description>
+ </parameter>
+ <parameter>
+ <name>inarg</name>
+ <annotations>
+ <annotation>
+ <name>in</name>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>none</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>This is an argument test</description>
+ </parameter>
+ </parameters>
+ <description>This is a test for in arguments</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>an int</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_in:
+ * @object: a #GObject
+ * @inarg: (in) (transfer none): This is an argument test
+ *
+ * This is a test for in arguments
+ *
+ * Returns: an int
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_transfer_floating:
+ *
+ * Returns: (transfer floating): A floating object
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_transfer_floating</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>floating</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>A floating object</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_transfer_floating:
+ *
+ * Returns: (transfer floating): A floating object
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * FsSession:codecs-without-config: (transfer full)
+ *
+ * This is the same list of codecs as #FsSession:codecs
+ * without....
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>FsSession:codecs-without-config</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is the same list of codecs as #FsSession:codecs
+without....</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * FsSession:codecs-without-config: (transfer full)
+ *
+ * This is the same list of codecs as #FsSession:codecs
+ * without....
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Transfer:" tag syntax
+ -->
+ <input>/**
+ * FsSession:codecs-without-config:
+ *
+ * This is the same list of codecs as #FsSession:codecs
+ * without....
+ *
+ * Transfer: full
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>FsSession:codecs-without-config</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is the same list of codecs as #FsSession:codecs
+without....</description>
+ </docblock>
+ <messages>
+ <message>7: Warning: Test: GObject-Introspection specific GTK-Doc tag "Transfer" has been deprecated, please use annotations on the identifier instead:
+ * Transfer: full
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * FsSession:codecs-without-config: (transfer full)
+ *
+ * This is the same list of codecs as #FsSession:codecs
+ * without....
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Transfer:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * FsSession:codecs-without-config:
+ *
+ * Transfer: full
+ *
+ * This is the same list of codecs as #FsSession:codecs
+ * without....
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>FsSession:codecs-without-config</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is the same list of codecs as #FsSession:codecs
+without....</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Transfer" has been deprecated, please use annotations on the identifier instead:
+ * Transfer: full
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * FsSession:codecs-without-config: (transfer full)
+ *
+ * This is the same list of codecs as #FsSession:codecs
+ * without....
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_type.xml b/tests/scanner/annotationparser/gi/annotation_type.xml
new file mode 100644
index 00000000..c3d6351d
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_type.xml
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * AnnotationObject::list-signal:
+ * @annotation: the annotation object
+ * @list: (type GLib.List) (element-type utf8) (transfer container): a list of strings
+ *
+ * This is a signal which takes a list of strings, but it's not
+ * known by GObject as it's only marked as G_TYPE_POINTER
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject::list-signal</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>annotation</name>
+ <description>the annotation object</description>
+ </parameter>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.List</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>container</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a list of strings</description>
+ </parameter>
+ </parameters>
+ <description>This is a signal which takes a list of strings, but it's not
+known by GObject as it's only marked as G_TYPE_POINTER</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject::list-signal:
+ * @annotation: the annotation object
+ * @list: (type GLib.List) (element-type utf8) (transfer container): a list of strings
+ *
+ * This is a signal which takes a list of strings, but it's not
+ * known by GObject as it's only marked as G_TYPE_POINTER
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * AnnotationObject:hash-table: (type GLib.HashTable(utf8,gint8)) (transfer container)
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject:hash-table</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,gint8)</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>container</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject:hash-table: (type GLib.HashTable(utf8,gint8)) (transfer container)
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated inequality sign/angled brackets notation.
+ -->
+ <input><![CDATA[/**
+ * AnnotationObject:hash-table: (type GLib.HashTable<utf8,gint8>) (transfer container)
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject:hash-table</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,gint8)</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>container</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject:hash-table: (type GLib.HashTable(utf8,gint8)) (transfer container)
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Type:" tag syntax
+ -->
+ <input>/**
+ * RegressTestObj:hash-table:
+ *
+ * Test.
+ *
+ * Type: GLib.HashTable(utf8,gint8)
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestObj:hash-table</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,gint8)</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Type" has been deprecated, please use annotations on the identifier instead:
+ * Type: GLib.HashTable(utf8,gint8)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestObj:hash-table: (type GLib.HashTable(utf8,gint8))
+ *
+ * Test.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Type:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * RegressTestObj:hash-table:
+ *
+ * Type: GLib.HashTable(utf8,gint8)
+ *
+ * Test.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestObj:hash-table</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,gint8)</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Type" has been deprecated, please use annotations on the identifier instead:
+ * Type: GLib.HashTable(utf8,gint8)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestObj:hash-table: (type GLib.HashTable(utf8,gint8))
+ *
+ * Test.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated angled brackets in deprecated "Type:" tag syntax
+ -->
+ <input><![CDATA[/**
+ * RegressTestObj:hash-table:
+ *
+ * Test.
+ *
+ * Type: GLib.HashTable<utf8,gint8>
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestObj:hash-table</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,gint8)</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test.</description>
+ </docblock>
+ <messages>
+ <message><![CDATA[6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Type" has been deprecated, please use annotations on the identifier instead:
+ * Type: GLib.HashTable<utf8,gint8>
+ ^]]></message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestObj:hash-table: (type GLib.HashTable(utf8,gint8))
+ *
+ * Test.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_unref_func.xml b/tests/scanner/annotationparser/gi/annotation_unref_func.xml
new file mode 100644
index 00000000..59f3f8d4
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_unref_func.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * RegressTestFundamentalObject: (unref-func regress_test_fundamental_object_unref)
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>unref-func</name>
+ <options>
+ <option>
+ <name>regress_test_fundamental_object_unref</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (unref-func regress_test_fundamental_object_unref)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Unref func:" tag syntax
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * This object tests regressions...
+ *
+ * Unref func: regress_test_fundamental_object_unref
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>unref-func</name>
+ <options>
+ <option>
+ <name>regress_test_fundamental_object_unref</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Unref func" has been deprecated, please use annotations on the identifier instead:
+ * Unref func: regress_test_fundamental_object_unref
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (unref-func regress_test_fundamental_object_unref)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Unref func:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * RegressTestFundamentalObject:
+ *
+ * Unref func: regress_test_fundamental_object_unref
+ *
+ * This object tests regressions...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestFundamentalObject</name>
+ <annotations>
+ <annotation>
+ <name>unref-func</name>
+ <options>
+ <option>
+ <name>regress_test_fundamental_object_unref</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This object tests regressions...</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Unref func" has been deprecated, please use annotations on the identifier instead:
+ * Unref func: regress_test_fundamental_object_unref
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * RegressTestFundamentalObject: (unref-func regress_test_fundamental_object_unref)
+ *
+ * This object tests regressions...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_value.xml b/tests/scanner/annotationparser/gi/annotation_value.xml
new file mode 100644
index 00000000..7d72ef71
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_value.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * ANNOTATION_CALCULATED_LARGE: (value 10000000000UL)
+ *
+ * Constant to define a calculated large value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>ANNOTATION_CALCULATED_LARGE</name>
+ <annotations>
+ <annotation>
+ <name>value</name>
+ <options>
+ <option>
+ <name>10000000000UL</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Constant to define a calculated large value</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * ANNOTATION_CALCULATED_LARGE: (value 10000000000UL)
+ *
+ * Constant to define a calculated large value
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Value:" tag syntax
+ -->
+ <input>/**
+ * ANNOTATION_CALCULATED_LARGE:
+ *
+ * Constant to define a calculated large value
+ *
+ * Value: 10000000000UL
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>ANNOTATION_CALCULATED_LARGE</name>
+ <annotations>
+ <annotation>
+ <name>value</name>
+ <options>
+ <option>
+ <name>10000000000UL</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Constant to define a calculated large value</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Value" has been deprecated, please use annotations on the identifier instead:
+ * Value: 10000000000UL
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * ANNOTATION_CALCULATED_LARGE: (value 10000000000UL)
+ *
+ * Constant to define a calculated large value
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Value:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * ANNOTATION_CALCULATED_LARGE:
+ *
+ * Value: 10000000000UL
+ *
+ * Constant to define a calculated large value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>ANNOTATION_CALCULATED_LARGE</name>
+ <annotations>
+ <annotation>
+ <name>value</name>
+ <options>
+ <option>
+ <name>10000000000UL</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Constant to define a calculated large value</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Value" has been deprecated, please use annotations on the identifier instead:
+ * Value: 10000000000UL
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * ANNOTATION_CALCULATED_LARGE: (value 10000000000UL)
+ *
+ * Constant to define a calculated large value
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_virtual.xml b/tests/scanner/annotationparser/gi/annotation_virtual.xml
new file mode 100644
index 00000000..3321eea0
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_virtual.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * foo_object_read: (virtual read_fn)
+ * @object: obj
+ * @offset: offset
+ * @length: length
+ *
+ * Read some stuff.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_object_read</name>
+ <annotations>
+ <annotation>
+ <name>virtual</name>
+ <options>
+ <option>
+ <name>read_fn</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>obj</description>
+ </parameter>
+ <parameter>
+ <name>offset</name>
+ <description>offset</description>
+ </parameter>
+ <parameter>
+ <name>length</name>
+ <description>length</description>
+ </parameter>
+ </parameters>
+ <description>Read some stuff.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * foo_object_read: (virtual read_fn)
+ * @object: obj
+ * @offset: offset
+ * @length: length
+ *
+ * Read some stuff.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Virtual:" tag syntax
+ -->
+ <input>/**
+ * foo_object_read:
+ * @object: obj
+ * @offset: offset
+ * @length: length
+ *
+ * Read some stuff.
+ *
+ * Virtual: read_fn
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_object_read</name>
+ <annotations>
+ <annotation>
+ <name>virtual</name>
+ <options>
+ <option>
+ <name>read_fn</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>obj</description>
+ </parameter>
+ <parameter>
+ <name>offset</name>
+ <description>offset</description>
+ </parameter>
+ <parameter>
+ <name>length</name>
+ <description>length</description>
+ </parameter>
+ </parameters>
+ <description>Read some stuff.</description>
+ </docblock>
+ <messages>
+ <message>9: Warning: Test: GObject-Introspection specific GTK-Doc tag "Virtual" has been deprecated, please use annotations on the identifier instead:
+ * Virtual: read_fn
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * foo_object_read: (virtual read_fn)
+ * @object: obj
+ * @offset: offset
+ * @length: length
+ *
+ * Read some stuff.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Virtual:" tag syntax in the wrong location
+ -->
+ <input>/**
+ * foo_object_read:
+ *
+ * Virtual: read_fn
+ *
+ * Read some stuff.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_object_read</name>
+ <annotations>
+ <annotation>
+ <name>virtual</name>
+ <options>
+ <option>
+ <name>read_fn</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Read some stuff.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Virtual" has been deprecated, please use annotations on the identifier instead:
+ * Virtual: read_fn
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * foo_object_read: (virtual read_fn)
+ *
+ * Read some stuff.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/annotations.xml b/tests/scanner/annotationparser/gi/annotations.xml
new file mode 100644
index 00000000..a7ca8e74
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotations.xml
@@ -0,0 +1,637 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_test: (skip) (skip)
+ *
+ * Oops.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Oops.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: multiple "skip" annotations:
+ * annotation_test: (skip) (skip)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test: (skip)
+ *
+ * Oops.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (hello) (world)
+ * @param: (invalid-annotation-option): sizeof (x) == 1
+ *
+ * Test unknown annotations without options.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ <annotations>
+ <annotation>
+ <name>hello</name>
+ </annotation>
+ <annotation>
+ <name>world</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param</name>
+ <annotations>
+ <annotation>
+ <name>invalid-annotation-option</name>
+ </annotation>
+ </annotations>
+ <description>sizeof (x) == 1</description>
+ </parameter>
+ </parameters>
+ <description>Test unknown annotations without options.</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: unknown annotation: hello</message>
+ <message>2: Warning: Test: unknown annotation: world</message>
+ <message>3: Warning: Test: unknown annotation: invalid-annotation-option</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test: (hello) (world)
+ * @param: (invalid-annotation-option): sizeof (x) == 1
+ *
+ * Test unknown annotations without options.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: some data: (foo bar)
+ *
+ * Oops.
+ */</input>
+ <parser>
+ <messages>
+ <message>2: Error: Test: identifier not found on the first line:
+ * annotation_test: some data: (foo bar)
+ ^</message>
+ </messages>
+ </parser>
+</test>
+
+<test>
+ <input>/**
+ * annotationtest some data (foo bar)
+ * @object: some data (foo bar)
+ *
+ * Oops.
+ */</input>
+ <parser>
+ <messages>
+ <message>2: Error: Test: identifier not found on the first line:
+ * annotationtest some data (foo bar)
+ ^</message>
+ </messages>
+ </parser>
+</test>
+
+<test>
+ <input>/**
+ * annotationtest
+ * @object: some data (foo bar)
+ *
+ * Oops.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotationtest</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>some data (foo bar)</description>
+ </parameter>
+ </parameters>
+ <description>Oops.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotationtest:
+ * @object: some data (foo bar)
+ *
+ * Oops.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: )skip)
+ *
+ * Oops.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <description>Oops.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * annotation_test: )skip)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ *
+ * Oops.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (hello)(world)
+ *
+ * Test unknown annotations without options.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ <annotations>
+ <annotation>
+ <name>hello</name>
+ </annotation>
+ <annotation>
+ <name>world</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test unknown annotations without options.</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: unknown annotation: hello</message>
+ <message>2: Warning: Test: unknown annotation: world</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test: (hello) (world)
+ *
+ * Test unknown annotations without options.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (hello x=y z ) (world something else)
+ *
+ * Test unknown annotations with options.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ <annotations>
+ <annotation>
+ <name>hello</name>
+ <options>
+ <option>
+ <name>x=y z</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>world</name>
+ <options>
+ <option>
+ <name>something else</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test unknown annotations with options.</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: unknown annotation: hello</message>
+ <message>2: Warning: Test: unknown annotation: world</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test: (hello x=y z) (world something else)
+ *
+ * Test unknown annotations with options.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test:
+ * @test: (element-type gint gint) (transfer none)
+ *
+ * Test multiple identical option names.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>test</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>gint</name>
+ </option>
+ <option>
+ <name>gint</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>none</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </parameter>
+ </parameters>
+ <description>Test multiple identical option names.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_test:
+ * @test: (element-type gint gint) (transfer none):
+ *
+ * Test multiple identical option names.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (type GLib.HashTable(utf8,gint8)) (attributes x=1 y=2)
+ *
+ * Test nested parentheses.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,gint8)</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>x</name>
+ <value>1</value>
+ </option>
+ <option>
+ <name>y</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test nested parentheses.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_test: (type GLib.HashTable(utf8,gint8)) (attributes x=1 y=2)
+ *
+ * Test nested parentheses.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (type GLib.HashTable(utf8,GLib.HashTable(utf8,gint8))) (attributes x=1 y=2)
+ *
+ * Test nested parentheses.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,GLib.HashTable(utf8,gint8))</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>x</name>
+ <value>1</value>
+ </option>
+ <option>
+ <name>y</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test nested parentheses.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_test: (type GLib.HashTable(utf8,GLib.HashTable(utf8,gint8))) (attributes x=1 y=2)
+ *
+ * Test nested parentheses.
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * annotation_test: (type GLib.HashTable<utf8,GLib.HashTable<utf8,gint8>>) (attributes x=1 y=2)
+ *
+ * Test deprecated angled brackets.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.HashTable(utf8,GLib.HashTable(utf8,gint8))</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>x</name>
+ <value>1</value>
+ </option>
+ <option>
+ <name>y</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Test deprecated angled brackets.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_test: (type GLib.HashTable(utf8,GLib.HashTable(utf8,gint8))) (attributes x=1 y=2)
+ *
+ * Test deprecated angled brackets.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: ((skip)
+ *
+ * Test too many '('.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <description>Test too many '('.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: unexpected parentheses, annotations will be ignored:
+ * annotation_test: ((skip)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ *
+ * Test too many '('.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (skip) element-type (int))
+ *
+ * Test missing '('.
+ */</input>
+ <parser>
+ <messages>
+ <message>2: Error: Test: identifier not found on the first line:
+ * annotation_test: (skip) element-type (int))
+ ^</message>
+ </messages>
+ </parser>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: ()
+ *
+ * Closing should not follow an opening parentheses.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <description>Closing should not follow an opening parentheses.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: unexpected parentheses, annotations will be ignored:
+ * annotation_test: ()
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ *
+ * Closing should not follow an opening parentheses.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (hello()) (world(())) (foo)
+ *
+ * Closing should not follow an opening parentheses.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <description>Closing should not follow an opening parentheses.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: unexpected parentheses, annotations will be ignored:
+ * annotation_test: (hello()) (world(())) (foo)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ *
+ * Closing should not follow an opening parentheses.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (skip)) (type uint))
+ *
+ * Test too many ')'.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <description>Test too many ')'.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * annotation_test: (skip)) (type uint))
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ *
+ * Test too many ')'.
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * annotation_test:
+ * @test: (type GLib.HashTableutf8,gint8)) (element-type <int>)
+ *
+ * Test missing '('.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>test</name>
+ </parameter>
+ </parameters>
+ <description>Test missing '('.</description>
+ </docblock>
+ <messages>
+ <message><![CDATA[3: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * @test: (type GLib.HashTableutf8,gint8)) (element-type <int>)
+ ^]]></message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ * @test:
+ *
+ * Test missing '('.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_test: (skip (element-type (int))
+ *
+ * Test missing ')'.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <description>Test missing ')'.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * annotation_test: (skip (element-type (int))
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ *
+ * Test missing ')'.
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * annotation_test:
+ * @test: (type GLib.HashTable(utf8,gint8) (element-type <int>)
+ *
+ * Test missing ')'.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_test</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>test</name>
+ </parameter>
+ </parameters>
+ <description>Test missing ')'.</description>
+ </docblock>
+ <messages>
+ <message><![CDATA[3: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * @test: (type GLib.HashTable(utf8,gint8) (element-type <int>)
+ ^]]></message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_test:
+ * @test:
+ *
+ * Test missing ')'.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/identifier.xml b/tests/scanner/annotationparser/gi/identifier.xml
new file mode 100644
index 00000000..eb090307
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/identifier.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <!--
+ Identifier part not on the first line.
+ -->
+ <input>/**
+ * This is not a valid section identifier
+ * SECTION:test_invalid_section_identifier
+ *
+ * Above identifier is not on the first line.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test_invalid_section_identifier</name>
+ </identifier>
+ <description>Above identifier is not on the first line.</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: identifier not found on the first line:
+ * This is not a valid section identifier
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:test_invalid_section_identifier
+ *
+ * Above identifier is not on the first line.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Identifier part not on the first line.
+ -->
+ <input>/**
+
+
+
+* SECTION:meepapp
+*/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: identifier not found on the first line:
+
+^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ */</output>
+</test>
+
+<test>
+ <!--
+ Multiple identifier parts
+ -->
+ <input>/**
+ * SECTION:meepapp
+ * SECTION:meepapp2
+ * @short_description: the application class
+ *
+ * The application class handles ...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>the application class</description>
+ </parameter>
+ </parameters>
+ <description>SECTION:meepapp2
+The application class handles ...</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ * @short_description: the application class
+ *
+ * SECTION:meepapp2
+ * The application class handles ...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Invalid identifier
+ -->
+ <input>/**
+ * gnm_cell_set_expr_and_value: Stores (WITHOUT COPYING) the supplied value, and
+ * references the supplied expression and links it into the expression
+ * list. It marks the sheet as dirty. It is intended for use by import
+ * routines or operations that do bulk assignment.
+ *
+ * WARNING : This is an internal routine that does not queue redraws,
+ * does not auto-resize, does not calculate spans, and does
+ * not render the value.
+ *
+ * NOTE : This DOES check for array partitioning.
+ */</input>
+ <parser>
+ <messages>
+ <message>2: Error: Test: identifier not found on the first line:
+ * gnm_cell_set_expr_and_value: Stores (WITHOUT COPYING) the supplied value, and
+ ^</message>
+ </messages>
+ </parser>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/identifier_section.xml b/tests/scanner/annotationparser/gi/identifier_section.xml
new file mode 100644
index 00000000..fad2b2ed
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/identifier_section.xml
@@ -0,0 +1,332 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <!--
+ Section documentation including all optional metadata.
+ -->
+ <input>/**
+ * SECTION:meepapp
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ *
+ * The application class handles ...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>the application class</description>
+ </parameter>
+ <parameter>
+ <name>title</name>
+ <description>Meep application</description>
+ </parameter>
+ <parameter>
+ <name>section_id</name>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#MeepSettings</description>
+ </parameter>
+ <parameter>
+ <name>stability</name>
+ <description>Stable</description>
+ </parameter>
+ <parameter>
+ <name>include</name>
+ <description>meep/app.h</description>
+ </parameter>
+ <parameter>
+ <name>image</name>
+ <description>application.png</description>
+ </parameter>
+ </parameters>
+ <description>The application class handles ...</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ *
+ * The application class handles ...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Broken comment block with empty line between identifier and parameters parts.
+ -->
+ <input>/**
+ * SECTION:meepapp
+ *
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ *
+ * The application class handles ...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>the application class</description>
+ </parameter>
+ <parameter>
+ <name>title</name>
+ <description>Meep application</description>
+ </parameter>
+ <parameter>
+ <name>section_id</name>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#MeepSettings</description>
+ </parameter>
+ <parameter>
+ <name>stability</name>
+ <description>Stable</description>
+ </parameter>
+ <parameter>
+ <name>include</name>
+ <description>meep/app.h</description>
+ </parameter>
+ <parameter>
+ <name>image</name>
+ <description>application.png</description>
+ </parameter>
+ </parameters>
+ <description>The application class handles ...</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: "@short_description" parameter unexpected at this location:
+ * @short_description: the application class
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ *
+ * The application class handles ...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Broken comment block with description part before parameters part, without empty line.
+ -->
+ <input>/**
+ * SECTION:meepapp
+ *
+ * The application class handles ...
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>the application class</description>
+ </parameter>
+ <parameter>
+ <name>title</name>
+ <description>Meep application</description>
+ </parameter>
+ <parameter>
+ <name>section_id</name>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#MeepSettings</description>
+ </parameter>
+ <parameter>
+ <name>stability</name>
+ <description>Stable</description>
+ </parameter>
+ <parameter>
+ <name>include</name>
+ <description>meep/app.h</description>
+ </parameter>
+ <parameter>
+ <name>image</name>
+ <description>application.png</description>
+ </parameter>
+ </parameters>
+ <description>The application class handles ...</description>
+ </docblock>
+ <messages>
+ <message>5: Warning: Test: "@short_description" parameter unexpected at this location:
+ * @short_description: the application class
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ *
+ * The application class handles ...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Broken comment block with description part before parameters part, with empty line.
+ -->
+ <input>/**
+ * SECTION:meepapp
+ *
+ * The application class handles ...
+ *
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>the application class</description>
+ </parameter>
+ <parameter>
+ <name>title</name>
+ <description>Meep application</description>
+ </parameter>
+ <parameter>
+ <name>section_id</name>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#MeepSettings</description>
+ </parameter>
+ <parameter>
+ <name>stability</name>
+ <description>Stable</description>
+ </parameter>
+ <parameter>
+ <name>include</name>
+ <description>meep/app.h</description>
+ </parameter>
+ <parameter>
+ <name>image</name>
+ <description>application.png</description>
+ </parameter>
+ </parameters>
+ <description>The application class handles ...</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: "@short_description" parameter unexpected at this location:
+ * @short_description: the application class
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ * @short_description: the application class
+ * @title: Meep application
+ * @section_id:
+ * @see_also: #MeepSettings
+ * @stability: Stable
+ * @include: meep/app.h
+ * @image: application.png
+ *
+ * The application class handles ...
+ */</output>
+</test>
+
+<test>
+ <!--
+ Old style implicit returns.
+ https://bugzilla.gnome.org/show_bug.cgi?id=457077
+ -->
+ <input>/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+ * returns nothing.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:tester</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>module for gtk-doc unit test</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.
+
+As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+returns nothing.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+ * returns nothing.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/identifier_symbol.xml b/tests/scanner/annotationparser/gi/identifier_symbol.xml
new file mode 100644
index 00000000..522f1fa8
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/identifier_symbol.xml
@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * test_symbol
+ *
+ * test_symbol does something nifty.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_symbol</name>
+ </identifier>
+ <description>test_symbol does something nifty.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_symbol:
+ *
+ * test_symbol does something nifty.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_symbol_unnecessary_colon:
+ *
+ * Unnecessary colon.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_symbol_unnecessary_colon</name>
+ </identifier>
+ <description>Unnecessary colon.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_symbol_unnecessary_colon:
+ *
+ * Unnecessary colon.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_annotated_symbol: (skip)
+ *
+ * test_annotated_symbol does something nifty.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_annotated_symbol</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>test_annotated_symbol does something nifty.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_annotated_symbol: (skip)
+ *
+ * test_annotated_symbol does something nifty.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_symbol_missing_colon (skip)
+ *
+ * Missing colon will result in a warning.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_symbol_missing_colon</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Missing colon will result in a warning.</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: missing ":" at column 30:
+ * test_symbol_missing_colon (skip)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_symbol_missing_colon: (skip)
+ *
+ * Missing colon will result in a warning.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_malformed_symbol: (skip):
+ *
+ * Malformed symbol identifier.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_malformed_symbol</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Malformed symbol identifier.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_malformed_symbol: (skip)
+ *
+ * Malformed symbol identifier.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget:test_property
+ *
+ * Some property.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget:test_property</name>
+ </identifier>
+ <description>Some property.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget:test_property:
+ *
+ * Some property.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget:test_property_unnecessary_colon:
+ *
+ * Unnecessary colon.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget:test_property_unnecessary_colon</name>
+ </identifier>
+ <description>Unnecessary colon.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget:test_property_unnecessary_colon:
+ *
+ * Unnecessary colon.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget:test_annotated_property: (skip)
+ *
+ * Some annotated property.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget:test_annotated_property</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Some annotated property.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget:test_annotated_property: (skip)
+ *
+ * Some annotated property.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget:test_property_missing_colon (skip)
+ *
+ * Missing colon will result in a warning.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget:test_property_missing_colon</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Missing colon will result in a warning.</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: missing ":" at column 42:
+ * GtkWidget:test_property_missing_colon (skip)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * GtkWidget:test_property_missing_colon: (skip)
+ *
+ * Missing colon will result in a warning.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget:test_malformed_property: (skip):
+ *
+ * Malformed property identifier.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget:test_malformed_property</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Malformed property identifier.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget:test_malformed_property: (skip)
+ *
+ * Malformed property identifier.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget::test_signal
+ *
+ * Some signal.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget::test_signal</name>
+ </identifier>
+ <description>Some signal.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget::test_signal:
+ *
+ * Some signal.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget::test_signal_unnecessary_colon:
+ *
+ * Unnecessary colon.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget::test_signal_unnecessary_colon</name>
+ </identifier>
+ <description>Unnecessary colon.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget::test_signal_unnecessary_colon:
+ *
+ * Unnecessary colon.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget::test_annotated_signal: (skip)
+ *
+ * Some annotated signal.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget::test_annotated_signal</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Some annotated signal.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget::test_annotated_signal: (skip)
+ *
+ * Some annotated signal.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget::test_signal_missing_colon (skip)
+ *
+ * Missing colon will result in a warning.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget::test_signal_missing_colon</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Missing colon will result in a warning.</description>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: missing ":" at column 41:
+ * GtkWidget::test_signal_missing_colon (skip)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * GtkWidget::test_signal_missing_colon: (skip)
+ *
+ * Missing colon will result in a warning.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkWidget::test_malformed_signal: (skip):
+ *
+ * Malformed signal identifier.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkWidget::test_malformed_signal</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Malformed signal identifier.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkWidget::test_malformed_signal: (skip)
+ *
+ * Malformed signal identifier.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_multiline_annotations_on_identifier: (skip)
+ * (foreign)
+ * @param1: (allow-none) (transfer full): first parameter
+ *
+ * Annotations spanning multiple lines are not valid
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiline_annotations_on_identifier</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>first parameter</description>
+ </parameter>
+ </parameters>
+ <description>(foreign)
+Annotations spanning multiple lines are not valid</description>
+ </docblock>
+ <messages>
+ <message>3: Error: Test: ignoring invalid multiline annotation continuation:
+ * (foreign)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiline_annotations_on_identifier: (skip)
+ * @param1: (allow-none) (transfer full): first parameter
+ *
+ * (foreign)
+ * Annotations spanning multiple lines are not valid
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/parameter.xml b/tests/scanner/annotationparser/gi/parameter.xml
new file mode 100644
index 00000000..43f97b3f
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/parameter.xml
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * test_parameter_missing_colon:
+ * @param1: (allow-none) first parameter
+ *
+ * Forgotten colon above will result in a warning.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_parameter_missing_colon</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>first parameter</description>
+ </parameter>
+ </parameters>
+ <description>Forgotten colon above will result in a warning.</description>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: missing ":" at column 25:
+ * @param1: (allow-none) first parameter
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_parameter_missing_colon:
+ * @param1: (allow-none): first parameter
+ *
+ * Forgotten colon above will result in a warning.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_unexpected_parameter:
+ *
+ * Parameters should go before the comment block description.
+ *
+ * @param1: first parameter
+ * Returns: something
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_unexpected_parameter</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <description>first parameter</description>
+ </parameter>
+ </parameters>
+ <description>Parameters should go before the comment block description.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>something</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: "@param1" parameter unexpected at this location:
+ * @param1: first parameter
+ ^</message>
+ <message>7: Warning: Test: "Returns:" tag unexpected at this location:
+ * Returns: something
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_unexpected_parameter:
+ * @param1: first parameter
+ *
+ * Parameters should go before the comment block description.
+ *
+ * Returns: something
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_multiple_parameters:
+ * @param1: first parameter
+ * @param1: first parameter again
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiple_parameters</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <description>first parameter again</description>
+ </parameter>
+ </parameters>
+ </docblock>
+ <messages>
+ <message>4: Error: Test: multiple "@param1" parameters for identifier "test_multiple_parameters":
+ * @param1: first parameter again
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiple_parameters:
+ * @param1: first parameter again
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_multiline_annotations_on_parameter:
+ * @param1: (allow-none)
+ * (transfer full): first parameter
+ *
+ * Annotations spanning multiple lines are not valid
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiline_annotations_on_parameter</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>
+(transfer full): first parameter</description>
+ </parameter>
+ </parameters>
+ <description>Annotations spanning multiple lines are not valid</description>
+ </docblock>
+ <messages>
+ <message>4: Error: Test: ignoring invalid multiline annotation continuation:
+ * (transfer full): first parameter
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiline_annotations_on_parameter:
+ * @param1: (allow-none):
+ * (transfer full): first parameter
+ *
+ * Annotations spanning multiple lines are not valid
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_multiline_annotations_on_parameter:
+ * @param1: (allow-none): first parameter having a second line which looks
+ * (like an annotation), but isn't. This should not result in a warning.
+ *
+ * Annotations spanning multiple lines are not valid
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiline_annotations_on_parameter</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>first parameter having a second line which looks
+(like an annotation), but isn't. This should not result in a warning.</description>
+ </parameter>
+ </parameters>
+ <description>Annotations spanning multiple lines are not valid</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_multiline_annotations_on_parameter:
+ * @param1: (allow-none): first parameter having a second line which looks
+ * (like an annotation), but isn't. This should not result in a warning.
+ *
+ * Annotations spanning multiple lines are not valid
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * anjuta_async_notify_get_error:
+ *
+ * @self: An #AnjutaAsyncNotify object
+ * @error: Return location for the error set by the called interface to which
+ * this object was passed. If no error is set, @error is set to NULL.
+ *
+ * Gets the error set on @self.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>anjuta_async_notify_get_error</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>An #AnjutaAsyncNotify object</description>
+ </parameter>
+ <parameter>
+ <name>error</name>
+ <description>Return location for the error set by the called interface to which
+ this object was passed. If no error is set, @error is set to NULL.</description>
+ </parameter>
+ </parameters>
+ <description>Gets the error set on @self.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: "@self" parameter unexpected at this location:
+ * @self: An #AnjutaAsyncNotify object
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * anjuta_async_notify_get_error:
+ * @self: An #AnjutaAsyncNotify object
+ * @error: Return location for the error set by the called interface to which
+ * this object was passed. If no error is set, @error is set to NULL.
+ *
+ * Gets the error set on @self.
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * GtkPrintOperation::done
+ * @operation: the #GtkPrintOperation on which the signal was emitted
+ * @result: the result of the print operation
+ *
+ * Emitted when the print operation run has finished doing
+ * everything required for printing.
+ *
+ * @result gives you information about what happened during the run.
+ * If @result is %GTK_PRINT_OPERATION_RESULT_ERROR then you can call
+ * gtk_print_operation_get_error() for more information.
+ *
+ * If you enabled print status tracking then
+ * gtk_print_operation_is_finished() may still return %FALSE
+ * after #GtkPrintOperation::done was emitted.
+ *
+ * Since: 2.10
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkPrintOperation::done</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>operation</name>
+ <description>the #GtkPrintOperation on which the signal was emitted</description>
+ </parameter>
+ <parameter>
+ <name>result</name>
+ <description>the result of the print operation</description>
+ </parameter>
+ </parameters>
+ <description>Emitted when the print operation run has finished doing
+everything required for printing.
+
+@result gives you information about what happened during the run.
+If @result is %GTK_PRINT_OPERATION_RESULT_ERROR then you can call
+gtk_print_operation_get_error() for more information.
+
+If you enabled print status tracking then
+gtk_print_operation_is_finished() may still return %FALSE
+after #GtkPrintOperation::done was emitted.</description>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>2.10</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkPrintOperation::done:
+ * @operation: the #GtkPrintOperation on which the signal was emitted
+ * @result: the result of the print operation
+ *
+ * Emitted when the print operation run has finished doing
+ * everything required for printing.
+ *
+ * @result gives you information about what happened during the run.
+ * If @result is %GTK_PRINT_OPERATION_RESULT_ERROR then you can call
+ * gtk_print_operation_get_error() for more information.
+ *
+ * If you enabled print status tracking then
+ * gtk_print_operation_is_finished() may still return %FALSE
+ * after #GtkPrintOperation::done was emitted.
+ *
+ * Since: 2.10
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * TrackerDirectoryFlags:
+ * @TRACKER_DIRECTORY_FLAG_NONE: No flags.
+ * @TRACKER_DIRECTORY_FLAG_RECURSE: Should recurse in the directory.
+ * @TRACKER_DIRECTORY_FLAG_CHECK_MTIME: Should check mtimes of items in the directory.
+ * @TRACKER_DIRECTORY_FLAG_MONITOR: Should setup monitors in the items found in the directory.
+ * @TRACKER_DIRECTORY_FLAG_IGNORE: Should ignore the directory contents.
+ * @TRACKER_DIRECTORY_FLAG_PRESERVE: Should preserve items in the directory even if the directory gets removed.
+ *
+ * Flags used when adding a new directory to be indexed in the #TrackerIndexingTree.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>TrackerDirectoryFlags</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>TRACKER_DIRECTORY_FLAG_NONE</name>
+ <description>No flags.</description>
+ </parameter>
+ <parameter>
+ <name>TRACKER_DIRECTORY_FLAG_RECURSE</name>
+ <description>Should recurse in the directory.</description>
+ </parameter>
+ <parameter>
+ <name>TRACKER_DIRECTORY_FLAG_CHECK_MTIME</name>
+ <description>Should check mtimes of items in the directory.</description>
+ </parameter>
+ <parameter>
+ <name>TRACKER_DIRECTORY_FLAG_MONITOR</name>
+ <description>Should setup monitors in the items found in the directory.</description>
+ </parameter>
+ <parameter>
+ <name>TRACKER_DIRECTORY_FLAG_IGNORE</name>
+ <description>Should ignore the directory contents.</description>
+ </parameter>
+ <parameter>
+ <name>TRACKER_DIRECTORY_FLAG_PRESERVE</name>
+ <description>Should preserve items in the directory even if the directory gets removed.</description>
+ </parameter>
+ </parameters>
+ <description>Flags used when adding a new directory to be indexed in the #TrackerIndexingTree.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * TrackerDirectoryFlags:
+ * @TRACKER_DIRECTORY_FLAG_NONE: No flags.
+ * @TRACKER_DIRECTORY_FLAG_RECURSE: Should recurse in the directory.
+ * @TRACKER_DIRECTORY_FLAG_CHECK_MTIME: Should check mtimes of items in the directory.
+ * @TRACKER_DIRECTORY_FLAG_MONITOR: Should setup monitors in the items found in the directory.
+ * @TRACKER_DIRECTORY_FLAG_IGNORE: Should ignore the directory contents.
+ * @TRACKER_DIRECTORY_FLAG_PRESERVE: Should preserve items in the directory even if the directory gets removed.
+ *
+ * Flags used when adding a new directory to be indexed in the #TrackerIndexingTree.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/parameter_varargs.xml b/tests/scanner/annotationparser/gi/parameter_varargs.xml
new file mode 100644
index 00000000..b22906de
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/parameter_varargs.xml
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * function_name:
+ * @par1: description of parameter 1. These can extend over more than
+ * one line.
+ * @par2: description of parameter 2
+ * @...: a %NULL-terminated list of bars
+ *
+ * The function description goes here. You can use @par1 to refer to parameters
+ * so that they are highlighted in the output. You can also use %constant
+ * for constants, function_name2() for functions and #GtkWidget for links to
+ * other declarations (which may be documented elsewhere).
+ *
+ * Returns: an integer.
+ *
+ * Since: 2.2
+ * Deprecated: 2.18: Use other_function() instead.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>function_name</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>par1</name>
+ <description>description of parameter 1. These can extend over more than
+one line.</description>
+ </parameter>
+ <parameter>
+ <name>par2</name>
+ <description>description of parameter 2</description>
+ </parameter>
+ <parameter>
+ <name>...</name>
+ <description>a %NULL-terminated list of bars</description>
+ </parameter>
+ </parameters>
+ <description>The function description goes here. You can use @par1 to refer to parameters
+so that they are highlighted in the output. You can also use %constant
+for constants, function_name2() for functions and #GtkWidget for links to
+other declarations (which may be documented elsewhere).</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>an integer.</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>2.2</value>
+ </tag>
+ <tag>
+ <name>deprecated</name>
+ <value>2.18</value>
+ <description>Use other_function() instead.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * function_name:
+ * @par1: description of parameter 1. These can extend over more than
+ * one line.
+ * @par2: description of parameter 2
+ * @...: a %NULL-terminated list of bars
+ *
+ * The function description goes here. You can use @par1 to refer to parameters
+ * so that they are highlighted in the output. You can also use %constant
+ * for constants, function_name2() for functions and #GtkWidget for links to
+ * other declarations (which may be documented elsewhere).
+ *
+ * Returns: an integer.
+ * Since: 2.2
+ * Deprecated: 2.18: Use other_function() instead.
+ */</output>
+</test>
+
+<test>
+ <!--
+ gtkdoc-mkdb has deprecated named __VA_ARGS__ parameter notation.
+ But there is a gcc CPP extension that, for macros, makes it possible to give a more descriptive
+ name for the variable argument than simply __VA_ARGS__. See
+ http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html for more information.
+ Encountered in the wild in for example:
+ http://git.kernel.org/?p=bluetooth/bluez.git;a=blob;f=src/log.h;h=3d34fa3774e5400c030d29a264824fe0584de2a8;hb=HEAD#l44
+ -->
+ <input>/**
+ * DBG:
+ * @fmt: format string
+ * @arg...: list of arguments
+ *
+ * Simple macro around btd_debug() which also include the function
+ * name it is called in.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>DBG</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>fmt</name>
+ <description>format string</description>
+ </parameter>
+ <parameter>
+ <name>...</name>
+ <description>list of arguments</description>
+ </parameter>
+ </parameters>
+ <description>Simple macro around btd_debug() which also include the function
+name it is called in.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: "@arg..." parameter is deprecated, please use "@..." instead:
+ * @arg...: list of arguments
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * DBG:
+ * @fmt: format string
+ * @...: list of arguments
+ *
+ * Simple macro around btd_debug() which also include the function
+ * name it is called in.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated @Vargargs parameter
+ -->
+ <input>/**
+ * function_name:
+ * @par1: description of parameter 1. These can extend over more than
+ * one line.
+ * @par2: description of parameter 2
+ * @Varargs: a %NULL-terminated list of bars
+ *
+ * The function description goes here. You can use @par1 to refer to parameters
+ * so that they are highlighted in the output. You can also use %constant
+ * for constants, function_name2() for functions and #GtkWidget for links to
+ * other declarations (which may be documented elsewhere).
+ *
+ * Returns: an integer.
+ *
+ * Since: 2.2
+ * Deprecated: 2.18: Use other_function() instead.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>function_name</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>par1</name>
+ <description>description of parameter 1. These can extend over more than
+one line.</description>
+ </parameter>
+ <parameter>
+ <name>par2</name>
+ <description>description of parameter 2</description>
+ </parameter>
+ <parameter>
+ <name>...</name>
+ <description>a %NULL-terminated list of bars</description>
+ </parameter>
+ </parameters>
+ <description>The function description goes here. You can use @par1 to refer to parameters
+so that they are highlighted in the output. You can also use %constant
+for constants, function_name2() for functions and #GtkWidget for links to
+other declarations (which may be documented elsewhere).</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>an integer.</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>2.2</value>
+ </tag>
+ <tag>
+ <name>deprecated</name>
+ <value>2.18</value>
+ <description>Use other_function() instead.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: "@Varargs" parameter is deprecated, please use "@..." instead:
+ * @Varargs: a %NULL-terminated list of bars
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * function_name:
+ * @par1: description of parameter 1. These can extend over more than
+ * one line.
+ * @par2: description of parameter 2
+ * @...: a %NULL-terminated list of bars
+ *
+ * The function description goes here. You can use @par1 to refer to parameters
+ * so that they are highlighted in the output. You can also use %constant
+ * for constants, function_name2() for functions and #GtkWidget for links to
+ * other declarations (which may be documented elsewhere).
+ *
+ * Returns: an integer.
+ * Since: 2.2
+ * Deprecated: 2.18: Use other_function() instead.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Normal @vargargs parameter (usually seen for va_list)
+ -->
+ <input>/**
+ * function_name:
+ * @par1: description of parameter 1. These can extend over more than
+ * one line.
+ * @par2: description of parameter 2
+ * @varargs: a %NULL-terminated list of bars
+ *
+ * The function description goes here. You can use @par1 to refer to parameters
+ * so that they are highlighted in the output. You can also use %constant
+ * for constants, function_name2() for functions and #GtkWidget for links to
+ * other declarations (which may be documented elsewhere).
+ *
+ * Returns: an integer.
+ *
+ * Since: 2.2
+ * Deprecated: 2.18: Use other_function() instead.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>function_name</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>par1</name>
+ <description>description of parameter 1. These can extend over more than
+one line.</description>
+ </parameter>
+ <parameter>
+ <name>par2</name>
+ <description>description of parameter 2</description>
+ </parameter>
+ <parameter>
+ <name>varargs</name>
+ <description>a %NULL-terminated list of bars</description>
+ </parameter>
+ </parameters>
+ <description>The function description goes here. You can use @par1 to refer to parameters
+so that they are highlighted in the output. You can also use %constant
+for constants, function_name2() for functions and #GtkWidget for links to
+other declarations (which may be documented elsewhere).</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>an integer.</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>2.2</value>
+ </tag>
+ <tag>
+ <name>deprecated</name>
+ <value>2.18</value>
+ <description>Use other_function() instead.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * function_name:
+ * @par1: description of parameter 1. These can extend over more than
+ * one line.
+ * @par2: description of parameter 2
+ * @varargs: a %NULL-terminated list of bars
+ *
+ * The function description goes here. You can use @par1 to refer to parameters
+ * so that they are highlighted in the output. You can also use %constant
+ * for constants, function_name2() for functions and #GtkWidget for links to
+ * other declarations (which may be documented elsewhere).
+ *
+ * Returns: an integer.
+ * Since: 2.2
+ * Deprecated: 2.18: Use other_function() instead.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/syntax.xml b/tests/scanner/annotationparser/gi/syntax.xml
new file mode 100644
index 00000000..d1841a35
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/syntax.xml
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>//Test</input>
+</test>
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>// Test</input>
+</test>
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>/**
+//</input>
+</test>
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>/*Test*/</input>
+</test>
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>/* Test */</input>
+</test>
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>/* Test
+something */</input>
+</test>
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>/*
+Test
+something */</input>
+</test>
+
+<test>
+ <!--
+ Not GTK-Doc
+ -->
+ <input>/**
+*/</input>
+</test>
+
+<test>
+ <input>/** Test **/</input>
+ <parser>
+ <messages>
+ <message>1: Error: Test: Skipping invalid GTK-Doc comment block:
+/** Test **/
+^</message>
+ </messages>
+ </parser>
+</test>
+
+<test>
+ <input>/**Test
+*/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Test</name>
+ </identifier>
+ </docblock>
+ <messages>
+ <message>1: Warning: Test: GTK-Doc comment block start token "/**" should not be followed by comment text:
+/**Test
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * Test:
+ */</output>
+</test>
+
+<test>
+ <input>/**
+Test */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Test</name>
+ </identifier>
+ </docblock>
+ <messages>
+ <message>2: Warning: Test: GTK-Doc comment block end token "*/" should not be preceded by comment text:
+Test */
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * Test:
+ */</output>
+</test>
+
+<test>
+ <input>/** Test
+something */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Test</name>
+ </identifier>
+ <description>something</description>
+ </docblock>
+ <messages>
+ <message>1: Warning: Test: GTK-Doc comment block start token "/**" should not be followed by comment text:
+/** Test
+ ^</message>
+ <message>2: Warning: Test: GTK-Doc comment block end token "*/" should not be preceded by comment text:
+something */
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * Test:
+ *
+ * something
+ */</output>
+</test>
+
+<test>
+ <input>/**
+Test
+something */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Test</name>
+ </identifier>
+ <description>something</description>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: GTK-Doc comment block end token "*/" should not be preceded by comment text:
+something */
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * Test:
+ *
+ * something
+ */</output>
+</test>
+
+<test>
+ <input>/**
+Test
+something **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Test</name>
+ </identifier>
+ <description>something</description>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: GTK-Doc comment block end token "*/" should not be preceded by comment text:
+something **/
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * Test:
+ *
+ * something
+ */</output>
+</test>
+
+<test>
+ <input>code goes here /** Test
+something */ code goes here</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Test</name>
+ </identifier>
+ <description>something</description>
+ </docblock>
+ <messages>
+ <message>1: Warning: Test: GTK-Doc comment block start token "/**" should not be preceded by code:
+code goes here /** Test
+ ^</message>
+ <message>1: Warning: Test: GTK-Doc comment block start token "/**" should not be followed by comment text:
+code goes here /** Test
+ ^</message>
+ <message>2: Warning: Test: GTK-Doc comment block end token "*/" should not be followed by code:
+something */ code goes here
+ ^</message>
+ <message>2: Warning: Test: GTK-Doc comment block end token "*/" should not be preceded by comment text:
+something */ code goes here
+ ^</message>
+ </messages>
+ </parser>
+ <output><![CDATA[code goes here
+/**
+ * Test:
+ *
+ * something
+ */
+ code goes here]]></output>
+</test>
+
+<test>
+ <!--
+ Malformed comment block, signal the start of the comment block description followed
+ by a parameter instead.
+ -->
+ <input>/**
+ * SECTION:meepapp
+ *
+ * @short_description: the application class
+ *
+ * The application class handles ...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:meepapp</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>the application class</description>
+ </parameter>
+ </parameters>
+ <description>The application class handles ...</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: "@short_description" parameter unexpected at this location:
+ * @short_description: the application class
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:meepapp
+ * @short_description: the application class
+ *
+ * The application class handles ...
+ */</output>
+</test>
+
+<test>
+ <!--
+ identifier not on the first line.
+ -->
+ <input>/**
+
+ *
+
+ * regress_test_invalid_comment:
+ * @foo: a param
+
+ * comment having lines without ' * '
+ * https://bugzilla.gnome.org/show_bug.cgi?id=673806
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_invalid_comment</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>foo</name>
+ <description>a param</description>
+ </parameter>
+ </parameters>
+ <description>comment having lines without ' * '
+https://bugzilla.gnome.org/show_bug.cgi?id=673806</description>
+ </docblock>
+ <messages>
+ <message>2: Error: Test: identifier not found on the first line:
+
+^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * regress_test_invalid_comment:
+ * @foo: a param
+ *
+ * comment having lines without ' * '
+ * https://bugzilla.gnome.org/show_bug.cgi?id=673806
+ */</output>
+</test>
+
+<test>
+ <!-- Confusing but well formed mixing of lines starting with and without * -->
+ <input>/**
+ * atk_hyperlink_is_inline:
+ * @link_: an #AtkHyperlink
+ *
+ * Indicates whether the link currently displays some or all of its
+ * content inline. Ordinary HTML links will usually return
+ * %FALSE, but an inline &lt;src&gt; HTML element will return
+ * %TRUE.
+ a *
+ * Returns: whether or not this link displays its content inline.
+ *
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>atk_hyperlink_is_inline</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>link_</name>
+ <description>an #AtkHyperlink</description>
+ </parameter>
+ </parameters>
+ <description>Indicates whether the link currently displays some or all of its
+ content inline. Ordinary HTML links will usually return
+ %FALSE, but an inline &lt;src&gt; HTML element will return
+ %TRUE.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>whether or not this link displays its content inline.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>9: Error: Test: invalid comment text:
+ a *
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * atk_hyperlink_is_inline:
+ * @link_: an #AtkHyperlink
+ *
+ * Indicates whether the link currently displays some or all of its
+ * content inline. Ordinary HTML links will usually return
+ * %FALSE, but an inline &lt;src&gt; HTML element will return
+ * %TRUE.
+ *
+ * Returns: whether or not this link displays its content inline.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * gtk_tooltip_set_custom:
+ *
+ * Replaces the widget packed into the tooltip with
+ * @custom_widget. @custom_widget does not get destroyed when the tooltip goes
+ * away.
+ * By default a box with a #GtkImage and #GtkLabel is embedded in
+ * the tooltip, which can be configured using gtk_tooltip_set_markup()
+ * and gtk_tooltip_set_icon().
+
+ *
+ * Since: 2.12
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtk_tooltip_set_custom</name>
+ </identifier>
+ <description>Replaces the widget packed into the tooltip with
+@custom_widget. @custom_widget does not get destroyed when the tooltip goes
+away.
+By default a box with a #GtkImage and #GtkLabel is embedded in
+the tooltip, which can be configured using gtk_tooltip_set_markup()
+and gtk_tooltip_set_icon().</description>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>2.12</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * gtk_tooltip_set_custom:
+ *
+ * Replaces the widget packed into the tooltip with
+ * @custom_widget. @custom_widget does not get destroyed when the tooltip goes
+ * away.
+ * By default a box with a #GtkImage and #GtkLabel is embedded in
+ * the tooltip, which can be configured using gtk_tooltip_set_markup()
+ * and gtk_tooltip_set_icon().
+ *
+ * Since: 2.12
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * clutter_text_coords_to_position:
+ * @self: a #ClutterText
+ * Return: the position of the character
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>clutter_text_coords_to_position</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>a #ClutterText</description>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>the position of the character</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * clutter_text_coords_to_position:
+ * @self: a #ClutterText
+ *
+ * Returns: the position of the character
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * clutter_text_coords_to_position:
+ * Return: the position of the character
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>clutter_text_coords_to_position</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>the position of the character</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * clutter_text_coords_to_position:
+ *
+ * Returns: the position of the character
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/syntax_indentation.xml b/tests/scanner/annotationparser/gi/syntax_indentation.xml
new file mode 100644
index 00000000..1b8c6324
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/syntax_indentation.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input> /**
+ * SECTION:test
+ *
+ * Describe section here
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>Describe section here</description>
+ </docblock>
+ </parser>
+ <output> /**
+ * SECTION:test
+ *
+ * Describe section here
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * SECTION:test
+ *
+ * Describe section here
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>Describe section here</description>
+ </docblock>
+ </parser>
+ <output> /**
+ * SECTION:test
+ *
+ * Describe section here
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * SECTION:test
+ *
+ * Describe section here
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>Describe section here</description>
+ </docblock>
+ </parser>
+ <output> /**
+ * SECTION:test
+ *
+ * Describe section here
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * SECTION:test
+ *
+ * Describe section here
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>Describe section here</description>
+ </docblock>
+ </parser>
+ <output indent="false">/**
+ * SECTION:test
+ *
+ * Describe section here
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/syntax_multiline_annotations.xml b/tests/scanner/annotationparser/gi/syntax_multiline_annotations.xml
new file mode 100644
index 00000000..4aa92e42
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/syntax_multiline_annotations.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * regress_forced_method: (skip)
+ * (method)
+ * @obj: A #RegressTestObj
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_forced_method</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>obj</name>
+ <description>A #RegressTestObj</description>
+ </parameter>
+ </parameters>
+ <description>(method)</description>
+ </docblock>
+ <messages>
+ <message>3: Error: Test: ignoring invalid multiline annotation continuation:
+ * (method)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * regress_forced_method: (skip)
+ * @obj: A #RegressTestObj
+ *
+ * (method)
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * regress_forced_method: (skip)
+ * (method)
+ * @obj: A #RegressTestObj
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_forced_method</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>obj</name>
+ <description>A #RegressTestObj</description>
+ </parameter>
+ </parameters>
+ <description>(method)</description>
+ </docblock>
+ <messages>
+ <message>3: Error: Test: ignoring invalid multiline annotation continuation:
+ * (method)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * regress_forced_method: (skip)
+ * @obj: A #RegressTestObj
+ *
+ * (method)
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/syntax_nested_tags.xml b/tests/scanner/annotationparser/gi/syntax_nested_tags.xml
new file mode 100644
index 00000000..11b5a674
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/syntax_nested_tags.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <!--
+ Well, not really nested tags as the Since: 2.30 is considered to be part of the
+ description of the @G_APPLICATION_NON_UNIQUE parameter.
+ -->
+ <input>/**
+ * GApplicationFlags:
+ * @G_APPLICATION_NON_UNIQUE: Make no attempts to do any of the typical
+ * single-instance application negotiation, even if the application
+ * ID is given. The application neither attempts to become the
+ * owner of the application ID nor does it check if an existing
+ * owner already exists. Everything occurs in the local process.
+ * Since: 2.30.
+ *
+ * Flags used to define the behaviour of a #GApplication.
+ *
+ * Since: 2.28
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GApplicationFlags</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>G_APPLICATION_NON_UNIQUE</name>
+ <description>Make no attempts to do any of the typical
+ single-instance application negotiation, even if the application
+ ID is given. The application neither attempts to become the
+ owner of the application ID nor does it check if an existing
+ owner already exists. Everything occurs in the local process.
+ Since: 2.30.</description>
+ </parameter>
+ </parameters>
+ <description>Flags used to define the behaviour of a #GApplication.</description>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>2.28</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * GApplicationFlags:
+ * @G_APPLICATION_NON_UNIQUE: Make no attempts to do any of the typical
+ * single-instance application negotiation, even if the application
+ * ID is given. The application neither attempts to become the
+ * owner of the application ID nor does it check if an existing
+ * owner already exists. Everything occurs in the local process.
+ * Since: 2.30.
+ *
+ * Flags used to define the behaviour of a #GApplication.
+ *
+ * Since: 2.28
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * GSourceFuncs:
+ * @prepare: Called before all the file descriptors are polled. If the
+ * source can determine that it is ready here (without waiting for the
+ * results of the poll() call) it should return %TRUE. It can also return
+ * a @timeout_ value which should be the maximum timeout (in milliseconds)
+ * which should be passed to the poll() call. The actual timeout used will
+ * be -1 if all sources returned -1, or it will be the minimum of all the
+ * @timeout_ values returned which were >= 0. Since 2.36 this may
+ * be %NULL, in which case the effect is as if the function always
+ * returns %FALSE with a timeout of -1. If @prepare returns a
+ * timeout and the source also has a 'ready time' set then the
+ * nearer of the two will be used.
+ * @check: Called after all the file descriptors are polled. The source
+ * should return %TRUE if it is ready to be dispatched. Note that some
+ * time may have passed since the previous prepare function was called,
+ * so the source should be checked again here. Since 2.36 this may
+ * be %NULL, in which case the effect is as if the function always
+ * returns %FALSE.
+ * @dispatch: Called to dispatch the event source, after it has returned
+ * %TRUE in either its @prepare or its @check function. The @dispatch
+ * function is passed in a callback function and data. The callback
+ * function may be %NULL if the source was never connected to a callback
+ * using g_source_set_callback(). The @dispatch function should call the
+ * callback function with @user_data and whatever additional parameters
+ * are needed for this type of event source.
+ * @finalize: Called when the source is finalized.
+ *
+ * The <structname>GSourceFuncs</structname> struct contains a table of
+ * functions used to handle event sources in a generic manner.
+ *
+ * For idle sources, the prepare and check functions always return %TRUE
+ * to indicate that the source is always ready to be processed. The prepare
+ * function also returns a timeout value of 0 to ensure that the poll() call
+ * doesn't block (since that would be time wasted which could have been spent
+ * running the idle function).
+ *
+ * For timeout sources, the prepare and check functions both return %TRUE
+ * if the timeout interval has expired. The prepare function also returns
+ * a timeout value to ensure that the poll() call doesn't block too long
+ * and miss the next timeout.
+ *
+ * For file descriptor sources, the prepare function typically returns %FALSE,
+ * since it must wait until poll() has been called before it knows whether
+ * any events need to be processed. It sets the returned timeout to -1 to
+ * indicate that it doesn't mind how long the poll() call blocks. In the
+ * check function, it tests the results of the poll() call to see if the
+ * required condition has been met, and returns %TRUE if so.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GSourceFuncs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>prepare</name>
+ <description>Called before all the file descriptors are polled. If the
+ source can determine that it is ready here (without waiting for the
+ results of the poll() call) it should return %TRUE. It can also return
+ a @timeout_ value which should be the maximum timeout (in milliseconds)
+ which should be passed to the poll() call. The actual timeout used will
+ be -1 if all sources returned -1, or it will be the minimum of all the
+ @timeout_ values returned which were >= 0. Since 2.36 this may
+ be %NULL, in which case the effect is as if the function always
+ returns %FALSE with a timeout of -1. If @prepare returns a
+ timeout and the source also has a 'ready time' set then the
+ nearer of the two will be used.</description>
+ </parameter>
+ <parameter>
+ <name>check</name>
+ <description>Called after all the file descriptors are polled. The source
+ should return %TRUE if it is ready to be dispatched. Note that some
+ time may have passed since the previous prepare function was called,
+ so the source should be checked again here. Since 2.36 this may
+ be %NULL, in which case the effect is as if the function always
+ returns %FALSE.</description>
+ </parameter>
+ <parameter>
+ <name>dispatch</name>
+ <description>Called to dispatch the event source, after it has returned
+ %TRUE in either its @prepare or its @check function. The @dispatch
+ function is passed in a callback function and data. The callback
+ function may be %NULL if the source was never connected to a callback
+ using g_source_set_callback(). The @dispatch function should call the
+ callback function with @user_data and whatever additional parameters
+ are needed for this type of event source.</description>
+ </parameter>
+ <parameter>
+ <name>finalize</name>
+ <description>Called when the source is finalized.</description>
+ </parameter>
+ </parameters>
+ <description><![CDATA[The <structname>GSourceFuncs</structname> struct contains a table of
+functions used to handle event sources in a generic manner.
+
+For idle sources, the prepare and check functions always return %TRUE
+to indicate that the source is always ready to be processed. The prepare
+function also returns a timeout value of 0 to ensure that the poll() call
+doesn't block (since that would be time wasted which could have been spent
+running the idle function).
+
+For timeout sources, the prepare and check functions both return %TRUE
+if the timeout interval has expired. The prepare function also returns
+a timeout value to ensure that the poll() call doesn't block too long
+and miss the next timeout.
+
+For file descriptor sources, the prepare function typically returns %FALSE,
+since it must wait until poll() has been called before it knows whether
+any events need to be processed. It sets the returned timeout to -1 to
+indicate that it doesn't mind how long the poll() call blocks. In the
+check function, it tests the results of the poll() call to see if the
+required condition has been met, and returns %TRUE if so.]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * GSourceFuncs:
+ * @prepare: Called before all the file descriptors are polled. If the
+ * source can determine that it is ready here (without waiting for the
+ * results of the poll() call) it should return %TRUE. It can also return
+ * a @timeout_ value which should be the maximum timeout (in milliseconds)
+ * which should be passed to the poll() call. The actual timeout used will
+ * be -1 if all sources returned -1, or it will be the minimum of all the
+ * @timeout_ values returned which were >= 0. Since 2.36 this may
+ * be %NULL, in which case the effect is as if the function always
+ * returns %FALSE with a timeout of -1. If @prepare returns a
+ * timeout and the source also has a 'ready time' set then the
+ * nearer of the two will be used.
+ * @check: Called after all the file descriptors are polled. The source
+ * should return %TRUE if it is ready to be dispatched. Note that some
+ * time may have passed since the previous prepare function was called,
+ * so the source should be checked again here. Since 2.36 this may
+ * be %NULL, in which case the effect is as if the function always
+ * returns %FALSE.
+ * @dispatch: Called to dispatch the event source, after it has returned
+ * %TRUE in either its @prepare or its @check function. The @dispatch
+ * function is passed in a callback function and data. The callback
+ * function may be %NULL if the source was never connected to a callback
+ * using g_source_set_callback(). The @dispatch function should call the
+ * callback function with @user_data and whatever additional parameters
+ * are needed for this type of event source.
+ * @finalize: Called when the source is finalized.
+ *
+ * The <structname>GSourceFuncs</structname> struct contains a table of
+ * functions used to handle event sources in a generic manner.
+ *
+ * For idle sources, the prepare and check functions always return %TRUE
+ * to indicate that the source is always ready to be processed. The prepare
+ * function also returns a timeout value of 0 to ensure that the poll() call
+ * doesn't block (since that would be time wasted which could have been spent
+ * running the idle function).
+ *
+ * For timeout sources, the prepare and check functions both return %TRUE
+ * if the timeout interval has expired. The prepare function also returns
+ * a timeout value to ensure that the poll() call doesn't block too long
+ * and miss the next timeout.
+ *
+ * For file descriptor sources, the prepare function typically returns %FALSE,
+ * since it must wait until poll() has been called before it knows whether
+ * any events need to be processed. It sets the returned timeout to -1 to
+ * indicate that it doesn't mind how long the poll() call blocks. In the
+ * check function, it tests the results of the poll() call to see if the
+ * required condition has been met, and returns %TRUE if so.
+ */]]></output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml b/tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml
new file mode 100644
index 00000000..77cabf0e
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <!--
+ All lines (outside program- listings and CDATA sections) just containing
+ a ' *' (blank-asterisk) are converted to paragraph breaks.
+ -->
+ <input>/**
+ * SECTION:test
+ *
+ * The following line is ' *' (blank-asterisk).
+ *
+ * So this is considered a new paragraph.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>The following line is ' *' (blank-asterisk).
+
+So this is considered a new paragraph.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:test
+ *
+ * The following line is ' *' (blank-asterisk).
+ *
+ * So this is considered a new paragraph.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Description: tag, all lines (outside program- listings and CDATA sections) just containing
+ a ' *' (blank-asterisk) are converted to paragraph breaks.
+ -->
+ <input>/**
+ * SECTION:test
+ *
+ * Description: The following line is ' *' (blank-asterisk).
+ *
+ * So this is considered a new paragraph.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>The following line is ' *' (blank-asterisk).
+
+So this is considered a new paragraph.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: The following line is ' *' (blank-asterisk).
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:test
+ *
+ * The following line is ' *' (blank-asterisk).
+ *
+ * So this is considered a new paragraph.
+ */</output>
+</test>
+
+<test>
+ <!--
+ ' * ' (blank-asterisk-blank) are also converted to paragraph breaks.
+ -->
+ <input>/**
+ * SECTION:test
+ *
+ * The following line is ' * ' (blank-asterisk-blank).
+ *
+ * So this is considered a new paragraph.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>The following line is ' * ' (blank-asterisk-blank).
+
+So this is considered a new paragraph.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:test
+ *
+ * The following line is ' * ' (blank-asterisk-blank).
+ *
+ * So this is considered a new paragraph.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Description: tag, ' * ' (blank-asterisk-blank) are also converted to paragraph breaks.
+ -->
+ <input>/**
+ * SECTION:test
+ *
+ * Description: The following line is ' * ' (blank-asterisk-blank).
+ *
+ * So this is considered a new paragraph.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>The following line is ' * ' (blank-asterisk-blank).
+
+So this is considered a new paragraph.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: The following line is ' * ' (blank-asterisk-blank).
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:test
+ *
+ * The following line is ' * ' (blank-asterisk-blank).
+ *
+ * So this is considered a new paragraph.
+ */</output>
+</test>
+
+<test>
+ <!--
+ If you want an "empty line" but not a paragraph break, change that into ' * '
+ (blank-asterisk-blank-blank). The "empty line" can be easily recognized in the
+ output as it contains a single space character.
+ -->
+ <input>/**
+ * SECTION:test
+ *
+ * The following line is (blank-asterisk-blank-blank).
+ *
+ * So this is preceded by an empty line and is not considered a new paragraph.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>The following line is (blank-asterisk-blank-blank).
+
+So this is preceded by an empty line and is not considered a new paragraph.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:test
+ *
+ * The following line is (blank-asterisk-blank-blank).
+ *
+ * So this is preceded by an empty line and is not considered a new paragraph.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Description: tag, if you want an "empty line" but not a paragraph break, change that into ' * '
+ (blank-asterisk-blank-blank). The "empty line" can be easily recognized in the
+ output as it contains a single space character.
+ -->
+ <input>/**
+ * SECTION:test
+ *
+ * Description: The following line is (blank-asterisk-blank-blank).
+ *
+ * So this is preceded by an empty line and is not considered a new paragraph.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description>The following line is (blank-asterisk-blank-blank).
+
+So this is preceded by an empty line and is not considered a new paragraph.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: The following line is (blank-asterisk-blank-blank).
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * SECTION:test
+ *
+ * The following line is (blank-asterisk-blank-blank).
+ *
+ * So this is preceded by an empty line and is not considered a new paragraph.
+ */</output>
+</test>
+
+<test>
+ <!--
+ If you want an "empty line" but not a paragraph break, change that into ' * '
+ (blank-asterisk-blank-blank). The "empty line" can be easily recognized in the
+ output as it contains a single space character.
+ -->
+ <input><![CDATA[/**
+ * SECTION:test
+ *
+ * <example>
+ * <title>Iterating over attributes</title>
+ * <programlisting>
+ * void
+ * print_attributes (GIBaseInfo *info)
+ * {
+ * GIAttributeIter iter = { 0, };
+ * char *name;
+ * char *value;
+ *
+ * while (g_base_info_iterate_attributes (info, &iter, &name, &value))
+ * {
+ * g_print ("attribute name: %s value: %s", name, value);
+ * }
+ * }
+ * </programlisting>
+ * </example>
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description><![CDATA[<example>
+<title>Iterating over attributes</title>
+<programlisting>
+void
+print_attributes (GIBaseInfo *info)
+{
+ GIAttributeIter iter = { 0, };
+ char *name;
+ char *value;
+
+ while (g_base_info_iterate_attributes (info, &iter, &name, &value))
+ {
+ g_print ("attribute name: %s value: %s", name, value);
+ }
+}
+</programlisting>
+</example>]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * SECTION:test
+ *
+ * <example>
+ * <title>Iterating over attributes</title>
+ * <programlisting>
+ * void
+ * print_attributes (GIBaseInfo *info)
+ * {
+ * GIAttributeIter iter = { 0, };
+ * char *name;
+ * char *value;
+ *
+ * while (g_base_info_iterate_attributes (info, &iter, &name, &value))
+ * {
+ * g_print ("attribute name: %s value: %s", name, value);
+ * }
+ * }
+ * </programlisting>
+ * </example>
+ */]]></output>
+</test>
+
+<test>
+ <!--
+ Description: tag, if you want an "empty line" but not a paragraph break, change that into ' * '
+ (blank-asterisk-blank-blank). The "empty line" can be easily recognized in the
+ output as it contains a single space character.
+ -->
+ <input><![CDATA[/**
+ * SECTION:test
+ *
+ * Description: <example>
+ * <title>Iterating over attributes</title>
+ * <programlisting>
+ * void
+ * print_attributes (GIBaseInfo *info)
+ * {
+ * GIAttributeIter iter = { 0, };
+ * char *name;
+ * char *value;
+ *
+ * while (g_base_info_iterate_attributes (info, &iter, &name, &value))
+ * {
+ * g_print ("attribute name: %s value: %s", name, value);
+ * }
+ * }
+ * </programlisting>
+ * </example>
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:test</name>
+ </identifier>
+ <description><![CDATA[<example>
+<title>Iterating over attributes</title>
+<programlisting>
+void
+print_attributes (GIBaseInfo *info)
+{
+ GIAttributeIter iter = { 0, };
+ char *name;
+ char *value;
+
+ while (g_base_info_iterate_attributes (info, &iter, &name, &value))
+ {
+ g_print ("attribute name: %s value: %s", name, value);
+ }
+}
+</programlisting>
+</example>]]></description>
+ </docblock>
+ <messages>
+ <message><![CDATA[4: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: <example>
+ ^]]></message>
+ </messages>
+ </parser>
+ <output><![CDATA[/**
+ * SECTION:test
+ *
+ * <example>
+ * <title>Iterating over attributes</title>
+ * <programlisting>
+ * void
+ * print_attributes (GIBaseInfo *info)
+ * {
+ * GIAttributeIter iter = { 0, };
+ * char *name;
+ * char *value;
+ *
+ * while (g_base_info_iterate_attributes (info, &iter, &name, &value))
+ * {
+ * g_print ("attribute name: %s value: %s", name, value);
+ * }
+ * }
+ * </programlisting>
+ * </example>
+ */]]></output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/syntax_whitespace.xml b/tests/scanner/annotationparser/gi/syntax_whitespace.xml
new file mode 100644
index 00000000..3857ea64
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/syntax_whitespace.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * whitespace_test:
+ * @object: (skip):
+ *
+ * A #AnnotationObject
+ *
+ *
+ * @func: The callback
+ *
+ *
+ * Test overriding via the "Rename To" annotation.
+ *
+ *
+ * Returns: nothing
+ *
+ *
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>whitespace_test</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </parameter>
+ <parameter>
+ <name>func</name>
+ <description>The callback</description>
+ </parameter>
+ </parameters>
+ <description>A #AnnotationObject
+
+
+
+Test overriding via the "Rename To" annotation.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>nothing</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>8: Warning: Test: "@func" parameter unexpected at this location:
+ * @func: The callback
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * whitespace_test:
+ * @object: (skip):
+ * @func: The callback
+ *
+ * A #AnnotationObject
+ *
+ *
+ *
+ * Test overriding via the "Rename To" annotation.
+ *
+ * Returns: nothing
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ *atk_text_get_default_attributes:
+ *@text: an #AtkText
+ *
+ *Creates ...
+ *
+ *Returns: (transfer full): an ...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>atk_text_get_default_attributes</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>text</name>
+ <description>an #AtkText</description>
+ </parameter>
+ </parameters>
+ <description>Creates ...</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>an ...</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * atk_text_get_default_attributes:
+ * @text: an #AtkText
+ *
+ * Creates ...
+ *
+ * Returns: (transfer full): an ...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/tag.xml b/tests/scanner/annotationparser/gi/tag.xml
new file mode 100644
index 00000000..8480d4b4
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/tag.xml
@@ -0,0 +1,401 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * test_tag_missing_colon:
+ *
+ * Forgotten colon below will result in a warning.
+ *
+ * Returns: (allow-none) return value
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_tag_missing_colon</name>
+ </identifier>
+ <description>Forgotten colon below will result in a warning.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>return value</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: missing ":" at column 25:
+ * Returns: (allow-none) return value
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_tag_missing_colon:
+ *
+ * Forgotten colon below will result in a warning.
+ *
+ * Returns: (allow-none): return value
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_unexpected_tag:
+ *
+ * @param1: first parameter
+ * does something
+ * Returns: something
+ * returning something
+ *
+ * Probably intended as the comment block description part but in reality belongs to
+ * the "Returns:"" tag description field.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_unexpected_tag</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <description>first parameter
+does something</description>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>something
+returning something
+
+Probably intended as the comment block description part but in reality belongs to
+the "Returns:"" tag description field.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: "@param1" parameter unexpected at this location:
+ * @param1: first parameter
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_unexpected_tag:
+ * @param1: first parameter
+ * does something
+ *
+ * Returns: something
+ * returning something
+ *
+ * Probably intended as the comment block description part but in reality belongs to
+ * the "Returns:"" tag description field.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_unknown_tag:
+ *
+ * Foo: something
+ *
+ * Returns: True
+ * Moo: anything
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_unknown_tag</name>
+ </identifier>
+ <description>Foo: something</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>True
+Moo: anything</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_unknown_tag:
+ *
+ * Foo: something
+ *
+ * Returns: True
+ * Moo: anything
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_multiline_tag:
+ *
+ * Returns:
+ * True
+ * Since:
+ * 1.0: yeah
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiline_tag</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>True</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <description>1.0: yeah</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_multiline_tag:
+ *
+ * Returns: True
+ * Since: 1.0: yeah
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_multiline_annotations_on_tag:
+ *
+ * Annotations spanning multiple lines are not valid
+ *
+ * Returns: (allow-none)
+ * (transfer full): something
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiline_annotations_on_tag</name>
+ </identifier>
+ <description>Annotations spanning multiple lines are not valid</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>
+(transfer full): something</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>7: Error: Test: ignoring invalid multiline annotation continuation:
+ * (transfer full): something
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiline_annotations_on_tag:
+ *
+ * Annotations spanning multiple lines are not valid
+ *
+ * Returns: (allow-none):
+ * (transfer full): something
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_multiline_annotations_on_tag:
+ *
+ * Annotations spanning multiple lines are not valid
+ *
+ * Returns: (allow-none): Returns tag having a second line which looks
+ * (like an annotation), but isn't. This should not result in a warning.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiline_annotations_on_tag</name>
+ </identifier>
+ <description>Annotations spanning multiple lines are not valid</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>Returns tag having a second line which looks
+(like an annotation), but isn't. This should not result in a warning.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_multiline_annotations_on_tag:
+ *
+ * Annotations spanning multiple lines are not valid
+ *
+ * Returns: (allow-none): Returns tag having a second line which looks
+ * (like an annotation), but isn't. This should not result in a warning.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * gdk_device_list_axes:
+ * @device: a pointer #GdkDevice
+ *
+ * Returns a #GList of #GdkAtom<!-- -->s, containing the labels for
+ * the axes that @device currently has.
+ *
+ * Returns: (transfer container) (element-type GdkAtom):
+ * A #GList of #GdkAtom<!-- -->s, free
+ * with g_list_free().
+ *
+ * Since: 3.0
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gdk_device_list_axes</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>device</name>
+ <description>a pointer #GdkDevice</description>
+ </parameter>
+ </parameters>
+ <description>Returns a #GList of #GdkAtom<!-- -->s, containing the labels for
+the axes that @device currently has.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>container</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>GdkAtom</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>
+ A #GList of #GdkAtom<!-- -->s, free
+ with g_list_free().</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>3.0</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * gdk_device_list_axes:
+ * @device: a pointer #GdkDevice
+ *
+ * Returns a #GList of #GdkAtom<!-- -->s, containing the labels for
+ * the axes that @device currently has.
+ *
+ * Returns: (transfer container) (element-type GdkAtom):
+ * A #GList of #GdkAtom<!-- -->s, free
+ * with g_list_free().
+ * Since: 3.0
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * FsSession:codec-preferences:
+ *
+ * Type: GLib.List(FsCodec)
+ * Transfer: full
+ *
+ * This is the current preferences list for the local codecs. It is
+ * set by the user to specify the codec options and priorities. The user may
+ * change its value with fs_session_set_codec_preferences() at any time
+ * during a session. It is a #GList of #FsCodec.
+ * The user must free this codec list using fs_codec_list_destroy() when done.
+ *
+ * The payload type may be a valid dynamic PT (96-127), %FS_CODEC_ID_DISABLE
+ * or %FS_CODEC_ID_ANY. If the encoding name is "reserve-pt", then the
+ * payload type of the codec will be "reserved" and not be used by any
+ * dynamically assigned payload type.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>FsSession:codec-preferences</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GLib.List(FsCodec)</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is the current preferences list for the local codecs. It is
+set by the user to specify the codec options and priorities. The user may
+change its value with fs_session_set_codec_preferences() at any time
+during a session. It is a #GList of #FsCodec.
+The user must free this codec list using fs_codec_list_destroy() when done.
+
+The payload type may be a valid dynamic PT (96-127), %FS_CODEC_ID_DISABLE
+or %FS_CODEC_ID_ANY. If the encoding name is "reserve-pt", then the
+payload type of the codec will be "reserved" and not be used by any
+dynamically assigned payload type.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Type" has been deprecated, please use annotations on the identifier instead:
+ * Type: GLib.List(FsCodec)
+ ^</message>
+ <message>5: Warning: Test: GObject-Introspection specific GTK-Doc tag "Transfer" has been deprecated, please use annotations on the identifier instead:
+ * Transfer: full
+ ^</message>
+ </messages>
+ </parser>
+ <output> /**
+ * FsSession:codec-preferences: (type GLib.List(FsCodec)) (transfer full)
+ *
+ * This is the current preferences list for the local codecs. It is
+ * set by the user to specify the codec options and priorities. The user may
+ * change its value with fs_session_set_codec_preferences() at any time
+ * during a session. It is a #GList of #FsCodec.
+ * The user must free this codec list using fs_codec_list_destroy() when done.
+ *
+ * The payload type may be a valid dynamic PT (96-127), %FS_CODEC_ID_DISABLE
+ * or %FS_CODEC_ID_ANY. If the encoding name is "reserve-pt", then the
+ * payload type of the codec will be "reserved" and not be used by any
+ * dynamically assigned payload type.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/tag_deprecated.xml b/tests/scanner/annotationparser/gi/tag_deprecated.xml
new file mode 100644
index 00000000..f1e8ca60
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/tag_deprecated.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Deprecated: 0.6: Use something else instead
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <value>0.6</value>
+ <description>Use something else instead</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Deprecated: 0.6: Use something else instead
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Deprecated: 0.6
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <value>0.6</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Deprecated: 0.6
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_tag_not_annotatable:
+ *
+ * Tags (except Returns:) don't have annotations
+ *
+ * Deprecated: (allow-none): 2.24
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_tag_not_annotatable</name>
+ </identifier>
+ <description>Tags (except Returns:) don't have annotations</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <value>2.24</value>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Error: Test: annotations not supported for tag "Deprecated:".</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_tag_not_annotatable:
+ *
+ * Tags (except Returns:) don't have annotations
+ *
+ * Deprecated: 2.24
+ */</output>
+</test>
+
+<test>
+ <!--
+ Multiple "Deprecated:" tags
+ -->
+ <input>/**
+ * test_multiple_tags:
+ *
+ * Deprecated: 3.0
+ * Deprecated: 2.0
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiple_tags</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <value>2.0</value>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>5: Error: Test: multiple "Deprecated:" tags for identifier "test_multiple_tags":
+ * Deprecated: 2.0
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiple_tags:
+ *
+ * Deprecated: 2.0
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/tag_description.xml b/tests/scanner/annotationparser/gi/tag_description.xml
new file mode 100644
index 00000000..3dff7f33
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/tag_description.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * shiny_function:
+ *
+ * Description: This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>shiny_function</name>
+ </identifier>
+ <description>This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: This is a callback with a 'closure' argument that is not named
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * shiny_function:
+ *
+ * This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * shiny_function:
+ * Description: This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>shiny_function</name>
+ </identifier>
+ <description>This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</description>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: This is a callback with a 'closure' argument that is not named
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * shiny_function:
+ *
+ * This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * shiny_function:
+ *
+ * Some description here, but also below...
+ *
+ * Description: This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>shiny_function</name>
+ </identifier>
+ <description>Some description here, but also below...
+
+This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: This is a callback with a 'closure' argument that is not named
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * shiny_function:
+ *
+ * Some description here, but also below...
+ *
+ * This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * shiny_function:
+ *
+ * Description: This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ *
+ * etc...
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>shiny_function</name>
+ </identifier>
+ <description>This is a callback with a 'closure' argument that is not named
+'user_data' and hence has to be annotated.
+
+ etc...</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GTK-Doc tag "Description:" has been deprecated:
+ * Description: This is a callback with a 'closure' argument that is not named
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * shiny_function:
+ *
+ * This is a callback with a 'closure' argument that is not named
+ * 'user_data' and hence has to be annotated.
+ *
+ * etc...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/tag_returns.xml b/tests/scanner/annotationparser/gi/tag_returns.xml
new file mode 100644
index 00000000..8ccfaa63
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/tag_returns.xml
@@ -0,0 +1,595 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns: (allow-none): some boolean
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_string_out</name>
+ </identifier>
+ <description>Test returning a string as an out parameter</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>some boolean</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns: (allow-none): some boolean
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns: (allow-none)): some boolean
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_string_out</name>
+ </identifier>
+ <description>Test returning a string as an out parameter</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * Returns: (allow-none)): some boolean
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns:
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_unexpected_tag:
+ * @param1: first parameter
+ * Returns: something
+ *
+ * Tags should go after the comment block description
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_unexpected_tag</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>param1</name>
+ <description>first parameter</description>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>something
+
+Tags should go after the comment block description</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_unexpected_tag:
+ * @param1: first parameter
+ *
+ * Returns: something
+ *
+ * Tags should go after the comment block description
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Return value:" tag
+ -->
+ <input>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Return value: (allow-none): some boolean
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_string_out</name>
+ </identifier>
+ <description>Test returning a string as an out parameter</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>some boolean</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns: (allow-none): some boolean
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "@returns" as a parameter
+ -->
+ <input>/**
+ * annotation_object_string_out:
+ * @returns: (allow-none): some boolean
+ *
+ * Test returning a string as an out parameter
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_string_out</name>
+ </identifier>
+ <description>Test returning a string as an out parameter</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>some boolean</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns: (allow-none): some boolean
+ */</output>
+</test>
+
+<test>
+ <!--
+ Variation of "@returns" as a parameter
+ -->
+ <input>/**
+ * annotation_object_string_out:
+ * @returns: (allow-none)): some boolean
+ *
+ * Test returning a string as an out parameter
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_string_out</name>
+ </identifier>
+ <description>Test returning a string as an out parameter</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>3: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * @returns: (allow-none)): some boolean
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns:
+ */</output>
+</test>
+
+<test>
+ <!--
+ Variation of "@returns" as a parameter
+ -->
+ <input>/**
+ * annotation_object_string_out:
+ * @returns:
+ *
+ * Test returning a string as an out parameter
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_string_out</name>
+ </identifier>
+ <description>Test returning a string as an out parameter</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns:
+ */</output>
+</test>
+
+<test>
+ <!--
+ Variation of multiple "Returns:" notations
+ -->
+ <input>/**
+ * test_multiple_returns_tag_and_parameter:
+ *
+ * Multiple return value warnings are checked for when a returns
+ * parameter is encountered.
+ *
+ * Return Value: something
+ * @returns: something else
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiple_returns_tag_and_parameter</name>
+ </identifier>
+ <description>Multiple return value warnings are checked for when a returns
+parameter is encountered.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>something else</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>8: Warning: Test: "@returns" parameter unexpected at this location:
+ * @returns: something else
+ ^</message>
+ <message>8: Error: Test: encountered multiple "Returns" parameters or tags for "test_multiple_returns_tag_and_parameter".</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiple_returns_tag_and_parameter:
+ *
+ * Multiple return value warnings are checked for when a returns
+ * parameter is encountered.
+ *
+ * Returns: something else
+ */</output>
+</test>
+
+<test>
+ <!--
+ Variation of multiple "Returns:" notations
+ -->
+ <input>/**
+ * test_multiple_returns_tag_and_parameter:
+ * @returns: something
+ *
+ * Multiple return value warnings are checked for when a returns
+ * parameter is encountered.
+ *
+ * Return Value: something else
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiple_returns_tag_and_parameter</name>
+ </identifier>
+ <description>Multiple return value warnings are checked for when a returns
+parameter is encountered.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>something else</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>8: Error: Test: encountered multiple return value parameters or tags for "test_multiple_returns_tag_and_parameter".</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiple_returns_tag_and_parameter:
+ *
+ * Multiple return value warnings are checked for when a returns
+ * parameter is encountered.
+ *
+ * Returns: something else
+ */</output>
+</test>
+
+<test>
+ <!--
+ Variation of multiple "Returns:" notations
+ -->
+ <input>/**
+ * test_multiple_returns_tag_and_parameter:
+ * @returns: something
+ *
+ * Multiple return value warnings are checked for when a returns
+ * parameter is encountered.
+ *
+ * Returns: something else
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiple_returns_tag_and_parameter</name>
+ </identifier>
+ <description>Multiple return value warnings are checked for when a returns
+parameter is encountered.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>something else</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>8: Error: Test: encountered multiple return value parameters or tags for "test_multiple_returns_tag_and_parameter".</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiple_returns_tag_and_parameter:
+ *
+ * Multiple return value warnings are checked for when a returns
+ * parameter is encountered.
+ *
+ * Returns: something else
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * gtk_rc_get_im_module_path:
+ * @returns: a newly-allocated string containing the path in which to
+ * look for IM modules.
+ *
+ * Obtains the path in which to look for IM modules. See the documentation
+ * of the <link linkend="im-module-path"><envar>GTK_PATH</envar></link>
+ * environment variable for more details about looking up modules. This
+ * function is useful solely for utilities supplied with GTK+ and should
+ * not be used by applications under normal circumstances.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtk_rc_get_im_module_path</name>
+ </identifier>
+ <description><![CDATA[Obtains the path in which to look for IM modules. See the documentation
+of the <link linkend="im-module-path"><envar>GTK_PATH</envar></link>
+environment variable for more details about looking up modules. This
+function is useful solely for utilities supplied with GTK+ and should
+not be used by applications under normal circumstances.]]></description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>a newly-allocated string containing the path in which to
+ look for IM modules.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * gtk_rc_get_im_module_path:
+ *
+ * Obtains the path in which to look for IM modules. See the documentation
+ * of the <link linkend="im-module-path"><envar>GTK_PATH</envar></link>
+ * environment variable for more details about looking up modules. This
+ * function is useful solely for utilities supplied with GTK+ and should
+ * not be used by applications under normal circumstances.
+ *
+ * Returns: a newly-allocated string containing the path in which to
+ * look for IM modules.
+ */]]></output>
+</test>
+
+<test>
+ <!--
+ Technically not a valid Returns: tag, but we need to support this for backwards compatibility
+ with the old annotationparser.
+ -->
+ <input>/**
+ * clutter_text_coords_to_position:
+ * @self: a #ClutterText
+ * @x: the X coordinate, relative to the actor
+ * @y: the Y coordinate, relative to the actor
+ *
+ * Retrieves the position of the character at the given coordinates.
+ *
+ * Return: the position of the character
+ *
+ * Since: 1.10
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>clutter_text_coords_to_position</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>a #ClutterText</description>
+ </parameter>
+ <parameter>
+ <name>x</name>
+ <description>the X coordinate, relative to the actor</description>
+ </parameter>
+ <parameter>
+ <name>y</name>
+ <description>the Y coordinate, relative to the actor</description>
+ </parameter>
+ </parameters>
+ <description>Retrieves the position of the character at the given coordinates.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>the position of the character</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>1.10</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * clutter_text_coords_to_position:
+ * @self: a #ClutterText
+ * @x: the X coordinate, relative to the actor
+ * @y: the Y coordinate, relative to the actor
+ *
+ * Retrieves the position of the character at the given coordinates.
+ *
+ * Returns: the position of the character
+ * Since: 1.10
+ */</output>
+</test>
+
+<test>
+ <!--
+ Technically not a valid Returns: tag, but we need to support this for backwards compatibility
+ with the old annotationparser.
+ -->
+ <input>/**
+ * clutter_text_coords_to_position:
+ * @self: a #ClutterText
+ * @x: the X coordinate, relative to the actor
+ * @y: the Y coordinate, relative to the actor
+ *
+ * Retrieves the position of the character at the given coordinates.
+ *
+ * Returns value: the position of the character
+ *
+ * Since: 1.10
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>clutter_text_coords_to_position</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>a #ClutterText</description>
+ </parameter>
+ <parameter>
+ <name>x</name>
+ <description>the X coordinate, relative to the actor</description>
+ </parameter>
+ <parameter>
+ <name>y</name>
+ <description>the Y coordinate, relative to the actor</description>
+ </parameter>
+ </parameters>
+ <description>Retrieves the position of the character at the given coordinates.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>the position of the character</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>1.10</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * clutter_text_coords_to_position:
+ * @self: a #ClutterText
+ * @x: the X coordinate, relative to the actor
+ * @y: the Y coordinate, relative to the actor
+ *
+ * Retrieves the position of the character at the given coordinates.
+ *
+ * Returns: the position of the character
+ * Since: 1.10
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns: (out): some boolean
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_object_string_out</name>
+ </identifier>
+ <description>Test returning a string as an out parameter</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ </annotation>
+ </annotations>
+ <description>some boolean</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: unexpected annotation: out</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_object_string_out:
+ *
+ * Test returning a string as an out parameter
+ *
+ * Returns: (out): some boolean
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/tag_since.xml b/tests/scanner/annotationparser/gi/tag_since.xml
new file mode 100644
index 00000000..06116aa1
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/tag_since.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Since: 0.6
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>0.6</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Since: 0.6
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Since: (invalid)): 0.6
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>since</name>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Error: Test: unbalanced parentheses, annotations will be ignored:
+ * Since: (invalid)): 0.6
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Since:
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Since: this function is available since version 0.6
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>since</name>
+ <description>this function is available since version 0.6</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Since: this function is available since version 0.6
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Since: 0.6: this function is available since version 0.6
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>0.6</value>
+ <description>this function is available since version 0.6</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Since: 0.6: this function is available since version 0.6
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_tag_not_annotatable:
+ *
+ * Tags (except Returns:) don't have annotations
+ *
+ * Since: (allow-none): 2.24
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_tag_not_annotatable</name>
+ </identifier>
+ <description>Tags (except Returns:) don't have annotations</description>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>2.24</value>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Error: Test: annotations not supported for tag "Since:".</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_tag_not_annotatable:
+ *
+ * Tags (except Returns:) don't have annotations
+ *
+ * Since: 2.24
+ */</output>
+</test>
+
+<test>
+ <!--
+ Multiple "Since:" tags
+ -->
+ <input>/**
+ * test_multiple_tags:
+ *
+ * Since: 3.0
+ * Since: 2.0: one of these "Since:"
+ * tags is wrong...
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiple_tags</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>2.0</value>
+ <description>one of these "Since:"
+tags is wrong...</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>5: Error: Test: multiple "Since:" tags for identifier "test_multiple_tags":
+ * Since: 2.0: one of these "Since:"
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiple_tags:
+ *
+ * Since: 2.0: one of these "Since:"
+ * tags is wrong...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gi/tag_stability.xml b/tests/scanner/annotationparser/gi/tag_stability.xml
new file mode 100644
index 00000000..25c907ff
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/tag_stability.xml
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Stability: Stable
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <value>Stable</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Stability: Stable
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Stability: Unstable
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <value>Unstable</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Stability: Unstable
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Stability: Private
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <value>Private</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Stability: Private
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_versioned:
+ *
+ * Stability: behavior tends to vary depending on the phase of the moon.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_versioned</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <description>behavior tends to vary depending on the phase of the moon.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_versioned:
+ *
+ * Stability: behavior tends to vary depending on the phase of the moon.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * test_tag_not_annotatable:
+ *
+ * Tags (except Returns:) don't have annotations
+ *
+ * Stability: (allow-none): Private
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_tag_not_annotatable</name>
+ </identifier>
+ <description>Tags (except Returns:) don't have annotations</description>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <value>Private</value>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>6: Error: Test: annotations not supported for tag "Stability:".</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_tag_not_annotatable:
+ *
+ * Tags (except Returns:) don't have annotations
+ *
+ * Stability: Private
+ */</output>
+</test>
+
+<test>
+ <!--
+ Multiple "Stability:" tags
+ -->
+ <input>/**
+ * test_multiple_tags:
+ *
+ * Stability: Public
+ * Stability: Private
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_multiple_tags</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <value>Private</value>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>5: Error: Test: multiple "Stability:" tags for identifier "test_multiple_tags":
+ * Stability: Private
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * test_multiple_tags:
+ *
+ * Stability: Private
+ */</output>
+</test>
+
+<test>
+ <!--
+ "Stability:" description
+ -->
+ <input>/**
+ * test_stability_description:
+ *
+ * Stability: Unstable: maybe one day this will work
+ * correctly...
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test_stability_description</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <value>Unstable</value>
+ <description>maybe one day this will work
+ correctly...</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * test_stability_description:
+ *
+ * Stability: Unstable: maybe one day this will work
+ * correctly...
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml b/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
new file mode 100644
index 00000000..d28d5d9b
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
@@ -0,0 +1,482 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:tester</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>module for gtk-doc unit test</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_array_length:
+ * @list: a #GtkListStore
+ * @n_columns: number of columns
+ * @types: (array length=n_columns): list of types
+ *
+ * Document parameter relation for array length.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_array_length</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <description>a #GtkListStore</description>
+ </parameter>
+ <parameter>
+ <name>n_columns</name>
+ <description>number of columns</description>
+ </parameter>
+ <parameter>
+ <name>types</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>length</name>
+ <value>n_columns</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>list of types</description>
+ </parameter>
+ </parameters>
+ <description>Document parameter relation for array length.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_array_length:
+ * @list: a #GtkListStore
+ * @n_columns: number of columns
+ * @types: (array length=n_columns): list of types
+ *
+ * Document parameter relation for array length.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_nullable:
+ * @uri: a uri
+ * @label: (allow-none): an optional string, which is used in ways too
+ * complicated to describe in a single line, making it necessary to wrap it
+ *
+ * Document optional parameters.
+ *
+ * Returns: (transfer full) (allow-none): Returns stuff which you have to
+ * free after use, whose description is also rather long
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_nullable</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>uri</name>
+ <description>a uri</description>
+ </parameter>
+ <parameter>
+ <name>label</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>an optional string, which is used in ways too
+ complicated to describe in a single line, making it necessary to wrap it</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>Returns stuff which you have to
+ free after use, whose description is also rather long</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_nullable:
+ * @uri: a uri
+ * @label: (allow-none): an optional string, which is used in ways too
+ * complicated to describe in a single line, making it necessary to wrap it
+ *
+ * Document optional parameters.
+ *
+ * Returns: (transfer full) (allow-none): Returns stuff which you have to
+ * free after use, whose description is also rather long
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_elementtype:
+ * @list: (element-type GObject): list of #GObject instances to search
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_elementtype</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>GObject</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>list of #GObject instances to search</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_elementtype:
+ * @list: (element-type GObject): list of #GObject instances to search
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_elementtype_transfer:
+ * @list: (element-type utf8) (transfer full): list of #GObject instances to search
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_elementtype_transfer</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>list of #GObject instances to search</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_elementtype_transfer:
+ * @list: (element-type utf8) (transfer full): list of #GObject instances to search
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_elementtype_returns:
+ *
+ * Document optional parameters.
+ *
+ * Returns: (element-type GObject): A list of #GObject instances.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_elementtype_returns</name>
+ </identifier>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>GObject</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>A list of #GObject instances.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_elementtype_returns:
+ *
+ * Document optional parameters.
+ *
+ * Returns: (element-type GObject): A list of #GObject instances.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_outparams:
+ * @list: (out) (transfer none): a pointer to take a list
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_outparams</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>none</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a pointer to take a list</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_outparams:
+ * @list: (out) (transfer none): a pointer to take a list
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_skip: (skip)
+ * @list: a pointer to take a list
+ *
+ * Documentation for this function.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_skip</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <description>a pointer to take a list</description>
+ </parameter>
+ </parameters>
+ <description>Documentation for this function.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_skip: (skip)
+ * @list: a pointer to take a list
+ *
+ * Documentation for this function.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_skip_return: (skip)
+ * @list: a pointer to take a list
+ *
+ * Documentation for this function.
+ *
+ * Returns: (skip): %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_skip_return</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <description>a pointer to take a list</description>
+ </parameter>
+ </parameters>
+ <description>Documentation for this function.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_skip_return: (skip)
+ * @list: a pointer to take a list
+ *
+ * Documentation for this function.
+ *
+ * Returns: (skip): %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_scope:
+ * @callback: (scope async): a callback
+ * @user_data: data to pass to callback
+ *
+ * Documentation for this function.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_scope</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>callback</name>
+ <annotations>
+ <annotation>
+ <name>scope</name>
+ <options>
+ <option>
+ <name>async</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a callback</description>
+ </parameter>
+ <parameter>
+ <name>user_data</name>
+ <description>data to pass to callback</description>
+ </parameter>
+ </parameters>
+ <description>Documentation for this function.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_scope:
+ * @callback: (scope async): a callback
+ * @user_data: data to pass to callback
+ *
+ * Documentation for this function.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml b/tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml
new file mode 100644
index 00000000..0917cd95
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * GtkdocAnnotation:
+ * @that: (allow-none): eventualy points to something
+ *
+ * small struct
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocAnnotation</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>that</name>
+ <annotations>
+ <annotation>
+ <name>allow-none</name>
+ </annotation>
+ </annotations>
+ <description>eventualy points to something</description>
+ </parameter>
+ </parameters>
+ <description>small struct</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocAnnotation:
+ * @that: (allow-none): eventualy points to something
+ *
+ * small struct
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml b/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
new file mode 100644
index 00000000..09ab9773
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
@@ -0,0 +1,1108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input><![CDATA[/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+ * returns nothing.
+ *
+ * Some special characters need escaping. The tests should pass 100\%.
+ * Try a <ulink url="http://www.gtk.org/gtk-doc/#Top">link containing a # char</ulink>.
+ *
+ * <refsect2 id="dummy-id">
+ * <title>more details</title>
+ * <para>
+ * Second paragraph inside subsection.
+ * </para>
+ * </refsect2>
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:tester</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>module for gtk-doc unit test</description>
+ </parameter>
+ </parameters>
+ <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+
+As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+returns nothing.
+
+Some special characters need escaping. The tests should pass 100\%.
+Try a <ulink url="http://www.gtk.org/gtk-doc/#Top">link containing a # char</ulink>.
+
+<refsect2 id="dummy-id">
+<title>more details</title>
+<para>
+Second paragraph inside subsection.
+</para>
+</refsect2>]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+ * returns nothing.
+ *
+ * Some special characters need escaping. The tests should pass 100\%.
+ * Try a <ulink url="http://www.gtk.org/gtk-doc/#Top">link containing a # char</ulink>.
+ *
+ * <refsect2 id="dummy-id">
+ * <title>more details</title>
+ * <para>
+ * Second paragraph inside subsection.
+ * </para>
+ * </refsect2>
+ */]]></output>
+</test>
+
+<test>
+ <input>/**
+ * bug_141869_a:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=141869
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_141869_a</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>pid</name>
+ <description>arg</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=141869</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_141869_a:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=141869
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_141869_b:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=141869
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_141869_b</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>pid</name>
+ <description>arg</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=141869</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_141869_b:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=141869
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_379466:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=379466
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_379466</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>pid</name>
+ <description>arg</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=379466</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_379466:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=379466
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_380824:
+ * @arg: arg
+ *
+ * Returns a value.
+ * http://bugzilla.gnome.org/show_bug.cgi?id=380824
+ *
+ * Since: 0.1
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_380824</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>arg</name>
+ <description>arg</description>
+ </parameter>
+ </parameters>
+ <description>Returns a value.
+http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>0.1</value>
+ </tag>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_380824:
+ * @arg: arg
+ *
+ * Returns a value.
+ * http://bugzilla.gnome.org/show_bug.cgi?id=380824
+ *
+ * Since: 0.1
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_411739:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=411739
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_411739</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=411739</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_411739:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=411739
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_419997:
+ * @const_values: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=419997
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_419997</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>const_values</name>
+ <description>arg</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=419997</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_419997:
+ * @const_values: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=419997
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_445693:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=445693
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_445693</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>pid</name>
+ <description>arg</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=445693</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_445693:
+ * @pid: arg
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=445693
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_471014:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=471014
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_471014</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=471014</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_471014:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=471014
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug446648:
+ * @BUG_446648_FOO: foo
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=446648
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug446648</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>BUG_446648_FOO</name>
+ <description>foo</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=446648</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug446648:
+ * @BUG_446648_FOO: foo
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=446648
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_552602:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=552602
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_552602</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=552602</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_552602:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=552602
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_574654a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=574654
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_574654a</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=574654</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_574654a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=574654
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_574654b:
+ * @offset: skip this many items
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=574654
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_574654b</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>offset</name>
+ <description>skip this many items</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=574654</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_574654b:
+ * @offset: skip this many items
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=574654
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_580300a_get_type:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_580300a_get_type</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_580300a_get_type:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_580300b_get_type:
+ * @a: value
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_580300b_get_type</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>value</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_580300b_get_type:
+ * @a: value
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_580300c_get_type:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_580300c_get_type</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_580300c_get_type:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_580300d_get_type:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_580300d_get_type</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_580300d_get_type:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=580300
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_597937:
+ * @function_arg: value
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=597937
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_597937</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>function_arg</name>
+ <description>value</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=597937</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_597937:
+ * @function_arg: value
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=597937
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_602518a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=602518
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_602518a</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_602518a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=602518
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_602518b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=602518
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_602518b</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_602518b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=602518
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_602518c:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=602518
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_602518c</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_602518c:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=602518
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_607445:
+ * @a: parameter
+ * @n: parameter
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=607445
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_607445</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>parameter</description>
+ </parameter>
+ <parameter>
+ <name>n</name>
+ <description>parameter</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=607445</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_607445:
+ * @a: parameter
+ * @n: parameter
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=607445
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_610257:
+ * @der: parameter
+ * @len: parameter
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=610257
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_610257</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>der</name>
+ <description>parameter</description>
+ </parameter>
+ <parameter>
+ <name>len</name>
+ <description>parameter</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=610257</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_610257:
+ * @der: parameter
+ * @len: parameter
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=610257
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * bug_623968a:
+ *
+ * <para>test</para>
+ * <refsect3>
+ * <title>subsect</title>
+ * <para>test</para>
+ * </refsect3>
+ **/]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_623968a</name>
+ </identifier>
+ <description><![CDATA[<para>test</para>
+<refsect3>
+ <title>subsect</title>
+ <para>test</para>
+</refsect3>]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * bug_623968a:
+ *
+ * <para>test</para>
+ * <refsect3>
+ * <title>subsect</title>
+ * <para>test</para>
+ * </refsect3>
+ */]]></output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * bug_623968b:
+ *
+ * test
+ *
+ * <refsect3>
+ * <title>subsect</title>
+ * <para>test</para>
+ * </refsect3>
+ **/]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_623968b</name>
+ </identifier>
+ <description><![CDATA[test
+
+<refsect3>
+ <title>subsect</title>
+ <para>test</para>
+</refsect3>]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * bug_623968b:
+ *
+ * test
+ *
+ * <refsect3>
+ * <title>subsect</title>
+ * <para>test</para>
+ * </refsect3>
+ */]]></output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * bug_623968c:
+ *
+ * <para>test</para>
+ **/]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_623968c</name>
+ </identifier>
+ <description><![CDATA[<para>test</para>]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * bug_623968c:
+ *
+ * <para>test</para>
+ */]]></output>
+</test>
+
+<test>
+ <input>/**
+ * bug_624200a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624200
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_624200a</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=624200</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_624200a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624200
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_624200b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624200
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_624200b</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=624200</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_624200b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624200
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_638330:
+ * @arg1: arg1
+ * @data: data
+ * @length: length
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=638330
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_638330</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>arg1</name>
+ <description>arg1</description>
+ </parameter>
+ <parameter>
+ <name>data</name>
+ <description>data</description>
+ </parameter>
+ <parameter>
+ <name>length</name>
+ <description>length</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=638330</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_638330:
+ * @arg1: arg1
+ * @data: data
+ * @length: length
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=638330
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_000000_va1:
+ * @name: a name
+ * @...: A printf-style message to output
+ *
+ * Outputs a message.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_000000_va1</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>name</name>
+ <description>a name</description>
+ </parameter>
+ <parameter>
+ <name>...</name>
+ <description>A printf-style message to output</description>
+ </parameter>
+ </parameters>
+ <description>Outputs a message.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_000000_va1:
+ * @name: a name
+ * @...: A printf-style message to output
+ *
+ * Outputs a message.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_624001a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_624001a</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_624001a:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_624001b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_624001b</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_624001b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_624001c:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_624001c</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_624001c:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_624001d:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_624001d</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_624001d:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_624001e:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_624001e</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_624001e:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * deprecation_notice:
+ *
+ * Foo.
+ *
+ * Deprecated: 3.10: Use named icon "bar" instead.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>deprecation_notice</name>
+ </identifier>
+ <description>Foo.</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <value>3.10</value>
+ <description>Use named icon "bar" instead.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * deprecation_notice:
+ *
+ * Foo.
+ *
+ * Deprecated: 3.10: Use named icon "bar" instead.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml b/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
new file mode 100644
index 00000000..5dad3cb8
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
@@ -0,0 +1,925 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * Bug324535:
+ * @BUG_324535_A: enum 1
+ * @BUG_324535_B: enum 2
+ * @BUG_324535_C: enum 3
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=324535
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug324535</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>BUG_324535_A</name>
+ <description>enum 1</description>
+ </parameter>
+ <parameter>
+ <name>BUG_324535_B</name>
+ <description>enum 2</description>
+ </parameter>
+ <parameter>
+ <name>BUG_324535_C</name>
+ <description>enum 3</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=324535</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug324535:
+ * @BUG_324535_A: enum 1
+ * @BUG_324535_B: enum 2
+ * @BUG_324535_C: enum 3
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=324535
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_481811:
+ * @x: argument
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=481811
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_481811</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>x</name>
+ <description>argument</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=481811</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_481811:
+ * @x: argument
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=481811
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_501038:
+ * @a: value
+ * @b: deprecated value
+ * @_b: scrambled deprecated value
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=501038
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_501038</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>value</description>
+ </parameter>
+ <parameter>
+ <name>b</name>
+ <description>deprecated value</description>
+ </parameter>
+ <parameter>
+ <name>_b</name>
+ <description>scrambled deprecated value</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=501038</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_501038:
+ * @a: value
+ * @b: deprecated value
+ * @_b: scrambled deprecated value
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=501038
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_460127:
+ * @a: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=460127
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_460127</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>field</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=460127</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_460127:
+ * @a: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=460127
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_477532:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=477532
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_477532</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=477532</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_477532:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=477532
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug446648:
+ * @BUG_446648_FOO: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=446648
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug446648</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>BUG_446648_FOO</name>
+ <description>field</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=446648</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug446648:
+ * @BUG_446648_FOO: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=446648
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug512154:
+ * @index: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512154
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug512154</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>index</name>
+ <description>field</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=512154</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug512154:
+ * @index: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512154
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_512155a_function_pointer_t:
+ * @arg1: param 1
+ * @arg2: param 1
+ * @arg3: param 1
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512155
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_512155a_function_pointer_t</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>arg1</name>
+ <description>param 1</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <description>param 1</description>
+ </parameter>
+ <parameter>
+ <name>arg3</name>
+ <description>param 1</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_512155a_function_pointer_t:
+ * @arg1: param 1
+ * @arg2: param 1
+ * @arg3: param 1
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512155
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_512155b_function_pointer_t:
+ * @arg1: param 1
+ * @arg2: param 1
+ * @arg3: param 1
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512155
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_512155b_function_pointer_t</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>arg1</name>
+ <description>param 1</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <description>param 1</description>
+ </parameter>
+ <parameter>
+ <name>arg3</name>
+ <description>param 1</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_512155b_function_pointer_t:
+ * @arg1: param 1
+ * @arg2: param 1
+ * @arg3: param 1
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512155
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_512155c_function_pointer_t:
+ * @arg1: param 1
+ * @arg2: param 1
+ * @arg3: param 1
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512155
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_512155c_function_pointer_t</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>arg1</name>
+ <description>param 1</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <description>param 1</description>
+ </parameter>
+ <parameter>
+ <name>arg3</name>
+ <description>param 1</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_512155c_function_pointer_t:
+ * @arg1: param 1
+ * @arg2: param 1
+ * @arg3: param 1
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=512155
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * BUG_530758:
+ *
+ * {{![CDATA[http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1]]!}}
+ *
+ * <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1">Test</ulink>
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_530758</name>
+ </identifier>
+ <description><![CDATA[{{![CDATA[http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1]]!}}
+
+<ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1">Test</ulink>]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * BUG_530758:
+ *
+ * {{![CDATA[http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1]]!}}
+ *
+ * <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1">Test</ulink>
+ */]]></output>
+</test>
+
+<test>
+ <input>/**
+ * bug_532395a:
+ * @number: a number
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=532395
+ *
+ * Returns: number
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_532395a</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>number</name>
+ <description>a number</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=532395</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>number</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_532395a:
+ * @number: a number
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=532395
+ *
+ * Returns: number
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_532395b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=532395
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_532395b</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=532395</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_532395b:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=532395
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_544172:
+ * @self: object pointer.
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=544172
+ *
+ * Returns: result or %NULL.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_544172</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>object pointer.</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=544172</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result or %NULL.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_544172:
+ * @self: object pointer.
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=544172
+ *
+ * Returns: result or %NULL.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_554833:
+ * @i: value;
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=554833
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_554833</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>i</name>
+ <description>value;</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=554833</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_554833:
+ * @i: value;
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=554833
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_554833_new:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=554833
+ *
+ * Returns: result
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_554833_new</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=554833</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>result</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_554833_new:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=554833
+ *
+ * Returns: result
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug165425a:
+ * @i: data as int
+ * @f: data as float
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=165425
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug165425a</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>i</name>
+ <description>data as int</description>
+ </parameter>
+ <parameter>
+ <name>f</name>
+ <description>data as float</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=165425</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug165425a:
+ * @i: data as int
+ * @f: data as float
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=165425
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug165425b:
+ * @i: data as int
+ * @f: data as float
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=165425
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug165425b</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>i</name>
+ <description>data as int</description>
+ </parameter>
+ <parameter>
+ <name>f</name>
+ <description>data as float</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=165425</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug165425b:
+ * @i: data as int
+ * @f: data as float
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=165425
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug642998:
+ * @red: red color intensity, from 0–255
+ * @green: green color intensity, from 0–255
+ * @blue: blue color intensity, from 0–255
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=642998
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug642998</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>red</name>
+ <description>red color intensity, from 0–255</description>
+ </parameter>
+ <parameter>
+ <name>green</name>
+ <description>green color intensity, from 0–255</description>
+ </parameter>
+ <parameter>
+ <name>blue</name>
+ <description>blue color intensity, from 0–255</description>
+ </parameter>
+ </parameters>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=642998</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug642998:
+ * @red: red color intensity, from 0–255
+ * @green: green color intensity, from 0–255
+ * @blue: blue color intensity, from 0–255
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=642998
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug644291:
+ * @BUG_644291_START: foo
+ * @BUG_644291_TEXT: bar
+ * @BUG_644291_END: milk
+ * @BUG_644291_ATTRIBUTE: comes
+ * @BUG_644291_XMLNS: from
+ * @BUG_644291_ASSIGN_TO: cows
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=644291
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug644291</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>BUG_644291_START</name>
+ <description>foo</description>
+ </parameter>
+ <parameter>
+ <name>BUG_644291_TEXT</name>
+ <description>bar</description>
+ </parameter>
+ <parameter>
+ <name>BUG_644291_END</name>
+ <description>milk</description>
+ </parameter>
+ <parameter>
+ <name>BUG_644291_ATTRIBUTE</name>
+ <description>comes</description>
+ </parameter>
+ <parameter>
+ <name>BUG_644291_XMLNS</name>
+ <description>from</description>
+ </parameter>
+ <parameter>
+ <name>BUG_644291_ASSIGN_TO</name>
+ <description>cows</description>
+ </parameter>
+ </parameters>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=644291</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug644291:
+ * @BUG_644291_START: foo
+ * @BUG_644291_TEXT: bar
+ * @BUG_644291_END: milk
+ * @BUG_644291_ATTRIBUTE: comes
+ * @BUG_644291_XMLNS: from
+ * @BUG_644291_ASSIGN_TO: cows
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=644291
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * BUG_000000_VA2:
+ * @name: a name
+ * @...: A printf-style message to output
+ *
+ * Outputs a message.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_000000_VA2</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>name</name>
+ <description>a name</description>
+ </parameter>
+ <parameter>
+ <name>...</name>
+ <description>A printf-style message to output</description>
+ </parameter>
+ </parameters>
+ <description>Outputs a message.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * BUG_000000_VA2:
+ * @name: a name
+ * @...: A printf-style message to output
+ *
+ * Outputs a message.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * BUG_000000_VA3:
+ * @name: a name
+ * @...: A printf-style message to output
+ *
+ * Outputs a message.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_000000_VA3</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>name</name>
+ <description>a name</description>
+ </parameter>
+ <parameter>
+ <name>...</name>
+ <description>A printf-style message to output</description>
+ </parameter>
+ </parameters>
+ <description>Outputs a message.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * BUG_000000_VA3:
+ * @name: a name
+ * @...: A printf-style message to output
+ *
+ * Outputs a message.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug000000Scope:
+ *
+ * Opaque structure.
+ * "warning: Field descriptions for Bug000000Scope are missing in source code comment block."
+ * but not if we remove the blank line before "int b";
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug000000Scope</name>
+ </identifier>
+ <description>Opaque structure.
+"warning: Field descriptions for Bug000000Scope are missing in source code comment block."
+but not if we remove the blank line before "int b";</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug000000Scope:
+ *
+ * Opaque structure.
+ * "warning: Field descriptions for Bug000000Scope are missing in source code comment block."
+ * but not if we remove the blank line before "int b";
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * gst_play_marshal_BUFFER__BOXED:
+ * @closure: test
+ * @return_value: test
+ * @marshal_data: test
+ *
+ * test.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gst_play_marshal_BUFFER__BOXED</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>closure</name>
+ <description>test</description>
+ </parameter>
+ <parameter>
+ <name>return_value</name>
+ <description>test</description>
+ </parameter>
+ <parameter>
+ <name>marshal_data</name>
+ <description>test</description>
+ </parameter>
+ </parameters>
+ <description>test.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * gst_play_marshal_BUFFER__BOXED:
+ * @closure: test
+ * @return_value: test
+ * @marshal_data: test
+ *
+ * test.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * BUG_656773a:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656773
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_656773a</name>
+ </identifier>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * BUG_656773a:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656773
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * BUG_656773b:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656773
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_656773b</name>
+ </identifier>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * BUG_656773b:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656773
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * BUG_656773c:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656773
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_656773c</name>
+ </identifier>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * BUG_656773c:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656773
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * BUG_656946:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656946
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_656946</name>
+ </identifier>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=656946</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * BUG_656946:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=656946
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml b/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
new file mode 100644
index 00000000..65bda61f
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input><![CDATA[/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+ * returns nothing.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:tester</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>module for gtk-doc unit test</description>
+ </parameter>
+ </parameters>
+ <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+
+As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+returns nothing.]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * SECTION:tester
+ * @short_description: module for gtk-doc unit test
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
+ * returns nothing.
+ */]]></output>
+</test>
+
+<test>
+ <input>/**
+ * test:
+ * @a: arg
+ *
+ * lonely function
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>test</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>arg</description>
+ </parameter>
+ </parameters>
+ <description>lonely function</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * test:
+ * @a: arg
+ *
+ * lonely function
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml b/tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml
new file mode 100644
index 00000000..40fbbff5
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/*
+ * SECTION:tester_nodocs
+ * @short_description: module for gtk-doc unit test
+ * @title: GtkdocTesterNoDocs
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</input>
+</test>
+
+<test>
+ <input>/**
+ * SECTION:tester_nolongdesc
+ * @short_description: module for gtk-doc unit test
+ * @title: GtkdocTesterNoLongDesc
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:tester_nolongdesc</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>module for gtk-doc unit test</description>
+ </parameter>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocTesterNoLongDesc</description>
+ </parameter>
+ </parameters>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:tester_nolongdesc
+ * @short_description: module for gtk-doc unit test
+ * @title: GtkdocTesterNoLongDesc
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * SECTION:tester_noshortdesc
+ * @title: GtkdocTesterNoShortDesc
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:tester_noshortdesc</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocTesterNoShortDesc</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:tester_noshortdesc
+ * @title: GtkdocTesterNoShortDesc
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * SECTION:tester_brokendocs
+ * @short_description: module for gtk-doc unit test
+ * @title: GtkdocTesterBrokenDocs
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:tester_brokendocs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>short_description</name>
+ <description>module for gtk-doc unit test</description>
+ </parameter>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocTesterBrokenDocs</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:tester_brokendocs
+ * @short_description: module for gtk-doc unit test
+ * @title: GtkdocTesterBrokenDocs
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * func_no_docs:
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>func_no_docs</name>
+ </identifier>
+ </docblock>
+ </parser>
+ <output>/**
+ * func_no_docs:
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * func_no_item_docs:
+ *
+ * Here we document the function but not the parameters.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>func_no_item_docs</name>
+ </identifier>
+ <description>Here we document the function but not the parameters.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * func_no_item_docs:
+ *
+ * Here we document the function but not the parameters.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * func_incomplete_docs:
+ * @a: a value
+ *
+ * Here we document the function but not all the parameters.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>func_incomplete_docs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>a value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the function but not all the parameters.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * func_incomplete_docs:
+ * @a: a value
+ *
+ * Here we document the function but not all the parameters.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * func_unused_docs:
+ * @a: a value
+ * @b: a value
+ * @c: an unexisting value
+ *
+ * Here we document the function and more than the actual parameters.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>func_unused_docs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>b</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>c</name>
+ <description>an unexisting value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the function and more than the actual parameters.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * func_unused_docs:
+ * @a: a value
+ * @b: a value
+ * @c: an unexisting value
+ *
+ * Here we document the function and more than the actual parameters.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml b/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
new file mode 100644
index 00000000..069ae71a
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+<input>/**
+ * MACRO_NO_ITEM_DOCS:
+ *
+ * Here we document the macro but not the parameters.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>MACRO_NO_ITEM_DOCS</name>
+ </identifier>
+ <description>Here we document the macro but not the parameters.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * MACRO_NO_ITEM_DOCS:
+ *
+ * Here we document the macro but not the parameters.
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * MACRO_INCOMPLETE_DOCS:
+ * @a: a value
+ *
+ * Here we document the macro but not all the parameters.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>MACRO_INCOMPLETE_DOCS</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>a value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the macro but not all the parameters.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * MACRO_INCOMPLETE_DOCS:
+ * @a: a value
+ *
+ * Here we document the macro but not all the parameters.
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * MACRO_UNUSED_DOCS:
+ * @a: a value
+ * @b: a value
+ * @c: an unexisting value
+ *
+ * Here we document the macro and more than the actual parameters.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>MACRO_UNUSED_DOCS</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>b</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>c</name>
+ <description>an unexisting value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the macro and more than the actual parameters.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * MACRO_UNUSED_DOCS:
+ * @a: a value
+ * @b: a value
+ * @c: an unexisting value
+ *
+ * Here we document the macro and more than the actual parameters.
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * EnumNoItemDocs:
+ *
+ * Here we document the enum but not the values.
+ * http://bugzilla.gnome.org/show_bug.cgi?id=568711
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>EnumNoItemDocs</name>
+ </identifier>
+ <description>Here we document the enum but not the values.
+http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * EnumNoItemDocs:
+ *
+ * Here we document the enum but not the values.
+ * http://bugzilla.gnome.org/show_bug.cgi?id=568711
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * EnumIncompleteDocs:
+ * @ENUM_INCOMPLETE_DOCS_1: a value
+ *
+ * Here we document the enum but not all the values.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>EnumIncompleteDocs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>ENUM_INCOMPLETE_DOCS_1</name>
+ <description>a value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the enum but not all the values.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * EnumIncompleteDocs:
+ * @ENUM_INCOMPLETE_DOCS_1: a value
+ *
+ * Here we document the enum but not all the values.
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * EnumUnusedDocs:
+ * @ENUM_UNUSED_DOCS_1: a value
+ * @ENUM_UNUSED_DOCS_2: a value
+ * @ENUM_UNUSED_DOCS_3: an unexisting value
+ *
+ * Here we document the enum and more than the actual values.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>EnumUnusedDocs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>ENUM_UNUSED_DOCS_1</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>ENUM_UNUSED_DOCS_2</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>ENUM_UNUSED_DOCS_3</name>
+ <description>an unexisting value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the enum and more than the actual values.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * EnumUnusedDocs:
+ * @ENUM_UNUSED_DOCS_1: a value
+ * @ENUM_UNUSED_DOCS_2: a value
+ * @ENUM_UNUSED_DOCS_3: an unexisting value
+ *
+ * Here we document the enum and more than the actual values.
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * StructNoItemDocs:
+ *
+ * Here we document the struct but not the values.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>StructNoItemDocs</name>
+ </identifier>
+ <description>Here we document the struct but not the values.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * StructNoItemDocs:
+ *
+ * Here we document the struct but not the values.
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * StructIncompleteDocs:
+ * @a: a value
+ *
+ * Here we document the struct but not all the values.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>StructIncompleteDocs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>a value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the struct but not all the values.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * StructIncompleteDocs:
+ * @a: a value
+ *
+ * Here we document the struct but not all the values.
+ */</output>
+</test>
+
+<test>
+<input>/**
+ * StructUnusedDocs:
+ * @a: a value
+ * @b: a value
+ * @c: an unexisting value
+ *
+ * Here we document the struct and more than the actual values.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>StructUnusedDocs</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>b</name>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>c</name>
+ <description>an unexisting value</description>
+ </parameter>
+ </parameters>
+ <description>Here we document the struct and more than the actual values.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * StructUnusedDocs:
+ * @a: a value
+ * @b: a value
+ * @c: an unexisting value
+ *
+ * Here we document the struct and more than the actual values.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml b/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
new file mode 100644
index 00000000..c295edbc
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input><![CDATA[/**
+ * SECTION:iface
+ * @title: GtkdocIface
+ * @short_description: interface for gtk-doc unit test
+ * @see_also: #GtkdocObject
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ * We can link to the #GtkdocIface:itest property and the #GtkdocIface::itest
+ * signal.
+ * An instance can be configured using the gtkdoc_iface_configure() function.
+ *
+ * I can haz pictures too!
+ * <mediaobject>
+ * <imageobject><imagedata fileref="home.png" format="PNG"/></imageobject>
+ * <caption><para>Home sweet home.</para></caption>
+ * </mediaobject>
+ *
+ * Just incase you wonder, special caracters can be escaped with a \ like in \%
+ * or \# or even \@.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:iface</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocIface</description>
+ </parameter>
+ <parameter>
+ <name>short_description</name>
+ <description>interface for gtk-doc unit test</description>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#GtkdocObject</description>
+ </parameter>
+ </parameters>
+ <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+We can link to the #GtkdocIface:itest property and the #GtkdocIface::itest
+signal.
+An instance can be configured using the gtkdoc_iface_configure() function.
+
+I can haz pictures too!
+<mediaobject>
+ <imageobject><imagedata fileref="home.png" format="PNG"/></imageobject>
+ <caption><para>Home sweet home.</para></caption>
+</mediaobject>
+
+Just incase you wonder, special caracters can be escaped with a \ like in \%
+or \# or even \@.]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * SECTION:iface
+ * @title: GtkdocIface
+ * @short_description: interface for gtk-doc unit test
+ * @see_also: #GtkdocObject
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ * We can link to the #GtkdocIface:itest property and the #GtkdocIface::itest
+ * signal.
+ * An instance can be configured using the gtkdoc_iface_configure() function.
+ *
+ * I can haz pictures too!
+ * <mediaobject>
+ * <imageobject><imagedata fileref="home.png" format="PNG"/></imageobject>
+ * <caption><para>Home sweet home.</para></caption>
+ * </mediaobject>
+ *
+ * Just incase you wonder, special caracters can be escaped with a \ like in \%
+ * or \# or even \@.
+ */]]></output>
+</test>
+
+<test>
+ <input>/**
+ * SECTION:iface2
+ * @title: GtkdocIface2
+ * @short_description: interface with a prerequisite for gtk-doc unit test
+ * @see_also: #GtkdocObject, #GtkdocIface
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:iface2</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocIface2</description>
+ </parameter>
+ <parameter>
+ <name>short_description</name>
+ <description>interface with a prerequisite for gtk-doc unit test</description>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#GtkdocObject, #GtkdocIface</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:iface2
+ * @title: GtkdocIface2
+ * @short_description: interface with a prerequisite for gtk-doc unit test
+ * @see_also: #GtkdocObject, #GtkdocIface
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * gtkdoc_iface_configure:
+ * @config: settings
+ *
+ * Configure a new instance
+ *
+ * Returns: %TRUE for sucess or %FALSE in case of an error
+ * Since: 0.1
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtkdoc_iface_configure</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>config</name>
+ <description>settings</description>
+ </parameter>
+ </parameters>
+ <description>Configure a new instance</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for sucess or %FALSE in case of an error</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>0.1</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * gtkdoc_iface_configure:
+ * @config: settings
+ *
+ * Configure a new instance
+ *
+ * Returns: %TRUE for sucess or %FALSE in case of an error
+ * Since: 0.1
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocIface::itest:
+ * @self: myself
+ *
+ * The event has been triggered.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocIface::itest</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>myself</description>
+ </parameter>
+ </parameters>
+ <description>The event has been triggered.</description>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkdocIface::itest:
+ * @self: myself
+ *
+ * The event has been triggered.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml b/tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml
new file mode 100644
index 00000000..e3ed09ca
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * GtkdocIface:
+ *
+ * opaque instance of gtk-doc unit test interface
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocIface</name>
+ </identifier>
+ <description>opaque instance of gtk-doc unit test interface</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocIface:
+ *
+ * opaque instance of gtk-doc unit test interface
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocIface2:
+ *
+ * opaque instance of gtk-doc unit test interface
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocIface2</name>
+ </identifier>
+ <description>opaque instance of gtk-doc unit test interface</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocIface2:
+ *
+ * opaque instance of gtk-doc unit test interface
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocIfaceInterface:
+ * @parent: this is a bug :/
+ * @test: overideable method
+ *
+ * class data of gtk-doc unit test interface
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocIfaceInterface</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parent</name>
+ <description>this is a bug :/</description>
+ </parameter>
+ <parameter>
+ <name>test</name>
+ <description>overideable method</description>
+ </parameter>
+ </parameters>
+ <description>class data of gtk-doc unit test interface</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocIfaceInterface:
+ * @parent: this is a bug :/
+ * @test: overideable method
+ *
+ * class data of gtk-doc unit test interface
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GTKDOC_IFACE_MACRO_DUMMY:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro does nothing.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GTKDOC_IFACE_MACRO_DUMMY</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parameter_1</name>
+ <description>first arg</description>
+ </parameter>
+ <parameter>
+ <name>parameter_2</name>
+ <description>second arg</description>
+ </parameter>
+ </parameters>
+ <description>This macro does nothing.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GTKDOC_IFACE_MACRO_DUMMY:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro does nothing.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GTKDOC_IFACE_MACRO_SUM:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro adds its args.
+ *
+ * Returns: the sum of @parameter_1 and @parameter_2
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GTKDOC_IFACE_MACRO_SUM</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parameter_1</name>
+ <description>first arg</description>
+ </parameter>
+ <parameter>
+ <name>parameter_2</name>
+ <description>second arg</description>
+ </parameter>
+ </parameters>
+ <description>This macro adds its args.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>the sum of @parameter_1 and @parameter_2</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * GTKDOC_IFACE_MACRO_SUM:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro adds its args.
+ *
+ * Returns: the sum of @parameter_1 and @parameter_2
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
new file mode 100644
index 00000000..b54a1a74
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
@@ -0,0 +1,616 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input><![CDATA[/**
+ * SECTION:object
+ * @title: GtkdocObject
+ * @short_description: class for gtk-doc unit test
+ * @see_also: #GtkdocIface
+ * @Image: object.png
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ * We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest
+ * signal.
+ *
+ * When subclassing it is useful to override the #GtkdocObjectClass.test()
+ * method. The #GtkdocObjectClass.foo_bar() vmethod lets you refine your
+ * frobnicator.
+ *
+ * A new instance can be created using the gtkdoc_object_new() function. The
+ * whole lifecycle usualy looks like shown in this example:
+ * |[{{!-- language="C" --!}}
+ * GObject *myobj;
+ *
+ * myobj = gtkdoc_object_new();
+ * // do somehing
+ * g_object_unref (myobj);
+ * ]|
+ *
+ * # Examples #
+ *
+ * You can also change parameters:
+ * <informalexample>
+ * <programlisting language="c"><xi:include xmlns:xi="http://www.w3.org/2003/XInclude" parse="text" href="../../examples/gobject.c" /></programlisting>
+ * </informalexample>
+ *
+ * This example serves two main purposes:
+ * - testing conversion (long description
+ * follows here)
+ * - catching bugs
+ * - having an example
+ *
+ * Nothing more to say.
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:object</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocObject</description>
+ </parameter>
+ <parameter>
+ <name>short_description</name>
+ <description>class for gtk-doc unit test</description>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#GtkdocIface</description>
+ </parameter>
+ <parameter>
+ <name>Image</name>
+ <description>object.png</description>
+ </parameter>
+ </parameters>
+ <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest
+signal.
+
+When subclassing it is useful to override the #GtkdocObjectClass.test()
+method. The #GtkdocObjectClass.foo_bar() vmethod lets you refine your
+frobnicator.
+
+A new instance can be created using the gtkdoc_object_new() function. The
+whole lifecycle usualy looks like shown in this example:
+|[{{!-- language="C" --!}}
+GObject *myobj;
+
+myobj = gtkdoc_object_new();
+// do somehing
+g_object_unref (myobj);
+]|
+
+# Examples #
+
+You can also change parameters:
+<informalexample>
+<programlisting language="c"><xi:include xmlns:xi="http://www.w3.org/2003/XInclude" parse="text" href="../../examples/gobject.c" /></programlisting>
+</informalexample>
+
+This example serves two main purposes:
+- testing conversion (long description
+ follows here)
+- catching bugs
+- having an example
+
+Nothing more to say.]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * SECTION:object
+ * @title: GtkdocObject
+ * @short_description: class for gtk-doc unit test
+ * @see_also: #GtkdocIface
+ * @Image: object.png
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ * We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest
+ * signal.
+ *
+ * When subclassing it is useful to override the #GtkdocObjectClass.test()
+ * method. The #GtkdocObjectClass.foo_bar() vmethod lets you refine your
+ * frobnicator.
+ *
+ * A new instance can be created using the gtkdoc_object_new() function. The
+ * whole lifecycle usualy looks like shown in this example:
+ * |[{{!-- language="C" --!}}
+ * GObject *myobj;
+ *
+ * myobj = gtkdoc_object_new();
+ * // do somehing
+ * g_object_unref (myobj);
+ * ]|
+ *
+ * # Examples #
+ *
+ * You can also change parameters:
+ * <informalexample>
+ * <programlisting language="c"><xi:include xmlns:xi="http://www.w3.org/2003/XInclude" parse="text" href="../../examples/gobject.c" /></programlisting>
+ * </informalexample>
+ *
+ * This example serves two main purposes:
+ * - testing conversion (long description
+ * follows here)
+ * - catching bugs
+ * - having an example
+ *
+ * Nothing more to say.
+ */]]></output>
+</test>
+
+<test>
+ <input>/**
+ * SECTION:object2
+ * @title: GtkdocObject2
+ * @short_description: class with interface for gtk-doc unit test
+ * @see_also: #GtkdocIface
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * Internals
+ * =========
+ *
+ * All the internal details go here or not:
+ * - single item list
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:object2</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocObject2</description>
+ </parameter>
+ <parameter>
+ <name>short_description</name>
+ <description>class with interface for gtk-doc unit test</description>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#GtkdocIface</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.
+
+Internals
+=========
+
+All the internal details go here or not:
+- single item list</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:object2
+ * @title: GtkdocObject2
+ * @short_description: class with interface for gtk-doc unit test
+ * @see_also: #GtkdocIface
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ *
+ * Internals
+ * =========
+ *
+ * All the internal details go here or not:
+ * - single item list
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * gtkdoc_object_new:
+ *
+ * Create a new instance
+ * <note><para>
+ * This will only work if you have called g_type_init() before.
+ * </para></note>
+ *
+ * Returns: the instance or %NULL in case of an error
+ * Since: 0.1
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtkdoc_object_new</name>
+ </identifier>
+ <description><![CDATA[Create a new instance
+<note><para>
+ This will only work if you have called g_type_init() before.
+</para></note>]]></description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>the instance or %NULL in case of an error</description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>0.1</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * gtkdoc_object_new:
+ *
+ * Create a new instance
+ * <note><para>
+ * This will only work if you have called g_type_init() before.
+ * </para></note>
+ *
+ * Returns: the instance or %NULL in case of an error
+ * Since: 0.1
+ */]]></output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * gtkdoc_object_set_otest:
+ * @self: the object
+ * @value: the new otest value, whose description extends further than one
+ * line will allow
+ *
+ * Set the #GtkdocObject:otest property. This is a long paragraph.
+ *
+ * Oh, btw. setting the property directly saves us one method.
+ *
+ * Deprecated: Use g_object_set(obj,&quot;otest&quot;,value,NULL); instead.
+ * Since: 0.5
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtkdoc_object_set_otest</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>the object</description>
+ </parameter>
+ <parameter>
+ <name>value</name>
+ <description>the new otest value, whose description extends further than one
+ line will allow</description>
+ </parameter>
+ </parameters>
+ <description>Set the #GtkdocObject:otest property. This is a long paragraph.
+
+Oh, btw. setting the property directly saves us one method.</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description><![CDATA[Use g_object_set(obj,&quot;otest&quot;,value,NULL); instead.]]></description>
+ </tag>
+ <tag>
+ <name>since</name>
+ <value>0.5</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * gtkdoc_object_set_otest:
+ * @self: the object
+ * @value: the new otest value, whose description extends further than one
+ * line will allow
+ *
+ * Set the #GtkdocObject:otest property. This is a long paragraph.
+ *
+ * Oh, btw. setting the property directly saves us one method.
+ *
+ * Deprecated: Use g_object_set(obj,&quot;otest&quot;,value,NULL); instead.
+ * Since: 0.5
+ */]]></output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * gtkdoc_object_frobnicate:
+ * @self: the object
+ * @n: number of iterations
+ *
+ * Frobnicate the content of @self @n times. This implements a
+ * complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
+ * <footnote>
+ * <para>
+ * Negative frobnication can lead to unexpected behaviour.
+ * </para>
+ * </footnote>
+ *
+ * Since: 0.5
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtkdoc_object_frobnicate</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>the object</description>
+ </parameter>
+ <parameter>
+ <name>n</name>
+ <description>number of iterations</description>
+ </parameter>
+ </parameters>
+ <description><![CDATA[Frobnicate the content of @self @n times. This implements a
+complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
+<footnote>
+ <para>
+ Negative frobnication can lead to unexpected behaviour.
+ </para>
+</footnote>]]></description>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>0.5</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * gtkdoc_object_frobnicate:
+ * @self: the object
+ * @n: number of iterations
+ *
+ * Frobnicate the content of @self @n times. This implements a
+ * complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
+ * <footnote>
+ * <para>
+ * Negative frobnication can lead to unexpected behaviour.
+ * </para>
+ * </footnote>
+ *
+ * Since: 0.5
+ */]]></output>
+</test>
+
+<test>
+ <input>/**
+ * gtkdoc_object_fooify:
+ * @self: the object
+ * @...: a NULL terminated list of arguments
+ *
+ * Fooify the content of @self.
+ *
+ * Returns: %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtkdoc_object_fooify</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>the object</description>
+ </parameter>
+ <parameter>
+ <name>...</name>
+ <description>a NULL terminated list of arguments</description>
+ </parameter>
+ </parameters>
+ <description>Fooify the content of @self.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * gtkdoc_object_fooify:
+ * @self: the object
+ * @...: a NULL terminated list of arguments
+ *
+ * Fooify the content of @self.
+ *
+ * Returns: %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject::otest:
+ * @self: myself
+ *
+ * The event has been triggered.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject::otest</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>myself</description>
+ </parameter>
+ </parameters>
+ <description>The event has been triggered.</description>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkdocObject::otest:
+ * @self: myself
+ *
+ * The event has been triggered.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject::dep-otest:
+ * @self: myself
+ *
+ * Here's an example signal handler.
+ * |[
+ * static gchar*
+ * otest_callback (GObject *o,
+ * gpointer user_data)
+ * {
+ * gdouble value;
+ *
+ * value = abs (o->value);
+ *
+ * return value;
+ * }
+ * ]|
+ *
+ * Deprecated: Use the #GtkdocObject::otest signal instead.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject::dep-otest</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>myself</description>
+ </parameter>
+ </parameters>
+ <description>Here's an example signal handler.
+|[
+static gchar*
+otest_callback (GObject *o,
+ gpointer user_data)
+{
+ gdouble value;
+
+ value = abs (o->value);
+
+ return value;
+}
+]|</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description>Use the #GtkdocObject::otest signal instead.</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkdocObject::dep-otest:
+ * @self: myself
+ *
+ * Here's an example signal handler.
+ * |[
+ * static gchar*
+ * otest_callback (GObject *o,
+ * gpointer user_data)
+ * {
+ * gdouble value;
+ *
+ * value = abs (o->value);
+ *
+ * return value;
+ * }
+ * ]|
+ *
+ * Deprecated: Use the #GtkdocObject::otest signal instead.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject::strings-changed:
+ *
+ * Something has happened.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject::strings-changed</name>
+ </identifier>
+ <description>Something has happened.</description>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkdocObject::strings-changed:
+ *
+ * Something has happened.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject::variant-changed:
+ *
+ * Something has happened.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject::variant-changed</name>
+ </identifier>
+ <description>Something has happened.</description>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkdocObject::variant-changed:
+ *
+ * Something has happened.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject:otest:
+ *
+ * Since: 0.1
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject:otest</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>0.1</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkdocObject:otest:
+ *
+ * Since: 0.1
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject:dep-otest:
+ *
+ * Deprecated: use #GtkdocObject:otest property
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject:dep-otest</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description>use #GtkdocObject:otest property</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output> /**
+ * GtkdocObject:dep-otest:
+ *
+ * Deprecated: use #GtkdocObject:otest property
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
new file mode 100644
index 00000000..ec68a7f0
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * GtkdocObject:
+ *
+ * instance data of gtk-doc unit test class
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject</name>
+ </identifier>
+ <description>instance data of gtk-doc unit test class</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocObject:
+ *
+ * instance data of gtk-doc unit test class
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObjectClass:
+ * @parent: this is a bug :/
+ * @test: overideable method
+ * @ping: can be used before calling the @test() function
+ * @foo_bar: lets you refine your frobnicator
+ *
+ * class data of gtk-doc unit test class
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObjectClass</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parent</name>
+ <description>this is a bug :/</description>
+ </parameter>
+ <parameter>
+ <name>test</name>
+ <description>overideable method</description>
+ </parameter>
+ <parameter>
+ <name>ping</name>
+ <description>can be used before calling the @test() function</description>
+ </parameter>
+ <parameter>
+ <name>foo_bar</name>
+ <description>lets you refine your frobnicator</description>
+ </parameter>
+ </parameters>
+ <description>class data of gtk-doc unit test class</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocObjectClass:
+ * @parent: this is a bug :/
+ * @test: overideable method
+ * @ping: can be used before calling the @test() function
+ * @foo_bar: lets you refine your frobnicator
+ *
+ * class data of gtk-doc unit test class
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject2:
+ *
+ * instance data of gtk-doc unit test class
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject2</name>
+ </identifier>
+ <description>instance data of gtk-doc unit test class</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocObject2:
+ *
+ * instance data of gtk-doc unit test class
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocObject2Class:
+ * @parent: this is a bug :/
+ *
+ * class data of gtk-doc unit test class
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocObject2Class</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parent</name>
+ <description>this is a bug :/</description>
+ </parameter>
+ </parameters>
+ <description>class data of gtk-doc unit test class</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocObject2Class:
+ * @parent: this is a bug :/
+ *
+ * class data of gtk-doc unit test class
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GTKDOC_OBJECT_MACRO_DUMMY:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro does nothing.
+ *
+ * Since: 0.1
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GTKDOC_OBJECT_MACRO_DUMMY</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parameter_1</name>
+ <description>first arg</description>
+ </parameter>
+ <parameter>
+ <name>parameter_2</name>
+ <description>second arg</description>
+ </parameter>
+ </parameters>
+ <description>This macro does nothing.</description>
+ <tags>
+ <tag>
+ <name>since</name>
+ <value>0.1</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * GTKDOC_OBJECT_MACRO_DUMMY:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro does nothing.
+ *
+ * Since: 0.1
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GTKDOC_OBJECT_MACRO_SUM:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro adds its args.
+ *
+ * Returns: the sum of @parameter_1 and @parameter_2
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GTKDOC_OBJECT_MACRO_SUM</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parameter_1</name>
+ <description>first arg</description>
+ </parameter>
+ <parameter>
+ <name>parameter_2</name>
+ <description>second arg</description>
+ </parameter>
+ </parameters>
+ <description>This macro adds its args.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>the sum of @parameter_1 and @parameter_2</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * GTKDOC_OBJECT_MACRO_SUM:
+ * @parameter_1: first arg
+ * @parameter_2: second arg
+ *
+ * This macro adds its args.
+ *
+ * Returns: the sum of @parameter_1 and @parameter_2
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml
new file mode 100644
index 00000000..17d23562
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * SECTION:types
+ * @title: GtkdocTypes
+ * @short_description: other gobject types for gtk-doc unit test
+ * @see_also: #GtkdocObject, #GtkdocIface
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:types</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocTypes</description>
+ </parameter>
+ <parameter>
+ <name>short_description</name>
+ <description>other gobject types for gtk-doc unit test</description>
+ </parameter>
+ <parameter>
+ <name>see_also</name>
+ <description>#GtkdocObject, #GtkdocIface</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:types
+ * @title: GtkdocTypes
+ * @short_description: other gobject types for gtk-doc unit test
+ * @see_also: #GtkdocObject, #GtkdocIface
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
new file mode 100644
index 00000000..7331a556
--- /dev/null
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * GtkdocEnum:
+ * @GTKDOC_ENUM_V1: first
+ * @GTKDOC_ENUM_V2: second
+ * Since: 0.10
+ *
+ * Enum values for the #GtkdocEnum type.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocEnum</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>GTKDOC_ENUM_V1</name>
+ <description>first</description>
+ </parameter>
+ <parameter>
+ <name>GTKDOC_ENUM_V2</name>
+ <description>second
+ Since: 0.10</description>
+ </parameter>
+ </parameters>
+ <description>Enum values for the #GtkdocEnum type.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocEnum:
+ * @GTKDOC_ENUM_V1: first
+ * @GTKDOC_ENUM_V2: second
+ * Since: 0.10
+ *
+ * Enum values for the #GtkdocEnum type.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocPlainOldData:
+ * @n: Some integer member.
+ * @x: Some floating point member.
+ *
+ * Unboxed plain old data that should default to public members.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocPlainOldData</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>n</name>
+ <description>Some integer member.</description>
+ </parameter>
+ <parameter>
+ <name>x</name>
+ <description>Some floating point member.</description>
+ </parameter>
+ </parameters>
+ <description>Unboxed plain old data that should default to public members.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocPlainOldData:
+ * @n: Some integer member.
+ * @x: Some floating point member.
+ *
+ * Unboxed plain old data that should default to public members.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocBoxedPlainOldData:
+ * @n: Some integer member.
+ * @x: Some floating point member.
+ *
+ * Boxed plain old data that should default to public members.
+ **/</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocBoxedPlainOldData</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>n</name>
+ <description>Some integer member.</description>
+ </parameter>
+ <parameter>
+ <name>x</name>
+ <description>Some floating point member.</description>
+ </parameter>
+ </parameters>
+ <description>Boxed plain old data that should default to public members.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocBoxedPlainOldData:
+ * @n: Some integer member.
+ * @x: Some floating point member.
+ *
+ * Boxed plain old data that should default to public members.
+ */</output>
+</test>
+
+</tests>
diff --git a/tests/scanner/annotationparser/test_parser.py b/tests/scanner/annotationparser/test_parser.py
new file mode 100644
index 00000000..79cc8622
--- /dev/null
+++ b/tests/scanner/annotationparser/test_parser.py
@@ -0,0 +1,461 @@
+# -*- Mode: Python -*-
+# GObject-Introspection - a framework for introspecting GObject libraries
+# Copyright (C) 2012 Dieter Verfaillie <dieterv@optionexplicit.be>
+#
+# 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 2
+# 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+
+
+'''
+test_parser.py
+
+Tests ensuring annotationparser.py continues to function correctly.
+'''
+
+
+import difflib
+import os
+import subprocess
+import unittest
+import xml.etree.ElementTree as etree
+
+from giscanner.annotationparser import GtkDocCommentBlockParser, GtkDocCommentBlockWriter
+from giscanner.ast import Namespace
+from giscanner.message import MessageLogger, WARNING, ERROR, FATAL
+
+
+XML_NS = 'http://schemas.gnome.org/gobject-introspection/2013/test'
+XML_SCHEMA = os.path.abspath(os.path.join(os.path.dirname(__file__), 'tests.xsd'))
+XML_LINT = None
+
+
+class ChunkedIO(object):
+ def __init__(self):
+ self.buffer = []
+
+ def write(self, s):
+ self.buffer.append(s)
+
+ def getvalue(self):
+ return self.buffer
+
+
+def ns(x):
+ return x.replace('{}', '{%s}' % (XML_NS, ))
+
+
+def validate(tests_file):
+ global XML_LINT
+
+ try:
+ cmd = ['xmllint', '--noout', '--nonet', '--schema', XML_SCHEMA, tests_file]
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ stdout, stderr = p.communicate()
+ except OSError:
+ if XML_LINT is None:
+ XML_LINT = False
+ print('warning: xmllint not found, validation of test definition files will be skipped')
+ else:
+ if p.returncode != 0:
+ raise SystemExit(stdout)
+
+
+class TestCommentBlock(unittest.TestCase):
+ @classmethod
+ def __create_test__(cls, logger, testcase):
+ def do_test(self):
+ output = ChunkedIO()
+ logger._output = output
+
+ # Parse GTK-Doc comment block
+ commentblock = testcase.find(ns('{}input')).text
+ parsed_docblock = GtkDocCommentBlockParser().parse_comment_block(commentblock, 'test.c', 1)
+ parsed_tree = self.parsed2tree(parsed_docblock).split('\n')
+ emitted_messages = [w[w.find(':') + 1:].strip() for w in output.getvalue()]
+
+ # Get expected parser output
+ expected_docblock = testcase.find(ns('{}parser/{}docblock'))
+ expected_tree = self.expected2tree(expected_docblock).split('\n')
+
+ expected_messages = []
+ for w in testcase.findall(ns('{}parser/{}messages/{}message')):
+ expected_messages.append(w.text.strip())
+
+ # Compare parsed with expected GtkDocCommentBlock
+ msg = 'Parsed GtkDocCommentBlock object tree does not match expected output:\n\n'
+ msg += '%s\n\n' % (commentblock, )
+
+ diff = difflib.unified_diff(expected_tree, parsed_tree,
+ 'Expected GtkDocCommentBlock', 'Parsed GtkDocCommentBlock',
+ n=max(len(expected_tree), len(parsed_tree)),
+ lineterm='')
+ for line in diff:
+ msg += '%s\n' % (line, )
+
+ self.assertTrue(parsed_tree == expected_tree, msg)
+
+ # Compare emitted with expected messages
+ msg = 'Emitted messages do not match expected messages:\n\n'
+ msg += '%s\n\n' % (commentblock, )
+ msg += self._diff_messages(expected_messages, emitted_messages)
+ self.assertTrue(len(expected_messages) == len(emitted_messages), msg)
+
+ for emitted_message, expected_message in zip(emitted_messages, expected_messages):
+ msg = 'Emitted message does not match expected message:\n\n'
+ msg += '%s\n\n' % (commentblock, )
+ msg += self._diff_messages([expected_message], [emitted_message])
+ self.assertTrue(expected_message == emitted_message, msg)
+
+ # Compare serialized with expected comment block
+ expected_serialized = testcase.find(ns('{}output'))
+ indent = True
+
+ if expected_serialized is None:
+ expected_serialized = ''
+ else:
+ if 'indent' in expected_serialized.attrib:
+ indent = expected_serialized.attrib['indent']
+ if indent.lower() in ('false', '0'):
+ indent = False
+ elif indent.lower() in ('true', '1'):
+ indent = True
+ else:
+ self.assert_(False, 'Unknown value for "indent" attribute: %s' % (indent))
+
+ expected_serialized = expected_serialized.text + '\n' or None
+
+ commentblockwriter = GtkDocCommentBlockWriter(indent=indent)
+ serialized = commentblockwriter.write(parsed_docblock)
+
+ msg = 'Serialized comment block does not match expected output:\n\n'
+ msg += self._diff_messages(expected_serialized.split('\n'), serialized.split('\n'))
+ self.assertTrue(expected_serialized == serialized, msg)
+
+ return do_test
+
+ def parsed2tree(self, docblock):
+ parsed = ''
+
+ if docblock is not None:
+ parsed += '<docblock>\n'
+
+ parsed += ' <identifier>\n'
+ parsed += ' <name>%s</name>\n' % (docblock.name, )
+ if docblock.annotations:
+ parsed += ' <annotations>\n'
+ for ann_name, ann_options in docblock.annotations.items():
+ parsed += ' <annotation>\n'
+ parsed += ' <name>%s</name>\n' % (ann_name, )
+ if ann_options:
+ parsed += ' <options>\n'
+ if isinstance(ann_options, list):
+ for option in ann_options:
+ parsed += ' <option>\n'
+ parsed += ' <name>%s</name>\n' % (option, )
+ parsed += ' </option>\n'
+ else:
+ for (option, value) in ann_options.items():
+ parsed += ' <option>\n'
+ parsed += ' <name>%s</name>\n' % (option, )
+ if value:
+ parsed += ' <value>%s</value>\n' % (value, )
+ parsed += ' </option>\n'
+ parsed += ' </options>\n'
+ parsed += ' </annotation>\n'
+ parsed += ' </annotations>\n'
+ parsed += ' </identifier>\n'
+
+ if docblock.params:
+ parsed += ' <parameters>\n'
+ for param_name in docblock.params:
+ param = docblock.params.get(param_name)
+ parsed += ' <parameter>\n'
+ parsed += ' <name>%s</name>\n' % (param_name, )
+ if param.annotations:
+ parsed += ' <annotations>\n'
+ for ann_name, ann_options in param.annotations.items():
+ parsed += ' <annotation>\n'
+ parsed += ' <name>%s</name>\n' % (ann_name, )
+ if ann_options:
+ parsed += ' <options>\n'
+ if isinstance(ann_options, list):
+ for option in ann_options:
+ parsed += ' <option>\n'
+ parsed += ' <name>%s</name>\n' % (option, )
+ parsed += ' </option>\n'
+ else:
+ for (option, value) in ann_options.items():
+ parsed += ' <option>\n'
+ parsed += ' <name>%s</name>\n' % (option, )
+ if value:
+ parsed += ' <value>%s</value>\n' % (value, )
+ parsed += ' </option>\n'
+ parsed += ' </options>\n'
+ parsed += ' </annotation>\n'
+ parsed += ' </annotations>\n'
+ if param.description:
+ parsed += ' <description>%s</description>\n' % (param.description, )
+ parsed += ' </parameter>\n'
+ parsed += ' </parameters>\n'
+
+ if docblock.description:
+ parsed += ' <description>%s</description>\n' % (docblock.description, )
+
+ if docblock.tags:
+ parsed += ' <tags>\n'
+ for tag_name in docblock.tags:
+ tag = docblock.tags.get(tag_name)
+ parsed += ' <tag>\n'
+ parsed += ' <name>%s</name>\n' % (tag_name, )
+ if tag.annotations:
+ parsed += ' <annotations>\n'
+ for ann_name, ann_options in tag.annotations.items():
+ parsed += ' <annotation>\n'
+ parsed += ' <name>%s</name>\n' % (ann_name, )
+ if ann_options:
+ parsed += ' <options>\n'
+ if isinstance(ann_options, list):
+ for option in ann_options:
+ parsed += ' <option>\n'
+ parsed += ' <name>%s</name>\n' % (option, )
+ parsed += ' </option>\n'
+ else:
+ for (option, value) in ann_options.items():
+ parsed += ' <option>\n'
+ parsed += ' <name>%s</name>\n' % (option, )
+ if value:
+ parsed += ' <value>%s</value>\n' % (value, )
+ parsed += ' </option>\n'
+ parsed += ' </options>\n'
+ parsed += ' </annotation>\n'
+ parsed += ' </annotations>\n'
+ if tag.value:
+ parsed += ' <value>%s</value>\n' % (tag.value, )
+ if tag.description:
+ parsed += ' <description>%s</description>\n' % (tag.description, )
+ parsed += ' </tag>\n'
+ parsed += ' </tags>\n'
+
+ parsed += '</docblock>'
+
+ return parsed
+
+ def expected2tree(self, docblock):
+ expected = ''
+
+ if docblock is not None:
+ expected += '<docblock>\n'
+
+ if docblock.find(ns('{}identifier')) is not None:
+ expected += ' <identifier>\n'
+ expected += ' <name>%s</name>\n' % (docblock.find(ns('{}identifier/{}name')).text, )
+ annotations = docblock.find(ns('{}identifier/{}annotations'))
+ if annotations is not None:
+ expected += ' <annotations>\n'
+ for annotation in annotations.findall(ns('{}annotation')):
+ expected += ' <annotation>\n'
+ expected += ' <name>%s</name>\n' % (annotation.find(ns('{}name')).text, )
+ if annotation.find(ns('{}options')) is not None:
+ expected += ' <options>\n'
+ for option in annotation.findall(ns('{}options/{}option')):
+ expected += ' <option>\n'
+ if option.find(ns('{}name')) is not None:
+ expected += ' <name>%s</name>\n' % (option.find(ns('{}name')).text, )
+ if option.find(ns('{}value')) is not None:
+ expected += ' <value>%s</value>\n' % (option.find(ns('{}value')).text, )
+ expected += ' </option>\n'
+ expected += ' </options>\n'
+ expected += ' </annotation>\n'
+ expected += ' </annotations>\n'
+ expected += ' </identifier>\n'
+
+ parameters = docblock.find(ns('{}parameters'))
+ if parameters is not None:
+ expected += ' <parameters>\n'
+ for parameter in parameters.findall(ns('{}parameter')):
+ expected += ' <parameter>\n'
+ expected += ' <name>%s</name>\n' % (parameter.find(ns('{}name')).text, )
+ annotations = parameter.find(ns('{}annotations'))
+ if annotations is not None:
+ expected += ' <annotations>\n'
+ for annotation in parameter.findall(ns('{}annotations/{}annotation')):
+ expected += ' <annotation>\n'
+ expected += ' <name>%s</name>\n' % (annotation.find(ns('{}name')).text, )
+ if annotation.find(ns('{}options')) is not None:
+ expected += ' <options>\n'
+ for option in annotation.findall(ns('{}options/{}option')):
+ expected += ' <option>\n'
+ if option.find(ns('{}name')) is not None:
+ expected += ' <name>%s</name>\n' % (option.find(ns('{}name')).text, )
+ if option.find(ns('{}value')) is not None:
+ expected += ' <value>%s</value>\n' % (option.find(ns('{}value')).text, )
+ expected += ' </option>\n'
+ expected += ' </options>\n'
+ expected += ' </annotation>\n'
+ expected += ' </annotations>\n'
+ if parameter.find(ns('{}description')) is not None:
+ expected += ' <description>%s</description>\n' % (parameter.find(ns('{}description')).text, )
+ expected += ' </parameter>\n'
+ expected += ' </parameters>\n'
+
+ description = docblock.find(ns('{}description'))
+ if description is not None:
+ expected += ' <description>%s</description>\n' % (description.text, )
+
+ tags = docblock.find(ns('{}tags'))
+ if tags is not None:
+ expected += ' <tags>\n'
+ for tag in tags.findall(ns('{}tag')):
+ expected += ' <tag>\n'
+ expected += ' <name>%s</name>\n' % (tag.find(ns('{}name')).text, )
+ annotations = tag.find(ns('{}annotations'))
+ if annotations is not None:
+ expected += ' <annotations>\n'
+ for annotation in tag.findall(ns('{}annotations/{}annotation')):
+ expected += ' <annotation>\n'
+ expected += ' <name>%s</name>\n' % (annotation.find(ns('{}name')).text, )
+ if annotation.find(ns('{}options')) is not None:
+ expected += ' <options>\n'
+ for option in annotation.findall(ns('{}options/{}option')):
+ expected += ' <option>\n'
+ if option.find(ns('{}name')) is not None:
+ expected += ' <name>%s</name>\n' % (option.find(ns('{}name')).text, )
+ if option.find(ns('{}value')) is not None:
+ expected += ' <value>%s</value>\n' % (option.find(ns('{}value')).text, )
+ expected += ' </option>\n'
+ expected += ' </options>\n'
+ expected += ' </annotation>\n'
+ expected += ' </annotations>\n'
+ if tag.find(ns('{}value')) is not None:
+ expected += ' <value>%s</value>\n' % (tag.find(ns('{}value')).text, )
+ if tag.find(ns('{}description')) is not None:
+ expected += ' <description>%s</description>\n' % (tag.find(ns('{}description')).text, )
+ expected += ' </tag>\n'
+ expected += ' </tags>\n'
+
+ expected += '</docblock>'
+
+ return expected
+
+ def _diff_messages(self, a, b):
+ retval = ''
+ started = False
+
+ for group in difflib.SequenceMatcher(None, a, b).get_grouped_opcodes(3):
+ if not started:
+ started = True
+ retval += '--- expected\n'
+ retval += '+++ emitted\n'
+
+ for tag, i1, i2, j1, j2 in group:
+ if tag == 'equal':
+ for line in a[i1:i2]:
+ for l in line.split('\n'):
+ retval += ' ' + l + '\n'
+ continue
+
+ if tag in ('replace', 'delete'):
+ for line in a[i1:i2]:
+ for l in line.split('\n'):
+ retval += '-' + l + '\n'
+
+ if tag in ('replace', 'insert'):
+ for line in b[j1:j2]:
+ for l in line.split('\n'):
+ retval += '+' + l + '\n'
+
+ return retval
+
+
+def create_test_case(logger, tests_dir, tests_file):
+ tests_tree = etree.parse(tests_file).getroot()
+
+ fix_cdata_elements = tests_tree.findall(ns('{}test/{}input'))
+ fix_cdata_elements += tests_tree.findall(ns('.//{}description'))
+ fix_cdata_elements += tests_tree.findall(ns('{}test/{}output'))
+
+ for element in fix_cdata_elements:
+ if element.text:
+ element.text = element.text.replace('{{?', '<!')
+ element.text = element.text.replace('}}', '>')
+
+ test_methods = {}
+ for counter, test in enumerate(tests_tree.findall(ns('{}test'))):
+ test_name = 'test_%03d' % (counter + 1)
+ test_method = TestCommentBlock.__create_test__(logger, test)
+ test_method.__name__ = test_name
+ test_methods[test_name] = test_method
+
+ # Dynamically generate a new subclass of TestCommentBlock in TitleCase
+ # with generated test methods.
+ test_class_name = os.path.relpath(tests_file[:-4], tests_dir)
+ test_class_name = test_class_name.replace('/', ' ').replace('\\', ' ').replace('.', ' ')
+ test_class_name = 'Test' + test_class_name.title().replace(' ', '')
+ return type(test_class_name, (TestCommentBlock,), test_methods)
+
+
+def create_test_cases():
+ # Initialize message logger
+ namespace = Namespace('Test', '1.0')
+ logger = MessageLogger.get(namespace=namespace)
+ logger.enable_warnings((WARNING, ERROR, FATAL))
+ test_cases = {}
+
+ # Load test cases from disc
+ tests_dir = os.path.dirname(os.path.abspath(__file__))
+
+ for dirpath, dirnames, filenames in os.walk(tests_dir):
+ for filename in filenames:
+ tests_file = os.path.join(dirpath, filename)
+ if os.path.basename(tests_file).endswith('.xml'):
+ validate(tests_file)
+ test_case = create_test_case(logger, tests_dir, tests_file)
+ test_cases[test_case.__name__] = test_case
+
+ return test_cases
+
+
+# We currently need to push all the new test cases into the modules globals
+# in order for parameterized tests to work. Ideally all that should be needed
+# is the "load_tests" hook, but this does not work in the case were the tests
+# are run in parameterized mode, e.g: python -m unittest test_parser.Test...
+_all_tests = create_test_cases()
+globals().update(_all_tests)
+
+
+# Hook function for Python test loader.
+def load_tests(loader, tests, pattern):
+ suite = unittest.TestSuite()
+ # add standard tests from module
+ suite.addTests(tests)
+
+ # Initialize message logger
+ namespace = Namespace('Test', '1.0')
+ logger = MessageLogger.get(namespace=namespace)
+ logger.enable_warnings((WARNING, ERROR, FATAL))
+
+ # Load test cases from disc
+ tests_dir = os.path.dirname(os.path.abspath(__file__))
+
+ for name, test_case in _all_tests.iteritems():
+ tests = loader.loadTestsFromTestCase(test_case)
+ suite.addTests(tests)
+ return suite
+
+
+if __name__ == '__main__':
+ # Run test suite
+ unittest.main()
diff --git a/tests/scanner/annotationparser/test_patterns.py b/tests/scanner/annotationparser/test_patterns.py
new file mode 100644
index 00000000..774d674c
--- /dev/null
+++ b/tests/scanner/annotationparser/test_patterns.py
@@ -0,0 +1,943 @@
+# -*- Mode: Python -*-
+# GObject-Introspection - a framework for introspecting GObject libraries
+# Copyright (C) 2012 Dieter Verfaillie <dieterv@optionexplicit.be>
+#
+# 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 2
+# 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+
+
+'''
+test_patterns.py
+
+Tests ensuring the regular expression programs used
+in annotationparser.py continue to function correctly.
+Each regular expression program is tested on input that
+should not match and input that should match. When input
+should match, resulting symbolic groups are verified
+against the expected output.
+'''
+
+
+from giscanner.annotationparser import (COMMENT_BLOCK_START_RE, COMMENT_BLOCK_END_RE,
+ COMMENT_ASTERISK_RE, INDENTATION_RE, EMPTY_LINE_RE,
+ SECTION_RE, SYMBOL_RE, PROPERTY_RE,
+ SIGNAL_RE, PARAMETER_RE, TAG_RE,
+ TAG_VALUE_VERSION_RE, TAG_VALUE_STABILITY_RE)
+import unittest
+
+
+comment_start_tests = [
+ (COMMENT_BLOCK_START_RE, '/**',
+ {'code': '',
+ 'token': '/**',
+ 'comment': ''}),
+ (COMMENT_BLOCK_START_RE, ' /**',
+ {'code': '',
+ 'token': '/**',
+ 'comment': ''}),
+ (COMMENT_BLOCK_START_RE, ' /** ',
+ {'code': '',
+ 'token': '/**',
+ 'comment': ''}),
+ (COMMENT_BLOCK_START_RE, 'xyz /** ',
+ {'code': 'xyz',
+ 'token': '/**',
+ 'comment': ''}),
+ (COMMENT_BLOCK_START_RE, ' xyz /** ',
+ {'code': ' xyz',
+ 'token': '/**',
+ 'comment': ''}),
+ (COMMENT_BLOCK_START_RE, '/** xyz',
+ {'code': '',
+ 'token': '/**',
+ 'comment': 'xyz'}),
+ (COMMENT_BLOCK_START_RE, ' /**xyz',
+ {'code': '',
+ 'token': '/**',
+ 'comment': 'xyz'}),
+ (COMMENT_BLOCK_START_RE, ' /** xyz',
+ {'code': '',
+ 'token': '/**',
+ 'comment': 'xyz'}),
+ (COMMENT_BLOCK_START_RE, '/***',
+ None),
+ (COMMENT_BLOCK_START_RE, ' /***',
+ None),
+ (COMMENT_BLOCK_START_RE, ' /*** ',
+ None),
+ (COMMENT_BLOCK_START_RE, '/*** xyz',
+ None),
+ (COMMENT_BLOCK_START_RE, '/***** xyz',
+ None),
+ (COMMENT_BLOCK_START_RE, ' /*****xyz',
+ None),
+ (COMMENT_BLOCK_START_RE, ' /**/',
+ None),
+]
+
+
+comment_end_tests = [
+ (COMMENT_BLOCK_END_RE, '*/',
+ {'comment': '',
+ 'token': '*/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, ' */',
+ {'comment': '',
+ 'token': '*/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, ' */ ',
+ {'comment': '',
+ 'token': '*/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, '*/xyz',
+ {'comment': '',
+ 'token': '*/',
+ 'code': 'xyz'}),
+ (COMMENT_BLOCK_END_RE, ' */xyz',
+ {'comment': '',
+ 'token': '*/',
+ 'code': 'xyz'}),
+ (COMMENT_BLOCK_END_RE, ' */ xyz',
+ {'comment': '',
+ 'token': '*/',
+ 'code': ' xyz'}),
+ (COMMENT_BLOCK_END_RE, '**/',
+ {'comment': '',
+ 'token': '**/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, ' **/',
+ {'comment': '',
+ 'token': '**/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, ' **/ ',
+ {'comment': '',
+ 'token': '**/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, 'test */',
+ {'comment': 'test',
+ 'token': '*/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, ' test*/',
+ {'comment': 'test',
+ 'token': '*/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, 'test */ xyz',
+ {'comment': 'test',
+ 'token': '*/',
+ 'code': ' xyz'}),
+ (COMMENT_BLOCK_END_RE, ' test*/ xyz ',
+ {'comment': 'test',
+ 'token': '*/',
+ 'code': ' xyz'}),
+ (COMMENT_BLOCK_END_RE, 'test **/',
+ {'comment': 'test',
+ 'token': '**/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, ' test**/',
+ {'comment': 'test',
+ 'token': '**/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, 'test *****/',
+ {'comment': 'test',
+ 'token': '*****/',
+ 'code': ''}),
+ (COMMENT_BLOCK_END_RE, ' test*****/',
+ {'comment': 'test',
+ 'token': '*****/',
+ 'code': ''})]
+
+
+comment_asterisk_tests = [
+ (COMMENT_ASTERISK_RE, '*',
+ {'comment': ''}),
+ (COMMENT_ASTERISK_RE, '* ',
+ {'comment': ''}),
+ (COMMENT_ASTERISK_RE, ' *',
+ {'comment': ''}),
+ (COMMENT_ASTERISK_RE, ' * ',
+ {'comment': ''}),
+ (COMMENT_ASTERISK_RE, ' * ',
+ {'comment': ''}),
+ (COMMENT_ASTERISK_RE, ' * test',
+ {'comment': ''}),
+ (COMMENT_ASTERISK_RE, 'test * ',
+ {'comment': 'test'})]
+
+
+indentaton_tests = [
+ (INDENTATION_RE, '',
+ {'indentation': ''}),
+ (INDENTATION_RE, ' ',
+ {'indentation': ' '}),
+ (INDENTATION_RE, ' ',
+ {'indentation': ' '}),
+ (INDENTATION_RE, ' x',
+ {'indentation': ' '}),
+ (INDENTATION_RE, ' *',
+ {'indentation': ' '})]
+
+
+empty_line_tests = [
+ (EMPTY_LINE_RE, '',
+ {}),
+ (EMPTY_LINE_RE, ' ',
+ {}),
+ (EMPTY_LINE_RE, ' .',
+ None)]
+
+
+identifier_section_tests = [
+ (SECTION_RE, 'TSIEOCN',
+ None),
+ (SECTION_RE, 'section',
+ None),
+ (SECTION_RE, 'section:',
+ None),
+ (SECTION_RE, 'section:test',
+ None),
+ (SECTION_RE, 'SECTION',
+ None),
+ (SECTION_RE, 'SECTION \t ',
+ None),
+ (SECTION_RE, ' \t SECTION \t ',
+ None),
+ (SECTION_RE, 'SECTION: \t ',
+ None),
+ (SECTION_RE, 'SECTION : ',
+ None),
+ (SECTION_RE, ' SECTION : ',
+ None),
+ (SECTION_RE, 'SECTION:gtkwidget',
+ {'delimiter': ':',
+ 'section_name': 'gtkwidget'}),
+ (SECTION_RE, 'SECTION:gtkwidget ',
+ {'delimiter': ':',
+ 'section_name': 'gtkwidget'}),
+ (SECTION_RE, ' SECTION:gtkwidget',
+ {'delimiter': ':',
+ 'section_name': 'gtkwidget'}),
+ (SECTION_RE, ' SECTION:gtkwidget\t ',
+ {'delimiter': ':',
+ 'section_name': 'gtkwidget'}),
+ (SECTION_RE, 'SECTION: gtkwidget ',
+ {'delimiter': ':',
+ 'section_name': 'gtkwidget'}),
+ (SECTION_RE, 'SECTION : gtkwidget',
+ {'delimiter': ':',
+ 'section_name': 'gtkwidget'}),
+ (SECTION_RE, 'SECTION gtkwidget \f ',
+ {'delimiter': '',
+ 'section_name': 'gtkwidget'})]
+
+identifier_symbol_tests = [
+ (SYMBOL_RE, 'GBaseFinalizeFunc:',
+ {'delimiter': ':',
+ 'symbol_name': 'GBaseFinalizeFunc',
+ 'fields': ''}),
+ (SYMBOL_RE, 'gtk_widget_show ',
+ {'delimiter': '',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, ' gtk_widget_show',
+ {'delimiter': '',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, ' gtk_widget_show ',
+ {'delimiter': '',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, 'gtk_widget_show:',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, 'gtk_widget_show :',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, 'gtk_widget_show: ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, 'gtk_widget_show : ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, ' gtk_widget_show:',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, ' gtk_widget_show :',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, ' gtk_widget_show: ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, ' gtk_widget_show : ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': ''}),
+ (SYMBOL_RE, 'gtk_widget_show:(skip):',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, 'gtk_widget_show (skip)',
+ {'delimiter': '',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, 'gtk_widget_show: (skip)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, 'gtk_widget_show : (skip)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, 'gtk_widget_show: (skip)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, 'gtk_widget_show : (skip)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, ' gtk_widget_show:(skip)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, ' gtk_widget_show :(skip)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, ' gtk_widget_show: (skip)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, ' gtk_widget_show : (skip) \t ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, ' gtk_widget_show : (skip) \t ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)'}),
+ (SYMBOL_RE, 'gtk_widget_show:(skip)(test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)(test1)'}),
+ (SYMBOL_RE, 'gtk_widget_show (skip)(test1)',
+ {'delimiter': '',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip)(test1)'}),
+ (SYMBOL_RE, 'gtk_widget_show: (skip) (test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, 'gtk_widget_show : (skip) (test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, 'gtk_widget_show: (skip) (test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, 'gtk_widget_show : (skip) (test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, ' gtk_widget_show:(skip) (test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, ' gtk_widget_show :(skip) (test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, ' gtk_widget_show: (skip) (test1)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, ' gtk_widget_show : (skip) (test1) ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1)'}),
+ (SYMBOL_RE, 'gtk_widget_show: (skip) (test1) (test-2)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, 'gtk_widget_show : (skip) (test1) (test-2)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, 'gtk_widget_show: (skip) (test1) (test-2)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, 'gtk_widget_show : (skip) (test1) (test-2)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, ' gtk_widget_show:(skip) (test1) (test-2)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, ' gtk_widget_show :(skip) (test1) (test-2)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, ' gtk_widget_show: (skip) (test1) (test-2)',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, ' gtk_widget_show : (skip) (test1) (test-2) ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ (SYMBOL_RE, ' gtk_widget_show : (skip) (test1) (test-2) ',
+ {'delimiter': ':',
+ 'symbol_name': 'gtk_widget_show',
+ 'fields': '(skip) (test1) (test-2)'}),
+ # constants
+ (SYMBOL_RE, 'MY_CONSTANT:',
+ {'delimiter': ':',
+ 'symbol_name': 'MY_CONSTANT',
+ 'fields': ''}),
+ # structs
+ (SYMBOL_RE, 'FooWidget:',
+ {'delimiter': ':',
+ 'symbol_name': 'FooWidget',
+ 'fields': ''}),
+ # enums
+ (SYMBOL_RE, 'Something:',
+ {'delimiter': ':',
+ 'symbol_name': 'Something',
+ 'fields': ''}),
+ # annotations with multiple closing parentheses
+ (SYMBOL_RE, 'FooWidget: (transfer full) (type GLib.List(utf8))',
+ {'delimiter': ':',
+ 'symbol_name': 'FooWidget',
+ 'fields': '(transfer full) (type GLib.List(utf8))'}),
+ (SYMBOL_RE, 'FooWidget: (transfer full) (type GLib.List((utf8)))',
+ {'delimiter': ':',
+ 'symbol_name': 'FooWidget',
+ 'fields': '(transfer full) (type GLib.List((utf8)))'}),
+ (SYMBOL_RE, 'FooWidget: (transfer full) (type GLib.List(GLib.List(utf8)))',
+ {'delimiter': ':',
+ 'symbol_name': 'FooWidget',
+ 'fields': '(transfer full) (type GLib.List(GLib.List(utf8)))'}),
+ (SYMBOL_RE, 'FooWidget: (type GLib.List(GLib.List(utf8))) (transfer full)',
+ {'delimiter': ':',
+ 'symbol_name': 'FooWidget',
+ 'fields': '(type GLib.List(GLib.List(utf8))) (transfer full)'}),
+ (SYMBOL_RE, 'FooWidget: (type GLib.List(GLib.List(utf8)))(transfer full)(type GLib.List(GLib.List(utf8)))',
+ {'delimiter': ':',
+ 'symbol_name': 'FooWidget',
+ 'fields': '(type GLib.List(GLib.List(utf8)))(transfer full)(type GLib.List(GLib.List(utf8)))'})]
+
+identifier_property_tests = [
+ # simple property name
+ (PROPERTY_RE, 'GtkWidget:name (skip)',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': '',
+ 'fields': '(skip)'}),
+ (PROPERTY_RE, 'GtkWidget:name',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, ' GtkWidget :name',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, 'GtkWidget: name ',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, ' GtkWidget : name ',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, 'GtkWidget:name:',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'GtkWidget:name: ',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, ' GtkWidget:name:',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'name',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'Something:name:',
+ {'class_name': 'Something',
+ 'property_name': 'name',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'Something:name: ',
+ {'class_name': 'Something',
+ 'property_name': 'name',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, ' Something:name:',
+ {'class_name': 'Something',
+ 'property_name': 'name',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'Weird-thing:name:',
+ None),
+ (PROPERTY_RE, 'really-weird_thing:name:',
+ None),
+ (PROPERTY_RE, 'GWin32InputStream:handle:',
+ {'class_name': 'GWin32InputStream',
+ 'property_name': 'handle',
+ 'delimiter': ':',
+ 'fields': ''}),
+ # properties: property name that contains a dash
+ (PROPERTY_RE, 'GtkWidget:double-buffered (skip)',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': '',
+ 'fields': '(skip)'}),
+ (PROPERTY_RE, 'GtkWidget:double-buffered',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, ' GtkWidget :double-buffered',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, 'GtkWidget: double-buffered ',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, ' GtkWidget : double-buffered ',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': '',
+ 'fields': ''}),
+ (PROPERTY_RE, 'GtkWidget:double-buffered:',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'GtkWidget:double-buffered: ',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, ' GtkWidget:double-buffered:',
+ {'class_name': 'GtkWidget',
+ 'property_name': 'double-buffered',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'Something:double-buffered:',
+ {'class_name': 'Something',
+ 'property_name': 'double-buffered',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'Something:double-buffered: ',
+ {'class_name': 'Something',
+ 'property_name': 'double-buffered',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, ' Something:double-buffered:',
+ {'class_name': 'Something',
+ 'property_name': 'double-buffered',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (PROPERTY_RE, 'Weird-thing:double-buffered:',
+ None),
+ (PROPERTY_RE, 'really-weird_thing:double-buffered:',
+ None),
+ (PROPERTY_RE, ' GMemoryOutputStream:realloc-function: (skip)',
+ {'class_name': 'GMemoryOutputStream',
+ 'property_name': 'realloc-function',
+ 'delimiter': ':',
+ 'fields': '(skip)'}),
+ # properties: data with multiple closing parentheses
+ (PROPERTY_RE, 'GMemoryOutputStream:realloc-function: (transfer full) (type GLib.List(utf8))',
+ {'class_name': 'GMemoryOutputStream',
+ 'property_name': 'realloc-function',
+ 'delimiter': ':',
+ 'fields': '(transfer full) (type GLib.List(utf8))'}),
+ (PROPERTY_RE, 'GMemoryOutputStream:realloc-function: (transfer full) (type GLib.List((utf8)))',
+ {'class_name': 'GMemoryOutputStream',
+ 'property_name': 'realloc-function',
+ 'delimiter': ':',
+ 'fields': '(transfer full) (type GLib.List((utf8)))'}),
+ (PROPERTY_RE, 'GMemoryOutputStream:realloc-function: (transfer full) (type GLib.List(GLib.List(utf8)))',
+ {'class_name': 'GMemoryOutputStream',
+ 'property_name': 'realloc-function',
+ 'delimiter': ':',
+ 'fields': '(transfer full) (type GLib.List(GLib.List(utf8)))'}),
+ (PROPERTY_RE, 'GMemoryOutputStream:realloc-function: (type GLib.List(GLib.List(utf8))) (transfer full)',
+ {'class_name': 'GMemoryOutputStream',
+ 'property_name': 'realloc-function',
+ 'delimiter': ':',
+ 'fields': '(type GLib.List(GLib.List(utf8))) (transfer full)'})]
+
+identifier_signal_tests = [
+ # simple signal name
+ (SIGNAL_RE, 'GtkWidget::changed: (skip)',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'changed',
+ 'delimiter': ':',
+ 'fields': '(skip)'}),
+ (SIGNAL_RE, 'GtkWidget::changed:',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'changed',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (SIGNAL_RE, 'Something::changed:',
+ {'class_name': 'Something',
+ 'signal_name': 'changed',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (SIGNAL_RE, 'Weird-thing::changed:',
+ None),
+ (SIGNAL_RE, 'really-weird_thing::changed:',
+ None),
+ # signals: signal name that contains a dash
+ (SIGNAL_RE, 'GtkWidget::hierarchy-changed: (skip)',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'hierarchy-changed',
+ 'delimiter': ':',
+ 'fields': '(skip)'}),
+ (SIGNAL_RE, 'GtkWidget::hierarchy-changed:',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'hierarchy-changed',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (SIGNAL_RE, 'Something::hierarchy-changed:',
+ {'class_name': 'Something',
+ 'signal_name': 'hierarchy-changed',
+ 'delimiter': ':',
+ 'fields': ''}),
+ (SIGNAL_RE, 'Weird-thing::hierarchy-changed:',
+ None),
+ (SIGNAL_RE, 'really-weird_thing::hierarchy-changed:',
+ None),
+ # signals: data with multiple closing parentheses
+ (SIGNAL_RE, 'GtkWidget::hierarchy-changed: (transfer full) (type GLib.List(utf8))',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'hierarchy-changed',
+ 'delimiter': ':',
+ 'fields': '(transfer full) (type GLib.List(utf8))'}),
+ (SIGNAL_RE, 'GtkWidget::hierarchy-changed: (transfer full) (type GLib.List((utf8)))',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'hierarchy-changed',
+ 'delimiter': ':',
+ 'fields': '(transfer full) (type GLib.List((utf8)))'}),
+ (SIGNAL_RE, 'GtkWidget::hierarchy-changed: (transfer full) (type GLib.List(GLib.List(utf8)))',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'hierarchy-changed',
+ 'delimiter': ':',
+ 'fields': '(transfer full) (type GLib.List(GLib.List(utf8)))'}),
+ (SIGNAL_RE, 'GtkWidget::hierarchy-changed: (type GLib.List(GLib.List(utf8))) (transfer full)',
+ {'class_name': 'GtkWidget',
+ 'signal_name': 'hierarchy-changed',
+ 'delimiter': ':',
+ 'fields': '(type GLib.List(GLib.List(utf8))) (transfer full)'})]
+
+parameter_tests = [
+ (PARAMETER_RE, '@Short_description: Base class for all widgets ',
+ {'parameter_name': 'Short_description',
+ 'fields': 'Base class for all widgets'}),
+ (PARAMETER_RE, '@...: the value of the first property, followed optionally by more',
+ {'parameter_name': '...',
+ 'fields': 'the value of the first property, followed optionally by more'}),
+ (PARAMETER_RE, '@args...: list of arguments',
+ {'parameter_name': 'args...',
+ 'fields': 'list of arguments'}),
+ (PARAMETER_RE, '@widget: a #GtkWidget',
+ {'parameter_name': 'widget',
+ 'fields': 'a #GtkWidget'}),
+ (PARAMETER_RE, '@widget_pointer: (inout) (transfer none): '
+ 'address of a variable that contains @widget',
+ {'parameter_name': 'widget_pointer',
+ 'fields': '(inout) (transfer none): address of a variable that contains @widget'}),
+ (PARAMETER_RE, '@weird_thing: (inout) (transfer none) (allow-none) (attribute) (destroy) '
+ '(foreign) (inout) (out) (transfer) (skip) (method): some weird @thing',
+ {'parameter_name': 'weird_thing',
+ 'fields': '(inout) (transfer none) (allow-none) (attribute) (destroy) '
+ '(foreign) (inout) (out) (transfer) (skip) (method): '
+ 'some weird @thing'}),
+ (PARAMETER_RE, '@data: a pointer to the element data. The data may be moved as elements '
+ 'are added to the #GByteArray.',
+ {'parameter_name': 'data',
+ 'fields': 'a pointer to the element data. The data may be moved as elements '
+ 'are added to the #GByteArray.'}),
+ (PARAMETER_RE, '@a: a #GSequenceIter',
+ {'parameter_name': 'a',
+ 'fields': 'a #GSequenceIter'}),
+ (PARAMETER_RE, '@keys: (array length=n_keys) (element-type GQuark) (allow-none):',
+ {'parameter_name': 'keys',
+ 'fields': '(array length=n_keys) (element-type GQuark) (allow-none):'}),
+ # parentheses in description
+ (PARAMETER_RE, '@foo: This is a foo (be careful using it)',
+ {'parameter_name': 'foo',
+ 'fields': 'This is a foo (be careful using it)'}),
+ (PARAMETER_RE, '@foo: This is a foo (be careful using it) and see also: bar',
+ {'parameter_name': 'foo',
+ 'fields': 'This is a foo (be careful using it) and see also: bar'}),
+ (PARAMETER_RE, '@foo: This is a foo (be careful using it) and see also: bar and baz',
+ {'parameter_name': 'foo',
+ 'fields': 'This is a foo (be careful using it) and see also: bar and baz'}),
+ # annotations with multiple closing parentheses, combined with parentheses in description
+ (PARAMETER_RE, '@foo: (transfer full) (element-type guint8): This is a foo (be careful using it) and see also: bar and baz',
+ {'parameter_name': 'foo',
+ 'fields': '(transfer full) (element-type guint8): This is a foo (be careful using it) and see also: bar and baz'}),
+ (PARAMETER_RE, '@foo: (transfer full) (element-type GLib.List(utf8)): This is a foo (be careful using it) and see also: bar and baz',
+ {'parameter_name': 'foo',
+ 'fields': '(transfer full) (element-type GLib.List(utf8)): This is a foo (be careful using it) and see also: bar and baz'}),
+ (PARAMETER_RE, '@foo: (transfer full) (element-type GLib.List((utf8))): This is a foo (be careful using it) and see also: bar and baz',
+ {'parameter_name': 'foo',
+ 'fields': '(transfer full) (element-type GLib.List((utf8))): This is a foo (be careful using it) and see also: bar and baz'}),
+ (PARAMETER_RE, '@foo: (transfer full) (element-type GLib.List(GLib.List(utf8))): This is a foo (be careful using it) and see also: bar and baz',
+ {'parameter_name': 'foo',
+ 'fields': '(transfer full) (element-type GLib.List(GLib.List(utf8))): This is a foo (be careful using it) and see also: bar and baz'}),
+ (PARAMETER_RE, '@foo: (element-type GLib.List(GLib.List(utf8))) (transfer full): This is a foo (be careful using it) and see also: bar and baz',
+ {'parameter_name': 'foo',
+ 'fields': '(element-type GLib.List(GLib.List(utf8))) (transfer full): This is a foo (be careful using it) and see also: bar and baz'})]
+
+tag_tests = [
+ (TAG_RE, 'Since 3.0',
+ None),
+ (TAG_RE, 'Since: 3.0',
+ {'tag_name': 'Since',
+ 'fields': '3.0'}),
+ (TAG_RE, 'Attributes: (inout) (transfer none): some note about attributes',
+ {'tag_name': 'Attributes',
+ 'fields': '(inout) (transfer none): some note about attributes'}),
+ (TAG_RE, 'Rename to: something_else',
+ {'tag_name': 'Rename to',
+ 'fields': 'something_else'}),
+ (TAG_RE, '@Deprecated: Since 2.8, reference counting is done atomically',
+ None),
+ (TAG_RE, 'Returns %TRUE and does weird things',
+ None),
+ (TAG_RE, 'Returns: a #GtkWidget',
+ {'tag_name': 'Returns',
+ 'fields': 'a #GtkWidget'}),
+ (TAG_RE, 'Return value: (transfer none): The binary data that @text responds. '
+ 'This pointer',
+ {'tag_name': 'Return value',
+ 'fields': '(transfer none): The binary data that @text responds. This pointer'}),
+ (TAG_RE, 'Return value: (transfer full) (array length=out_len) (element-type guint8):',
+ {'tag_name': 'Return value',
+ 'fields': '(transfer full) (array length=out_len) (element-type guint8):'}),
+ (TAG_RE, 'Returns: A boolean value, but let me tell you a bit about this boolean. It',
+ {'tag_name': 'Returns',
+ 'fields': 'A boolean value, but let me tell you a bit about this boolean. It'}),
+ (TAG_RE, 'Returns: (transfer container) (element-type GObject.ParamSpec): a',
+ {'tag_name': 'Returns',
+ 'fields': '(transfer container) (element-type GObject.ParamSpec): a'}),
+ (TAG_RE, 'Return value: (type GLib.HashTable<utf8,GLib.HashTable<utf8,utf8>>) '
+ '(transfer full):',
+ {'tag_name': 'Return value',
+ 'fields': '(type GLib.HashTable<utf8,GLib.HashTable<utf8,utf8>>) (transfer full):'}),
+ # parentheses in description
+ (TAG_RE, 'Returns: Returns a foo (be careful using it)',
+ {'tag_name': 'Returns',
+ 'fields': 'Returns a foo (be careful using it)'}),
+ (TAG_RE, 'Returns: Returns a foo (be careful using it) and see also: bar',
+ {'tag_name': 'Returns',
+ 'fields': 'Returns a foo (be careful using it) and see also: bar'}),
+ (TAG_RE, 'Returns: Returns a foo (be careful using it) and see also: bar and baz',
+ {'tag_name': 'Returns',
+ 'fields': 'Returns a foo (be careful using it) and see also: bar and baz'}),
+ # annotations with multiple closing parentheses, combined with parentheses in description
+ (TAG_RE, 'Returns: (transfer full) (element-type guint8): Returns a foo (be careful using it) and see also: bar and baz',
+ {'tag_name': 'Returns',
+ 'fields': '(transfer full) (element-type guint8): Returns a foo (be careful using it) and see also: bar and baz'}),
+ (TAG_RE, 'Returns: (transfer full) (element-type GLib.List(utf8)): Returns a foo (be careful using it) and see also: bar and baz',
+ {'tag_name': 'Returns',
+ 'fields': '(transfer full) (element-type GLib.List(utf8)): Returns a foo (be careful using it) and see also: bar and baz'}),
+ (TAG_RE, 'Returns: (transfer full) (element-type GLib.List((utf8))): Returns a foo (be careful using it) and see also: bar and baz',
+ {'tag_name': 'Returns',
+ 'fields': '(transfer full) (element-type GLib.List((utf8))): Returns a foo (be careful using it) and see also: bar and baz'}),
+ (TAG_RE, 'Returns: (transfer full) (element-type GLib.List(GLib.List(utf8))): Returns a foo (be careful using it) and see also: bar and baz',
+ {'tag_name': 'Returns',
+ 'fields': '(transfer full) (element-type GLib.List(GLib.List(utf8))): Returns a foo (be careful using it) and see also: bar and baz'}),
+ (TAG_RE, 'Returns: (element-type GLib.List(GLib.List(utf8))) (transfer full): Returns a foo (be careful using it) and see also: bar and baz',
+ {'tag_name': 'Returns',
+ 'fields': '(element-type GLib.List(GLib.List(utf8))) (transfer full): Returns a foo (be careful using it) and see also: bar and baz'}),
+ (TAG_RE, 'Returns: (element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.',
+ {'tag_name': 'Returns',
+ 'fields': '(element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.'})]
+
+
+tag_value_version_tests = [
+ (TAG_VALUE_VERSION_RE, ' abc',
+ {'value': '',
+ 'delimiter': '',
+ 'description': 'abc'}),
+ (TAG_VALUE_VERSION_RE, '5 abc',
+ {'value': '5',
+ 'delimiter': '',
+ 'description': 'abc'}),
+ (TAG_VALUE_VERSION_RE, '5:abc',
+ {'value': '5',
+ 'delimiter': ':',
+ 'description': 'abc'}),
+ (TAG_VALUE_VERSION_RE, ' 0.1: abc',
+ {'value': '0.1',
+ 'delimiter': ':',
+ 'description': 'abc'}),
+ (TAG_VALUE_VERSION_RE, ' 12.10.3698: abc',
+ {'value': '12.10.3698',
+ 'delimiter': ':',
+ 'description': 'abc'})]
+
+
+tag_value_stability_tests = [
+ (TAG_VALUE_STABILITY_RE, ' abc',
+ {'value': '',
+ 'delimiter': '',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'stable abc',
+ {'value': 'stable',
+ 'delimiter': '',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'unstable abc',
+ {'value': 'unstable',
+ 'delimiter': '',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'private abc',
+ {'value': 'private',
+ 'delimiter': '',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'internal abc',
+ {'value': 'internal',
+ 'delimiter': '',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'StAbLe: abc',
+ {'value': 'StAbLe',
+ 'delimiter': ':',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'uNsTaBlE: abc',
+ {'value': 'uNsTaBlE',
+ 'delimiter': ':',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'PRIVATE: abc',
+ {'value': 'PRIVATE',
+ 'delimiter': ':',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, ' internal : abc',
+ {'value': 'internal',
+ 'delimiter': ':',
+ 'description': 'abc'}),
+ (TAG_VALUE_STABILITY_RE, 'xyz: abc',
+ {'value': '',
+ 'delimiter': '',
+ 'description': 'xyz: abc'})]
+
+
+def create_test_method(testcase):
+ def do_test(self):
+ (program, text, expected) = testcase
+
+ match = program.match(text)
+
+ if match is not None:
+ msg = 'Test matched pattern but specifies no expected named groups.'
+ self.assertTrue(isinstance(expected, dict), msg)
+
+ for group in match.groupdict().keys():
+ msg = 'Test case is missing expected results for named group "%s".' % (group)
+ self.assertTrue(group in expected.keys(), msg)
+
+ if expected is None:
+ msg = 'Program matched text but shouldn\'t:\n"%s"'
+ self.assertTrue(match is None, msg % (text, ))
+ else:
+ msg = 'Program should match text but didn\'t:\n"%s"'
+ self.assertTrue(match is not None, msg % (text, ))
+
+ for key, value in expected.items():
+ msg = 'expected "%s" for "%s" but match returned "%s"'
+ msg = msg % (value, key, match.group(key))
+ self.assertEqual(match.group(key), value, msg)
+
+ return do_test
+
+
+def create_test_case(tests_class_name, testcases):
+ test_methods = {}
+ for (index, testcase) in enumerate(testcases):
+ test_method_name = 'test_%03d' % index
+
+ test_method = create_test_method(testcase)
+ test_method.__name__ = test_method_name
+ test_methods[test_method_name] = test_method
+
+ return type(tests_class_name, (unittest.TestCase,), test_methods)
+
+
+def create_test_cases():
+ test_cases = {}
+ for name, test_data in (('TestCommentStart', comment_start_tests),
+ ('TestCommentEnd', comment_end_tests),
+ ('TestCommentAsterisk', comment_asterisk_tests),
+ ('TestIndentaton', indentaton_tests),
+ ('TestEmptyLine', empty_line_tests),
+ ('TestIdentifierSection', identifier_section_tests),
+ ('TestIdentifierSymbol', identifier_symbol_tests),
+ ('TestIdentifierProperty', identifier_property_tests),
+ ('TestIdentifierSignal', identifier_signal_tests),
+ ('TestParameter', parameter_tests),
+ ('TestTag', tag_tests),
+ ('TestTagValueVersion', tag_value_version_tests),
+ ('TestTagValueStability', tag_value_stability_tests)):
+ test_cases[name] = create_test_case(name, test_data)
+
+ return test_cases
+
+
+# We currently need to push all the new test cases into the modules globals
+# in order for parameterized tests to work. Ideally all that should be needed
+# is the "load_tests" hook, but this does not work in the case were the tests
+# are run in parameterized mode, e.g: python -m unittest test_parser.Test...
+_all_tests = create_test_cases()
+globals().update(_all_tests)
+
+
+# Hook function for Python test loader.
+def load_tests(loader, tests, pattern):
+ suite = unittest.TestSuite()
+ # add standard tests from module
+ suite.addTests(tests)
+
+ for name, test_case in _all_tests.iteritems():
+ tests = loader.loadTestsFromTestCase(test_case)
+ suite.addTests(tests)
+ return suite
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/scanner/annotationparser/tests.xsd b/tests/scanner/annotationparser/tests.xsd
new file mode 100644
index 00000000..ca47cfe7
--- /dev/null
+++ b/tests/scanner/annotationparser/tests.xsd
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:t="http://schemas.gnome.org/gobject-introspection/2013/test"
+ targetNamespace="http://schemas.gnome.org/gobject-introspection/2013/test"
+ elementFormDefault="qualified"
+ version="1.0.0">
+
+ <xs:annotation>
+ <xs:documentation><![CDATA[
+ GObject-Introspection - a framework for introspecting GObject libraries
+ Copyright © 2013 Dieter Verfaillie <dieterv@optionexplicit.be>
+
+ 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 2
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.]]>
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:simpleType name="PreservedStringtype">
+ <xs:restriction base="xs:string">
+ <xs:whiteSpace value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="OutputType">
+ <xs:simpleContent>
+ <xs:extension base="t:PreservedStringtype">
+ <xs:attribute name="indent" type="xs:boolean" default="true" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:element name="tests">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="t:test" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="test">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="input" type="t:PreservedStringtype" />
+ <xs:element ref="t:parser" minOccurs="0" />
+ <xs:element name="output" minOccurs="0" type="t:OutputType" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="parser">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="t:docblock" minOccurs="0" />
+ <xs:element ref="t:messages" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="docblock">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="t:identifier" />
+ <xs:element ref="t:parameters" minOccurs="0" />
+ <xs:element name="description" type="t:PreservedStringtype" minOccurs="0" />
+ <xs:element ref="t:tags" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="identifier">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" />
+ <xs:element ref="t:annotations" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="tags">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="t:tag" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="tag">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" />
+ <xs:element ref="t:annotations" minOccurs="0" />
+ <xs:element name="value" minOccurs="0" />
+ <xs:element name="description" type="t:PreservedStringtype" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="parameters">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="t:parameter" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="parameter">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" />
+ <xs:element ref="t:annotations" minOccurs="0" />
+ <xs:element name="description" type="t:PreservedStringtype" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="annotations">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="t:annotation" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="annotation">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" />
+ <xs:element ref="t:options" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="options">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="t:option" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="option">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" />
+ <xs:element name="value" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="messages">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="message" type="t:PreservedStringtype" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/tests/scanner/barapp.c b/tests/scanner/barapp.c
index db4be8db..ed391204 100644
--- a/tests/scanner/barapp.c
+++ b/tests/scanner/barapp.c
@@ -54,7 +54,6 @@ main(int argc, char **argv)
g_printerr ("usage: barapp --introspect-dump=types.txt,out.xml\\n");
return 1;
}
- g_type_init ();
if (!g_irepository_dump (argv[1] + strlen (prefix), &error))
{
diff --git a/tests/scanner/drawable.c b/tests/scanner/drawable.c
index 6ab8ecf7..e378286b 100644
--- a/tests/scanner/drawable.c
+++ b/tests/scanner/drawable.c
@@ -1,54 +1,54 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
#include "drawable.h"
-G_DEFINE_ABSTRACT_TYPE (TestInheritDrawable, test_inherit_drawable, G_TYPE_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (RegressTestInheritDrawable, regress_test_inherit_drawable, G_TYPE_OBJECT);
static void
-test_inherit_drawable_class_init (TestInheritDrawableClass *klass)
+regress_test_inherit_drawable_class_init (RegressTestInheritDrawableClass *klass)
{
}
static void
-test_inherit_drawable_init (TestInheritDrawable *drawable)
+regress_test_inherit_drawable_init (RegressTestInheritDrawable *drawable)
{
}
-void
-test_inherit_drawable_do_foo (TestInheritDrawable *drawable, int x)
+void
+regress_test_inherit_drawable_do_foo (RegressTestInheritDrawable *drawable, int x)
{
-
+
}
/**
- * test_inherit_drawable_get_origin:
+ * regress_test_inherit_drawable_get_origin:
* @drawable:
* @x: (out):
* @y: (out):
*/
void
-test_inherit_drawable_get_origin (TestInheritDrawable *drawable, int *x, int *y)
+regress_test_inherit_drawable_get_origin (RegressTestInheritDrawable *drawable, int *x, int *y)
{
*x = 0;
*y = 0;
}
/**
- * test_inherit_drawable_get_size:
+ * regress_test_inherit_drawable_get_size:
* @drawable:
* @width: (out):
* @height: (out):
*/
void
-test_inherit_drawable_get_size (TestInheritDrawable *drawable, guint *width, guint *height)
+regress_test_inherit_drawable_get_size (RegressTestInheritDrawable *drawable, guint *width, guint *height)
{
*width = 42;
*height = 42;
}
void
-test_inherit_drawable_do_foo_maybe_throw (TestInheritDrawable *drawable, int x, GError **error)
+regress_test_inherit_drawable_do_foo_maybe_throw (RegressTestInheritDrawable *drawable, int x, GError **error)
{
if (x != 42)
g_set_error(error, 0, 12, "The answer should be 42!");
diff --git a/tests/scanner/drawable.h b/tests/scanner/drawable.h
index d1752e44..58383589 100644
--- a/tests/scanner/drawable.h
+++ b/tests/scanner/drawable.h
@@ -1,33 +1,33 @@
-#ifndef __TEST_INHERIT_DRAWABLE_H__
-#define __TEST_INHERIT_DRAWABLE_H__
+#ifndef __REGRESS_TEST_INHERIT_DRAWABLE_H__
+#define __REGRESS_TEST_INHERIT_DRAWABLE_H__
#include <glib-object.h>
-typedef struct _TestInheritDrawable TestInheritDrawable;
-typedef struct _TestInheritDrawableClass TestInheritDrawableClass;
+typedef struct _RegressTestInheritDrawable RegressTestInheritDrawable;
+typedef struct _RegressTestInheritDrawableClass RegressTestInheritDrawableClass;
-struct _TestInheritDrawable
+struct _RegressTestInheritDrawable
{
GObject parent_instance;
};
-struct _TestInheritDrawableClass
+struct _RegressTestInheritDrawableClass
{
GObjectClass parent_class;
};
-GType test_inherit_drawable_get_type (void) G_GNUC_CONST;
+GType regress_test_inherit_drawable_get_type (void) G_GNUC_CONST;
-void test_inherit_drawable_do_foo (TestInheritDrawable *drawable, int x);
-void test_inherit_drawable_get_origin (TestInheritDrawable *drawable, int *x, int *y);
-void test_inherit_drawable_get_size (TestInheritDrawable *drawable, guint *width, guint *height);
-void test_inherit_drawable_do_foo_maybe_throw (TestInheritDrawable *drawable, int x, GError **error);
+void regress_test_inherit_drawable_do_foo (RegressTestInheritDrawable *drawable, int x);
+void regress_test_inherit_drawable_get_origin (RegressTestInheritDrawable *drawable, int *x, int *y);
+void regress_test_inherit_drawable_get_size (RegressTestInheritDrawable *drawable, guint *width, guint *height);
+void regress_test_inherit_drawable_do_foo_maybe_throw (RegressTestInheritDrawable *drawable, int x, GError **error);
-typedef struct _TestInheritPixmapObjectClass TestInheritPixmapObjectClass;
+typedef struct _RegressTestInheritPixmapObjectClass RegressTestInheritPixmapObjectClass;
-struct _TestInheritPixmapObjectClass
+struct _RegressTestInheritPixmapObjectClass
{
- TestInheritDrawableClass parent_class;
+ RegressTestInheritDrawableClass parent_class;
};
-#endif /* __TEST_INHERIT_DRAWABLE_H__ */
+#endif /* __REGRESS_TEST_INHERIT_DRAWABLE_H__ */
diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c
index f8cc350b..52b9054e 100644
--- a/tests/scanner/foo.c
+++ b/tests/scanner/foo.c
@@ -1,45 +1,44 @@
#include "foo.h"
-#include "girepository.h"
/* A hidden type not exposed publicly, similar to GUPNP's XML wrapper
object */
-typedef struct _FooHidden FooHidden;
-
-int foo_init_argv (int argc, char **argv);
-int foo_init_argv_address (int *argc, char ***argv);
-void foo_private_function (FooObject *foo);
-void foo_test_unsigned (unsigned int uint);
-void foo_interface_do_foo (FooInterface *self, int x);
-void foo_do_foo (FooInterface *self, int x);
-int foo_enum_method (FooEnumType foo_enum);
-FooHidden * foo_hidden_copy (const FooHidden *boxed);
-void foo_hidden_free (FooHidden *boxed);
-GType foo_hidden_get_type (void);
-FooBoxed *foo_boxed_copy (const FooBoxed *boxed);
-void foo_boxed_free (FooBoxed *boxed);
-void foo_dbus_data_free (FooDBusData *boxed);
-FooDBusData *foo_dbus_data_copy (const FooDBusData *boxed);
+typedef struct _RegressFooHidden RegressFooHidden;
+
+int regress_foo_init_argv (int argc, char **argv);
+int regress_foo_init_argv_address (int *argc, char ***argv);
+void regress_foo_private_function (RegressFooObject *regress_foo);
+void regress_foo_test_unsigned (unsigned int uint);
+void regress_foo_interface_do_regress_foo (RegressFooInterface *self, int x);
+void regress_foo_do_regress_foo (RegressFooInterface *self, int x);
+int regress_foo_enum_method (RegressFooEnumType regress_foo_enum);
+RegressFooHidden * regress_foo_hidden_copy (const RegressFooHidden *boxed);
+void regress_foo_hidden_free (RegressFooHidden *boxed);
+GType regress_foo_hidden_get_type (void);
+RegressFooBoxed *regress_foo_boxed_copy (const RegressFooBoxed *boxed);
+void regress_foo_boxed_free (RegressFooBoxed *boxed);
+void regress_foo_dbus_data_free (RegressFooDBusData *boxed);
+RegressFooDBusData *regress_foo_dbus_data_copy (const RegressFooDBusData *boxed);
typedef struct
{
int i;
} PrivateStruct;
-void foo_private_function (FooObject *foo)
+void regress_foo_private_function (RegressFooObject *regress_foo)
{
}
GType
-foo_interface_get_type (void)
+regress_foo_interface_get_type (void)
{
static GType object_type = 0;
if (!object_type)
{
object_type = g_type_register_static_simple (G_TYPE_INTERFACE,
- "FooInterface",
- sizeof (FooInterfaceIface),
+ "RegressFooInterface",
+ sizeof (RegressFooInterfaceIface),
NULL, 0, NULL, 0);
g_type_interface_add_prerequisite (object_type, G_TYPE_OBJECT);
@@ -48,12 +47,12 @@ foo_interface_get_type (void)
return object_type;
}
-void foo_interface_do_foo (FooInterface *self, int x)
+void regress_foo_interface_do_regress_foo (RegressFooInterface *self, int x)
{
- FOO_INTERFACE_GET_INTERFACE(self)->do_foo (self, x);
+ REGRESS_FOO_INTERFACE_GET_INTERFACE(self)->do_regress_foo (self, x);
}
-void foo_interface_static_method (int x)
+void regress_foo_interface_static_method (int x)
{
}
@@ -68,14 +67,14 @@ enum {
LAST_SIGNAL
};
-static guint foo_object_signals[LAST_SIGNAL] = { 0 };
+static guint regress_foo_object_signals[LAST_SIGNAL] = { 0 };
static void
-foo_foo_interface_init (gpointer g_iface,
- gpointer iface_data)
+regress_foo_regress_foo_interface_init (gpointer g_iface,
+ gpointer iface_data)
{
- FooInterfaceIface *iface = (FooInterfaceIface *)g_iface;
- iface->do_foo = foo_do_foo;
+ RegressFooInterfaceIface *iface = (RegressFooInterfaceIface *)g_iface;
+ iface->do_regress_foo = regress_foo_do_regress_foo;
}
enum {
@@ -84,75 +83,68 @@ enum {
};
static void
-foo_sub_interface_class_init (gpointer g_class, gpointer class_data);
+regress_foo_sub_interface_class_init (gpointer g_class, gpointer class_data);
-static guint foo_subiface_signals[SUBIFACE_LAST_SIGNAL] = { 0 };
+static guint regress_foo_subiface_signals[SUBIFACE_LAST_SIGNAL] = { 0 };
GType
-foo_sub_interface_get_type (void)
+regress_foo_sub_interface_get_type (void)
{
static GType object_type = 0;
if (!object_type)
{
object_type = g_type_register_static_simple (G_TYPE_INTERFACE,
- "FooSubInterface",
- sizeof (FooSubInterfaceIface),
- foo_sub_interface_class_init, 0, NULL, 0);
+ "RegressFooSubInterface",
+ sizeof (RegressFooSubInterfaceIface),
+ regress_foo_sub_interface_class_init, 0, NULL, 0);
- g_type_interface_add_prerequisite (object_type, FOO_TYPE_INTERFACE);
+ g_type_interface_add_prerequisite (object_type, REGRESS_FOO_TYPE_INTERFACE);
}
return object_type;
}
static void
-foo_sub_interface_class_init (gpointer g_class, gpointer class_data)
+regress_foo_sub_interface_class_init (gpointer g_class, gpointer class_data)
{
- foo_subiface_signals[SUBIFACE_DESTROY_EVENT] =
- g_signal_new ("destroy-event", FOO_TYPE_SUBINTERFACE,
+ regress_foo_subiface_signals[SUBIFACE_DESTROY_EVENT] =
+ g_signal_new ("destroy-event", REGRESS_FOO_TYPE_SUBINTERFACE,
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (FooSubInterfaceIface, destroy_event),
- NULL, NULL,
- gi_cclosure_marshal_generic,
+ G_STRUCT_OFFSET (RegressFooSubInterfaceIface, destroy_event),
+ NULL, NULL, NULL,
G_TYPE_NONE,
0,
G_TYPE_NONE);
}
void
-foo_sub_interface_do_bar (FooSubInterface *self)
+regress_foo_sub_interface_do_bar (RegressFooSubInterface *self)
{
- FOO_SUBINTERFACE_GET_INTERFACE(self)->do_bar (self);
-}
-
-void
-foo_sub_interface_do_moo (FooSubInterface *self, int x, gpointer y)
-{
- FOO_SUBINTERFACE_GET_INTERFACE(self)->do_moo (self, x, y);
+ REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(self)->do_bar (self);
}
/**
- * foo_sub_interface_do_baz:
+ * regress_foo_sub_interface_do_baz:
* @self:
* @callback: (scope call):
* @user_data:
*/
void
-foo_sub_interface_do_baz (FooSubInterface *self, GCallback callback, gpointer user_data)
+regress_foo_sub_interface_do_baz (RegressFooSubInterface *self, GCallback callback, gpointer user_data)
{
- FOO_SUBINTERFACE_GET_INTERFACE(self)->do_baz (self, callback, user_data);
+ REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(self)->do_baz (self, callback, user_data);
}
-G_DEFINE_TYPE_EXTENDED (FooObject, foo_object, G_TYPE_OBJECT,
- 0, G_IMPLEMENT_INTERFACE (FOO_TYPE_INTERFACE,
- foo_foo_interface_init));
+G_DEFINE_TYPE_EXTENDED (RegressFooObject, regress_foo_object, G_TYPE_OBJECT,
+ 0, G_IMPLEMENT_INTERFACE (REGRESS_FOO_TYPE_INTERFACE,
+ regress_foo_regress_foo_interface_init));
static void
-foo_object_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+regress_foo_object_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
switch (prop_id)
{
@@ -167,10 +159,10 @@ foo_object_set_property (GObject *object,
}
static void
-foo_object_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+regress_foo_object_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
switch (prop_id)
{
@@ -185,14 +177,14 @@ foo_object_get_property (GObject *object,
}
static void
-foo_object_class_init (FooObjectClass *klass)
+regress_foo_object_class_init (RegressFooObjectClass *klass)
{
GObjectClass *gobject_class;
gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->set_property = foo_object_set_property;
- gobject_class->get_property = foo_object_get_property;
+ gobject_class->set_property = regress_foo_object_set_property;
+ gobject_class->get_property = regress_foo_object_get_property;
g_object_class_install_property (gobject_class,
PROP_STRING,
@@ -206,9 +198,9 @@ foo_object_class_init (FooObjectClass *klass)
g_param_spec_boxed ("hidden",
"hidden property",
"should not be exposed",
- foo_hidden_get_type (),
+ regress_foo_hidden_get_type (),
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
- foo_object_signals[SIGNAL] =
+ regress_foo_object_signals[SIGNAL] =
g_signal_new ("signal",
G_OBJECT_CLASS_TYPE (gobject_class),
G_SIGNAL_RUN_LAST,
@@ -220,327 +212,325 @@ foo_object_class_init (FooObjectClass *klass)
}
static void
-foo_object_init (FooObject *object)
+regress_foo_object_init (RegressFooObject *object)
{
}
-FooObject *
-foo_object_new (void)
+RegressFooObject *
+regress_foo_object_new (void)
{
- return g_object_new (FOO_TYPE_OBJECT, NULL);
+ return g_object_new (REGRESS_FOO_TYPE_OBJECT, NULL);
}
GObject *
-foo_object_new_as_super (void)
+regress_foo_object_new_as_super (void)
{
- return g_object_new (FOO_TYPE_OBJECT, NULL);
+ return g_object_new (REGRESS_FOO_TYPE_OBJECT, NULL);
}
/**
- * foo_object_external_type:
- * @object: a #FooObject
+ * regress_foo_object_external_type:
+ * @object: a #RegressFooObject
*
* Returns: (transfer none): %NULL always
*/
UtilityObject*
-foo_object_external_type (FooObject *object)
+regress_foo_object_external_type (RegressFooObject *object)
{
return NULL;
}
void
-foo_object_take_all (FooObject *object, int x, ...)
+regress_foo_object_take_all (RegressFooObject *object, int x, ...)
{
}
void
-foo_do_foo (FooInterface *self, int x)
+regress_foo_do_regress_foo (RegressFooInterface *self, int x)
{
}
void
-foo_object_is_it_time_yet (FooObject *object, time_t time)
+regress_foo_object_is_it_time_yet (RegressFooObject *object, time_t time)
{
}
/**
- * foo_object_new_cookie: (skip)
+ * regress_foo_object_new_cookie: (skip)
* @object:
* @target:
*
* Not sure why this test is here...
*/
-FooObjectCookie
-foo_object_new_cookie (FooObject *object, const char *target)
+RegressFooObjectCookie
+regress_foo_object_new_cookie (RegressFooObject *object, const char *target)
{
return NULL;
}
const char *
-foo_object_get_name (FooObject *object)
+regress_foo_object_get_name (RegressFooObject *object)
{
- return "foo";
+ return "regress_foo";
}
char *
-foo_object_dup_name (FooObject *object)
+regress_foo_object_dup_name (RegressFooObject *object)
{
- return g_strdup ("foo");
+ return g_strdup ("regress_foo");
}
/**
- * foo_object_read:
+ * regress_foo_object_read: (virtual read_fn)
* @object: obj
* @offset: offset
* @length: length
*
* Read some stuff.
- *
- * Virtual: read_fn
*/
void
-foo_object_read (FooObject *object, int offset, int length)
+regress_foo_object_read (RegressFooObject *object, int offset, int length)
{
}
/**
- * foo_object_skipped_method: (skip)
+ * regress_foo_object_skipped_method: (skip)
* @object: obj
*
* This is only useful from C.
*/
void
-foo_object_skipped_method (FooObject *object)
+regress_foo_object_skipped_method (RegressFooObject *object)
{
}
-G_DEFINE_ABSTRACT_TYPE (FooSubobject, foo_subobject, FOO_TYPE_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (RegressFooSubobject, regress_foo_subobject, REGRESS_FOO_TYPE_OBJECT);
static void
-foo_subobject_class_init (FooSubobjectClass *klass)
+regress_foo_subobject_class_init (RegressFooSubobjectClass *klass)
{
}
static void
-foo_subobject_init (FooSubobject *object)
+regress_foo_subobject_init (RegressFooSubobject *object)
{
}
/**
- * foo_object_get_default:
+ * regress_foo_object_get_default:
*
* This function is intended to match clutter_stage_get_default which
* uses a C sugar return type.
*
- * Return value: (type FooSubobject) (transfer none): The global #FooSubobject
+ * Return value: (type RegressFooSubobject) (transfer none): The global #RegressFooSubobject
*/
-FooObject *
-foo_object_get_default ()
+RegressFooObject *
+regress_foo_object_get_default ()
{
return NULL;
}
-int foo_init (void)
+int regress_foo_init (void)
{
- return FOO_SUCCESS_INT;
+ return REGRESS_FOO_SUCCESS_INT;
}
-int foo_init_argv (int argc, char **argv)
+int regress_foo_init_argv (int argc, char **argv)
{
- return FOO_SUCCESS_INT;
+ return REGRESS_FOO_SUCCESS_INT;
}
-int foo_init_argv_address (int *argc, char ***argv)
+int regress_foo_init_argv_address (int *argc, char ***argv)
{
- return FOO_SUCCESS_INT;
+ return REGRESS_FOO_SUCCESS_INT;
}
GType
-foo_enum_type_get_type (void)
-{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const GEnumValue values[] = {
- { FOO_ENUM_ALPHA, "FOO_ENUM_ALPHA", "alpha" },
- { FOO_ENUM_BETA, "FOO_ENUM_BETA", "beta" },
- { FOO_ENUM_DELTA, "FOO_ENUM_DELTA", "delta" },
- { 0, NULL, NULL }
- };
- etype = g_enum_register_static (g_intern_static_string ("FooEnumType"), values);
- }
- return etype;
+regress_foo_enum_type_get_type (void)
+{
+ static GType etype = 0;
+ if (G_UNLIKELY(etype == 0)) {
+ static const GEnumValue values[] = {
+ { REGRESS_FOO_ENUM_ALPHA, "REGRESS_FOO_ENUM_ALPHA", "alpha" },
+ { REGRESS_FOO_ENUM_BETA, "REGRESS_FOO_ENUM_BETA", "beta" },
+ { REGRESS_FOO_ENUM_DELTA, "REGRESS_FOO_ENUM_DELTA", "delta" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static (g_intern_static_string ("RegressFooEnumType"), values);
+ }
+ return etype;
}
-int foo_enum_method (FooEnumType foo_enum)
+int regress_foo_enum_method (RegressFooEnumType regress_foo_enum)
{
return 0;
}
GType
-foo_flags_type_get_type (void)
-{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const GFlagsValue values[] = {
- { FOO_FLAGS_FIRST, "FOO_FLAGS_FIRST", "first" },
- { FOO_FLAGS_SECOND, "FOO_FLAGS_SECOND", "second" },
- { FOO_FLAGS_THIRD, "FOO_FLAGS_THIRD", "third" },
- { 0, NULL, NULL }
- };
- etype = g_flags_register_static (g_intern_static_string ("FooFlagsType"), values);
- }
- return etype;
+regress_foo_flags_type_get_type (void)
+{
+ static GType etype = 0;
+ if (G_UNLIKELY(etype == 0)) {
+ static const GFlagsValue values[] = {
+ { REGRESS_FOO_FLAGS_FIRST, "REGRESS_FOO_FLAGS_FIRST", "first" },
+ { REGRESS_FOO_FLAGS_SECOND, "REGRESS_FOO_FLAGS_SECOND", "second" },
+ { REGRESS_FOO_FLAGS_THIRD, "REGRESS_FOO_FLAGS_THIRD", "third" },
+ { 0, NULL, NULL }
+ };
+ etype = g_flags_register_static (g_intern_static_string ("RegressFooFlagsType"), values);
+ }
+ return etype;
}
-struct _FooBoxed
+struct _RegressFooBoxed
{
int private;
};
-FooBoxed *
-foo_boxed_copy (const FooBoxed *boxed)
+RegressFooBoxed *
+regress_foo_boxed_copy (const RegressFooBoxed *boxed)
{
- return (FooBoxed *)g_memdup (boxed, sizeof (FooBoxed));
+ return (RegressFooBoxed *)g_memdup (boxed, sizeof (RegressFooBoxed));
}
void
-foo_boxed_free (FooBoxed *boxed)
+regress_foo_boxed_free (RegressFooBoxed *boxed)
{
- g_slice_free (FooBoxed, boxed);
+ g_slice_free (RegressFooBoxed, boxed);
}
GType
-foo_boxed_get_type (void)
+regress_foo_boxed_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
- our_type = g_boxed_type_register_static ("FooBoxed",
- (GBoxedCopyFunc) foo_boxed_copy,
- (GBoxedFreeFunc) foo_boxed_free);
+ our_type = g_boxed_type_register_static ("RegressFooBoxed",
+ (GBoxedCopyFunc) regress_foo_boxed_copy,
+ (GBoxedFreeFunc) regress_foo_boxed_free);
return our_type;
}
-FooBoxed *
-foo_boxed_new (void)
+RegressFooBoxed *
+regress_foo_boxed_new (void)
{
- return g_slice_new0 (FooBoxed);
+ return g_slice_new0 (RegressFooBoxed);
}
void
-foo_boxed_method (FooBoxed *boxed)
+regress_foo_boxed_method (RegressFooBoxed *boxed)
{
}
-/* FooDbus */
-struct _FooDBusData
+/* RegressFooDbus */
+struct _RegressFooDBusData
{
double private;
};
-FooDBusData *
-foo_dbus_data_copy (const FooDBusData *boxed)
+RegressFooDBusData *
+regress_foo_dbus_data_copy (const RegressFooDBusData *boxed)
{
- return (FooDBusData *)g_memdup (boxed, sizeof (FooDBusData));
+ return (RegressFooDBusData *)g_memdup (boxed, sizeof (RegressFooDBusData));
}
void
-foo_dbus_data_free (FooDBusData *boxed)
+regress_foo_dbus_data_free (RegressFooDBusData *boxed)
{
- g_slice_free (FooDBusData, boxed);
+ g_slice_free (RegressFooDBusData, boxed);
}
GType
-foo_dbus_data_get_type (void)
+regress_foo_dbus_data_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
- our_type = g_boxed_type_register_static ("FooDBusData",
- (GBoxedCopyFunc) foo_dbus_data_copy,
- (GBoxedFreeFunc) foo_dbus_data_free);
+ our_type = g_boxed_type_register_static ("RegressFooDBusData",
+ (GBoxedCopyFunc) regress_foo_dbus_data_copy,
+ (GBoxedFreeFunc) regress_foo_dbus_data_free);
return our_type;
}
GType
-foo_brect_get_type (void)
+regress_foo_brect_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
- our_type = g_boxed_type_register_static ("FooBRect",
+ our_type = g_boxed_type_register_static ("RegressFooBRect",
(GBoxedCopyFunc) g_memdup, /* Won't work */
(GBoxedFreeFunc) g_free);
return our_type;
}
GType
-foo_bunion_get_type (void)
+regress_foo_bunion_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
- our_type = g_boxed_type_register_static ("FooBUnion",
+ our_type = g_boxed_type_register_static ("RegressFooBUnion",
(GBoxedCopyFunc) g_memdup, /* Won't work */
(GBoxedFreeFunc) g_free);
return our_type;
}
-void foo_test_unsigned (unsigned int uint)
+void regress_foo_test_unsigned (unsigned int uint)
{
}
/**
- * foo_test_string_array:
+ * regress_foo_test_string_array:
* @array: (array zero-terminated=1):
*/
void
-foo_test_string_array (char **array)
+regress_foo_test_string_array (char **array)
{
}
/**
- * foo_test_string_array_with_g:
+ * regress_foo_test_string_array_with_g:
* @array: (array zero-terminated=1):
*/
void
-foo_test_string_array_with_g (gchar **array)
+regress_foo_test_string_array_with_g (gchar **array)
{
}
/**
- * foo_test_array:
+ * regress_foo_test_array:
*
* Returns: (element-type utf8) (transfer container):
*/
GArray *
-foo_test_array (void)
+regress_foo_test_array (void)
{
return NULL;
}
/**
- * foo_rectangle_new: (skip)
+ * regress_foo_rectangle_new: (skip)
*
* This is a C convenience constructor; we have to (skip)
* it because it's not a boxed type.
*/
-FooRectangle *
-foo_rectangle_new (int x, int y, int width, int height)
+RegressFooRectangle *
+regress_foo_rectangle_new (int x, int y, int width, int height)
{
- FooRectangle *r = g_slice_new (FooRectangle);
+ RegressFooRectangle *r = g_slice_new (RegressFooRectangle);
r->x = x;
r->y = y;
r->width = width;
@@ -549,250 +539,250 @@ foo_rectangle_new (int x, int y, int width, int height)
}
/**
- * foo_rectangle_add:
+ * regress_foo_rectangle_add:
* @r1: (inout): add to this rect
* @r2: source rectangle
*/
void
-foo_rectangle_add(FooRectangle *r1, const FooRectangle *r2)
+regress_foo_rectangle_add(RegressFooRectangle *r1, const RegressFooRectangle *r2)
{
}
-/* FooHidden */
+/* RegressFooHidden */
-struct _FooHidden
+struct _RegressFooHidden
{
char *frob;
};
-FooHidden *
-foo_hidden_copy (const FooHidden *boxed)
+RegressFooHidden *
+regress_foo_hidden_copy (const RegressFooHidden *boxed)
{
- return (FooHidden *)g_memdup (boxed, sizeof (FooHidden));
+ return (RegressFooHidden *)g_memdup (boxed, sizeof (RegressFooHidden));
}
void
-foo_hidden_free (FooHidden *boxed)
+regress_foo_hidden_free (RegressFooHidden *boxed)
{
- g_slice_free (FooHidden, boxed);
+ g_slice_free (RegressFooHidden, boxed);
}
GType
-foo_hidden_get_type (void)
+regress_foo_hidden_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
- our_type = g_boxed_type_register_static ("FooHidden",
- (GBoxedCopyFunc) foo_hidden_copy,
- (GBoxedFreeFunc) foo_hidden_free);
+ our_type = g_boxed_type_register_static ("RegressFooHidden",
+ (GBoxedCopyFunc) regress_foo_hidden_copy,
+ (GBoxedFreeFunc) regress_foo_hidden_free);
return our_type;
}
GType
-foo_error_get_type (void)
-{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const GEnumValue values[] = {
- { FOO_ERROR_GOOD, "FOO_ERROR_GOOD", "good" },
- { FOO_ERROR_BAD, "FOO_ERROR_BAD", "bad" },
- { FOO_ERROR_UGLY, "FOO_ERROR_UGLY", "ugly" },
- { 0, NULL, NULL }
- };
- etype = g_enum_register_static (g_intern_static_string ("FooError"), values);
- }
- return etype;
+regress_foo_error_get_type (void)
+{
+ static GType etype = 0;
+ if (G_UNLIKELY(etype == 0)) {
+ static const GEnumValue values[] = {
+ { REGRESS_FOO_ERROR_GOOD, "REGRESS_FOO_ERROR_GOOD", "good" },
+ { REGRESS_FOO_ERROR_BAD, "REGRESS_FOO_ERROR_BAD", "bad" },
+ { REGRESS_FOO_ERROR_UGLY, "REGRESS_FOO_ERROR_UGLY", "ugly" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static (g_intern_static_string ("RegressFooError"), values);
+ }
+ return etype;
}
GQuark
-foo_error_quark (void)
+regress_foo_error_quark (void)
{
- return g_quark_from_static_string ("foo-error-quark");
+ return g_quark_from_static_string ("regress_foo-error-quark");
}
void
-foo_some_variant (guint x, va_list args)
+regress_foo_some_variant (guint x, va_list args)
{
}
-GType foo_tile_handler_get_type(void);
+GType regress_foo_tile_handler_get_type(void);
/* This setup of a totally hidden parent class matches
* http://bugzilla.gnome.org/show_bug.cgi?id=561360
*/
-#define FOO_TYPE_TILE_HANDLER (foo_tile_handler_get_type ())
-#define FOO_TILE_HANDLER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_TILE_HANDLER, FooTileHandler))
-#define FOO_IS_TILE_HANDLER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_TILE_HANDLER))
+#define REGRESS_FOO_TYPE_TILE_HANDLER (regress_foo_tile_handler_get_type ())
+#define REGRESS_FOO_TILE_HANDLER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_TILE_HANDLER, RegressFooTileHandler))
+#define REGRESS_FOO_IS_TILE_HANDLER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_TILE_HANDLER))
-struct _FooTileHandler
+struct _RegressFooTileHandler
{
- FooObject parent_instance;
+ RegressFooObject parent_instance;
};
-struct _FooTileHandlerClass
+struct _RegressFooTileHandlerClass
{
- FooObjectClass parent_class;
+ RegressFooObjectClass parent_class;
};
-typedef struct _FooTileHandler FooTileHandler;
-typedef struct _FooTileHandlerClass FooTileHandlerClass;
+typedef struct _RegressFooTileHandler RegressFooTileHandler;
+typedef struct _RegressFooTileHandlerClass RegressFooTileHandlerClass;
-G_DEFINE_TYPE(FooTileHandler, foo_tile_handler, FOO_TYPE_OBJECT);
+G_DEFINE_TYPE(RegressFooTileHandler, regress_foo_tile_handler, REGRESS_FOO_TYPE_OBJECT);
static void
-foo_tile_handler_class_init (FooTileHandlerClass *klass)
+regress_foo_tile_handler_class_init (RegressFooTileHandlerClass *klass)
{
}
static void
-foo_tile_handler_init (FooTileHandler *object)
+regress_foo_tile_handler_init (RegressFooTileHandler *object)
{
}
-struct _FooBuffer
+struct _RegressFooBuffer
{
- FooTileHandler parent_instance;
+ RegressFooTileHandler parent_instance;
};
-struct _FooBufferClass
+struct _RegressFooBufferClass
{
- FooTileHandlerClass parent_class;
+ RegressFooTileHandlerClass parent_class;
};
-G_DEFINE_TYPE(FooBuffer, foo_buffer, FOO_TYPE_TILE_HANDLER);
+G_DEFINE_TYPE(RegressFooBuffer, regress_foo_buffer, REGRESS_FOO_TYPE_TILE_HANDLER);
static void
-foo_buffer_class_init (FooBufferClass *klass)
+regress_foo_buffer_class_init (RegressFooBufferClass *klass)
{
}
static void
-foo_buffer_init (FooBuffer *object)
+regress_foo_buffer_init (RegressFooBuffer *object)
{
}
void
-foo_buffer_some_method (FooBuffer *buffer)
+regress_foo_buffer_some_method (RegressFooBuffer *buffer)
{
}
-struct _FooOtherObject
+struct _RegressFooOtherObject
{
GObject parent_instance;
};
-struct _FooOtherObjectClass
+struct _RegressFooOtherObjectClass
{
GObjectClass parent_class;
};
-G_DEFINE_TYPE(FooOtherObject, foo_other_object, G_TYPE_OBJECT);
+G_DEFINE_TYPE(RegressFooOtherObject, regress_foo_other_object, G_TYPE_OBJECT);
static void
-foo_other_object_class_init (FooOtherObjectClass *klass)
+regress_foo_other_object_class_init (RegressFooOtherObjectClass *klass)
{
}
static void
-foo_other_object_init (FooOtherObject *object)
+regress_foo_other_object_init (RegressFooOtherObject *object)
{
}
-#define FOO_DEFINE_SHOULD_NOT_BE_EXPOSED "should not be exposed"
+#define REGRESS_FOO_DEFINE_SHOULD_NOT_BE_EXPOSED "should not be exposed"
/**
- * foo_skip_me: (skip)
- * @fs: a #FooSkippable
+ * regress_foo_skip_me: (skip)
+ * @fs: a #RegressFooSkippable
*
* Does something that's only interesting from C and should not be
* exposed to language bindings.
*/
void
-foo_skip_me (FooSkippable fs)
+regress_foo_skip_me (RegressFooSkippable fs)
{
}
/**
- * FooForeignStruct: (foreign)
+ * RegressFooForeignStruct: (foreign)
*
*/
-FooForeignStruct*
-foo_foreign_struct_new (void)
+RegressFooForeignStruct*
+regress_foo_foreign_struct_new (void)
{
- return g_slice_new0 (FooForeignStruct);
+ return g_slice_new0 (RegressFooForeignStruct);
}
-FooForeignStruct*
-foo_foreign_struct_copy (FooForeignStruct *original)
+RegressFooForeignStruct*
+regress_foo_foreign_struct_copy (RegressFooForeignStruct *original)
{
- FooForeignStruct *copy;
- copy = foo_foreign_struct_new ();
- copy->foo = original->foo;
- return copy;
+ RegressFooForeignStruct *copy;
+ copy = regress_foo_foreign_struct_new ();
+ copy->regress_foo = original->regress_foo;
+ return copy;
}
/**
- * foo_test_varargs_callback: (skip)
+ * regress_foo_test_varargs_callback: (skip)
*
*/
void
-foo_test_varargs_callback (gint i, FooVarargsCallback callback)
+regress_foo_test_varargs_callback (gint i, RegressFooVarargsCallback callback)
{
}
/**
- * foo_test_varargs_callback2: (skip)
+ * regress_foo_test_varargs_callback2: (skip)
*
*/
void
-foo_test_varargs_callback2 (FooVarargsCallback callback)
+regress_foo_test_varargs_callback2 (RegressFooVarargsCallback callback)
{
}
/**
- * foo_test_varargs_callback3: (skip)
+ * regress_foo_test_varargs_callback3: (skip)
*
*/
void
-foo_test_varargs_callback3 (FooVarargsCallback callback,
- FooVarargsCallback callback2)
+regress_foo_test_varargs_callback3 (RegressFooVarargsCallback callback,
+ RegressFooVarargsCallback callback2)
{
}
/**
- * foo_object_append_new_stack_layer:
+ * regress_foo_object_append_new_stack_layer:
*
* This shouldn't be scanned as a constructor.
*
* Returns: (transfer none):
*/
-FooOtherObject *
-foo_object_append_new_stack_layer (FooObject *obj, int x)
+RegressFooOtherObject *
+regress_foo_object_append_new_stack_layer (RegressFooObject *obj, int x)
{
return NULL;
}
/**
- * foo_not_a_constructor_new:
+ * regress_foo_not_a_constructor_new:
*
* This should be scanned as a top-level function, and shouldn't cause
* a "Can't find matching type for constructor" warning.
*
* Returns: (transfer none):
*/
-FooObject *
-foo_not_a_constructor_new (void)
+RegressFooObject *
+regress_foo_not_a_constructor_new (void)
{
return NULL;
}
diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h
index f852083c..e097560e 100644
--- a/tests/scanner/foo.h
+++ b/tests/scanner/foo.h
@@ -1,257 +1,253 @@
-#ifndef __FOO_OBJECT_H__
-#define __FOO_OBJECT_H__
+#ifndef __REGRESS_FOO_OBJECT_H__
+#define __REGRESS_FOO_OBJECT_H__
#include <glib-object.h>
#include <gio/gio.h> /* GAsyncReadyCallback */
#include "utility.h"
-#define FOO_SUCCESS_INT 0x1138
+#define REGRESS_FOO_SUCCESS_INT 0x1138
-#define FOO_DEFINE_SHOULD_BE_EXPOSED "should be exposed"
+#define REGRESS_FOO_DEFINE_SHOULD_BE_EXPOSED "should be exposed"
-#define FOO_PIE_IS_TASTY 3.14159
+#define REGRESS_FOO_PIE_IS_TASTY 3.14159
-#define FOO_TYPE_INTERFACE (foo_interface_get_type ())
-#define FOO_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_INTERFACE, FooInterface))
-#define FOO_IS_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_INTERFACE))
-#define FOO_INTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), FOO_TYPE_INTERFACE, FooInterfaceIface))
+#define REGRESS_FOO_TYPE_INTERFACE (regress_foo_interface_get_type ())
+#define REGRESS_FOO_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_INTERFACE, RegressFooInterface))
+#define REGRESS_FOO_IS_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_INTERFACE))
+#define REGRESS_FOO_INTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), REGRESS_FOO_TYPE_INTERFACE, RegressFooInterfaceIface))
-#define FOO_TYPE_SUBINTERFACE (foo_sub_interface_get_type ())
-#define FOO_SUBINTERFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_SUBINTERFACE, FooSubInterface))
-#define FOO_IS_SUBINTERFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_SUBINTERFACE))
-#define FOO_SUBINTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), FOO_TYPE_SUBINTERFACE, FooSubInterfaceIface))
+#define REGRESS_FOO_TYPE_SUBINTERFACE (regress_foo_sub_interface_get_type ())
+#define REGRESS_FOO_SUBINTERFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_SUBINTERFACE, RegressFooSubInterface))
+#define REGRESS_FOO_IS_SUBINTERFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_SUBINTERFACE))
+#define REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), REGRESS_FOO_TYPE_SUBINTERFACE, RegressFooSubInterfaceIface))
-#define FOO_TYPE_OBJECT (foo_object_get_type ())
-#define FOO_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_OBJECT, FooObject))
-#define FOO_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_OBJECT))
+#define REGRESS_FOO_TYPE_OBJECT (regress_foo_object_get_type ())
+#define REGRESS_FOO_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_OBJECT, RegressFooObject))
+#define REGRESS_FOO_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_OBJECT))
-#define FOO_TYPE_SUBOBJECT (foo_subobject_get_type ())
-#define FOO_SUBOBJECT(subobject) (G_TYPE_CHECK_INSTANCE_CAST ((subobject), FOO_TYPE_SUBOBJECT, FooSubobject))
-#define FOO_IS_SUBOBJECT(subobject) (G_TYPE_CHECK_INSTANCE_TYPE ((subobject), FOO_TYPE_SUBOBJECT))
+#define REGRESS_FOO_TYPE_SUBOBJECT (regress_foo_subobject_get_type ())
+#define REGRESS_FOO_SUBOBJECT(subobject) (G_TYPE_CHECK_INSTANCE_CAST ((subobject), REGRESS_FOO_TYPE_SUBOBJECT, RegressFooSubobject))
+#define REGRESS_FOO_IS_SUBOBJECT(subobject) (G_TYPE_CHECK_INSTANCE_TYPE ((subobject), REGRESS_FOO_TYPE_SUBOBJECT))
-#define FOO_TYPE_BUFFER (foo_buffer_get_type ())
-#define FOO_BUFFER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_BUFFER, FooBuffer))
-#define FOO_IS_BUFFER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_BUFFER))
+#define REGRESS_FOO_TYPE_BUFFER (regress_foo_buffer_get_type ())
+#define REGRESS_FOO_BUFFER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_BUFFER, RegressFooBuffer))
+#define REGRESS_FOO_IS_BUFFER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_BUFFER))
-#define FOO_TYPE_OTHER_OBJECT (foo_other_object_get_type ())
-#define FOO_OTHER_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_OTHER_OBJECT, FooOtherObject))
-#define FOO_IS_OTHER_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_OTHER_OBJECT))
+#define REGRESS_FOO_TYPE_OTHER_OBJECT (regress_foo_other_object_get_type ())
+#define REGRESS_FOO_OTHER_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_OTHER_OBJECT, RegressFooOtherObject))
+#define REGRESS_FOO_IS_OTHER_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_OTHER_OBJECT))
-typedef struct _FooInterface FooInterface;
-typedef struct _FooInterfaceIface FooInterfaceIface;
-typedef struct _FooSubInterface FooSubInterface;
-typedef struct _FooSubInterfaceIface FooSubInterfaceIface;
-typedef struct _FooObject FooObject;
-typedef struct _FooObjectClass FooObjectClass;
-typedef struct _FooSubobject FooSubobject;
-typedef struct _FooSubobjectClass FooSubobjectClass;
-typedef struct _FooBuffer FooBuffer;
-typedef struct _FooBufferClass FooBufferClass;
-typedef struct _FooOtherObject FooOtherObject;
-typedef struct _FooOtherObjectClass FooOtherObjectClass;
+typedef struct _RegressFooInterface RegressFooInterface;
+typedef struct _RegressFooInterfaceIface RegressFooInterfaceIface;
+typedef struct _RegressFooSubInterface RegressFooSubInterface;
+typedef struct _RegressFooSubInterfaceIface RegressFooSubInterfaceIface;
+typedef struct _RegressFooObject RegressFooObject;
+typedef struct _RegressFooObjectClass RegressFooObjectClass;
+typedef struct _RegressFooSubobject RegressFooSubobject;
+typedef struct _RegressFooSubobjectClass RegressFooSubobjectClass;
+typedef struct _RegressFooBuffer RegressFooBuffer;
+typedef struct _RegressFooBufferClass RegressFooBufferClass;
+typedef struct _RegressFooOtherObject RegressFooOtherObject;
+typedef struct _RegressFooOtherObjectClass RegressFooOtherObjectClass;
-struct _FooInterfaceIface
+struct _RegressFooInterfaceIface
{
GTypeInterface parent_iface;
- void (*do_foo) (FooInterface *self, int x);
+ void (*do_regress_foo) (RegressFooInterface *self, int x);
};
-GType foo_interface_get_type (void) G_GNUC_CONST;
+GType regress_foo_interface_get_type (void) G_GNUC_CONST;
-void foo_interface_do_foo (FooInterface *iface, int x);
+void regress_foo_interface_do_regress_foo (RegressFooInterface *iface, int x);
-void foo_interface_static_method (int x);
+void regress_foo_interface_static_method (int x);
-struct _FooSubInterfaceIface
+struct _RegressFooSubInterfaceIface
{
GTypeInterface parent_iface;
/* signals */
- void (*destroy_event) (FooSubInterface *self);
+ void (*destroy_event) (RegressFooSubInterface *self);
/* virtual table */
- void (*do_bar) (FooSubInterface *self);
+ void (*do_bar) (RegressFooSubInterface *self);
- /* explicitly test un-named parameters */
- void (*do_moo) (FooSubInterface *self, int, gpointer);
-
- void (*do_baz) (FooSubInterface *self, GCallback callback, gpointer user_data);
+ void (*do_baz) (RegressFooSubInterface *self, GCallback callback, gpointer user_data);
};
-GType foo_sub_interface_get_type (void) G_GNUC_CONST;
+GType regress_foo_sub_interface_get_type (void) G_GNUC_CONST;
-void foo_sub_interface_do_bar (FooSubInterface *self);
-void foo_sub_interface_do_moo (FooSubInterface *self, int, gpointer);
-void foo_sub_interface_do_baz (FooSubInterface *self,
- GCallback callback,
- gpointer user_data);
+void regress_foo_sub_interface_do_bar (RegressFooSubInterface *self);
+void regress_foo_sub_interface_do_baz (RegressFooSubInterface *self,
+ GCallback callback,
+ gpointer user_data);
-struct _FooObject
+struct _RegressFooObject
{
GObject parent_instance;
int some_int;
};
-struct _FooObjectClass
+struct _RegressFooObjectClass
{
GObjectClass parent_class;
- gboolean (* virtual_method) (FooObject *object, int first_param);
+ gboolean (* virtual_method) (RegressFooObject *object, int first_param);
/* Intended to match GFile */
- void (*read_fn) (FooObject *object, int offset, int length);
+ void (*read_fn) (RegressFooObject *object, int offset, int length);
/* Test reserved stuff */
GCallback _reserved[4];
};
-gint foo_init (void);
+gint regress_foo_init (void);
-GType foo_object_get_type (void) G_GNUC_CONST;
-FooObject* foo_object_new (void);
-UtilityObject* foo_object_external_type (FooObject *object);
-GObject* foo_object_new_as_super (void);
+GType regress_foo_object_get_type (void) G_GNUC_CONST;
+RegressFooObject* regress_foo_object_new (void);
+UtilityObject* regress_foo_object_external_type (RegressFooObject *object);
+GObject* regress_foo_object_new_as_super (void);
-void foo_object_various (FooObject *object, void *data, GType some_type);
+void regress_foo_object_various (RegressFooObject *object, void *data, GType some_type);
-void foo_object_take_all (FooObject *object, int x, ...);
+void regress_foo_object_take_all (RegressFooObject *object, int x, ...);
-typedef gpointer FooObjectCookie;
+typedef gpointer RegressFooObjectCookie;
-FooObjectCookie foo_object_new_cookie (FooObject *object, const char *target);
+RegressFooObjectCookie regress_foo_object_new_cookie (RegressFooObject *object, const char *target);
-void foo_object_is_it_time_yet (FooObject *object, time_t time);
+void regress_foo_object_is_it_time_yet (RegressFooObject *object, time_t time);
-const char * foo_object_get_name (FooObject *object);
+const char * regress_foo_object_get_name (RegressFooObject *object);
-char * foo_object_dup_name (FooObject *object);
+char * regress_foo_object_dup_name (RegressFooObject *object);
-void foo_object_handle_glyph (FooObject *object, UtilityGlyph glyph);
+void regress_foo_object_handle_glyph (RegressFooObject *object, UtilityGlyph glyph);
-gboolean foo_object_virtual_method (FooObject *object, int first_param);
+gboolean regress_foo_object_virtual_method (RegressFooObject *object, int first_param);
-void foo_object_read (FooObject *object, int offset, int length);
+void regress_foo_object_read (RegressFooObject *object, int offset, int length);
-int foo_object_static_meth (void);
+int regress_foo_object_static_meth (void);
-void foo_object_skipped_method (FooObject *object);
+void regress_foo_object_skipped_method (RegressFooObject *object);
-struct _FooSubobject
+struct _RegressFooSubobject
{
- FooObject parent_instance;
+ RegressFooObject parent_instance;
};
-struct _FooSubobjectClass
+struct _RegressFooSubobjectClass
{
- FooObjectClass parent_class;
+ RegressFooObjectClass parent_class;
};
-GType foo_subobject_get_type (void) G_GNUC_CONST;
-FooSubobject* foo_subobject_new (void);
+GType regress_foo_subobject_get_type (void) G_GNUC_CONST;
+RegressFooSubobject* regress_foo_subobject_new (void);
-FooObject * foo_object_get_default (void);
+RegressFooObject * regress_foo_object_get_default (void);
-GType foo_buffer_get_type (void);
+GType regress_foo_buffer_get_type (void);
-void foo_buffer_some_method (FooBuffer *buffer);
+void regress_foo_buffer_some_method (RegressFooBuffer *buffer);
-GType foo_other_object_get_type (void) G_GNUC_CONST;
+GType regress_foo_other_object_get_type (void) G_GNUC_CONST;
-FooObject * foo_not_a_constructor_new (void);
+RegressFooObject * regress_foo_not_a_constructor_new (void);
typedef enum
{
- FOO_ENUM_ALPHA,
- FOO_ENUM_BETA,
- FOO_ENUM_DELTA
-} FooEnumType;
+ REGRESS_FOO_ENUM_ALPHA,
+ REGRESS_FOO_ENUM_BETA,
+ REGRESS_FOO_ENUM_DELTA
+} RegressFooEnumType;
-GType foo_enum_type_get_type (void);
+GType regress_foo_enum_type_get_type (void);
-int foo_enum_type_method (FooEnumType foo_enum);
+int regress_foo_enum_type_method (RegressFooEnumType regress_foo_enum);
-FooEnumType foo_enum_type_returnv (int x);
+RegressFooEnumType regress_foo_enum_type_returnv (int x);
typedef enum
{
- FOO_FLAGS_FIRST = 1 << 0,
- FOO_FLAGS_SECOND = 1 << 1,
- FOO_FLAGS_THIRD = 1 << 2
-} FooFlagsType;
+ REGRESS_FOO_FLAGS_FIRST = 1 << 0,
+ REGRESS_FOO_FLAGS_SECOND = 1 << 1,
+ REGRESS_FOO_FLAGS_THIRD = 1 << 2
+} RegressFooFlagsType;
-GType foo_flags_type_get_type (void);
+GType regress_foo_flags_type_get_type (void);
typedef enum
{
- FOO_ENUM_UN = 1,
- FOO_ENUM_DEUX = 2,
- FOO_ENUM_TROIS = 3,
- FOO_ENUM_NEUF = 9
-} FooEnumNoType;
+ REGRESS_FOO_ENUM_UN = 1,
+ REGRESS_FOO_ENUM_DEUX = 2,
+ REGRESS_FOO_ENUM_TROIS = 3,
+ REGRESS_FOO_ENUM_NEUF = 9
+} RegressFooEnumNoType;
typedef enum
{
- FOO_FLAGS_ETT = 1 << 0,
- FOO_FLAGS_TVA = 1 << 1,
- FOO_FLAGS_FYRA = 1 << 2
-} FooFlagsNoType;
+ REGRESS_FOO_FLAGS_ETT = 1 << 0,
+ REGRESS_FOO_FLAGS_TVA = 1 << 1,
+ REGRESS_FOO_FLAGS_FYRA = 1 << 2
+} RegressFooFlagsNoType;
typedef enum
{
- FOO_ENUM_FULLNAME_ONE = 1,
- FOO_ENUM_FULLNAME_TWO,
- FOO_ENUM_FULLNAME_THREE
-} FooEnumFullname;
+ REGRESS_FOO_ENUM_FULLNAME_ONE = 1,
+ REGRESS_FOO_ENUM_FULLNAME_TWO,
+ REGRESS_FOO_ENUM_FULLNAME_THREE
+} RegressFooEnumFullname;
typedef enum
{
- FOO_ADDRESS_INVALID,
- FOO_ADDRESS_IPV4,
- FOO_ADDRESS_IPV6
-} FooAddressType;
+ REGRESS_FOO_ADDRESS_INVALID,
+ REGRESS_FOO_ADDRESS_IPV4,
+ REGRESS_FOO_ADDRESS_IPV6
+} RegressFooAddressType;
-typedef struct _FooBoxed FooBoxed;
+typedef struct _RegressFooBoxed RegressFooBoxed;
-GType foo_boxed_get_type (void) G_GNUC_CONST;
-FooBoxed* foo_boxed_new (void);
-void foo_boxed_method (FooBoxed* boxed);
+GType regress_foo_boxed_get_type (void) G_GNUC_CONST;
+RegressFooBoxed* regress_foo_boxed_new (void);
+void regress_foo_boxed_method (RegressFooBoxed* boxed);
/* This one tests capitalization handling with respect to DBus */
-typedef struct _FooDBusData FooDBusData;
-GType foo_dbus_data_get_type (void) G_GNUC_CONST;
-void foo_dbus_data_method (FooDBusData* dbusdata);
+typedef struct _RegressFooDBusData RegressFooDBusData;
+GType regress_foo_dbus_data_get_type (void) G_GNUC_CONST;
+void regress_foo_dbus_data_method (RegressFooDBusData* dbusdata);
/* FIXME: Scanner does not support this yet
-const char *FOO_CONSTANT_STR = "foo-constant-str";
-const int FOO_CONSTANT_INT = 10;
-const float FOO_CONSTANT_FLOAT = 10;
+const char *REGRESS_FOO_CONSTANT_STR = "regress_foo-constant-str";
+const int REGRESS_FOO_CONSTANT_INT = 10;
+const float REGRESS_FOO_CONSTANT_FLOAT = 10;
*/
/* Callback */
-typedef gboolean (* FooCallback) (FooObject *foo, gboolean b, gpointer data);
+typedef gboolean (* RegressFooCallback) (RegressFooObject *regress_foo, gboolean b, gpointer data);
/* Invalid comments, should be ignored */
/* @ */
/* @: */
-typedef struct _FooStruct FooStruct;
-typedef struct _FooStructPrivate FooStructPrivate;
+typedef struct _RegressFooStruct RegressFooStruct;
+typedef struct _RegressFooStructPrivate RegressFooStructPrivate;
-struct _FooStruct
+struct _RegressFooStruct
{
- FooStructPrivate *priv;
+ RegressFooStructPrivate *priv;
int member;
};
-typedef struct _FooRectangle FooRectangle;
+typedef struct _RegressFooRectangle RegressFooRectangle;
-struct _FooRectangle
+struct _RegressFooRectangle
{
gint x;
gint y;
@@ -260,81 +256,81 @@ struct _FooRectangle
};
void
-foo_method_external_references (UtilityObject *object,
- UtilityEnumType e,
- UtilityFlagType f,
- UtilityStruct s);
+regress_foo_method_external_references (UtilityObject *object,
+ UtilityEnumType e,
+ UtilityFlagType f,
+ UtilityStruct s);
-void foo_rectangle_add(FooRectangle *r1, const FooRectangle *r2);
+void regress_foo_rectangle_add(RegressFooRectangle *r1, const RegressFooRectangle *r2);
-FooRectangle * foo_rectangle_new (int x, int y, int width, int height);
+RegressFooRectangle * regress_foo_rectangle_new (int x, int y, int width, int height);
-typedef struct _FooEventAny FooEventAny;
-typedef struct _FooEventExpose FooEventExpose;
+typedef struct _RegressFooEventAny RegressFooEventAny;
+typedef struct _RegressFooEventExpose RegressFooEventExpose;
-typedef union _FooEvent FooEvent;
+typedef union _RegressFooEvent RegressFooEvent;
-struct _FooEventAny
+struct _RegressFooEventAny
{
gint8 send_event;
};
-struct _FooEventExpose
+struct _RegressFooEventExpose
{
gint8 send_event;
gint count;
};
-union _FooEvent
+union _RegressFooEvent
{
int type;
- FooEventAny any;
- FooEventExpose expose;
+ RegressFooEventAny any;
+ RegressFooEventExpose expose;
};
-typedef void FooXEvent;
+typedef void RegressFooXEvent;
/* And now some boxed variants */
-typedef struct _FooBRect FooBRect;
+typedef struct _RegressFooBRect RegressFooBRect;
-struct _FooBRect
+struct _RegressFooBRect
{
double x;
double y;
};
-GType foo_brect_get_type (void);
+GType regress_foo_brect_get_type (void);
-FooBRect *foo_brect_new (double x, double y);
+RegressFooBRect *regress_foo_brect_new (double x, double y);
-void foo_brect_add (FooBRect *b1, FooBRect *b2);
+void regress_foo_brect_add (RegressFooBRect *b1, RegressFooBRect *b2);
-typedef union _FooBUnion FooBUnion;
+typedef union _RegressFooBUnion RegressFooBUnion;
-union _FooBUnion
+union _RegressFooBUnion
{
int type;
double v;
- FooBRect *rect;
+ RegressFooBRect *rect;
};
-typedef union _FooUnion FooUnion;
+typedef union _RegressFooUnion RegressFooUnion;
-union _FooUnion
+union _RegressFooUnion
{
- int foo;
+ int regress_foo;
};
-typedef struct _FooUtilityStruct FooUtilityStruct;
-struct _FooUtilityStruct
+typedef struct _RegressFooUtilityStruct RegressFooUtilityStruct;
+struct _RegressFooUtilityStruct
{
UtilityStruct bar;
};
-typedef struct _FooThingWithArray FooThingWithArray;
-struct _FooThingWithArray
+typedef struct _RegressFooThingWithArray RegressFooThingWithArray;
+struct _RegressFooThingWithArray
{
int x;
int y;
@@ -342,100 +338,100 @@ struct _FooThingWithArray
guchar *data;
} ;
-FooBUnion *foo_bunion_new (void);
+RegressFooBUnion *regress_foo_bunion_new (void);
-GType foo_bunion_get_type (void);
+GType regress_foo_bunion_get_type (void);
-int foo_bunion_get_contained_type (FooBUnion *bunion);
+int regress_foo_bunion_get_contained_type (RegressFooBUnion *bunion);
-void foo_test_unsigned_qualifier (unsigned int unsigned_param);
-void foo_test_unsigned_type (unsigned unsigned_param);
+void regress_foo_test_unsigned_qualifier (unsigned int unsigned_param);
+void regress_foo_test_unsigned_type (unsigned unsigned_param);
-void foo_test_string_array (char **array);
+void regress_foo_test_string_array (char **array);
-void foo_test_string_array_with_g (gchar **array);
+void regress_foo_test_string_array_with_g (gchar **array);
-GArray *foo_test_array (void);
+GArray *regress_foo_test_array (void);
-const char * foo_test_const_char_retval (void);
-const FooStruct * foo_test_const_struct_retval (void);
-void foo_test_const_char_param (const char * param);
-void foo_test_const_struct_param (const FooStruct * param);
+const char * regress_foo_test_const_char_retval (void);
+const RegressFooStruct * regress_foo_test_const_struct_retval (void);
+void regress_foo_test_const_char_param (const char * param);
+void regress_foo_test_const_struct_param (const RegressFooStruct * param);
-typedef void (*FooVarargsCallback) (const char * param, ...);
-void foo_test_varargs_callback (gint i, FooVarargsCallback callback);
-void foo_test_varargs_callback2 (FooVarargsCallback callback);
-void foo_test_varargs_callback3 (FooVarargsCallback callback,
- FooVarargsCallback callback2);
+typedef void (*RegressFooVarargsCallback) (const char * param, ...);
+void regress_foo_test_varargs_callback (gint i, RegressFooVarargsCallback callback);
+void regress_foo_test_varargs_callback2 (RegressFooVarargsCallback callback);
+void regress_foo_test_varargs_callback3 (RegressFooVarargsCallback callback,
+ RegressFooVarargsCallback callback2);
/* Make sure callbacks get the right scope by default */
-void foo_async_ready_callback(GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-void foo_destroy_notify_callback(FooCallback callback,
- gpointer data,
- GDestroyNotify destroy);
+void regress_foo_async_ready_callback(GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+void regress_foo_destroy_notify_callback(RegressFooCallback callback,
+ gpointer data,
+ GDestroyNotify destroy);
typedef enum {
- FOO_ERROR_GOOD,
- FOO_ERROR_BAD,
- FOO_ERROR_UGLY
-} FooError;
-GType foo_error_get_type (void);
+ REGRESS_FOO_ERROR_GOOD,
+ REGRESS_FOO_ERROR_BAD,
+ REGRESS_FOO_ERROR_UGLY
+} RegressFooError;
+GType regress_foo_error_get_type (void);
-GQuark foo_error_quark (void);
+GQuark regress_foo_error_quark (void);
typedef enum
{
- FOO_LAYER_DESKTOP = 0,
- FOO_LAYER_BOTTOM = 1,
- FOO_LAYER_NORMAL = 2,
- FOO_LAYER_TOP = 4, /* Same as DOCK; see EWMH and bug 330717 */
- FOO_LAYER_DOCK = 4,
- FOO_LAYER_FULLSCREEN = 5,
- FOO_LAYER_FOCUSED_WINDOW = 6,
- FOO_LAYER_OVERRIDE_REDIRECT = 7,
- FOO_LAYER_LAST = 8
-} FooStackLayer;
+ REGRESS_FOO_LAYER_DESKTOP = 0,
+ REGRESS_FOO_LAYER_BOTTOM = 1,
+ REGRESS_FOO_LAYER_NORMAL = 2,
+ REGRESS_FOO_LAYER_TOP = 4, /* Same as DOCK; see EWMH and bug 330717 */
+ REGRESS_FOO_LAYER_DOCK = 4,
+ REGRESS_FOO_LAYER_FULLSCREEN = 5,
+ REGRESS_FOO_LAYER_FOCUSED_WINDOW = 6,
+ REGRESS_FOO_LAYER_OVERRIDE_REDIRECT = 7,
+ REGRESS_FOO_LAYER_LAST = 8
+} RegressFooStackLayer;
typedef enum
{
- FOO_SOME_SINGLE_ENUM
-} FooASingle;
+ REGRESS_FOO_SOME_SINGLE_ENUM
+} RegressFooASingle;
/* Should be skipped */
-void foo_some_variant (guint x, va_list args);
-void foo_some_variant_ptr (guint x, va_list *args);
+void regress_foo_some_variant (guint x, va_list args);
+void regress_foo_some_variant_ptr (guint x, va_list *args);
/**
- * FooSkippable: (skip)
- * @FOO_SKIPPABLE_ONE: a skippable enum value
- * @FOO_SKIPPABLE_TWO: another skippable enum value
+ * RegressFooSkippable: (skip)
+ * @REGRESS_FOO_SKIPPABLE_ONE: a skippable enum value
+ * @REGRESS_FOO_SKIPPABLE_TWO: another skippable enum value
*
* Some type that is only interesting from C and should not be
* exposed to language bindings.
*/
typedef enum {
- FOO_SKIPPABLE_ONE,
- FOO_SKIPPABLE_TWO
-} FooSkippable;
-void foo_skip_me (FooSkippable fs);
+ REGRESS_FOO_SKIPPABLE_ONE,
+ REGRESS_FOO_SKIPPABLE_TWO
+} RegressFooSkippable;
+void regress_foo_skip_me (RegressFooSkippable fs);
-typedef struct _FooForeignStruct FooForeignStruct;
+typedef struct _RegressFooForeignStruct RegressFooForeignStruct;
-struct _FooForeignStruct
+struct _RegressFooForeignStruct
{
- int foo;
+ int regress_foo;
};
-FooForeignStruct* foo_foreign_struct_new (void);
-FooForeignStruct* foo_foreign_struct_copy (FooForeignStruct *original);
+RegressFooForeignStruct* regress_foo_foreign_struct_new (void);
+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.
*/
-void foo_object_a_global_method (UtilityObject *obj);
+void regress_foo_object_a_global_method (UtilityObject *obj);
-FooOtherObject * foo_object_append_new_stack_layer (FooObject *obj, int x);
+RegressFooOtherObject * regress_foo_object_append_new_stack_layer (RegressFooObject *obj, int x);
-#endif /* __FOO_OBJECT_H__ */
+#endif /* __REGRESS_FOO_OBJECT_H__ */
diff --git a/tests/scanner/gettype.c b/tests/scanner/gettype.c
index cd816735..a3c2d6be 100644
--- a/tests/scanner/gettype.c
+++ b/tests/scanner/gettype.c
@@ -1,14 +1,14 @@
#include "gettype.h"
-G_DEFINE_TYPE(GetTypeObject, gettype_object, G_TYPE_OBJECT);
+G_DEFINE_TYPE (GetTypeObject, gettype_object, G_TYPE_OBJECT);
static void
-gettype_object_class_init (GetTypeObjectClass *klass)
+gettype_object_class_init (GetTypeObjectClass * klass)
{
}
static void
-gettype_object_init (GetTypeObject *object)
+gettype_object_init (GetTypeObject * object)
{
}
@@ -28,9 +28,9 @@ gettype_object_new (void)
* Returns: 0
*/
GType
-gettype_object_nonmeta1_get_type (GetTypeObject *obj)
+gettype_object_nonmeta1_get_type (GetTypeObject * obj)
{
- return 0;
+ return 0;
}
/**
@@ -44,7 +44,7 @@ gettype_object_nonmeta1_get_type (GetTypeObject *obj)
gboolean
gettype_object_nonmeta2_get_type (void)
{
- return TRUE;
+ return TRUE;
}
/**
@@ -58,5 +58,5 @@ gettype_object_nonmeta2_get_type (void)
gboolean
gettype_object_nonmeta_get_gtype (void)
{
- return TRUE;
+ return TRUE;
}
diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c
index 2fba9fd5..4507bc6c 100644
--- a/tests/scanner/regress.c
+++ b/tests/scanner/regress.c
@@ -3,7 +3,6 @@
#include <stdlib.h>
#include <glib-object.h>
#include <gobject/gvaluecollector.h>
-#include <cairo-gobject.h>
#include "regress.h"
@@ -285,6 +284,7 @@ regress_test_value_return(int i)
/************************************************************************/
/* foreign structs */
+#ifndef _GI_DISABLE_CAIRO
/**
* regress_test_cairo_context_full_return:
*
@@ -365,6 +365,7 @@ regress_test_cairo_surface_full_out (cairo_surface_t **surface)
{
*surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 10, 10);
}
+#endif
/**
* regress_test_gvariant_i:
@@ -907,7 +908,7 @@ regress_test_array_int_null_out (int **arr, int *len)
/* GList */
static /*const*/ GList *
-regress_test_sequence_list()
+regress_test_sequence_list (void)
{
static GList *list = NULL;
if (!list) {
@@ -1028,7 +1029,7 @@ regress_test_glist_null_out (GSList **out_list)
/* GSList */
static /*const*/ GSList *
-regress_test_sequence_slist()
+regress_test_sequence_slist (void)
{
static GSList *list = NULL;
if (!list) {
@@ -1152,7 +1153,7 @@ static char *table_data[3][2] = {
};
static GHashTable *
-regress_test_table_ghash_new_container()
+regress_test_table_ghash_new_container (void)
{
GHashTable *hash;
int i;
@@ -1163,7 +1164,7 @@ regress_test_table_ghash_new_container()
}
static GHashTable *
-regress_test_table_ghash_new_full()
+regress_test_table_ghash_new_full (void)
{
GHashTable *hash;
int i;
@@ -1176,7 +1177,7 @@ regress_test_table_ghash_new_full()
}
static /*const*/ GHashTable *
-regress_test_table_ghash_const()
+regress_test_table_ghash_const (void)
{
static GHashTable *hash = NULL;
if (!hash) {
@@ -1953,6 +1954,53 @@ G_DEFINE_BOXED_TYPE(RegressTestBoxedC,
regress_test_boxed_c_ref,
regress_test_boxed_c_unref);
+struct _RegressTestBoxedD {
+ char *a_string;
+ gint a_int;
+};
+
+RegressTestBoxedD *
+regress_test_boxed_d_new (const char *a_string, int a_int)
+{
+ RegressTestBoxedD *boxed;
+
+ boxed = g_slice_new (RegressTestBoxedD);
+ boxed->a_string = g_strdup (a_string);
+ boxed->a_int = a_int;
+
+ return boxed;
+}
+
+RegressTestBoxedD *
+regress_test_boxed_d_copy (RegressTestBoxedD *boxed)
+{
+ RegressTestBoxedD *ret;
+
+ ret = g_slice_new (RegressTestBoxedD);
+ ret->a_string = g_strdup (boxed->a_string);
+ ret->a_int = boxed->a_int;
+
+ return ret;
+}
+
+void
+regress_test_boxed_d_free (RegressTestBoxedD *boxed)
+{
+ g_free (boxed->a_string);
+ g_slice_free (RegressTestBoxedD, boxed);
+}
+
+int
+regress_test_boxed_d_get_magic (RegressTestBoxedD *boxed)
+{
+ return strlen (boxed->a_string) + boxed->a_int;
+}
+
+G_DEFINE_BOXED_TYPE(RegressTestBoxedD,
+ regress_test_boxed_d,
+ regress_test_boxed_d_copy,
+ regress_test_boxed_d_free);
+
G_DEFINE_TYPE(RegressTestObj, regress_test_obj, G_TYPE_OBJECT);
enum
@@ -2125,6 +2173,7 @@ regress_test_obj_default_matrix (RegressTestObj *obj, const char *somestr)
enum {
REGRESS_TEST_OBJ_SIGNAL_SIG_NEW_WITH_ARRAY_PROP,
+ REGRESS_TEST_OBJ_SIGNAL_SIG_NEW_WITH_ARRAY_LEN_PROP,
REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_HASH_PROP,
REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_STRV,
REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_OBJ,
@@ -2134,6 +2183,7 @@ enum {
REGRESS_TEST_OBJ_SIGNAL_ALL,
REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_INT64_PROP,
REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_UINT64_PROP,
+ REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_INTARRAY_RET,
N_REGRESS_TEST_OBJ_SIGNALS
};
@@ -2192,6 +2242,27 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
G_TYPE_ARRAY);
/**
+ * RegressTestObj::sig-with-array-len-prop:
+ * @self: an object
+ * @arr: (array length=len) (element-type uint) (allow-none): numbers, or %NULL
+ * @len: length of @arr, or 0
+ *
+ * This test signal similar to GSettings::change-event
+ */
+ regress_test_obj_signals[REGRESS_TEST_OBJ_SIGNAL_SIG_NEW_WITH_ARRAY_LEN_PROP] =
+ g_signal_new ("sig-with-array-len-prop",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ G_TYPE_NONE,
+ 2,
+ G_TYPE_POINTER,
+ G_TYPE_INT);
+
+ /**
* RegressTestObj::sig-with-hash-prop:
* @self: an object
* @hash: (element-type utf8 GObject.Value):
@@ -2250,6 +2321,7 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
1,
G_TYPE_OBJECT);
+#ifndef _GI_DISABLE_CAIRO
/**
* RegressTestObj::sig-with-foreign-struct:
* @self: an object
@@ -2266,6 +2338,7 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
G_TYPE_NONE,
1,
CAIRO_GOBJECT_TYPE_CONTEXT);
+#endif
regress_test_obj_signals[REGRESS_TEST_OBJ_SIGNAL_FIRST] =
g_signal_new ("first",
@@ -2340,6 +2413,25 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
1,
G_TYPE_UINT64);
+ /**
+ * RegressTestObj::sig-with-intarray-ret:
+ * @self: an object
+ * @i: an integer
+ *
+ * Returns: (array zero-terminated=1) (element-type gint) (transfer full):
+ */
+ regress_test_obj_signals[REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_INTARRAY_RET] =
+ g_signal_new ("sig-with-intarray-ret",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_ARRAY,
+ 1,
+ G_TYPE_INT);
+
gobject_class->set_property = regress_test_obj_set_property;
gobject_class->get_property = regress_test_obj_get_property;
gobject_class->dispose = regress_test_obj_dispose;
@@ -2363,10 +2455,7 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
pspec);
/**
- * RegressTestObj:hash-table:
- *
- * Type: GLib.HashTable(utf8,gint8)
- * Transfer: container
+ * RegressTestObj:hash-table: (type GLib.HashTable(utf8,gint8)) (transfer container)
*/
pspec = g_param_spec_boxed ("hash-table",
"GHashTable property",
@@ -2378,10 +2467,7 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
pspec);
/**
- * RegressTestObj:list:
- *
- * Type: GLib.List(utf8)
- * Transfer: none
+ * RegressTestObj:list: (type GLib.List(utf8)) (transfer none)
*/
pspec = g_param_spec_pointer ("list",
"GList property",
@@ -2392,10 +2478,7 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
pspec);
/**
- * RegressTestObj:hash-table-old:
- *
- * Type: GLib.HashTable<utf8,gint8>
- * Transfer: container
+ * RegressTestObj:hash-table-old: (type GLib.HashTable<utf8,gint8>) (transfer container)
*/
pspec = g_param_spec_boxed ("hash-table-old",
"GHashTable property with <>",
@@ -2407,10 +2490,7 @@ regress_test_obj_class_init (RegressTestObjClass *klass)
pspec);
/**
- * RegressTestObj:list-old:
- *
- * Type: GLib.List<utf8>
- * Transfer: none
+ * RegressTestObj:list-old: (type GLib.List<utf8>) (transfer none)
*/
pspec = g_param_spec_pointer ("list-old",
"GList property with ()",
@@ -2553,6 +2633,7 @@ regress_test_obj_emit_sig_with_obj (RegressTestObj *obj)
g_object_unref (obj_param);
}
+#ifndef _GI_DISABLE_CAIRO
void
regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj *obj)
{
@@ -2560,6 +2641,7 @@ regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj *obj)
g_signal_emit_by_name (obj, "sig-with-foreign-struct", cr);
cairo_destroy (cr);
}
+#endif
void
regress_test_obj_emit_sig_with_int64 (RegressTestObj *obj)
@@ -2829,15 +2911,13 @@ regress_test_obj_skip_inout_param (RegressTestObj *obj,
}
/**
- * regress_test_obj_do_matrix:
+ * regress_test_obj_do_matrix: (virtual matrix)
* @obj: A #RegressTestObj
* @somestr: Meaningless string
*
* This method is virtual. Notably its name differs from the virtual
* slot name, which makes it useful for testing bindings handle this
* case.
- *
- * Virtual: matrix
*/
int
regress_test_obj_do_matrix (RegressTestObj *obj, const char *somestr)
@@ -3087,12 +3167,7 @@ regress_test_fundamental_object_init (GTypeInstance * instance, gpointer klass)
}
/**
- * RegressTestFundamentalObject:
- *
- * Ref Func: regress_test_fundamental_object_ref
- * Unref Func: regress_test_fundamental_object_unref
- * Set Value Func: regress_test_value_set_fundamental_object
- * Get Value Func: regress_test_value_get_fundamental_object
+ * RegressTestFundamentalObject: (ref-func regress_test_fundamental_object_ref) (unref-func regress_test_fundamental_object_unref) (set-value-func regress_test_value_set_fundamental_object) (get-value-func regress_test_value_get_fundamental_object)
*/
GType
@@ -3324,6 +3399,20 @@ regress_test_callback_destroy_notify (RegressTestCallbackUserData callback,
}
/**
+ * regress_test_callback_destroy_notify_no_user_data:
+ * @callback: (scope notified):
+ *
+ * Adds a scope notified callback with no user data. This can invoke an error
+ * condition in bindings which needs to be tested.
+ **/
+int
+regress_test_callback_destroy_notify_no_user_data (RegressTestCallbackUserData callback,
+ GDestroyNotify notify)
+{
+ return regress_test_callback_destroy_notify(callback, NULL, notify);
+}
+
+/**
* regress_test_callback_thaw_notifications:
*
* Invokes all callbacks installed by #test_callback_destroy_notify(),
@@ -3500,6 +3589,18 @@ regress_test_owned_gerror_callback (RegressTestCallbackOwnedGError callback)
callback (error);
}
+/**
+ * regress_test_skip_unannotated_callback: (skip)
+ * @callback: No annotation here
+ *
+ * Should not emit a warning:
+ * https://bugzilla.gnome.org/show_bug.cgi?id=685399
+ */
+void
+regress_test_skip_unannotated_callback (RegressTestCallback callback)
+{
+}
+
/* interface */
static void
@@ -3733,6 +3834,7 @@ regress_test_torture_signature_2 (int x,
*y = x;
*z = x * 2;
*q = g_utf8_strlen (foo, -1) + m;
+ callback(user_data);
notify (user_data);
}
@@ -3879,11 +3981,22 @@ regress_has_parameter_named_attrs (int foo,
/**
* regress_test_versioning:
*
- * Since: 1.32.1
- * Deprecated: 1.33.3: Use foobar instead
- * Stability: Unstable
+ * Since: 1.32.1: Actually, this function was introduced earlier
+ * than this, but it didn't do anything before this version.
+ * Deprecated: 1.33.3: This function has been deprecated,
+ * because it sucks. Use foobar instead.
+ * Stability: Unstable: Maybe someday we will find the time
+ * to stabilize this function. Who knows?
*/
void
regress_test_versioning (void)
{
}
+
+void
+regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem *self,
+ const char *name)
+{
+ strncpy (self->name, name, sizeof (self->name) - 1);
+ self->name[sizeof(self->name)-1] = '\0';
+}
diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h
index f2dae494..3f917e62 100644
--- a/tests/scanner/regress.h
+++ b/tests/scanner/regress.h
@@ -1,10 +1,14 @@
#ifndef __GITESTTYPES_H__
#define __GITESTTYPES_H__
-#include <cairo.h>
+#ifndef _GI_DISABLE_CAIRO
+#include <cairo-gobject.h>
+#endif
#include <glib-object.h>
#include <gio/gio.h>
#include <time.h>
+#include <string.h>
+#include <stdlib.h>
void regress_set_abort_on_error (gboolean abort_on_error);
@@ -129,6 +133,7 @@ int regress_test_int_value_arg(const GValue *v);
const GValue *regress_test_value_return(int i);
/* foreign structs */
+#ifndef _GI_DISABLE_CAIRO
cairo_t *regress_test_cairo_context_full_return (void);
void regress_test_cairo_context_none_in (cairo_t *context);
@@ -136,6 +141,7 @@ cairo_surface_t *regress_test_cairo_surface_none_return (void);
cairo_surface_t *regress_test_cairo_surface_full_return (void);
void regress_test_cairo_surface_none_in (cairo_surface_t *surface);
void regress_test_cairo_surface_full_out (cairo_surface_t **surface);
+#endif
/* versioning (deprecated, since, stability) */
void regress_test_versioning (void);
@@ -150,6 +156,13 @@ GVariant *regress_test_gvariant_as (void);
#define NUM_REGRESS_FOO
+/**
+ * RegressTestEnum:
+ * @REGRESS_TEST_VALUE1: value 1
+ * @REGRESS_TEST_VALUE2: value 2
+ *
+ * By purpose, not all members have documentation
+ */
typedef enum
{
REGRESS_TEST_VALUE1,
@@ -178,6 +191,16 @@ GType regress_test_enum_unsigned_get_type (void) G_GNUC_CONST;
GType regress_test_flags_get_type (void) G_GNUC_CONST;
#define REGRESS_TEST_TYPE_FLAGS (regress_test_flags_get_type ())
+typedef enum
+{
+ REGRESS_TEST_REFERENCE_0 = 2 + 2,
+ REGRESS_TEST_REFERENCE_1 = 1 + 1,
+ REGRESS_TEST_REFERENCE_2 = 6 * 9,
+ REGRESS_TEST_REFERENCE_3 = REGRESS_TEST_REFERENCE_1 + REGRESS_TEST_REFERENCE_1,
+ REGRESS_TEST_REFERENCE_4 = REGRESS_TEST_REFERENCE_2 * REGRESS_TEST_REFERENCE_3,
+ REGRESS_TEST_REFERENCE_5 = ~REGRESS_TEST_REFERENCE_4,
+} RegressTestReferenceEnum;
+
/* this is not registered with GType */
typedef enum
{
@@ -255,10 +278,12 @@ GQuark regress_atest_error_quark (void);
/* constants */
+#define REGRESS_NEGATIVE_INT_CONSTANT -42
#define REGRESS_INT_CONSTANT 4422
#define REGRESS_DOUBLE_CONSTANT 44.22
#define REGRESS_STRING_CONSTANT "Some String"
#define REGRESS_Mixed_Case_Constant 4423
+#define REGRESS_BOOL_CONSTANT TRUE
#define REGRESS_G_GINT64_CONSTANT (G_GINT64_CONSTANT (1000))
#define REGRESS_GUINT64_CONSTANT ((guint64) -1)
@@ -424,6 +449,16 @@ struct _RegressTestBoxedC
GType regress_test_boxed_c_get_type (void);
RegressTestBoxedC *regress_test_boxed_c_new (void);
+typedef struct _RegressTestBoxedD RegressTestBoxedD;
+
+GType regress_test_boxed_d_get_type (void);
+
+RegressTestBoxedD *regress_test_boxed_d_new (const char *a_string, int a_int);
+RegressTestBoxedD *regress_test_boxed_d_copy (RegressTestBoxedD *boxed);
+void regress_test_boxed_d_free (RegressTestBoxedD *boxed);
+
+int regress_test_boxed_d_get_magic (RegressTestBoxedD *boxed);
+
/* gobject */
#define REGRESS_TEST_TYPE_OBJ (regress_test_obj_get_type ())
#define REGRESS_TEST_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_TEST_TYPE_OBJ, RegressTestObj))
@@ -677,6 +712,8 @@ int regress_test_callback_user_data (RegressTestCallbackUserData callback,
int regress_test_callback_destroy_notify (RegressTestCallbackUserData callback,
gpointer user_data,
GDestroyNotify notify);
+int regress_test_callback_destroy_notify_no_user_data (RegressTestCallbackUserData callback,
+ GDestroyNotify notify);
int regress_test_callback_thaw_notifications (void);
void regress_test_callback_async (RegressTestCallbackUserData callback, gpointer user_data);
@@ -694,6 +731,8 @@ void regress_test_gerror_callback (RegressTestCallbackGError callback);
void regress_test_null_gerror_callback (RegressTestCallbackGError callback);
void regress_test_owned_gerror_callback (RegressTestCallbackOwnedGError callback);
+void regress_test_skip_unannotated_callback (RegressTestCallback callback);
+
typedef struct _RegressTestInterface RegressTestInterface;
/* interface */
@@ -869,6 +908,13 @@ typedef struct {
void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray *str);
+typedef struct {
+ gchar name[32];
+} RegressLikeXklConfigItem;
+
+void regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem *self,
+ const char *name);
+
#define REGRESS_UTF8_CONSTANT "const \xe2\x99\xa5 utf8"
#ifdef __GNUC__
@@ -886,7 +932,6 @@ void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray *str);
void regress_has_parameter_named_attrs (int foo,
gpointer attributes);
-
typedef struct {
int dummy;
struct {
@@ -897,4 +942,37 @@ typedef struct {
double dummy2;
} RegressLikeGnomeKeyringPasswordSchema;
+/* Ensure we ignore symbols that start with _; in particular we don't
+ * want to issue a namespace warning.
+ */
+#define _DONTSCANTHIS 1
+
+/* https://bugzilla.gnome.org/show_bug.cgi?id=685022 */
+#define REGRESS_MININT64 ((gint64) G_GINT64_CONSTANT(0x8000000000000000))
+#define REGRESS_MAXUINT64 (G_GINT64_CONSTANT(0xffffffffffffffffU))
+
+/* https://bugzilla.gnome.org/show_bug.cgi?id=698367 */
+#ifndef __GI_SCANNER__
+#define REGRESS_DONTSCANTHIS 1
+#else
+#define REGRESS_GI_SCANNER_ELSE 3
+#endif
+#ifndef BLAH
+#ifdef __GI_SCANNER__
+#define REGRESS_GI_SCANNER_IFDEF 3
+#endif
+#endif
+
+/* This struct is one pattern by which padding can be consumed, if
+ * you're willing to take a hard dependency on anonymous unions. */
+typedef struct {
+ int x;
+
+ union {
+ RegressLikeGnomeKeyringPasswordSchema *a[2];
+
+ guint padding[4];
+ };
+} RegressAnAnonymousUnion;
+
#endif /* __GITESTTYPES_H__ */
diff --git a/tests/scanner/test_sourcescanner.py b/tests/scanner/test_sourcescanner.py
new file mode 100644
index 00000000..3963683d
--- /dev/null
+++ b/tests/scanner/test_sourcescanner.py
@@ -0,0 +1,41 @@
+import unittest
+import tempfile
+import os
+
+from giscanner.sourcescanner import SourceScanner
+
+
+two_typedefs_source = """
+/**
+ * Spam:
+ */
+typedef struct _spam Spam;
+
+/**
+ * Eggs:
+ */
+typedef struct _eggs Eggs;
+"""
+
+
+class Test(unittest.TestCase):
+ def setUp(self):
+ self.ss = SourceScanner()
+ tmp_fd, tmp_name = tempfile.mkstemp()
+ file = os.fdopen(tmp_fd, 'wt')
+ file.write(two_typedefs_source)
+ file.close()
+
+ self.ss.parse_files([tmp_name])
+
+ def test_get_symbols_length_consistency(self):
+ self.assertEqual(len(list(self.ss.get_symbols())), 2)
+ self.assertEqual(len(list(self.ss.get_symbols())), 2)
+
+ def test_get_comments_length_consistency(self):
+ self.assertEqual(len(list(self.ss.get_comments())), 2)
+ self.assertEqual(len(list(self.ss.get_comments())), 2)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/scanner/test_transformer.py b/tests/scanner/test_transformer.py
new file mode 100644
index 00000000..39c54a4d
--- /dev/null
+++ b/tests/scanner/test_transformer.py
@@ -0,0 +1,445 @@
+import unittest
+import tempfile
+import os
+import sys
+import __builtin__
+
+
+os.environ['GI_SCANNER_DISABLE_CACHE'] = '1'
+path = os.getenv('UNINSTALLED_INTROSPECTION_SRCDIR', None)
+assert path is not None
+sys.path.insert(0, path)
+
+# Not correct, but enough to get the tests going uninstalled
+__builtin__.__dict__['DATADIR'] = path
+
+from giscanner import ast
+from giscanner.sourcescanner import SourceScanner
+from giscanner.transformer import Transformer
+from giscanner.message import MessageLogger, WARNING, ERROR, FATAL
+
+
+def create_scanner_from_source_string(source):
+ ss = SourceScanner()
+ tmp_fd, tmp_name = tempfile.mkstemp(suffix='.h', text=True)
+ file = os.fdopen(tmp_fd, 'wt')
+ file.write(source)
+ file.close()
+
+ ss.parse_files([tmp_name])
+ return ss
+
+
+def load_namespace_from_source_string(namespace, source):
+ ss = create_scanner_from_source_string(source)
+ xformer = Transformer(namespace)
+ xformer.parse(ss.get_symbols())
+
+
+class TestStructTypedefs(unittest.TestCase):
+ def setUp(self):
+ # Hack to set logging singleton
+ self.namespace = ast.Namespace('Test', '1.0')
+ logger = MessageLogger.get(namespace=self.namespace)
+ logger.enable_warnings((WARNING, ERROR, FATAL))
+
+ def test_anonymous_typedef(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int value;
+ } TestStruct;
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+
+ def test_typedef_before(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct _TestStruct TestStruct;
+ struct _TestStruct {
+ int value;
+ };
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+
+ def test_typedef_after(self):
+ load_namespace_from_source_string(self.namespace, """
+ struct _TestStruct {
+ int value;
+ };
+ typedef struct _TestStruct TestStruct;
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+
+ def test_tag_and_typedef(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct _TestStruct {
+ int value;
+ } TestStruct;
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+
+ def test_struct_tag_only(self):
+ load_namespace_from_source_string(self.namespace, """
+ struct TestStruct {
+ int value;
+ };
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+
+ def test_struct_aliases(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int value;
+ } TestStruct;
+ typedef TestStruct TestStructAlias1;
+ typedef TestStruct TestStructAlias2;
+ """)
+ self.assertEqual(len(self.namespace.names), 3)
+
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+
+ alias = self.namespace.get('StructAlias1')
+ self.assertTrue(isinstance(alias, ast.Alias))
+ self.assertEqual(alias.target, node)
+ self.assertEqual(alias.ctype, 'TestStructAlias1')
+
+ alias = self.namespace.get('StructAlias2')
+ self.assertTrue(isinstance(alias, ast.Alias))
+ self.assertEqual(alias.target, node)
+ self.assertEqual(alias.ctype, 'TestStructAlias2')
+
+ def test_struct_tag_aliases_before(self):
+ # This test is similar to how GObject and GInitiallyUnowned are setup
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct _TestStruct TestStruct;
+ typedef struct _TestStruct TestStructAlias;
+ struct _TestStruct {
+ int value;
+ };
+ """)
+ self.assertEqual(len(self.namespace.names), 2)
+
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+ self.assertEqual(node.ctype, 'TestStruct')
+
+ shared = self.namespace.get('StructAlias')
+ self.assertTrue(shared is not None)
+ self.assertTrue(isinstance(shared, ast.Record))
+ self.assertFalse(shared.disguised)
+ self.assertEqual(len(shared.fields), 1)
+ self.assertEqual(shared.ctype, 'TestStructAlias')
+
+ def test_struct_tag_aliases_after(self):
+ load_namespace_from_source_string(self.namespace, """
+ struct _TestStruct {
+ int value;
+ };
+ typedef struct _TestStruct TestStruct;
+ typedef struct _TestStruct TestStructAlias;
+ """)
+ self.assertEqual(len(self.namespace.names), 2)
+
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(len(node.fields), 1)
+ self.assertEqual(node.ctype, 'TestStruct')
+
+ shared = self.namespace.get('StructAlias')
+ self.assertTrue(shared is not None)
+ self.assertTrue(isinstance(shared, ast.Record))
+ self.assertFalse(shared.disguised)
+ self.assertEqual(len(shared.fields), 1)
+ self.assertEqual(shared.ctype, 'TestStructAlias')
+
+ def test_struct_pointer(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int value;
+ } TestStruct;
+ typedef TestStruct* TestStructPtr;
+ """)
+ self.assertEqual(len(self.namespace.names), 2)
+
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertEqual(len(node.fields), 1)
+ self.assertEqual(node.ctype, 'TestStruct')
+
+ ptr = self.namespace.get('StructPtr')
+ self.assertTrue(ptr is not None)
+ self.assertTrue(isinstance(ptr, ast.Alias))
+ self.assertEqual(ptr.ctype, 'TestStructPtr')
+ # This loses type information about the struct which seems broken.
+ self.assertEqual(ptr.target, ast.TYPE_ANY)
+
+ def test_struct_tag_pointer(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct _TestStruct TestStruct;
+ struct _TestStruct{
+ int value;
+ };
+ typedef struct _TestStruct* TestStructPtr;
+ """)
+ self.assertEqual(len(self.namespace.names), 2)
+
+ node = self.namespace.get('Struct')
+ self.assertTrue(node is not None)
+ self.assertTrue(isinstance(node, ast.Record))
+ self.assertFalse(node.disguised)
+ self.assertEqual(node.ctype, 'TestStruct')
+ self.assertEqual(len(node.fields), 1)
+
+ ptr = self.namespace.get('StructPtr')
+ self.assertTrue(ptr is not None)
+ # This currently gives a disguised Record instead of an Alias
+ self.assertTrue(isinstance(ptr, ast.Record))
+ self.assertTrue(ptr.disguised)
+ self.assertEqual(len(ptr.fields), 0)
+ self.assertEqual(ptr.ctype, 'TestStructPtr')
+
+
+class TestNestedStructs(unittest.TestCase):
+ def setUp(self):
+ # Hack to set logging singleton
+ self.namespace = ast.Namespace('Test', '1.0')
+ logger = MessageLogger.get(namespace=self.namespace)
+ logger.enable_warnings((WARNING, ERROR, FATAL))
+
+ def test_nested_named(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int value;
+ } TestSimpleStruct;
+
+ typedef struct {
+ TestSimpleStruct nested_struct;
+ } TestStructWithNested;
+ """)
+ self.assertEqual(len(self.namespace.names), 2)
+ node = self.namespace.get('StructWithNested')
+ self.assertEqual(len(node.fields), 1)
+
+ simple = self.namespace.get('SimpleStruct')
+ self.assertTrue(node is not None)
+
+ field = node.fields[0]
+ self.assertTrue(field is not None)
+ self.assertTrue(isinstance(field, ast.Field))
+ self.assertEqual(field.type, simple)
+ self.assertEqual(field.name, 'nested_struct')
+
+ def test_nested_anonymous(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ struct {
+ int value;
+ };
+ } TestStructWithNestedAnon;
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('StructWithNestedAnon')
+ self.assertEqual(len(node.fields), 1)
+
+ field = node.fields[0]
+ self.assertTrue(field is not None)
+ self.assertTrue(isinstance(field, ast.Field))
+ self.assertEqual(field.name, None)
+
+ anon = field.anonymous_node
+ self.assertTrue(isinstance(anon, ast.Record))
+ self.assertEqual(len(anon.fields), 1)
+
+ anon_field = anon.fields[0]
+ self.assertTrue(anon_field is not None)
+ self.assertTrue(isinstance(anon_field, ast.Field))
+ self.assertEqual(anon_field.name, 'value')
+
+ def test_nested(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ struct {
+ int value;
+ } nested;
+ } TestStructWithNested;
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('StructWithNested')
+ self.assertEqual(len(node.fields), 1)
+
+ field = node.fields[0]
+ self.assertTrue(field is not None)
+ self.assertTrue(isinstance(field, ast.Field))
+ self.assertEqual(field.name, 'nested')
+
+ nested = field.anonymous_node
+ self.assertTrue(isinstance(nested, ast.Record))
+ self.assertEqual(len(nested.fields), 1)
+ self.assertEqual(nested.name, 'nested')
+
+ nested_field = nested.fields[0]
+ self.assertTrue(nested_field is not None)
+ self.assertTrue(isinstance(nested_field, ast.Field))
+ self.assertEqual(nested_field.name, 'value')
+
+ def test_struct_ptr(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int value;
+ } TestSimpleStruct;
+
+ typedef struct {
+ TestSimpleStruct *struct_ptr;
+ } TestStructWithNestedPtr;
+ """)
+ self.assertEqual(len(self.namespace.names), 2)
+ node = self.namespace.get('StructWithNestedPtr')
+ self.assertEqual(len(node.fields), 1)
+
+ simple = self.namespace.get('SimpleStruct')
+ self.assertTrue(node is not None)
+
+ field = node.fields[0]
+ self.assertTrue(field is not None)
+ self.assertTrue(isinstance(field, ast.Field))
+ self.assertEqual(field.type.ctype, 'TestSimpleStruct*')
+ self.assertEqual(field.name, 'struct_ptr')
+
+
+class TestUnions(unittest.TestCase):
+ def setUp(self):
+ # Hack to set logging singleton
+ self.namespace = ast.Namespace('Test', '1.0')
+ logger = MessageLogger.get(namespace=self.namespace)
+ logger.enable_warnings((WARNING, ERROR, FATAL))
+
+ def test_union_with_struct(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int value;
+ } TestSimpleStruct;
+
+ typedef union {
+ TestSimpleStruct nested_struct;
+ int value;
+ } TestUnionWithNested;
+ """)
+ self.assertEqual(len(self.namespace.names), 2)
+ node = self.namespace.get('UnionWithNested')
+ self.assertEqual(len(node.fields), 2)
+
+ simple = self.namespace.get('SimpleStruct')
+ self.assertTrue(node is not None)
+
+ field = node.fields[0]
+ self.assertEqual(field.type, simple)
+ self.assertEqual(field.name, 'nested_struct')
+
+ field = node.fields[1]
+ self.assertEqual(field.type.ctype, 'int')
+ self.assertEqual(field.name, 'value')
+
+ def test_nested(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ union {
+ int ival;
+ float fval;
+ } nested;
+ } TestNestedUnion;
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('NestedUnion')
+ self.assertEqual(len(node.fields), 1)
+
+ field = node.fields[0]
+ self.assertEqual(field.name, 'nested')
+
+ nested = field.anonymous_node
+ self.assertTrue(isinstance(nested, ast.Union))
+ self.assertEqual(nested.name, 'nested')
+ self.assertEqual(len(nested.fields), 2)
+
+ self.assertEqual(nested.fields[0].name, 'ival')
+ self.assertEqual(nested.fields[1].name, 'fval')
+
+ def test_nested_anonymous(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ union {
+ int ival;
+ float fval;
+ };
+ } TestStructWithNestedUnion;
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('StructWithNestedUnion')
+ self.assertEqual(len(node.fields), 1)
+
+ field = node.fields[0]
+ self.assertEqual(field.name, None)
+
+ nested = field.anonymous_node
+ self.assertTrue(isinstance(nested, ast.Union))
+ self.assertEqual(nested.name, None)
+ self.assertEqual(len(nested.fields), 2)
+
+ self.assertEqual(nested.fields[0].name, 'ival')
+ self.assertEqual(nested.fields[0].type.ctype, 'int')
+
+ self.assertEqual(nested.fields[1].name, 'fval')
+ self.assertEqual(nested.fields[1].type.ctype, 'float')
+
+
+class TestCallbacks(unittest.TestCase):
+ def setUp(self):
+ # Hack to set logging singleton
+ self.namespace = ast.Namespace('Test', '1.0')
+ logger = MessageLogger.get(namespace=self.namespace)
+ logger.enable_warnings((WARNING, ERROR, FATAL))
+
+ def test_union_with_struct(self):
+ load_namespace_from_source_string(self.namespace, """
+ typedef void (*TestCallback)(int value);
+ """)
+ self.assertEqual(len(self.namespace.names), 1)
+ node = self.namespace.get('Callback')
+ self.assertTrue(isinstance(node, ast.Callback))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/scanner/typedefs.c b/tests/scanner/typedefs.c
new file mode 100644
index 00000000..7c1dea19
--- /dev/null
+++ b/tests/scanner/typedefs.c
@@ -0,0 +1,90 @@
+#include "typedefs.h"
+
+static TypedefsBoxedWithTypedefBefore *
+typedefs_boxed_with_typedef_before_ref(TypedefsBoxedWithTypedefBefore *self)
+{
+ return self;
+}
+
+static void
+typedefs_boxed_with_typedef_before_unref(TypedefsBoxedWithTypedefBefore *self)
+{
+}
+
+G_DEFINE_BOXED_TYPE (TypedefsBoxedWithTypedefBefore,
+ typedefs_boxed_with_typedef_before,
+ typedefs_boxed_with_typedef_before_ref,
+ typedefs_boxed_with_typedef_before_unref);
+
+
+static TypedefsBoxedWithTypedefAfter *
+typedefs_boxed_with_typedef_after_ref(TypedefsBoxedWithTypedefAfter *self)
+{
+ return self;
+}
+
+static void
+typedefs_boxed_with_typedef_after_unref(TypedefsBoxedWithTypedefAfter *self)
+{
+}
+
+G_DEFINE_BOXED_TYPE (TypedefsBoxedWithTypedefAfter,
+ typedefs_boxed_with_typedef_after,
+ typedefs_boxed_with_typedef_after_ref,
+ typedefs_boxed_with_typedef_after_unref);
+
+
+static TypedefsBoxedWithTagAndTypedef *
+typedefs_boxed_with_tag_and_typedef_ref(TypedefsBoxedWithTagAndTypedef *self)
+{
+ return self;
+}
+
+static void
+typedefs_boxed_with_tag_and_typedef_unref(TypedefsBoxedWithTagAndTypedef *self)
+{
+}
+
+G_DEFINE_BOXED_TYPE (TypedefsBoxedWithTagAndTypedef,
+ typedefs_boxed_with_tag_and_typedef,
+ typedefs_boxed_with_tag_and_typedef_ref,
+ typedefs_boxed_with_tag_and_typedef_unref);
+
+
+static TypedefsBoxedWithAnonymousTypedef *
+typedefs_boxed_with_anonymous_typedef_ref(TypedefsBoxedWithAnonymousTypedef *self)
+{
+ return self;
+}
+
+static void
+typedefs_boxed_with_anonymous_typedef_unref(TypedefsBoxedWithAnonymousTypedef *self)
+{
+}
+
+G_DEFINE_BOXED_TYPE (TypedefsBoxedWithAnonymousTypedef,
+ typedefs_boxed_with_anonymous_typedef,
+ typedefs_boxed_with_anonymous_typedef_ref,
+ typedefs_boxed_with_anonymous_typedef_unref);
+
+
+struct _TypedefsBoxedWithHiddenStruct {
+ int value;
+};
+
+static TypedefsBoxedWithHiddenStruct *
+typedefs_boxed_with_hidden_struct_ref(TypedefsBoxedWithHiddenStruct *self)
+{
+ return self;
+}
+
+static void
+typedefs_boxed_with_hidden_struct_unref(TypedefsBoxedWithHiddenStruct *self)
+{
+}
+
+G_DEFINE_BOXED_TYPE (TypedefsBoxedWithHiddenStruct,
+ typedefs_boxed_with_hidden_struct,
+ typedefs_boxed_with_hidden_struct_ref,
+ typedefs_boxed_with_hidden_struct_unref);
+
diff --git a/tests/scanner/typedefs.h b/tests/scanner/typedefs.h
new file mode 100644
index 00000000..2a5d8beb
--- /dev/null
+++ b/tests/scanner/typedefs.h
@@ -0,0 +1,73 @@
+#ifndef __TYPEDEFS_H__
+#define __TYPEDEFS_H__
+
+#include <glib-object.h>
+
+/*
+ * Tests for various orderings of typedef struct declarations.
+ */
+
+
+typedef struct {
+ int value;
+} TypedefsStructWithAnonymousTypedef;
+
+
+typedef struct _TypedefsStructWithTypedefBefore TypedefsStructWithTypedefBefore;
+struct _TypedefsStructWithTypedefBefore {
+ int value;
+};
+
+
+/* BUG: produces name with underscore prefix */
+struct _TypedefsStructWithTypedefAfter {
+ int value;
+};
+typedef struct _TypedefsStructWithTypedefAfter TypedefsStructWithTypedefAfter;
+
+
+/* BUG: produces name with underscore prefix */
+typedef struct _TypedefsStructWithTagAndTypedef {
+ int value;
+} TypedefsStructWithTagAndTypedef;
+
+
+/*
+ * Boxed versions of typedef ordering tests.
+ */
+
+typedef struct _TypedefsBoxedWithTypedefBefore TypedefsBoxedWithTypedefBefore;
+struct _TypedefsBoxedWithTypedefBefore {
+ int value;
+};
+GType typedefs_boxed_with_typedef_before_get_type (void) G_GNUC_CONST;
+
+
+/* BUG: struct has no fields in GIR */
+struct _TypedefsBoxedWithTypedefAfter {
+ int value;
+};
+typedef struct _TypedefsBoxedWithTypedefAfter TypedefsBoxedWithTypedefAfter;
+GType typedefs_boxed_with_typedef_after_get_type (void) G_GNUC_CONST;
+
+
+/* BUG: struct has no fields and extra <record> with underscore prefix */
+typedef struct _TypedefsBoxedWithTagAndTypedef {
+ int value;
+} TypedefsBoxedWithTagAndTypedef;
+GType typedefs_boxed_with_tag_and_typedef_get_type (void) G_GNUC_CONST;
+
+
+/* BUG: extra <record> with underscore prefix */
+typedef struct {
+ int value;
+} TypedefsBoxedWithAnonymousTypedef;
+GType typedefs_boxed_with_anonymous_typedef_get_type (void) G_GNUC_CONST;
+
+
+/* BUG: uses <record> instead of <glib:boxed> */
+typedef struct _TypedefsBoxedWithHiddenStruct TypedefsBoxedWithHiddenStruct;
+GType typedefs_boxed_with_hidden_struct_get_type (void) G_GNUC_CONST;
+
+
+#endif /*__TYPEDEFS_H__*/
diff --git a/tests/scanner/warnlib.c b/tests/scanner/warnlib.c
new file mode 100644
index 00000000..d7c1e2a1
--- /dev/null
+++ b/tests/scanner/warnlib.c
@@ -0,0 +1,47 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#include "config.h"
+
+#include "warnlib.h"
+
+GQuark
+warnlib_unpaired_error_quark (void)
+{
+ return g_quark_from_static_string ("warnlib-unpaired-error");
+}
+
+gboolean
+warnlib_throw_unpaired (GError **error)
+{
+ g_set_error_literal (error, warnlib_unpaired_error_quark (), 0,
+ "Unpaired error");
+ return FALSE;
+}
+
+typedef WarnLibWhateverIface WarnLibWhateverInterface;
+G_DEFINE_INTERFACE (WarnLibWhatever, warnlib_whatever, G_TYPE_OBJECT)
+
+static void
+warnlib_whatever_default_init(WarnLibWhateverIface *iface)
+{
+}
+
+void
+warnlib_whatever_do_moo (WarnLibWhatever *self, int x, gpointer y)
+{
+ WARNLIB_WHATEVER_GET_IFACE(self)->do_moo (self, x, y);
+}
+
+/**
+ * warnlib_whatever_do_boo:
+ * @self: a WarnLibWhatever
+ * @x: x parameter
+ * @y: y parameter
+ *
+ * Does boo.
+ */
+void
+warnlib_whatever_do_boo (WarnLibWhatever *self, int x, gpointer y)
+{
+ WARNLIB_WHATEVER_GET_IFACE(self)->do_boo (self, x, y);
+}
diff --git a/tests/scanner/warnlib.h b/tests/scanner/warnlib.h
new file mode 100644
index 00000000..a4c28b47
--- /dev/null
+++ b/tests/scanner/warnlib.h
@@ -0,0 +1,39 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#ifndef __WARNLIB_H__
+#define __WARNLIB_H__
+
+#include <gio/gio.h>
+
+#define WARNLIB_UNPAIRED_ERROR (warnlib_unpaired_error_quark ())
+GQuark warnlib_unpaired_error_quark (void);
+
+gboolean warnlib_throw_unpaired (GError **error);
+
+/* interface */
+#define WARNLIB_TYPE_WHATEVER (warnlib_whatever_get_type ())
+#define WARNLIB_WHATEVER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WARNLIB_TYPE_WHATEVER, WarnLibWhatever))
+#define WARNLIB_IS_WHATEVER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WARNLIB_TYPE_WHATEVER))
+#define WARNLIB_WHATEVER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), WARNLIB_TYPE_WHATEVER, WarnLibWhateverIface))
+
+typedef struct _WarnLibWhateverIface WarnLibWhateverIface;
+typedef struct _WarnLibWhatever WarnLibWhatever;
+
+struct _WarnLibWhateverIface
+{
+ GTypeInterface parent_iface;
+
+ /* virtual table */
+
+ /* explicitly test un-named parameters */
+ void (*do_moo) (WarnLibWhatever *self, int, gpointer);
+
+ void (*do_boo) (WarnLibWhatever *self, int x, gpointer y);
+};
+
+void warnlib_whatever_do_moo (WarnLibWhatever *self, int, gpointer);
+void warnlib_whatever_do_boo (WarnLibWhatever *self, int, gpointer);
+
+GType warnlib_whatever_get_type (void) G_GNUC_CONST;
+
+#endif