From 735c815eaa4578bcdbcd33779d93e5b8249e27d0 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 27 Oct 2016 14:34:43 +0900 Subject: [PATCH] Imported Upstream version 1.49.1 Change-Id: I5b03d454056070ccd078e98c7c32b1edf085c990 Signed-off-by: DongHun Kwak --- Makefile-tools.am | 10 +- Makefile.in | 54 +- aclocal.m4 | 4 +- build-aux/config.guess | 34 +- build-aux/config.sub | 22 +- build-aux/install-sh | 23 +- build-aux/ltmain.sh | 37 +- build/Makefile.in | 1 - build/win32/Makefile.in | 1 - build/win32/gi-tests-msvc.mak | 2 +- build/win32/gipc.py | 59 + build/win32/introspection-msvc.mak | 7 +- build/win32/pc_base.py | 55 +- build/win32/vs10/Makefile.in | 1 - build/win32/vs10/gi-install.props | 7 +- build/win32/vs10/gi-install.propsin | 7 +- build/win32/vs10/gi-version-paths.props | 2 +- build/win32/vs11/Makefile.in | 1 - build/win32/vs11/gi-install.props | 7 +- build/win32/vs11/gi-version-paths.props | 2 +- build/win32/vs12/Makefile.in | 1 - build/win32/vs12/gi-install.props | 7 +- build/win32/vs12/gi-version-paths.props | 2 +- build/win32/vs14/Makefile.in | 1 - build/win32/vs14/gi-install.props | 7 +- build/win32/vs14/gi-version-paths.props | 2 +- build/win32/vs9/Makefile.in | 1 - build/win32/vs9/gi-install.vcproj | 8 +- build/win32/vs9/gi-install.vsprops | 5 + build/win32/vs9/gi-install.vspropsin | 5 + build/win32/vs9/gi-version-paths.vsprops | 2 +- config.h.win32 | 6 +- configure | 81 +- configure.ac | 6 +- docs/Makefile.in | 1 - docs/reference/Makefile.in | 1 - docs/reference/html/GIRepository.html | 204 +-- docs/reference/html/annotation-glossary.html | 4 +- docs/reference/html/api-index-1-29-0.html | 4 +- docs/reference/html/api-index-1-29-17.html | 4 +- docs/reference/html/api-index-1-30-1.html | 4 +- docs/reference/html/api-index-1-34.html | 4 +- docs/reference/html/api-index-1-35-8.html | 4 +- docs/reference/html/api-index-deprecated.html | 4 +- docs/reference/html/api-index-full.html | 4 +- docs/reference/html/ch01.html | 4 +- docs/reference/html/ch03.html | 4 +- docs/reference/html/gi-GIArgInfo.html | 58 +- docs/reference/html/gi-GIBaseInfo.html | 48 +- docs/reference/html/gi-GICallableInfo.html | 70 +- docs/reference/html/gi-GICallbackInfo.html | 4 +- docs/reference/html/gi-GIConstantInfo.html | 8 +- docs/reference/html/gi-GIEnumInfo.html | 28 +- docs/reference/html/gi-GIFieldInfo.html | 28 +- docs/reference/html/gi-GIFunctionInfo.html | 40 +- docs/reference/html/gi-GIInterfaceInfo.html | 60 +- docs/reference/html/gi-GIObjectInfo.html | 118 +- docs/reference/html/gi-GIPropertyInfo.html | 10 +- docs/reference/html/gi-GIRegisteredTypeInfo.html | 24 +- docs/reference/html/gi-GISignalInfo.html | 20 +- docs/reference/html/gi-GIStructInfo.html | 38 +- docs/reference/html/gi-GITypeInfo.html | 40 +- docs/reference/html/gi-GITypelib.html | 594 +++---- docs/reference/html/gi-GIUnionInfo.html | 38 +- docs/reference/html/gi-GIVFuncInfo.html | 48 +- docs/reference/html/gi-GIValueInfo.html | 4 +- docs/reference/html/gi-building.html | 4 +- docs/reference/html/gi-common-types.html | 60 +- docs/reference/html/gi-gir-reference.html | 4 +- docs/reference/html/gi-girffi.html | 32 +- docs/reference/html/gi-gitypelib.html | 46 +- docs/reference/html/gi-programming.html | 4 +- docs/reference/html/gi-struct-hierarchy.html | 4 +- docs/reference/html/gi-typelib.html | 4 +- docs/reference/html/gi.html | 4 +- docs/reference/html/index.html | 6 +- docs/reference/html/overview.html | 4 +- docs/reference/html/overview.png | Bin 112776 -> 0 bytes docs/reference/version.xml | 2 +- gir/gio-2.0.c | 1726 +++++++++++++++++++- gir/glib-2.0.c | 636 ++++++-- gir/gobject-2.0.c | 6 +- girepository/gdump.c | 9 +- girepository/gicallableinfo.c | 4 +- girepository/girepository.c | 32 +- giscanner/ast.py | 3 +- gobject-introspection-1.0.pc | 4 +- gobject-introspection-no-export-1.0.pc | 4 +- m4/libtool.m4 | 32 +- scannerlexer.c | 449 +++-- scannerparser.c | 314 ++-- scannerparser.h | 2 +- tests/Makefile.in | 1 - tests/gi-tester | 8 +- tests/offsets/Makefile.in | 1 - tests/repository/Makefile.in | 1 - tests/scanner/Makefile.in | 1 - .../Regress.AnonymousUnionAndStruct-None.page | 14 + .../Regress.AnonymousUnionAndStruct-x.page | 14 + .../Regress.AnonymousUnionAndStruct.page | 35 + .../Regress.AnonymousUnionAndStruct-x.page | 18 + .../Regress.AnonymousUnionAndStruct.page | 42 + .../Regress.AnonymousUnionAndStruct-None.page | 14 + .../Regress.AnonymousUnionAndStruct-x.page | 14 + .../Regress.AnonymousUnionAndStruct.page | 40 + tests/scanner/Regress-1.0-expected.gir | 22 + tests/scanner/annotationparser/Makefile.in | 1 - tests/scanner/regress.h | 13 + tests/warn/Makefile.in | 1 - tools/g-ir-inspect.c | 133 ++ 110 files changed, 4091 insertions(+), 1671 deletions(-) delete mode 100644 docs/reference/html/overview.png create mode 100644 tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-None.page create mode 100644 tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-x.page create mode 100644 tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct.page create mode 100644 tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct-x.page create mode 100644 tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct.page create mode 100644 tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-None.page create mode 100644 tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-x.page create mode 100644 tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct.page create mode 100644 tools/g-ir-inspect.c diff --git a/Makefile-tools.am b/Makefile-tools.am index dbd264c..9529373 100644 --- a/Makefile-tools.am +++ b/Makefile-tools.am @@ -1,4 +1,4 @@ -bin_PROGRAMS += g-ir-compiler g-ir-generate +bin_PROGRAMS += g-ir-compiler g-ir-generate g-ir-inspect bin_SCRIPTS += g-ir-scanner g-ir-annotation-tool if BUILD_DOCTOOL @@ -40,8 +40,14 @@ g_ir_generate_LDADD = \ libgirepository-1.0.la \ $(GIREPO_LIBS) +g_ir_inspect_SOURCES = tools/g-ir-inspect.c +g_ir_inspect_CFLAGS = $(GIO_CFLAGS) -I$(top_srcdir)/girepository +g_ir_inspect_LDADD = \ + libgirepository-1.0.la \ + $(GIREPO_LIBS) + GCOVSOURCES = \ $(g_ir_compiler_SOURCES) \ $(g_ir_generate_SOURCES) -CLEANFILES += g-ir-scanner g-ir-annotation-tool g-ir-doc-tool +CLEANFILES += g-ir-scanner g-ir-annotation-tool g-ir-doc-tool g-ir-inspect diff --git a/Makefile.in b/Makefile.in index 96279f0..6bf0273 100644 --- a/Makefile.in +++ b/Makefile.in @@ -173,7 +173,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ check_PROGRAMS = -bin_PROGRAMS = g-ir-compiler$(EXEEXT) g-ir-generate$(EXEEXT) +bin_PROGRAMS = g-ir-compiler$(EXEEXT) g-ir-generate$(EXEEXT) \ + g-ir-inspect$(EXEEXT) noinst_PROGRAMS = $(am__EXEEXT_1) glib-print$(EXEEXT) EXTRA_PROGRAMS = cmph-bdz-test$(EXEEXT) gthash-test$(EXEEXT) TESTS = cmph-bdz-test$(EXEEXT) gthash-test$(EXEEXT) @@ -359,6 +360,13 @@ g_ir_generate_DEPENDENCIES = libgirepository-internals.la \ g_ir_generate_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(g_ir_generate_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am_g_ir_inspect_OBJECTS = g_ir_inspect-g-ir-inspect.$(OBJEXT) +g_ir_inspect_OBJECTS = $(am_g_ir_inspect_OBJECTS) +g_ir_inspect_DEPENDENCIES = libgirepository-1.0.la \ + $(am__DEPENDENCIES_1) +g_ir_inspect_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(g_ir_inspect_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am__gi_dump_types_SOURCES_DIST = girepository/gdump.c \ girepository/gi-dump-types.c @OS_WIN32_FALSE@am_gi_dump_types_OBJECTS = \ @@ -444,16 +452,16 @@ SOURCES = $(_giscanner_la_SOURCES) $(libcmph_la_SOURCES) \ $(libgirepository_internals_la_SOURCES) \ $(libgiscanner_la_SOURCES) $(cmph_bdz_test_SOURCES) \ $(g_ir_compiler_SOURCES) $(g_ir_generate_SOURCES) \ - $(gi_dump_types_SOURCES) $(glib_print_SOURCES) \ - $(gthash_test_SOURCES) + $(g_ir_inspect_SOURCES) $(gi_dump_types_SOURCES) \ + $(glib_print_SOURCES) $(gthash_test_SOURCES) DIST_SOURCES = $(_giscanner_la_SOURCES) $(libcmph_la_SOURCES) \ $(libgirepository_1_0_la_SOURCES) \ $(libgirepository_gthash_la_SOURCES) \ $(libgirepository_internals_la_SOURCES) \ $(libgiscanner_la_SOURCES) $(cmph_bdz_test_SOURCES) \ $(g_ir_compiler_SOURCES) $(g_ir_generate_SOURCES) \ - $(am__gi_dump_types_SOURCES_DIST) $(glib_print_SOURCES) \ - $(gthash_test_SOURCES) + $(g_ir_inspect_SOURCES) $(am__gi_dump_types_SOURCES_DIST) \ + $(glib_print_SOURCES) $(gthash_test_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -922,7 +930,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -948,7 +955,7 @@ BUILT_SOURCES = scannerparser.c scannerparser.h scannerlexer.c \ scannerlexer.h gir/cairo-1.0.gir CLEANFILES = $(BUILT_SOURCES) cmph-bdz-test libcmph.la gthash-test \ gir/cairo-1.0.gir $(BUILT_GIRSOURCES) $(typelibs_DATA) \ - g-ir-scanner g-ir-annotation-tool g-ir-doc-tool + g-ir-scanner g-ir-annotation-tool g-ir-doc-tool g-ir-inspect INTROSPECTION_GIRS = $(BUILT_GIRSOURCES) check_LTLIBRARIES = bin_SCRIPTS = g-ir-scanner g-ir-annotation-tool $(am__append_5) @@ -1489,6 +1496,12 @@ g_ir_generate_LDADD = \ libgirepository-1.0.la \ $(GIREPO_LIBS) +g_ir_inspect_SOURCES = tools/g-ir-inspect.c +g_ir_inspect_CFLAGS = $(GIO_CFLAGS) -I$(top_srcdir)/girepository +g_ir_inspect_LDADD = \ + libgirepository-1.0.la \ + $(GIREPO_LIBS) + GCOVSOURCES = \ $(g_ir_compiler_SOURCES) \ $(g_ir_generate_SOURCES) @@ -1806,6 +1819,10 @@ g-ir-generate$(EXEEXT): $(g_ir_generate_OBJECTS) $(g_ir_generate_DEPENDENCIES) $ @rm -f g-ir-generate$(EXEEXT) $(AM_V_CCLD)$(g_ir_generate_LINK) $(g_ir_generate_OBJECTS) $(g_ir_generate_LDADD) $(LIBS) +g-ir-inspect$(EXEEXT): $(g_ir_inspect_OBJECTS) $(g_ir_inspect_DEPENDENCIES) $(EXTRA_g_ir_inspect_DEPENDENCIES) + @rm -f g-ir-inspect$(EXEEXT) + $(AM_V_CCLD)$(g_ir_inspect_LINK) $(g_ir_inspect_OBJECTS) $(g_ir_inspect_LDADD) $(LIBS) + gi-dump-types$(EXEEXT): $(gi_dump_types_OBJECTS) $(gi_dump_types_DEPENDENCIES) $(EXTRA_gi_dump_types_DEPENDENCIES) @rm -f gi-dump-types$(EXEEXT) $(AM_V_CCLD)$(gi_dump_types_LINK) $(gi_dump_types_OBJECTS) $(gi_dump_types_LDADD) $(LIBS) @@ -1863,6 +1880,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmph_bdz_test-cmph-bdz-test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/g_ir_compiler-compiler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/g_ir_generate-generate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/g_ir_inspect-g-ir-inspect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gi_dump_types-gdump.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gi_dump_types-gi-dump-types.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glib_print-glib-print.Po@am__quote@ @@ -2363,6 +2381,20 @@ g_ir_generate-generate.obj: tools/generate.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(g_ir_generate_CPPFLAGS) $(CPPFLAGS) $(g_ir_generate_CFLAGS) $(CFLAGS) -c -o g_ir_generate-generate.obj `if test -f 'tools/generate.c'; then $(CYGPATH_W) 'tools/generate.c'; else $(CYGPATH_W) '$(srcdir)/tools/generate.c'; fi` +g_ir_inspect-g-ir-inspect.o: tools/g-ir-inspect.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(g_ir_inspect_CFLAGS) $(CFLAGS) -MT g_ir_inspect-g-ir-inspect.o -MD -MP -MF $(DEPDIR)/g_ir_inspect-g-ir-inspect.Tpo -c -o g_ir_inspect-g-ir-inspect.o `test -f 'tools/g-ir-inspect.c' || echo '$(srcdir)/'`tools/g-ir-inspect.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/g_ir_inspect-g-ir-inspect.Tpo $(DEPDIR)/g_ir_inspect-g-ir-inspect.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tools/g-ir-inspect.c' object='g_ir_inspect-g-ir-inspect.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(g_ir_inspect_CFLAGS) $(CFLAGS) -c -o g_ir_inspect-g-ir-inspect.o `test -f 'tools/g-ir-inspect.c' || echo '$(srcdir)/'`tools/g-ir-inspect.c + +g_ir_inspect-g-ir-inspect.obj: tools/g-ir-inspect.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(g_ir_inspect_CFLAGS) $(CFLAGS) -MT g_ir_inspect-g-ir-inspect.obj -MD -MP -MF $(DEPDIR)/g_ir_inspect-g-ir-inspect.Tpo -c -o g_ir_inspect-g-ir-inspect.obj `if test -f 'tools/g-ir-inspect.c'; then $(CYGPATH_W) 'tools/g-ir-inspect.c'; else $(CYGPATH_W) '$(srcdir)/tools/g-ir-inspect.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/g_ir_inspect-g-ir-inspect.Tpo $(DEPDIR)/g_ir_inspect-g-ir-inspect.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tools/g-ir-inspect.c' object='g_ir_inspect-g-ir-inspect.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(g_ir_inspect_CFLAGS) $(CFLAGS) -c -o g_ir_inspect-g-ir-inspect.obj `if test -f 'tools/g-ir-inspect.c'; then $(CYGPATH_W) 'tools/g-ir-inspect.c'; else $(CYGPATH_W) '$(srcdir)/tools/g-ir-inspect.c'; fi` + gi_dump_types-gdump.o: girepository/gdump.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gi_dump_types_CFLAGS) $(CFLAGS) -MT gi_dump_types-gdump.o -MD -MP -MF $(DEPDIR)/gi_dump_types-gdump.Tpo -c -o gi_dump_types-gdump.o `test -f 'girepository/gdump.c' || echo '$(srcdir)/'`girepository/gdump.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gi_dump_types-gdump.Tpo $(DEPDIR)/gi_dump_types-gdump.Po @@ -3109,7 +3141,7 @@ distdir: $(DISTFILES) ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir @@ -3134,7 +3166,7 @@ dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir @@ -3152,7 +3184,7 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -3162,7 +3194,7 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac diff --git a/aclocal.m4 b/aclocal.m4 index 02a4590..6c52c41 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -21,7 +21,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -dnl serial 11 (pkg-config-0.29) +dnl serial 11 (pkg-config-0.29.1) dnl dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson @@ -63,7 +63,7 @@ dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29]) +[m4_define([PKG_MACROS_VERSION], [0.29.1]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ diff --git a/build-aux/config.guess b/build-aux/config.guess index 1659250..dbfb978 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -2,7 +2,7 @@ # Attempt to guess a canonical system name. # Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2015-08-20' +timestamp='2015-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -168,27 +168,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ - echo unknown)` + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown - ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in - arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) + arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -204,13 +197,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac - # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` - ;; - esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -221,13 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -249,9 +235,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; - *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix - exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -950,9 +933,6 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; - e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -1041,7 +1021,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} diff --git a/build-aux/config.sub b/build-aux/config.sub index 1acc966..6467c95 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2015-08-20' +timestamp='2015-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -117,7 +117,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -255,12 +255,11 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ - | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ + | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ @@ -306,7 +305,7 @@ case $basic_machine in | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -377,13 +376,12 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ - | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ + | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -430,13 +428,12 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -521,9 +518,6 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; - asmjs) - basic_machine=asmjs-unknown - ;; aux) basic_machine=m68k-apple os=-aux @@ -1031,7 +1025,7 @@ case $basic_machine in ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown @@ -1379,7 +1373,7 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ diff --git a/build-aux/install-sh b/build-aux/install-sh index 59990a1..0b0fdcb 100755 --- a/build-aux/install-sh +++ b/build-aux/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2014-09-12.12; # UTC +scriptversion=2013-12-25.23; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -324,41 +324,34 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) - # $RANDOM is not portable (e.g. dash); use it when possible to - # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - # As "mkdir -p" follows symlinks and we work in /tmp possibly; so - # create the $tmpdir first (and fail if unsuccessful) to make sure - # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh index 147d758..0f0a2da 100644 --- a/build-aux/ltmain.sh +++ b/build-aux/ltmain.sh @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-0.1" +VERSION=2.4.6 package_revision=2.4.6 @@ -2073,7 +2073,7 @@ include the following information: autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . -GNU libtool home page: . +GNU libtool home page: . General help using GNU software: ." exit 0 } @@ -7272,13 +7272,10 @@ func_mode_link () # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang - # -fsanitize=* Clang/GCC memory and address sanitizer -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*) + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" @@ -7571,10 +7568,7 @@ func_mode_link () case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then @@ -7893,19 +7887,19 @@ func_mode_link () # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done continue fi # $pass = conv @@ -8829,9 +8823,6 @@ func_mode_link () revision=$number_minor lt_irix_increment=no ;; - *) - func_fatal_configuration "$modename: unknown library version type '$version_type'" - ;; esac ;; no) diff --git a/build/Makefile.in b/build/Makefile.in index c687e22..90cb58f 100644 --- a/build/Makefile.in +++ b/build/Makefile.in @@ -353,7 +353,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/build/win32/Makefile.in b/build/win32/Makefile.in index 75a6a65..09f061c 100644 --- a/build/win32/Makefile.in +++ b/build/win32/Makefile.in @@ -353,7 +353,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/build/win32/gi-tests-msvc.mak b/build/win32/gi-tests-msvc.mak index ba25a00..5b26c00 100644 --- a/build/win32/gi-tests-msvc.mak +++ b/build/win32/gi-tests-msvc.mak @@ -20,7 +20,7 @@ LDFLAGS = /link $(LDFLAGS_ARCH) $(BASE_GLIB_LIBS) /DEBUG /opt:noref LDFLAGS_DLL = /link $(LDFLAGS_ARCH) /DLL /out:$@ /implib:$*-$(GI_APIVERSION).lib $(BASE_GLIB_LIBS) /DEBUG /opt:noref # Special CFLAGS for Regress test -REGRESS_CFLAGS = -DREGRESS_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f" -DREGRESS_SOME_CHAR='c' +REGRESS_CFLAGS = /I$(PREFIX)\include\cairo /DREGRESS_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f" /DREGRESS_SOME_CHAR='c' # The test .gir's for G-I that are built built_test_girs = \ diff --git a/build/win32/gipc.py b/build/win32/gipc.py index 281f07f..9fd066c 100644 --- a/build/win32/gipc.py +++ b/build/win32/gipc.py @@ -38,5 +38,64 @@ def main(argv): base_pc.srcdir + '/gobject-introspection-no-export-1.0.pc', pkg_replace_items) + # Generate a generic .pc file for Cairo, that is just sufficient for our purposes + cairo_version = '1.14.6' # Use the latest stable version, for now. + cairo_pc = open(base_pc.srcdir + '/cairo.pc', 'w') + cairo_pc.write('prefix=' + base_pc.prefix + '\n') + cairo_pc.write('exec_prefix=${prefix}\n') + cairo_pc.write('libdir=${prefix}/lib\n') + cairo_pc.write('includedir=${prefix}/include\n\n') + cairo_pc.write('Name: cairo\n') + cairo_pc.write('Description: generic cairo pkg-config file\n') + cairo_pc.write('Version: ' + cairo_version + '\n\n') + cairo_pc.write('Requires.private:\n') + cairo_pc.write('Libs: -L${libdir} -lcairo\n') + cairo_pc.write('Libs.private:\n') + cairo_pc.write('Cflags: -I${includedir}\n') + cairo_pc.close() + + # Generate a generic .pc file for Cairo-Win32, that is just sufficient for our + # purposes + # Just make a copy of the cairo.pc we just generated and replace the items as needed + cairo_win32_replace_items = \ + {'generic cairo pkg-config file': 'generic cairo-win32 pkg-config file'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/cairo-win32.pc', + cairo_win32_replace_items) + + # Generate a generic .pc file for Cairo-GObject, that is just sufficient for our + # purposes + # Just make a copy of the cairo.pc we just generated and replace the items as needed + cairo_gobject_replace_items = \ + {'Requires.private:': 'Requires.private: gobject-2.0,glib-2.0', + 'generic cairo pkg-config file': 'generic cairo-gobject pkg-config file', + '-lcairo': '-lcairo-gobject'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/cairo-gobject.pc', + cairo_gobject_replace_items) + + # Generate a generic .pc file for libxml2, that is just sufficient for our purposes + libxml2_version = '2.9.3' # Use the latest stable version, for now. + libxml2_replace_items = \ + {'Name: cairo': 'Name: libXML', + 'Version: ' + cairo_version: 'Version: ' + libxml2_version, + 'generic cairo pkg-config file': 'generic libXML2 pkg-config file', + '-lcairo': '-llibxml2', + 'Cflags: -I${includedir}': 'Cflags: -I${includedir}/libxml2'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/libxml-2.0.pc', + libxml2_replace_items) + + # Generate a generic .pc file for freetype2, that is just sufficient for our purposes + ft2_version = '2.6.3' # Use the latest stable version, for now. + ft2_replace_items = \ + {'Name: cairo': 'Name: FreeType 2', + 'Version: ' + cairo_version: 'Version: ' + ft2_version, + 'generic cairo pkg-config file': 'generic FreeType2 pkg-config file', + '-lcairo': '-lfreetype'} + replace_multi(base_pc.srcdir + '/cairo.pc', + base_pc.srcdir + '/freetype2.pc', + ft2_replace_items) + if __name__ == '__main__': sys.exit(main(sys.argv)) diff --git a/build/win32/introspection-msvc.mak b/build/win32/introspection-msvc.mak index f6fff49..8739844 100644 --- a/build/win32/introspection-msvc.mak +++ b/build/win32/introspection-msvc.mak @@ -37,6 +37,11 @@ PKG_CONFIG_PATH=$(PREFIX_FULL)\lib\pkgconfig;$(PKG_CONFIG_PATH) PYTHON=python !endif +# Path to the pkg-config tool, if not already in the PATH +!if "$(PKG_CONFIG)" == "" +PKG_CONFIG=pkg-config +!endif + # Don't change anything following this line! GIR_SUBDIR = share\gir-1.0 @@ -56,7 +61,7 @@ ERROR_MSG = BUILD_INTROSPECTION = TRUE !if ![set PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)] \ - && ![pkg-config --print-errors --errors-to-stdout $(CHECK_PACKAGE) > pkgconfig.x] \ + && ![$(PKG_CONFIG) --print-errors --errors-to-stdout $(CHECK_PACKAGE) > pkgconfig.x] \ && ![setlocal] \ && ![set file="pkgconfig.x"] \ && ![FOR %A IN (%file%) DO @echo PKG_CHECK_SIZE=%~zA > pkgconfig.chksize] \ diff --git a/build/win32/pc_base.py b/build/win32/pc_base.py index 80f9884..587ba83 100644 --- a/build/win32/pc_base.py +++ b/build/win32/pc_base.py @@ -26,17 +26,18 @@ class BasePCItems: self.top_srcdir = self.srcdir + '\\..\\..' self.version = '' - def setup(self, argv): - parser = argparse.ArgumentParser(description='Setup basic .pc file info') + def setup(self, argv, parser=None): + if parser is None: + parser = argparse.ArgumentParser(description='Setup basic .pc file info') parser.add_argument('--prefix', help='prefix of the installed library', required=True) - parser.add_argument('--exec-prefix', + parser.add_argument('--exec-prefix', help='prefix of the installed programs, \ if different from the prefix') - parser.add_argument('--includedir', + parser.add_argument('--includedir', help='includedir of the installed library, \ if different from ${prefix}/include') - parser.add_argument('--libdir', + parser.add_argument('--libdir', help='libdir of the installed library, \ if different from ${prefix}/lib') parser.add_argument('--version', help='Version of the package', @@ -49,15 +50,27 @@ class BasePCItems: if not os.path.exists(args.prefix): raise SystemExit('Specified prefix \'%s\' is invalid' % args.prefix) + # use absolute paths for prefix + self.prefix = os.path.abspath(args.prefix).replace('\\','/') + # check and setup the exec_prefix if getattr(args, 'exec_prefix', None) is None: - input_exec_prefix = args.prefix + exec_prefix_use_shorthand = True + self.exec_prefix = '${prefix}' else: - input_exec_prefix = args.exec_prefix - if not os.path.exists(input_exec_prefix): - raise SystemExit('Specified exec-prefix \'%s\' is invalid' % - input_exec_prefix) - + if args.exec_prefix.startswith('${prefix}'): + exec_prefix_use_shorthand = True + input_exec_prefix = args.prefix + args.exec_prefix[len('${prefix}'):] + else: + exec_prefix_use_shorthand = False + input_exec_prefix = args.exec_prefix + if not os.path.exists(input_exec_prefix): + raise SystemExit('Specified exec_prefix \'%s\' is invalid' % + args.exec_prefix) + if exec_prefix_use_shorthand is True: + self.exec_prefix = args.exec_prefix.replace('\\','/') + else: + self.exec_prefix = os.path.abspath(input_exec_prefix).replace('\\','/') # check and setup the includedir if getattr(args, 'includedir', None) is None: @@ -67,8 +80,12 @@ class BasePCItems: includedir_use_shorthand = True input_includedir = args.prefix + args.includedir[len('${prefix}'):] else: - includedir_use_shorthand = False - input_includedir = args.includedir + if args.includedir.startswith('${exec_prefix}'): + includedir_use_shorthand = True + input_includedir = input_exec_prefix + args.includedir[len('${exec_prefix}'):] + else: + includedir_use_shorthand = False + input_includedir = args.includedir if not os.path.exists(input_includedir): raise SystemExit('Specified includedir \'%s\' is invalid' % args.includedir) @@ -85,8 +102,12 @@ class BasePCItems: libdir_use_shorthand = True input_libdir = args.prefix + args.libdir[len('${prefix}'):] else: - libdir_use_shorthand = False - input_libdir = args.libdir + if args.libdir.startswith('${exec_prefix}'): + libdir_use_shorthand = True + input_libdir = input_exec_prefix + args.libdir[len('${exec_prefix}'):] + else: + libdir_use_shorthand = False + input_libdir = args.libdir if not os.path.exists(input_libdir): raise SystemExit('Specified libdir \'%s\' is invalid' % args.libdir) @@ -95,10 +116,6 @@ class BasePCItems: else: self.libdir = os.path.abspath(input_libdir).replace('\\','/') - # use absolute paths for prefix and exec_prefix - self.prefix = os.path.abspath(args.prefix).replace('\\','/') - self.exec_prefix = os.path.abspath(input_exec_prefix).replace('\\','/') - # setup dictionary for replacing items in *.pc.in self.base_replace_items.update({'@VERSION@': self.version}) self.base_replace_items.update({'@prefix@': self.prefix}) diff --git a/build/win32/vs10/Makefile.in b/build/win32/vs10/Makefile.in index 88dcdf2..63794f0 100644 --- a/build/win32/vs10/Makefile.in +++ b/build/win32/vs10/Makefile.in @@ -294,7 +294,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/build/win32/vs10/gi-install.props b/build/win32/vs10/gi-install.props index ef39814..66c3826 100644 --- a/build/win32/vs10/gi-install.props +++ b/build/win32/vs10/gi-install.props @@ -160,8 +160,13 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion) mkdir $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-win32.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig - ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc + ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc $(PythonDir)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) $(PythonDirX64)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) diff --git a/build/win32/vs10/gi-install.propsin b/build/win32/vs10/gi-install.propsin index 1b11298..a8b53f9 100644 --- a/build/win32/vs10/gi-install.propsin +++ b/build/win32/vs10/gi-install.propsin @@ -73,8 +73,13 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion) mkdir $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-win32.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig - ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc + ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc $(PythonDir)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) $(PythonDirX64)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) diff --git a/build/win32/vs10/gi-version-paths.props b/build/win32/vs10/gi-version-paths.props index 69a101b..b41ac1c 100644 --- a/build/win32/vs10/gi-version-paths.props +++ b/build/win32/vs10/gi-version-paths.props @@ -10,7 +10,7 @@ $(PythonDir).x64 PYTHON=$(PythonDir)\python.exe PYTHON=$(PythonDirX64)\python.exe - 1.48.0 + 1.49.1 $(SolutionDir)\..\..\.. 1.0 $(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName) diff --git a/build/win32/vs11/Makefile.in b/build/win32/vs11/Makefile.in index 41015fc..6b1e1fa 100644 --- a/build/win32/vs11/Makefile.in +++ b/build/win32/vs11/Makefile.in @@ -309,7 +309,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/build/win32/vs11/gi-install.props b/build/win32/vs11/gi-install.props index ef39814..66c3826 100644 --- a/build/win32/vs11/gi-install.props +++ b/build/win32/vs11/gi-install.props @@ -160,8 +160,13 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion) mkdir $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-win32.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig - ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc + ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc $(PythonDir)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) $(PythonDirX64)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) diff --git a/build/win32/vs11/gi-version-paths.props b/build/win32/vs11/gi-version-paths.props index a725ceb..ee5c885 100644 --- a/build/win32/vs11/gi-version-paths.props +++ b/build/win32/vs11/gi-version-paths.props @@ -10,7 +10,7 @@ $(PythonDir).x64 PYTHON=$(PythonDir)\python.exe PYTHON=$(PythonDirX64)\python.exe - 1.48.0 + 1.49.1 $(SolutionDir)\..\..\.. 1.0 $(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName) diff --git a/build/win32/vs12/Makefile.in b/build/win32/vs12/Makefile.in index 2e865a8..4da4292 100644 --- a/build/win32/vs12/Makefile.in +++ b/build/win32/vs12/Makefile.in @@ -309,7 +309,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/build/win32/vs12/gi-install.props b/build/win32/vs12/gi-install.props index ef39814..66c3826 100644 --- a/build/win32/vs12/gi-install.props +++ b/build/win32/vs12/gi-install.props @@ -160,8 +160,13 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion) mkdir $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-win32.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig - ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc + ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc $(PythonDir)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) $(PythonDirX64)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) diff --git a/build/win32/vs12/gi-version-paths.props b/build/win32/vs12/gi-version-paths.props index 977d97e..702885f 100644 --- a/build/win32/vs12/gi-version-paths.props +++ b/build/win32/vs12/gi-version-paths.props @@ -10,7 +10,7 @@ $(PythonDir).x64 PYTHON=$(PythonDir)\python.exe PYTHON=$(PythonDirX64)\python.exe - 1.48.0 + 1.49.1 $(SolutionDir)\..\..\.. 1.0 $(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName) diff --git a/build/win32/vs14/Makefile.in b/build/win32/vs14/Makefile.in index df6fa0a..bd3a7d5 100644 --- a/build/win32/vs14/Makefile.in +++ b/build/win32/vs14/Makefile.in @@ -309,7 +309,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/build/win32/vs14/gi-install.props b/build/win32/vs14/gi-install.props index ef39814..66c3826 100644 --- a/build/win32/vs14/gi-install.props +++ b/build/win32/vs14/gi-install.props @@ -160,8 +160,13 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion) mkdir $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-win32.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig - ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc + ..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc $(PythonDir)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) $(PythonDirX64)\python.exe ..\gipc.py --version=$(GIVersion) --prefix=$(CopyDir) diff --git a/build/win32/vs14/gi-version-paths.props b/build/win32/vs14/gi-version-paths.props index 938ea65..20cea15 100644 --- a/build/win32/vs14/gi-version-paths.props +++ b/build/win32/vs14/gi-version-paths.props @@ -10,7 +10,7 @@ $(PythonDir).x64 PYTHON=$(PythonDir)\python.exe PYTHON=$(PythonDirX64)\python.exe - 1.48.0 + 1.49.1 $(SolutionDir)\..\..\.. 1.0 $(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName) diff --git a/build/win32/vs9/Makefile.in b/build/win32/vs9/Makefile.in index a5c4729..ee78e10 100644 --- a/build/win32/vs9/Makefile.in +++ b/build/win32/vs9/Makefile.in @@ -294,7 +294,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/build/win32/vs9/gi-install.vcproj b/build/win32/vs9/gi-install.vcproj index 212bf54..5fd191c 100644 --- a/build/win32/vs9/gi-install.vcproj +++ b/build/win32/vs9/gi-install.vcproj @@ -86,7 +86,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPC)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> @@ -94,7 +94,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPC)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> @@ -102,7 +102,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPCX64)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> @@ -110,7 +110,7 @@ Name="VCCustomBuildTool" Description="Generating .pc files..." CommandLine="$(GIGenPCX64)" - Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc" + Outputs="..\gobject-introspection-1.0.pc;..\gobject-introspection-no-export-1.0.pc;..\cairo.pc;..\cairo-win32.pc;..\cairo-gobject.pc;..\libxml-2.0.pc;..\freetype2.pc" /> diff --git a/build/win32/vs9/gi-install.vsprops b/build/win32/vs9/gi-install.vsprops index 39ac7be..d9a324f 100644 --- a/build/win32/vs9/gi-install.vsprops +++ b/build/win32/vs9/gi-install.vsprops @@ -162,6 +162,11 @@ copy ..\win32-1.0.typelib $(CopyDir)\lib\girepository-$(ApiVersion) mkdir $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-1.0.pc $(CopyDir)\lib\pkgconfig copy ..\gobject-introspection-no-export-1.0.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-win32.pc $(CopyDir)\lib\pkgconfig +copy ..\cairo-gobject.pc $(CopyDir)\lib\pkgconfig +copy ..\libxml-2.0.pc $(CopyDir)\lib\pkgconfig +copy ..\freetype2.pc $(CopyDir)\lib\pkgconfig " /> . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='gobject-introspection' PACKAGE_TARNAME='gobject-introspection' -PACKAGE_VERSION='1.48.0' -PACKAGE_STRING='gobject-introspection 1.48.0' +PACKAGE_VERSION='1.49.1' +PACKAGE_STRING='gobject-introspection 1.49.1' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection' PACKAGE_URL='' @@ -817,7 +817,6 @@ infodir docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -933,7 +932,6 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1186,15 +1184,6 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1332,7 +1321,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1445,7 +1434,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gobject-introspection 1.48.0 to adapt to many kinds of systems. +\`configure' configures gobject-introspection 1.49.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1485,7 +1474,6 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1517,7 +1505,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gobject-introspection 1.48.0:";; + short | recursive ) echo "Configuration of gobject-introspection 1.49.1:";; esac cat <<\_ACEOF @@ -1679,7 +1667,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gobject-introspection configure 1.48.0 +gobject-introspection configure 1.49.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2231,7 +2219,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gobject-introspection $as_me 1.48.0, which was +It was created by gobject-introspection $as_me 1.49.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3099,7 +3087,7 @@ fi # Define the identity of the package. PACKAGE='gobject-introspection' - VERSION='1.48.0' + VERSION='1.49.1' cat >>confdefs.h <<_ACEOF @@ -3373,7 +3361,7 @@ AM_BACKSLASH='\' # Used in docs/reference/version.xml -GI_VERSION=1.48.0 +GI_VERSION=1.49.1 # Check for Win32 @@ -5748,7 +5736,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -9441,9 +9429,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; esac ld_shlibs=yes @@ -9698,7 +9683,7 @@ _LT_EOF fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -10368,7 +10353,6 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi - link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -10390,7 +10374,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -11485,6 +11469,9 @@ fi # before this can be enabled. hardcode_into_libs=yes + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command @@ -11493,7 +11480,7 @@ fi # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -11505,18 +11492,6 @@ fi dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no @@ -13156,12 +13131,12 @@ if test -n "$GLIB_CFLAGS"; then pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.48.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.48.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.49.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.49.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.48.0" 2>/dev/null` + pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.49.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13173,12 +13148,12 @@ if test -n "$GLIB_LIBS"; then pkg_cv_GLIB_LIBS="$GLIB_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.48.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.48.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.49.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.49.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.48.0" 2>/dev/null` + pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.49.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13199,14 +13174,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.48.0" 2>&1` + GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.49.4" 2>&1` else - GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.48.0" 2>&1` + GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.49.4" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIB_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (glib-2.0 >= 2.48.0) were not met: + as_fn_error $? "Package requirements (glib-2.0 >= 2.49.4) were not met: $GLIB_PKG_ERRORS @@ -16046,7 +16021,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gobject-introspection $as_me 1.48.0, which was +This file was extended by gobject-introspection $as_me 1.49.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16112,7 +16087,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gobject-introspection config.status 1.48.0 +gobject-introspection config.status 1.49.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 6c91fa5..0d837b8 100644 --- a/configure.ac +++ b/configure.ac @@ -3,8 +3,8 @@ dnl the gi version number m4_define(gi_major_version, 1) -m4_define(gi_minor_version, 48) -m4_define(gi_micro_version, 0) +m4_define(gi_minor_version, 49) +m4_define(gi_micro_version, 1) m4_define(gi_version, gi_major_version.gi_minor_version.gi_micro_version) AC_PREREQ([2.63]) @@ -128,7 +128,7 @@ GIR_DIR="$EXPANDED_DATADIR/$GIR_SUFFIX" AC_SUBST(GIR_DIR) AC_DEFINE_UNQUOTED(GIR_DIR, "$GIR_DIR", [Director prefix for gir installation]) -PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.48.0]) +PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.49.4]) PKG_CHECK_MODULES(GOBJECT, [gobject-2.0]) PKG_CHECK_MODULES(GMODULE, [gmodule-2.0]) PKG_CHECK_MODULES(GIO, [gio-2.0]) diff --git a/docs/Makefile.in b/docs/Makefile.in index 283da6c..b22ebe8 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -353,7 +353,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/docs/reference/Makefile.in b/docs/reference/Makefile.in index 7ff2e29..0a98eb3 100644 --- a/docs/reference/Makefile.in +++ b/docs/reference/Makefile.in @@ -300,7 +300,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/docs/reference/html/GIRepository.html b/docs/reference/html/GIRepository.html index 7715b1f..e0755a7 100644 --- a/docs/reference/html/GIRepository.html +++ b/docs/reference/html/GIRepository.html @@ -8,7 +8,7 @@ - + @@ -50,7 +50,7 @@ -gchar ** +gchar ** g_irepository_get_dependencies () @@ -58,7 +58,7 @@ -gchar ** +gchar ** g_irepository_get_immediate_dependencies () @@ -66,7 +66,7 @@ -gchar ** +gchar ** g_irepository_get_loaded_namespaces () @@ -74,7 +74,7 @@ -gint +gint g_irepository_get_n_infos () @@ -90,7 +90,7 @@ -GOptionGroup * +GOptionGroup * g_irepository_get_option_group () @@ -98,7 +98,7 @@ -GList * +GList * g_irepository_enumerate_versions () @@ -122,7 +122,7 @@ -GSList * +GSList * g_irepository_get_search_path () @@ -136,7 +136,7 @@ -const gchar * +const gchar * g_irepository_get_typelib_path () @@ -144,7 +144,7 @@ -gboolean +gboolean g_irepository_is_registered () @@ -167,21 +167,21 @@ -const gchar * +const gchar * g_irepository_get_c_prefix () -const gchar * +const gchar * g_irepository_get_shared_library () -const gchar * +const gchar * g_irepository_get_version () @@ -213,7 +213,7 @@ -gboolean +gboolean g_irepository_dump () @@ -259,7 +259,7 @@

Object Hierarchy

-
    GObject
+
    GObject
     ╰── GIRepository
 
@@ -285,7 +285,7 @@ particular process, but this function is provided in the unlikely eventuality that it would become possible, and as a convenience for higher level language bindings to conform to the GObject method call conventions.

-

All methods on GIRepository also accept NULL as an instance +

All methods on GIRepository also accept NULL as an instance parameter to mean this default repository, which is usually more convenient for C.

@@ -297,9 +297,9 @@ convenient for C.


g_irepository_get_dependencies ()

-
gchar **
+
gchar **
 g_irepository_get_dependencies (GIRepository *repository,
-                                const gchar *namespace_);
+ const gchar *namespace_);

Return an array of all (transitive) versioned dependencies for namespace_ . Returned strings are of the form

@@ -321,7 +321,7 @@ such as

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -343,10 +343,10 @@ dependencies.


g_irepository_get_immediate_dependencies ()

-
gchar **
+
gchar **
 g_irepository_get_immediate_dependencies
                                (GIRepository *repository,
-                                const gchar *namespace_);
+ const gchar *namespace_);

Return an array of the immediate versioned dependencies for namespace_ . Returned strings are of the form namespace-version.

@@ -367,7 +367,7 @@ such as

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[nullable] @@ -390,7 +390,7 @@ dependencies.


g_irepository_get_loaded_namespaces ()

-
gchar **
+
gchar **
 g_irepository_get_loaded_namespaces (GIRepository *repository);

Return the list of currently loaded namespaces.

@@ -403,7 +403,7 @@ g_irepository_get_loaded_namespaces (

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -418,9 +418,9 @@ process-global default

g_irepository_get_n_infos ()

-
gint
+
gint
 g_irepository_get_n_infos (GIRepository *repository,
-                           const gchar *namespace_);
+ const gchar *namespace_);

This function returns the number of metadata entries in given namespace namespace_ . The namespace must have @@ -436,7 +436,7 @@ already been loaded before calling this function.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -458,8 +458,8 @@ process-global default

g_irepository_get_info ()

GIBaseInfo *
 g_irepository_get_info (GIRepository *repository,
-                        const gchar *namespace_,
-                        gint index);
+ const gchar *namespace_, + gint index);

This function returns a particular metadata entry in the given namespace namespace_ . The namespace must have @@ -477,7 +477,7 @@ entries.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -503,7 +503,7 @@ process-global default

g_irepository_get_option_group ()

-
GOptionGroup *
+
GOptionGroup *
 g_irepository_get_option_group (void);

Obtain the option group for girepository, it's used by the dumper and for programs that wants to provide @@ -518,9 +518,9 @@ introspection information


g_irepository_enumerate_versions ()

-
GList *
+
GList *
 g_irepository_enumerate_versions (GIRepository *repository,
-                                  const gchar *namespace_);
+ const gchar *namespace_);

Obtain an unordered list of versions (either currently loaded or available) for namespace_ in this repository @@ -536,7 +536,7 @@ available) for namespace_

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -616,14 +616,14 @@ search path.


g_irepository_get_search_path ()

-
GSList *
+
GSList *
 g_irepository_get_search_path (void);

Returns the current search path GIRepository will use when loading typelib files. The list is internal to GIRespository and should not be freed, nor should its string elements.

Returns

-

GSList of strings.

+

GSList of strings.

[element-type filename][transfer none]

@@ -634,7 +634,7 @@ be freed, nor should its string elements.

g_irepository_load_typelib (GIRepository *repository, GITypelib *typelib, GIRepositoryLoadFlags flags, - GError **error);
+ GError **error);

TODO

Parameters

@@ -647,7 +647,7 @@ g_irepository_load_typelib (

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -673,9 +673,9 @@ process-global default

g_irepository_get_typelib_path ()

-
const gchar *
+
const gchar *
 g_irepository_get_typelib_path (GIRepository *repository,
-                                const gchar *namespace_);
+ const gchar *namespace_);

If namespace namespace_ is loaded, return the full path to the .typelib file it was loaded from. If the typelib for @@ -693,7 +693,7 @@ the special string "<builtin>".

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -707,16 +707,16 @@ process-global default

Returns

-

Filesystem path (or $lt;builtin$gt;) if successful, NULL if namespace is not loaded

+

Filesystem path (or $lt;builtin$gt;) if successful, NULL if namespace is not loaded


g_irepository_is_registered ()

-
gboolean
+
gboolean
 g_irepository_is_registered (GIRepository *repository,
-                             const gchar *namespace_,
-                             const gchar *version);
+ const gchar *namespace_, + const gchar *version);

Check whether a particular namespace (and optionally, a specific version thereof) is currently loaded. This function is likely to only be useful in unusual circumstances; in order to act upon @@ -734,7 +734,7 @@ quickly as this function will if it has already been loaded.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -745,7 +745,7 @@ process-global default

version

-

Required version, may be NULL for latest.

+

Required version, may be NULL for latest.

[allow-none] @@ -753,7 +753,7 @@ process-global default

Returns

-

TRUE if namespace-version is loaded, FALSE otherwise

+

TRUE if namespace-version is loaded, FALSE otherwise


@@ -761,10 +761,10 @@ process-global default

g_irepository_require ()

GITypelib *
 g_irepository_require (GIRepository *repository,
-                       const gchar *namespace_,
-                       const gchar *version,
+                       const gchar *namespace_,
+                       const gchar *version,
                        GIRepositoryLoadFlags flags,
-                       GError **error);
+ GError **error);

Force the namespace namespace_ to be loaded if it isn't already. If namespace_ @@ -785,7 +785,7 @@ not specified, the latest will be used.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -796,7 +796,7 @@ process-global default

version

-

Version of namespace, may be NULL for latest.

+

Version of namespace, may be NULL for latest.

[allow-none] @@ -806,7 +806,7 @@ process-global default

error

-

a GError.

+

a GError.

  @@ -814,7 +814,7 @@ process-global default

Returns

-

a pointer to the GITypelib if successful, NULL otherwise.

+

a pointer to the GITypelib if successful, NULL otherwise.

[transfer none]

@@ -823,11 +823,11 @@ process-global default

g_irepository_require_private ()

GITypelib *
 g_irepository_require_private (GIRepository *repository,
-                               const gchar *typelib_dir,
-                               const gchar *namespace_,
-                               const gchar *version,
+                               const gchar *typelib_dir,
+                               const gchar *namespace_,
+                               const gchar *version,
                                GIRepositoryLoadFlags flags,
-                               GError **error);
+ GError **error);

Force the namespace namespace_ to be loaded if it isn't already. If namespace_ @@ -848,7 +848,7 @@ not specified, the latest will be used.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -864,7 +864,7 @@ process-global default

version

-

Version of namespace, may be NULL for latest.

+

Version of namespace, may be NULL for latest.

[allow-none] @@ -874,7 +874,7 @@ process-global default

error

-

a GError.

+

a GError.

  @@ -882,19 +882,19 @@ process-global default

Returns

-

a pointer to the GITypelib if successful, NULL otherwise.

+

a pointer to the GITypelib if successful, NULL otherwise.

[transfer none]


g_irepository_get_c_prefix ()

-
const gchar *
+
const gchar *
 g_irepository_get_c_prefix (GIRepository *repository,
-                            const gchar *namespace_);
+ const gchar *namespace_);

This function returns the "C prefix", or the C level namespace associated with the given introspection namespace. Each C symbol -starts with this prefix, as well each GType in the library.

+starts with this prefix, as well each GType in the library.

Note: The namespace must have already been loaded using a function such as g_irepository_require() before calling this function.

@@ -908,7 +908,7 @@ such as

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -922,20 +922,20 @@ process-global default

Returns

-

C namespace prefix, or NULL if none associated

+

C namespace prefix, or NULL if none associated


g_irepository_get_shared_library ()

-
const gchar *
+
const gchar *
 g_irepository_get_shared_library (GIRepository *repository,
-                                  const gchar *namespace_);
+ const gchar *namespace_);

This function returns a comma-separated list of paths to the shared C libraries associated with the given namespace namespace_ . There may be no shared library path associated, in which case this -function will return NULL.

+function will return NULL.

Note: The namespace must have already been loaded using a function such as g_irepository_require() before calling this function.

@@ -949,7 +949,7 @@ such as

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -964,15 +964,15 @@ process-global default

Returns

Comma-separated list of paths to shared libraries, -or NULL if none are associated

+or NULL if none are associated


g_irepository_get_version ()

-
const gchar *
+
const gchar *
 g_irepository_get_version (GIRepository *repository,
-                           const gchar *namespace_);
+ const gchar *namespace_);

This function returns the loaded version associated with the given namespace namespace_ .

@@ -989,7 +989,7 @@ such as

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -1011,8 +1011,8 @@ process-global default

g_irepository_find_by_gtype ()

GIBaseInfo *
 g_irepository_find_by_gtype (GIRepository *repository,
-                             GType gtype);
-

Searches all loaded namespaces for a particular GType. Note that + GType gtype); +

Searches all loaded namespaces for a particular GType. Note that in order to locate the metadata, the namespace corresponding to the type must first have been loaded. There is currently no mechanism for determining the namespace which corresponds to an @@ -1029,7 +1029,7 @@ when you know the GType to originate from be from a loaded namespace.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -1044,7 +1044,7 @@ process-global default

Returns

GIBaseInfo representing metadata about type -, or NULL.

+, or NULL.

[transfer full]

@@ -1053,8 +1053,8 @@ process-global default

g_irepository_find_by_error_domain ()

GIEnumInfo *
 g_irepository_find_by_error_domain (GIRepository *repository,
-                                    GQuark domain);
-

Searches for the enum type corresponding to the given GError + GQuark domain); +

Searches for the enum type corresponding to the given GError domain. Before calling this function for a particular namespace, you must call g_irepository_require() once to load the namespace, or otherwise ensure the namespace has already been loaded.

@@ -1069,13 +1069,13 @@ otherwise ensure the namespace has already been loaded.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none]

domain

-

a GError domain

+

a GError domain

  @@ -1085,7 +1085,7 @@ process-global default

Returns

GIEnumInfo representing metadata about domain 's -enum type, or NULL.

+enum type, or NULL.

[transfer full]

Since: 1.29.17

@@ -1095,8 +1095,8 @@ enum type, or

g_irepository_find_by_name ()

GIBaseInfo *
 g_irepository_find_by_name (GIRepository *repository,
-                            const gchar *namespace_,
-                            const gchar *name);
+ const gchar *namespace_, + const gchar *name);

Searches for a particular entry in a namespace. Before calling this function for a particular namespace, you must call g_irepository_require() once to load the namespace, or otherwise @@ -1112,7 +1112,7 @@ ensure the namespace has already been loaded.

repository

-

A GIRepository or NULL for the singleton +

A GIRepository or NULL for the singleton process-global default GIRepository.

[allow-none] @@ -1132,16 +1132,16 @@ process-global default

Returns

GIBaseInfo representing metadata about name -, or NULL.

+, or NULL.

[transfer full]


g_irepository_dump ()

-
gboolean
+
gboolean
 g_irepository_dump (const char *arg,
-                    GError **error);
+ GError **error);

Argument specified is a comma-separated pair of filenames; i.e. of the form "input.txt,output.xml". The input file should be a UTF-8 Unix-line-ending text file, with each line containing either @@ -1166,7 +1166,7 @@ overwrite its contents.

error

-

a GError

+

a GError

  @@ -1174,19 +1174,19 @@ overwrite its contents.

Returns

-

TRUE on success, FALSE on error

+

TRUE on success, FALSE on error


gi_cclosure_marshal_generic ()

void
-gi_cclosure_marshal_generic (GClosure *closure,
-                             GValue *return_gvalue,
-                             guint n_param_values,
-                             const GValue *param_values,
-                             gpointer invocation_hint,
-                             gpointer marshal_data);
+gi_cclosure_marshal_generic (GClosure *closure, + GValue *return_gvalue, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data);

TODO

Parameters

@@ -1268,13 +1268,13 @@ accessed using the provided API.

#define G_IREPOSITORY_ERROR (g_irepository_error_quark ())
 

Error domain for GIRepository. Errors in this domain will be from the -GIRepositoryError enumeration. See GError for more information on +GIRepositoryError enumeration. See GError for more information on error domains.


enum GIRepositoryError

-

An error code used with G_IREPOSITORY_ERROR in a GError returned +

An error code used with G_IREPOSITORY_ERROR in a GError returned from a GIRepository routine.

Members

@@ -1323,6 +1323,6 @@ from a
+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/annotation-glossary.html b/docs/reference/html/annotation-glossary.html index 433fbf7..d812b79 100644 --- a/docs/reference/html/annotation-glossary.html +++ b/docs/reference/html/annotation-glossary.html @@ -7,7 +7,7 @@ - + @@ -65,6 +65,6 @@ justifications.

Override the parsed C type with given type.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/api-index-1-29-0.html b/docs/reference/html/api-index-1-29-0.html index 88fce43..7528f4d 100644 --- a/docs/reference/html/api-index-1-29-0.html +++ b/docs/reference/html/api-index-1-29-0.html @@ -8,7 +8,7 @@ - + @@ -29,6 +29,6 @@
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/api-index-1-29-17.html b/docs/reference/html/api-index-1-29-17.html index 3fc3435..252631c 100644 --- a/docs/reference/html/api-index-1-29-17.html +++ b/docs/reference/html/api-index-1-29-17.html @@ -8,7 +8,7 @@ - + @@ -44,6 +44,6 @@
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/api-index-1-30-1.html b/docs/reference/html/api-index-1-30-1.html index fbf2f0c..0f3d958 100644 --- a/docs/reference/html/api-index-1-30-1.html +++ b/docs/reference/html/api-index-1-30-1.html @@ -8,7 +8,7 @@ - + @@ -29,6 +29,6 @@
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/api-index-1-34.html b/docs/reference/html/api-index-1-34.html index 4c78a45..5ccaeae 100644 --- a/docs/reference/html/api-index-1-34.html +++ b/docs/reference/html/api-index-1-34.html @@ -8,7 +8,7 @@ - + @@ -40,6 +40,6 @@
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/api-index-1-35-8.html b/docs/reference/html/api-index-1-35-8.html index 513a2f8..3f45df2 100644 --- a/docs/reference/html/api-index-1-35-8.html +++ b/docs/reference/html/api-index-1-35-8.html @@ -8,7 +8,7 @@ - + @@ -29,6 +29,6 @@
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/api-index-deprecated.html b/docs/reference/html/api-index-deprecated.html index 223569f..0522813 100644 --- a/docs/reference/html/api-index-deprecated.html +++ b/docs/reference/html/api-index-deprecated.html @@ -8,7 +8,7 @@ - + @@ -25,6 +25,6 @@
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/api-index-full.html b/docs/reference/html/api-index-full.html index 43dea9a..f5339de 100644 --- a/docs/reference/html/api-index-full.html +++ b/docs/reference/html/api-index-full.html @@ -8,7 +8,7 @@ - + @@ -1239,6 +1239,6 @@
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/ch01.html b/docs/reference/html/ch01.html index 86a2a03..be2a70d 100644 --- a/docs/reference/html/ch01.html +++ b/docs/reference/html/ch01.html @@ -8,7 +8,7 @@ - + @@ -89,6 +89,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/ch03.html b/docs/reference/html/ch03.html index 04c63d8..0d0989b 100644 --- a/docs/reference/html/ch03.html +++ b/docs/reference/html/ch03.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIArgInfo.html b/docs/reference/html/gi-GIArgInfo.html index 043b049..ce1dd67 100644 --- a/docs/reference/html/gi-GIArgInfo.html +++ b/docs/reference/html/gi-GIArgInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@ -gint +gint g_arg_info_get_closure () @@ -55,7 +55,7 @@ -gint +gint g_arg_info_get_destroy () @@ -103,7 +103,7 @@ -gboolean +gboolean g_arg_info_may_be_null () @@ -111,7 +111,7 @@ -gboolean +gboolean g_arg_info_is_caller_allocates () @@ -119,7 +119,7 @@ -gboolean +gboolean g_arg_info_is_optional () @@ -127,7 +127,7 @@ -gboolean +gboolean g_arg_info_is_return_value () @@ -135,7 +135,7 @@ -gboolean +gboolean g_arg_info_is_skip () @@ -209,7 +209,7 @@ part of a

g_arg_info_get_closure ()

-
gint
+
gint
 g_arg_info_get_closure (GIArgInfo *info);

Obtain the index of the user data argument. This is only valid for arguments which are callbacks.

@@ -236,9 +236,9 @@ for arguments which are callbacks.


g_arg_info_get_destroy ()

-
gint
+
gint
 g_arg_info_get_destroy (GIArgInfo *info);
-

Obtains the index of the GDestroyNotify argument. This is only valid +

Obtains the index of the GDestroyNotify argument. This is only valid for arguments which are callbacks.

Parameters

@@ -257,7 +257,7 @@ for arguments which are callbacks.

Returns

-

index of the GDestroyNotify argument or -1 if there is none

+

index of the GDestroyNotify argument or -1 if there is none


@@ -414,11 +414,11 @@ allocation.


g_arg_info_may_be_null ()

-
gboolean
+
gboolean
 g_arg_info_may_be_null (GIArgInfo *info);
-

Obtain if the type of the argument includes the possibility of NULL. -For 'in' values this means that NULL is a valid value. For 'out' -values, this means that NULL may be returned.

+

Obtain if the type of the argument includes the possibility of NULL. +For 'in' values this means that NULL is a valid value. For 'out' +values, this means that NULL may be returned.

See also g_arg_info_is_optional().

Parameters

@@ -437,18 +437,18 @@ values, this means that

Returns

-

TRUE if the value may be NULL

+

TRUE if the value may be NULL


g_arg_info_is_caller_allocates ()

-
gboolean
+
gboolean
 g_arg_info_is_caller_allocates (GIArgInfo *info);

Obtain if the argument is a pointer to a struct or object that will receive an output of a function. The default assumption for GI_DIRECTION_OUT arguments which have allocation is that the -callee allocates; if this is TRUE, then the caller must allocate.

+callee allocates; if this is TRUE, then the caller must allocate.

Parameters

@@ -466,16 +466,16 @@ callee allocates; if this is

Returns

-

TRUE if caller is required to have allocated the argument

+

TRUE if caller is required to have allocated the argument


g_arg_info_is_optional ()

-
gboolean
+
gboolean
 g_arg_info_is_optional (GIArgInfo *info);

Obtain if the argument is optional. For 'out' arguments this means -that you can pass NULL in order to ignore the result.

+that you can pass NULL in order to ignore the result.

Parameters

@@ -493,13 +493,13 @@ that you can pass

Returns

-

TRUE if it is an optional argument

+

TRUE if it is an optional argument


g_arg_info_is_return_value ()

-
gboolean
+
gboolean
 g_arg_info_is_return_value (GIArgInfo *info);

Obtain if the argument is a return value. It can either be a parameter or a return value.

@@ -520,13 +520,13 @@ parameter or a return value.

Returns

-

TRUE if it is a return value

+

TRUE if it is a return value


g_arg_info_is_skip ()

-
gboolean
+
gboolean
 g_arg_info_is_skip (GIArgInfo *info);

Obtain if an argument is only useful in C.

@@ -546,7 +546,7 @@ g_arg_info_is_skip (

Returns

-

TRUE if argument is only useful in C.

+

TRUE if argument is only useful in C.

Since: 1.29.0

@@ -686,7 +686,7 @@ up the resources of this transfer.

transfer the container (list, array, hash table) from the callee to the caller. The callee retains the ownership of the individual items in the container and the caller has to free up the container resources -(g_list_free()/g_hash_table_destroy() etc) of this transfer.

+(g_list_free()/g_hash_table_destroy() etc) of this transfer.

@@ -707,6 +707,6 @@ cleaning up the container and item resources of this transfer.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIBaseInfo.html b/docs/reference/html/gi-GIBaseInfo.html index 003eb75..7a3af5c 100644 --- a/docs/reference/html/gi-GIBaseInfo.html +++ b/docs/reference/html/gi-GIBaseInfo.html @@ -8,7 +8,7 @@ - + @@ -65,7 +65,7 @@
- - - - @@ -219,7 +219,7 @@ GIBaseInfos are normally accessed by calling either g_info_new (GIInfoType type, GIBaseInfo *container, GITypelib *typelib, - guint32 offset); + guint32 offset);

TODO

Parameters

@@ -315,7 +315,7 @@ drops to 0, the info is freed.


g_base_info_equal ()

-
gboolean
+
gboolean
 g_base_info_equal (GIBaseInfo *info1,
                    GIBaseInfo *info2);

Compare two GIBaseInfo.

@@ -346,7 +346,7 @@ TypeLib; use this function instead to do GIBaseInfo co

Returns

-

TRUE if and only if info1 +

TRUE if and only if info1 equals info2 .

@@ -409,7 +409,7 @@ g_base_info_get_typelib (GIBaseIn

g_base_info_get_namespace ()

-
const gchar *
+
const gchar *
 g_base_info_get_namespace (GIBaseInfo *info);

Obtain the namespace of info .

@@ -436,7 +436,7 @@ g_base_info_get_namespace (GIBase

g_base_info_get_name ()

-
const gchar *
+
const gchar *
 g_base_info_get_name (GIBaseInfo *info);

Obtain the name of the info . What the name represents depends on @@ -461,15 +461,15 @@ the name of the function.

Returns

the name of info -or NULL if it lacks a name.

+or NULL if it lacks a name.


g_base_info_get_attribute ()

-
const gchar *
+
const gchar *
 g_base_info_get_attribute (GIBaseInfo *info,
-                           const gchar *name);
+ const gchar *name);

Retrieve an arbitrary attribute associated with this node.

Parameters

@@ -495,20 +495,20 @@ g_base_info_get_attribute (GIBase

Returns

-

The value of the attribute, or NULL if no such attribute exists

+

The value of the attribute, or NULL if no such attribute exists


g_base_info_iterate_attributes ()

-
gboolean
+
gboolean
 g_base_info_iterate_attributes (GIBaseInfo *info,
                                 GIAttributeIter *iterator,
                                 char **name,
                                 char **value);

Iterate over all attributes associated with this node. The iterator structure is typically stack allocated, and must have its first -member initialized to NULL. Attributes are arbitrary namespaced key–value +member initialized to NULL. Attributes are arbitrary namespaced key–value pairs which can be attached to almost any item. They are intended for use by software higher in the toolchain than bindings, and are distinct from normal GIR annotations.

@@ -541,7 +541,7 @@ and must not be freed.

char *value; while (g_base_info_iterate_attributes (info, &iter, &name, &value)) { - g_print ("attribute name: %s value: %s", name, value); + g_print ("attribute name: %s value: %s", name, value); } }
@@ -584,7 +584,7 @@ and must not be freed.

Returns

-

TRUE if there are more attributes

+

TRUE if there are more attributes


@@ -620,7 +620,7 @@ GIBaseInfo. For instance, the parent of a

g_base_info_is_deprecated ()

-
gboolean
+
gboolean
 g_base_info_is_deprecated (GIBaseInfo *info);

Obtain whether the info is represents a metadata which is @@ -642,7 +642,7 @@ deprecated or not.

Returns

-

TRUE if deprecated

+

TRUE if deprecated

@@ -817,6 +817,6 @@ in a GIBaseInfo struct.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GICallableInfo.html b/docs/reference/html/gi-GICallableInfo.html index 8c4e2dc..a41b57f 100644 --- a/docs/reference/html/gi-GICallableInfo.html +++ b/docs/reference/html/gi-GICallableInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@
-
 
-gboolean +gboolean g_base_info_equal () @@ -88,21 +88,21 @@
const gchar * +const gchar * g_base_info_get_namespace ()
const gchar * +const gchar * g_base_info_get_name ()
const gchar * +const gchar * g_base_info_get_attribute () @@ -110,7 +110,7 @@
-gboolean +gboolean g_base_info_iterate_attributes () @@ -126,7 +126,7 @@
-gboolean +gboolean g_base_info_is_deprecated () @@ -188,7 +188,7 @@ GIBaseInfos are normally accessed by calling either
1
 2
 3
GIBaseInfo *button_info = g_irepository_find_by_name(NULL, "Gtk", "Button");
+        
GIBaseInfo *button_info = g_irepository_find_by_name(NULL, "Gtk", "Button");
 ... use button_info ...
 g_base_info_unref(button_info);
-gboolean +gboolean g_callable_info_can_throw_gerror () @@ -55,7 +55,7 @@
-gint +gint g_callable_info_get_n_args () @@ -78,7 +78,7 @@
const gchar * +const gchar * g_callable_info_get_return_attribute () @@ -94,7 +94,7 @@
-gboolean +gboolean g_callable_info_invoke () @@ -102,7 +102,7 @@
-gboolean +gboolean g_callable_info_is_method () @@ -110,7 +110,7 @@
-gboolean +gboolean g_callable_info_iterate_return_attributes () @@ -134,7 +134,7 @@
-gboolean +gboolean g_callable_info_may_return_null () @@ -142,7 +142,7 @@
-gboolean +gboolean g_callable_info_skip_return () @@ -208,7 +208,7 @@ direction and a flag which decides if it returns null.


g_callable_info_can_throw_gerror ()

-
gboolean
+
gboolean
 g_callable_info_can_throw_gerror (GICallableInfo *info);

TODO

@@ -228,14 +228,14 @@ g_callable_info_can_throw_gerror (

Returns

-

TRUE if this GICallableInfo can throw a GError

+

TRUE if this GICallableInfo can throw a GError

Since: 1.34


g_callable_info_get_n_args ()

-
gint
+
gint
 g_callable_info_get_n_args (GICallableInfo *info);

Obtain the number of arguments (both IN and OUT) for this callable.

@@ -263,7 +263,7 @@ g_callable_info_get_n_args (

g_callable_info_get_arg ()

GIArgInfo *
 g_callable_info_get_arg (GICallableInfo *info,
-                         gint n);
+ gint n);

Obtain information about a particular argument of this callable.

Parameters

@@ -318,15 +318,15 @@ g_callable_info_get_caller_owns (

Returns

-

TRUE if the caller owns the return value, FALSE otherwise.

+

the transfer mode for the return value of the callable


g_callable_info_get_return_attribute ()

-
const gchar *
+
const gchar *
 g_callable_info_get_return_attribute (GICallableInfo *info,
-                                      const gchar *name);
+ const gchar *name);

Retrieve an arbitrary attribute associated with the return value.

Parameters

@@ -352,7 +352,7 @@ g_callable_info_get_return_attribute (

Returns

-

The value of the attribute, or NULL if no such attribute exists

+

The value of the attribute, or NULL if no such attribute exists


@@ -386,17 +386,17 @@ g_callable_info_get_return_type (

g_callable_info_invoke ()

-
gboolean
+
gboolean
 g_callable_info_invoke (GICallableInfo *info,
-                        gpointer function,
+                        gpointer function,
                         const GIArgument *in_args,
                         int n_in_args,
                         const GIArgument *out_args,
                         int n_out_args,
                         GIArgument *return_value,
-                        gboolean is_method,
-                        gboolean throws,
-                        GError **error);
+ gboolean is_method, + gboolean throws, + GError **error);

TODO

Parameters

@@ -464,7 +464,7 @@ g_callable_info_invoke (

g_callable_info_is_method ()

-
gboolean
+
gboolean
 g_callable_info_is_method (GICallableInfo *info);

Determines if the callable info is a method. For GIVFuncInfos, GICallbackInfos, and GISignalInfos, @@ -491,15 +491,15 @@ or "this" object.

Returns

-

TRUE if info -is a method, FALSE otherwise

+

TRUE if info +is a method, FALSE otherwise

Since: 1.34


g_callable_info_iterate_return_attributes ()

-
gboolean
+
gboolean
 g_callable_info_iterate_return_attributes
                                (GICallableInfo *info,
                                 GIAttributeIter *iterator,
@@ -507,7 +507,7 @@ g_callable_info_iterate_return_attributes
                                 char **value);

Iterate over all attributes associated with the return value. The iterator structure is typically stack allocated, and must have its -first member initialized to NULL.

+first member initialized to NULL.

Both the name and value should be treated as constants @@ -548,7 +548,7 @@ similar API.

Returns

-

TRUE if there are more attributes

+

TRUE if there are more attributes


@@ -556,7 +556,7 @@ similar API.

g_callable_info_load_arg ()

void
 g_callable_info_load_arg (GICallableInfo *info,
-                          gint n,
+                          gint n,
                           GIArgInfo *arg);

Obtain information about a particular argument of this callable; this function is a variant of g_callable_info_get_arg() designed for stack @@ -632,9 +632,9 @@ allocation.


g_callable_info_may_return_null ()

-
gboolean
+
gboolean
 g_callable_info_may_return_null (GICallableInfo *info);
-

See if a callable could return NULL.

+

See if a callable could return NULL.

Parameters

@@ -652,13 +652,13 @@ g_callable_info_may_return_null (

Returns

-

TRUE if callable could return NULL

+

TRUE if callable could return NULL


g_callable_info_skip_return ()

-
gboolean
+
gboolean
 g_callable_info_skip_return (GICallableInfo *info);

See if a callable's return value is only useful in C.

@@ -678,7 +678,7 @@ g_callable_info_skip_return (

Returns

-

TRUE if return value is only useful in C.

+

TRUE if return value is only useful in C.

@@ -694,6 +694,6 @@ g_callable_info_skip_return ( -
Generated by GTK-Doc V1.24.1 +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GICallbackInfo.html b/docs/reference/html/gi-GICallbackInfo.html index c6a0130..af4214b 100644 --- a/docs/reference/html/gi-GICallbackInfo.html +++ b/docs/reference/html/gi-GICallbackInfo.html @@ -8,7 +8,7 @@ - + @@ -73,6 +73,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIConstantInfo.html b/docs/reference/html/gi-GIConstantInfo.html index 22e957a..b10d9ce 100644 --- a/docs/reference/html/gi-GIConstantInfo.html +++ b/docs/reference/html/gi-GIConstantInfo.html @@ -8,7 +8,7 @@ - + @@ -63,7 +63,7 @@
- -
-gint +gint g_constant_info_get_value () @@ -184,7 +184,7 @@ g_constant_info_get_type (

g_constant_info_get_value ()

-
gint
+
gint
 g_constant_info_get_value (GIConstantInfo *info,
                            GIArgument *value);

Obtain the value associated with the GIConstantInfo and store it in the @@ -234,6 +234,6 @@ Free the value with -


Generated by GTK-Doc V1.24.1 +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIEnumInfo.html b/docs/reference/html/gi-GIEnumInfo.html index d8d9cfc..15ebeb4 100644 --- a/docs/reference/html/gi-GIEnumInfo.html +++ b/docs/reference/html/gi-GIEnumInfo.html @@ -8,7 +8,7 @@ - + @@ -53,7 +53,7 @@
-gint +gint g_enum_info_get_n_values () @@ -69,7 +69,7 @@
-gint +gint g_enum_info_get_n_methods () @@ -92,7 +92,7 @@
const gchar * +const gchar * g_enum_info_get_error_domain () @@ -100,7 +100,7 @@
-gint64 +gint64 g_value_info_get_value () @@ -184,7 +184,7 @@ The GIValueInfo is fetched by calling

g_enum_info_get_n_values ()

-
gint
+
gint
 g_enum_info_get_n_values (GIEnumInfo *info);

Obtain the number of values this enumeration contains.

@@ -212,7 +212,7 @@ g_enum_info_get_n_values (

g_enum_info_get_value ()

GIValueInfo *
 g_enum_info_get_value (GIEnumInfo *info,
-                       gint n);
+ gint n);

Obtain a value for this enumeration.

Parameters

@@ -238,7 +238,7 @@ g_enum_info_get_value (

Returns

-

the enumeration value or NULL if type tag is wrong, +

the enumeration value or NULL if type tag is wrong, free the struct with g_base_info_unref() when done.

[transfer full]

@@ -246,7 +246,7 @@ free the struct with

g_enum_info_get_n_methods ()

-
gint
+
gint
 g_enum_info_get_n_methods (GIEnumInfo *info);

Obtain the number of methods that this enum type has.

@@ -275,7 +275,7 @@ g_enum_info_get_n_methods (

g_enum_info_get_method ()

GIFunctionInfo *
 g_enum_info_get_method (GIEnumInfo *info,
-                        gint n);
+ gint n);

Obtain an enum type method at index n .

@@ -341,7 +341,7 @@ may not match the sign of the type used by the C compiler.


g_enum_info_get_error_domain ()

-
const gchar *
+
const gchar *
 g_enum_info_get_error_domain (GIEnumInfo *info);

Obtain the string form of the quark for the error domain associated with this enum, if any.

@@ -363,7 +363,7 @@ this enum, if any.

Returns

the string form of the error domain associated -with this enum, or NULL.

+with this enum, or NULL.

[transfer none]

Since: 1.29.17

@@ -371,7 +371,7 @@ with this enum, or

g_value_info_get_value ()

-
gint64
+
gint64
 g_value_info_get_value (GIValueInfo *info);

Obtain the enumeration value of the GIValueInfo.

@@ -408,6 +408,6 @@ return type is to allow both.

+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/gi-GIFieldInfo.html b/docs/reference/html/gi-GIFieldInfo.html index a5a4a32..2e1e21b 100644 --- a/docs/reference/html/gi-GIFieldInfo.html +++ b/docs/reference/html/gi-GIFieldInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@
-gboolean +gboolean g_field_info_get_field () @@ -55,7 +55,7 @@
-gboolean +gboolean g_field_info_set_field () @@ -71,7 +71,7 @@
-gint +gint g_field_info_get_offset () @@ -79,7 +79,7 @@
-gint +gint g_field_info_get_size () @@ -157,9 +157,9 @@ which is currently

g_field_info_get_field ()

-
gboolean
+
gboolean
 g_field_info_get_field (GIFieldInfo *field_info,
-                        gpointer mem,
+                        gpointer mem,
                         GIArgument *value);

Reads a field identified by a GIFieldInfo from a C structure or union. This only handles fields of simple C types. It will fail @@ -195,15 +195,15 @@ even if that is actually readable.

Returns

-

TRUE if reading the field succeeded, otherwise FALSE

+

TRUE if reading the field succeeded, otherwise FALSE


g_field_info_set_field ()

-
gboolean
+
gboolean
 g_field_info_set_field (GIFieldInfo *field_info,
-                        gpointer mem,
+                        gpointer mem,
                         const GIArgument *value);

Writes a field identified by a GIFieldInfo to a C structure or union. This only handles fields of simple C types. It will fail @@ -241,7 +241,7 @@ with a type such as 'char *' must be set with a setter function.

Returns

-

TRUE if writing the field succeeded, otherwise FALSE

+

TRUE if writing the field succeeded, otherwise FALSE


@@ -274,7 +274,7 @@ flag values.


g_field_info_get_offset ()

-
gint
+
gint
 g_field_info_get_offset (GIFieldInfo *info);

Obtain the offset in bits of the field member, this is relative to the beginning of the struct or union.

@@ -301,7 +301,7 @@ to the beginning of the struct or union.


g_field_info_get_size ()

-
gint
+
gint
 g_field_info_get_size (GIFieldInfo *info);

Obtain the size in bits of the field member, this is how much space you need to allocate to store the field.

@@ -396,6 +396,6 @@ g_field_info_get_type ( -
Generated by GTK-Doc V1.24.1
+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/gi-GIFunctionInfo.html b/docs/reference/html/gi-GIFunctionInfo.html index 67b4d07..7a758e9 100644 --- a/docs/reference/html/gi-GIFunctionInfo.html +++ b/docs/reference/html/gi-GIFunctionInfo.html @@ -8,7 +8,7 @@ - + @@ -62,7 +62,7 @@
const gchar * +const gchar * g_function_info_get_symbol () @@ -78,7 +78,7 @@
-gboolean +gboolean g_function_info_invoke () @@ -86,7 +86,7 @@
-GQuark +GQuark g_invoke_error_quark () @@ -198,7 +198,7 @@ g_function_info_get_property (GIFunctionInfo. Only GIFunctionInfo with the flag GI_FUNCTION_IS_GETTER or GI_FUNCTION_IS_SETTER have a property set. For other cases, -NULL will be returned.

+NULL will be returned.

Parameters

@@ -216,7 +216,7 @@ Only

Returns

-

the property or NULL if not set. Free it with +

the property or NULL if not set. Free it with g_base_info_unref() when done.

[transfer full]

@@ -224,11 +224,11 @@ Only

g_function_info_get_symbol ()

-
const gchar *
+
const gchar *
 g_function_info_get_symbol (GIFunctionInfo *info);

Obtain the symbol of the function. The symbol is the name of the exported function, suitable to be used as an argument to -g_module_symbol().

+g_module_symbol().

Parameters

@@ -256,7 +256,7 @@ exported function, suitable to be used as an argument to g_function_info_get_vfunc (GIFunctionInfo *info);

Obtain the virtual function associated with this GIFunctionInfo. Only GIFunctionInfo with the flag GI_FUNCTION_WRAPS_VFUNC has -a virtual function set. For other cases, NULL will be returned.

+a virtual function set. For other cases, NULL will be returned.

Parameters

@@ -274,7 +274,7 @@ a virtual function set. For other cases,

Returns

-

the virtual function or NULL if not set. +

the virtual function or NULL if not set. Free it by calling g_base_info_unref() when done.

[transfer full]

@@ -282,21 +282,21 @@ Free it by calling

g_function_info_invoke ()

-
gboolean
+
gboolean
 g_function_info_invoke (GIFunctionInfo *info,
                         const GIArgument *in_args,
                         int n_in_args,
                         const GIArgument *out_args,
                         int n_out_args,
                         GIArgument *return_value,
-                        GError **error);
+ GError **error);

Invokes the function described in info with the given arguments. Note that inout parameters must appear in both argument lists. This function uses dlsym() to obtain a pointer to the function, so the library or shared object containing the described function must either be linked to the caller, or must -have been g_module_symbol()ed before calling this function.

+have been g_module_symbol()ed before calling this function.

[skip]

Parameters

@@ -317,7 +317,7 @@ have been

an array of GIArguments, one for each in parameter of info . If there are no in parameter, in_args -can be NULL

+can be NULL

@@ -331,7 +331,7 @@ array

+may be NULL

@@ -345,12 +345,12 @@ array

+NULL

- + @@ -358,14 +358,14 @@ may be

Returns

-

TRUE if the function has been invoked, FALSE if an +

TRUE if the function has been invoked, FALSE if an error occurred.


g_invoke_error_quark ()

-
GQuark
+
GQuark
 g_invoke_error_quark (void);

TODO

@@ -492,6 +492,6 @@ the expected arguments for the functions type signature.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIInterfaceInfo.html b/docs/reference/html/gi-GIInterfaceInfo.html index a1f13a2..b5ac44c 100644 --- a/docs/reference/html/gi-GIInterfaceInfo.html +++ b/docs/reference/html/gi-GIInterfaceInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@ - -
 

an array of GIArguments, one for each out parameter of info . If there are no out parameters, out_args -may be NULL

 

return location for the return value of the function. If the function returns void, return_value may be -NULL

 

error

return location for detailed error information, or NULL

return location for detailed error information, or NULL

 
-gint +gint g_interface_info_get_n_prerequisites () @@ -63,7 +63,7 @@
-gint +gint g_interface_info_get_n_properties () @@ -79,7 +79,7 @@
-gint +gint g_interface_info_get_n_methods () @@ -103,7 +103,7 @@
-gint +gint g_interface_info_get_n_signals () @@ -127,7 +127,7 @@
-gint +gint g_interface_info_get_n_vfuncs () @@ -151,7 +151,7 @@
-gint +gint g_interface_info_get_n_constants () @@ -191,7 +191,7 @@

Description

-

GIInterfaceInfo represents a GInterface type.

+

GIInterfaceInfo represents a GInterface type.

A GInterface has methods, fields, properties, signals, interfaces, constants, virtual functions and prerequisites.

@@ -229,7 +229,7 @@ virtual functions and prerequisites.


g_interface_info_get_n_prerequisites ()

-
gint
+
gint
 g_interface_info_get_n_prerequisites (GIInterfaceInfo *info);

Obtain the number of prerequisites for this interface type. A prerequisites is another interface that needs to be implemented for @@ -259,7 +259,7 @@ interface, similar to an base class for GObjects.

g_interface_info_get_prerequisite ()

GIBaseInfo *
 g_interface_info_get_prerequisite (GIInterfaceInfo *info,
-                                   gint n);
+ gint n);

Obtain an interface type prerequisites index n .

@@ -294,7 +294,7 @@ g_interface_info_get_prerequisite (

g_interface_info_get_n_properties ()

-
gint
+
gint
 g_interface_info_get_n_properties (GIInterfaceInfo *info);

Obtain the number of properties that this interface type has.

@@ -322,7 +322,7 @@ g_interface_info_get_n_properties (

g_interface_info_get_property ()

GIPropertyInfo *
 g_interface_info_get_property (GIInterfaceInfo *info,
-                               gint n);
+ gint n);

Obtain an interface type property at index n .

@@ -357,7 +357,7 @@ g_interface_info_get_property (

g_interface_info_get_n_methods ()

-
gint
+
gint
 g_interface_info_get_n_methods (GIInterfaceInfo *info);

Obtain the number of methods that this interface type has.

@@ -385,7 +385,7 @@ g_interface_info_get_n_methods (

g_interface_info_get_method ()

GIFunctionInfo *
 g_interface_info_get_method (GIInterfaceInfo *info,
-                             gint n);
+ gint n);

Obtain an interface type method at index n .

@@ -422,9 +422,9 @@ g_interface_info_get_method (

g_interface_info_find_method ()

GIFunctionInfo *
 g_interface_info_find_method (GIInterfaceInfo *info,
-                              const gchar *name);
+ const gchar *name);

Obtain a method of the interface type given a name -. NULL will be +. NULL will be returned if there's no method available with that name.

Parameters

@@ -450,7 +450,7 @@ returned if there's no method available with that name.

Returns

-

the GIFunctionInfo or NULL if none found. +

the GIFunctionInfo or NULL if none found. Free the struct by calling g_base_info_unref() when done.

[transfer full]

@@ -458,7 +458,7 @@ Free the struct by calling

g_interface_info_get_n_signals ()

-
gint
+
gint
 g_interface_info_get_n_signals (GIInterfaceInfo *info);

Obtain the number of signals that this interface type has.

@@ -486,7 +486,7 @@ g_interface_info_get_n_signals (

g_interface_info_get_signal ()

GISignalInfo *
 g_interface_info_get_signal (GIInterfaceInfo *info,
-                             gint n);
+ gint n);

Obtain an interface type signal at index n .

@@ -523,7 +523,7 @@ g_interface_info_get_signal (

g_interface_info_find_signal ()

GISignalInfo *
 g_interface_info_find_signal (GIInterfaceInfo *info,
-                              const gchar *name);
+ const gchar *name);

TODO

Parameters

@@ -552,7 +552,7 @@ g_interface_info_find_signal (name in info , or -NULL on failure.

+NULL on failure.

[transfer full]

Since: 1.34

@@ -560,7 +560,7 @@ in info

g_interface_info_get_n_vfuncs ()

-
gint
+
gint
 g_interface_info_get_n_vfuncs (GIInterfaceInfo *info);

Obtain the number of virtual functions that this interface type has.

@@ -588,7 +588,7 @@ g_interface_info_get_n_vfuncs (

g_interface_info_get_vfunc ()

GIVFuncInfo *
 g_interface_info_get_vfunc (GIInterfaceInfo *info,
-                            gint n);
+ gint n);

Obtain an interface type virtual function at index n .

@@ -625,7 +625,7 @@ g_interface_info_get_vfunc (

g_interface_info_find_vfunc ()

GIVFuncInfo *
 g_interface_info_find_vfunc (GIInterfaceInfo *info,
-                             const gchar *name);
+ const gchar *name);

Locate a virtual function slot with name name . See the documentation for g_object_info_find_vfunc() for more information on virtuals.

@@ -653,7 +653,7 @@ for

Returns

-

the GIVFuncInfo, or NULL. Free it with +

the GIVFuncInfo, or NULL. Free it with g_base_info_unref() when done.

[transfer full]

@@ -661,7 +661,7 @@ for

g_interface_info_get_n_constants ()

-
gint
+
gint
 g_interface_info_get_n_constants (GIInterfaceInfo *info);

Obtain the number of constants that this interface type has.

@@ -689,7 +689,7 @@ g_interface_info_get_n_constants (

g_interface_info_get_constant ()

GIConstantInfo *
 g_interface_info_get_constant (GIInterfaceInfo *info,
-                               gint n);
+ gint n);

Obtain an interface type constant at index n .

@@ -726,7 +726,7 @@ g_interface_info_get_constant (

g_interface_info_get_iface_struct ()

GIStructInfo *
 g_interface_info_get_iface_struct (GIInterfaceInfo *info);
-

Returns the layout C structure associated with this GInterface.

+

Returns the layout C structure associated with this GInterface.

Parameters

@@ -744,7 +744,7 @@ g_interface_info_get_iface_struct (

Returns

-

the GIStructInfo or NULL. Free it with +

the GIStructInfo or NULL. Free it with g_base_info_unref() when done.

[transfer full]

@@ -761,6 +761,6 @@ g_interface_info_get_iface_struct ( +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIObjectInfo.html b/docs/reference/html/gi-GIObjectInfo.html index e344eff..c666312 100644 --- a/docs/reference/html/gi-GIObjectInfo.html +++ b/docs/reference/html/gi-GIObjectInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@
- - - + @@ -1543,7 +1543,7 @@ the base classes of this type, starting at the top type.

GIObjectInfoGetValueFunction ()

void *
-(*GIObjectInfoGetValueFunction) (const GValue *value);
+(*GIObjectInfoGetValueFunction) (const GValue *value);

Extract an object instance out of value

[skip]

@@ -1557,7 +1557,7 @@ the base classes of this type, starting at the top type.

- +
-gboolean +gboolean g_object_info_get_abstract () @@ -55,7 +55,7 @@
-gboolean +gboolean g_object_info_get_fundamental () @@ -70,14 +70,14 @@
const gchar * +const gchar * g_object_info_get_type_name ()
const gchar * +const gchar * g_object_info_get_type_init () @@ -85,7 +85,7 @@
-gint +gint g_object_info_get_n_constants () @@ -101,7 +101,7 @@
-gint +gint g_object_info_get_n_fields () @@ -117,7 +117,7 @@
-gint +gint g_object_info_get_n_interfaces () @@ -133,7 +133,7 @@
-gint +gint g_object_info_get_n_methods () @@ -165,7 +165,7 @@
-gint +gint g_object_info_get_n_properties () @@ -181,7 +181,7 @@
-gint +gint g_object_info_get_n_signals () @@ -205,7 +205,7 @@
-gint +gint g_object_info_get_n_vfuncs () @@ -353,7 +353,7 @@

Description

-

GIObjectInfo represents a GObject. This doesn't represent a specific +

GIObjectInfo represents a GObject. This doesn't represent a specific instance of a GObject, instead this represent the object type (eg class).

A GObject has methods, fields, properties, signals, interfaces, constants and virtual functions.

@@ -392,7 +392,7 @@ and virtual functions.


g_object_info_get_abstract ()

-
gboolean
+
gboolean
 g_object_info_get_abstract (GIObjectInfo *info);

Obtain if the object type is an abstract type, eg if it cannot be instantiated

@@ -413,13 +413,13 @@ instantiated

Returns

-

TRUE if the object type is abstract

+

TRUE if the object type is abstract


g_object_info_get_fundamental ()

-
gboolean
+
gboolean
 g_object_info_get_fundamental (GIObjectInfo *info);

Obtain if the object type is of a fundamental type which is not G_TYPE_OBJECT. This is mostly for supporting GstMiniObject.

@@ -440,7 +440,7 @@ G_TYPE_OBJECT. This is mostly for supporting GstMiniObject.

Returns

-

TRUE if the object type is a fundamental type

+

TRUE if the object type is a fundamental type


@@ -474,7 +474,7 @@ g_object_info_get_parent (

g_object_info_get_type_name ()

-
const gchar *
+
const gchar *
 g_object_info_get_type_name (GIObjectInfo *info);

Obtain the name of the objects class/type.

@@ -500,7 +500,7 @@ g_object_info_get_type_name (

g_object_info_get_type_init ()

-
const gchar *
+
const gchar *
 g_object_info_get_type_init (GIObjectInfo *info);

Obtain the function which when called will return the GType function for which this object type is registered.

@@ -527,7 +527,7 @@ function for which this object type is registered.


g_object_info_get_n_constants ()

-
gint
+
gint
 g_object_info_get_n_constants (GIObjectInfo *info);

Obtain the number of constants that this object type has.

@@ -555,7 +555,7 @@ g_object_info_get_n_constants (

g_object_info_get_constant ()

GIConstantInfo *
 g_object_info_get_constant (GIObjectInfo *info,
-                            gint n);
+ gint n);

Obtain an object type constant at index n .

@@ -590,7 +590,7 @@ g_object_info_get_constant (

g_object_info_get_n_fields ()

-
gint
+
gint
 g_object_info_get_n_fields (GIObjectInfo *info);

Obtain the number of fields that this object type has.

@@ -618,7 +618,7 @@ g_object_info_get_n_fields (

g_object_info_get_field ()

GIFieldInfo *
 g_object_info_get_field (GIObjectInfo *info,
-                         gint n);
+ gint n);

Obtain an object type field at index n .

@@ -653,7 +653,7 @@ g_object_info_get_field (

g_object_info_get_n_interfaces ()

-
gint
+
gint
 g_object_info_get_n_interfaces (GIObjectInfo *info);

Obtain the number of interfaces that this object type has.

@@ -681,7 +681,7 @@ g_object_info_get_n_interfaces (

g_object_info_get_interface ()

GIInterfaceInfo *
 g_object_info_get_interface (GIObjectInfo *info,
-                             gint n);
+ gint n);

Obtain an object type interface at index n .

@@ -716,7 +716,7 @@ g_object_info_get_interface (

g_object_info_get_n_methods ()

-
gint
+
gint
 g_object_info_get_n_methods (GIObjectInfo *info);

Obtain the number of methods that this object type has.

@@ -744,7 +744,7 @@ g_object_info_get_n_methods (

g_object_info_get_method ()

GIFunctionInfo *
 g_object_info_get_method (GIObjectInfo *info,
-                          gint n);
+ gint n);

Obtain an object type method at index n .

@@ -781,9 +781,9 @@ g_object_info_get_method (

g_object_info_find_method ()

GIFunctionInfo *
 g_object_info_find_method (GIObjectInfo *info,
-                           const gchar *name);
+ const gchar *name);

Obtain a method of the object type given a name -. NULL will be +. NULL will be returned if there's no method available with that name.

Parameters

@@ -820,12 +820,12 @@ returned if there's no method available with that name.

GIFunctionInfo *
 g_object_info_find_method_using_interfaces
                                (GIObjectInfo *info,
-                                const gchar *name,
+                                const gchar *name,
                                 GIObjectInfo **implementor);

Obtain a method of the object given a name , searching both the object info - and any interfaces it implements. NULL will be + and any interfaces it implements. NULL will be returned if there's no method available with that name.

Note that this function does *not* search parent classes; you will have to chain up if that's desired.

@@ -866,7 +866,7 @@ to chain up if that's desired.


g_object_info_get_n_properties ()

-
gint
+
gint
 g_object_info_get_n_properties (GIObjectInfo *info);

Obtain the number of properties that this object type has.

@@ -894,7 +894,7 @@ g_object_info_get_n_properties (

g_object_info_get_property ()

GIPropertyInfo *
 g_object_info_get_property (GIObjectInfo *info,
-                            gint n);
+ gint n);

Obtain an object type property at index n .

@@ -929,7 +929,7 @@ g_object_info_get_property (

g_object_info_get_n_signals ()

-
gint
+
gint
 g_object_info_get_n_signals (GIObjectInfo *info);

Obtain the number of signals that this object type has.

@@ -957,7 +957,7 @@ g_object_info_get_n_signals (

g_object_info_get_signal ()

GISignalInfo *
 g_object_info_get_signal (GIObjectInfo *info,
-                          gint n);
+ gint n);

Obtain an object type signal at index n .

@@ -994,7 +994,7 @@ g_object_info_get_signal (

g_object_info_find_signal ()

GISignalInfo *
 g_object_info_find_signal (GIObjectInfo *info,
-                           const gchar *name);
+ const gchar *name);

TODO

Parameters

@@ -1022,14 +1022,14 @@ g_object_info_find_signal (

Returns

Info for the signal with name name in info -, or NULL on failure.

+, or NULL on failure.

[transfer full]


g_object_info_get_n_vfuncs ()

-
gint
+
gint
 g_object_info_get_n_vfuncs (GIObjectInfo *info);

Obtain the number of virtual functions that this object type has.

@@ -1057,7 +1057,7 @@ g_object_info_get_n_vfuncs (

g_object_info_get_vfunc ()

GIVFuncInfo *
 g_object_info_get_vfunc (GIObjectInfo *info,
-                         gint n);
+ gint n);

Obtain an object type virtual function at index n .

@@ -1094,12 +1094,12 @@ g_object_info_get_vfunc (

g_object_info_find_vfunc ()

GIVFuncInfo *
 g_object_info_find_vfunc (GIObjectInfo *info,
-                          const gchar *name);
+ const gchar *name);

Locate a virtual function slot with name name . Note that the namespace for virtuals is distinct from that of methods; there may or may not be a concrete method associated for a virtual. If there is one, it may -be retrieved using g_vfunc_info_get_invoker(), otherwise NULL will be +be retrieved using g_vfunc_info_get_invoker(), otherwise NULL will be returned. See the documentation for g_vfunc_info_get_invoker() for more information on invoking virtuals.

@@ -1127,7 +1127,7 @@ information on invoking virtuals.

Returns

-

the GIVFuncInfo, or NULL. Free it with +

the GIVFuncInfo, or NULL. Free it with g_base_info_unref() when done.

[transfer full]

@@ -1138,7 +1138,7 @@ information on invoking virtuals.

GIVFuncInfo *
 g_object_info_find_vfunc_using_interfaces
                                (GIObjectInfo *info,
-                                const gchar *name,
+                                const gchar *name,
                                 GIObjectInfo **implementor);

Locate a virtual function slot with name name , searching both the object @@ -1146,7 +1146,7 @@ g_object_info_find_vfunc_using_interfaces and any interfaces it implements. Note that the namespace for virtuals is distinct from that of methods; there may or may not be a concrete method associated for a virtual. If there is one, it may be -retrieved using g_vfunc_info_get_invoker(), otherwise NULL will be +retrieved using g_vfunc_info_get_invoker(), otherwise NULL will be returned.

Note that this function does *not* search parent classes; you will have to chain up if that's desired.

@@ -1189,7 +1189,7 @@ to chain up if that's desired.

g_object_info_get_class_struct ()

GIStructInfo *
 g_object_info_get_class_struct (GIObjectInfo *info);
-

Every GObject has two structures; an instance structure and a class +

Every GObject has two structures; an instance structure and a class structure. This function returns the metadata for the class structure.

Parameters

@@ -1208,7 +1208,7 @@ structure. This function returns the metadata for the class structure.

Returns

-

the GIStructInfo or NULL. Free with +

the GIStructInfo or NULL. Free with g_base_info_unref() when done.

[transfer full]

@@ -1239,7 +1239,7 @@ see

Returns

-

the symbol or NULL

+

the symbol or NULL


@@ -1270,7 +1270,7 @@ the base classes of this type, starting at the top type.

Returns

-

the function pointer or NULL

+

the function pointer or NULL


@@ -1299,7 +1299,7 @@ see

Returns

-

the symbol or NULL

+

the symbol or NULL


@@ -1330,7 +1330,7 @@ the base classes of this type, starting at the top type.

Returns

-

the function pointer or NULL

+

the function pointer or NULL


@@ -1360,7 +1360,7 @@ see

Returns

-

the symbol or NULL

+

the symbol or NULL


@@ -1391,7 +1391,7 @@ the base classes of this type, starting at the top type.

Returns

-

the function pointer or NULL

+

the function pointer or NULL


@@ -1421,7 +1421,7 @@ see

Returns

-

the symbol or NULL

+

the symbol or NULL


@@ -1452,7 +1452,7 @@ the base classes of this type, starting at the top type.

Returns

-

the function pointer or NULL

+

the function pointer or NULL


@@ -1510,7 +1510,7 @@ the base classes of this type, starting at the top type.

GIObjectInfoSetValueFunction ()

void
-(*GIObjectInfoSetValueFunction) (GValue *value,
+(*GIObjectInfoSetValueFunction) (GValue *value,
                                  void *object);

Update value and attach the object instance pointer object @@ -1527,7 +1527,7 @@ the base classes of this type, starting at the top type.

value

a GValue

a GValue

 

value

a GValue

a GValue

 
@@ -1580,6 +1580,6 @@ the base classes of this type, starting at the top type.

+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/gi-GIPropertyInfo.html b/docs/reference/html/gi-GIPropertyInfo.html index 929d419..5e59d89 100644 --- a/docs/reference/html/gi-GIPropertyInfo.html +++ b/docs/reference/html/gi-GIPropertyInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@
-GParamFlags +GParamFlags g_property_info_get_flags () @@ -123,9 +123,9 @@ either a

g_property_info_get_flags ()

-
GParamFlags
+
GParamFlags
 g_property_info_get_flags (GIPropertyInfo *info);
-

Obtain the flags for this property info. See GParamFlags for +

Obtain the flags for this property info. See GParamFlags for more information about possible flag values.

Parameters

@@ -216,6 +216,6 @@ g_property_info_get_type ( -
Generated by GTK-Doc V1.24.1
+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIRegisteredTypeInfo.html b/docs/reference/html/gi-GIRegisteredTypeInfo.html index cf0ca78..26de334 100644 --- a/docs/reference/html/gi-GIRegisteredTypeInfo.html +++ b/docs/reference/html/gi-GIRegisteredTypeInfo.html @@ -8,7 +8,7 @@ - + @@ -46,14 +46,14 @@
const gchar * +const gchar * g_registered_type_info_get_type_name ()
const gchar * +const gchar * g_registered_type_info_get_type_init () @@ -61,7 +61,7 @@
-GType +GType g_registered_type_info_get_g_type () @@ -131,10 +131,10 @@ about the rest of the details.


g_registered_type_info_get_type_name ()

-
const gchar *
+
const gchar *
 g_registered_type_info_get_type_name (GIRegisteredTypeInfo *info);

Obtain the type name of the struct within the GObject type system. -This type can be passed to g_type_name() to get a GType.

+This type can be passed to g_type_name() to get a GType.

Parameters

@@ -158,7 +158,7 @@ This type can be passed to

g_registered_type_info_get_type_init ()

-
const gchar *
+
const gchar *
 g_registered_type_info_get_type_init (GIRegisteredTypeInfo *info);

Obtain the type init function for info . The type init function is the @@ -183,15 +183,15 @@ Usually this is not called by langauge bindings or applications, use

Returns

the symbol name of the type init function, suitable for -passing into g_module_symbol().

+passing into g_module_symbol().


g_registered_type_info_get_g_type ()

-
GType
+
GType
 g_registered_type_info_get_g_type (GIRegisteredTypeInfo *info);
-

Obtain the GType for this registered type or G_TYPE_NONE which a special meaning. +

Obtain the GType for this registered type or G_TYPE_NONE which a special meaning. It means that either there is no type information associated with this info or that the shared library which provides the type_init function for this @@ -214,7 +214,7 @@ that the shared library which provides the type_init function for this

Returns

-

the GType.

+

the GType.

@@ -229,6 +229,6 @@ that the shared library which provides the type_init function for this +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GISignalInfo.html b/docs/reference/html/gi-GISignalInfo.html index 7d525d2..8b9e934 100644 --- a/docs/reference/html/gi-GISignalInfo.html +++ b/docs/reference/html/gi-GISignalInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@
-GSignalFlags +GSignalFlags g_signal_info_get_flags () @@ -63,7 +63,7 @@
-gboolean +gboolean g_signal_info_true_stops_emit () @@ -128,9 +128,9 @@ and other metadata from the signal.


g_signal_info_get_flags ()

-
GSignalFlags
+
GSignalFlags
 g_signal_info_get_flags (GISignalInfo *info);
-

Obtain the flags for this signal info. See GSignalFlags for +

Obtain the flags for this signal info. See GSignalFlags for more information about possible flag values.

Parameters

@@ -159,7 +159,7 @@ more information about possible flag values.

g_signal_info_get_class_closure (GISignalInfo *info);

Obtain the class closure for this signal if one is set. The class closure is a virtual function on the type that the signal belongs to. -If the signal lacks a closure NULL will be returned.

+If the signal lacks a closure NULL will be returned.

Parameters

@@ -177,14 +177,14 @@ If the signal lacks a closure

Returns

-

the class closure or NULL.

+

the class closure or NULL.

[transfer full]


g_signal_info_true_stops_emit ()

-
gboolean
+
gboolean
 g_signal_info_true_stops_emit (GISignalInfo *info);

Obtain if the returning true in the signal handler will stop the emission of the signal.

@@ -205,7 +205,7 @@ stop the emission of the signal.

Returns

-

TRUE if returning true stops the signal emission

+

TRUE if returning true stops the signal emission

@@ -220,6 +220,6 @@ stop the emission of the signal.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIStructInfo.html b/docs/reference/html/gi-GIStructInfo.html index b288d20..b0d2ba5 100644 --- a/docs/reference/html/gi-GIStructInfo.html +++ b/docs/reference/html/gi-GIStructInfo.html @@ -8,7 +8,7 @@ - + @@ -47,7 +47,7 @@ - -
-gsize +gsize g_struct_info_get_alignment () @@ -55,7 +55,7 @@
-gsize +gsize g_struct_info_get_size () @@ -63,7 +63,7 @@
-gboolean +gboolean g_struct_info_is_gtype_struct () @@ -71,7 +71,7 @@
-gboolean +gboolean g_struct_info_is_foreign () @@ -79,7 +79,7 @@
-gint +gint g_struct_info_get_n_fields () @@ -95,7 +95,7 @@
-gint +gint g_struct_info_get_n_methods () @@ -172,7 +172,7 @@

g_struct_info_get_alignment ()

-
gsize
+
gsize
 g_struct_info_get_alignment (GIStructInfo *info);

Obtain the required alignment of the structure.

@@ -198,7 +198,7 @@ g_struct_info_get_alignment (

g_struct_info_get_size ()

-
gsize
+
gsize
 g_struct_info_get_size (GIStructInfo *info);

Obtain the total size of the structure.

@@ -224,10 +224,10 @@ g_struct_info_get_size (

g_struct_info_is_gtype_struct ()

-
gboolean
+
gboolean
 g_struct_info_is_gtype_struct (GIStructInfo *info);

Return true if this structure represents the "class structure" for some -GObject or GInterface. This function is mainly useful to hide this kind of structure +GObject or GInterface. This function is mainly useful to hide this kind of structure from generated public APIs.

Parameters

@@ -246,13 +246,13 @@ from generated public APIs.

Returns

-

TRUE if this is a class struct, FALSE otherwise

+

TRUE if this is a class struct, FALSE otherwise


g_struct_info_is_foreign ()

-
gboolean
+
gboolean
 g_struct_info_is_foreign (GIStructInfo *info);

TODO

@@ -278,7 +278,7 @@ g_struct_info_is_foreign (

g_struct_info_get_n_fields ()

-
gint
+
gint
 g_struct_info_get_n_fields (GIStructInfo *info);

Obtain the number of fields this structure has.

@@ -306,7 +306,7 @@ g_struct_info_get_n_fields (

g_struct_info_get_field ()

GIFieldInfo *
 g_struct_info_get_field (GIStructInfo *info,
-                         gint n);
+ gint n);

Obtain the type information for field with specified index.

Parameters

@@ -340,7 +340,7 @@ when done.


g_struct_info_get_n_methods ()

-
gint
+
gint
 g_struct_info_get_n_methods (GIStructInfo *info);

Obtain the number of methods this structure has.

@@ -368,7 +368,7 @@ g_struct_info_get_n_methods (

g_struct_info_get_method ()

GIFunctionInfo *
 g_struct_info_get_method (GIStructInfo *info,
-                          gint n);
+ gint n);

Obtain the type information for method with specified index.

Parameters

@@ -404,7 +404,7 @@ when done.

g_struct_info_find_method ()

GIFunctionInfo *
 g_struct_info_find_method (GIStructInfo *info,
-                           const gchar *name);
+ const gchar *name);

Obtain the type information for method named name .

@@ -448,6 +448,6 @@ when done.

+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/gi-GITypeInfo.html b/docs/reference/html/gi-GITypeInfo.html index 8c5a448..6a75672 100644 --- a/docs/reference/html/gi-GITypeInfo.html +++ b/docs/reference/html/gi-GITypeInfo.html @@ -8,7 +8,7 @@ - + @@ -46,14 +46,14 @@
const gchar * +const gchar * g_type_tag_to_string ()
const gchar * +const gchar * g_info_type_to_string () @@ -61,7 +61,7 @@
-gboolean +gboolean g_type_info_is_pointer () @@ -93,7 +93,7 @@
-gint +gint g_type_info_get_array_length () @@ -101,7 +101,7 @@
-gint +gint g_type_info_get_array_fixed_size () @@ -109,7 +109,7 @@
-gboolean +gboolean g_type_info_is_zero_terminated () @@ -183,7 +183,7 @@ interface.


g_type_tag_to_string ()

-
const gchar *
+
const gchar *
 g_type_tag_to_string (GITypeTag type);

Obtain a string representation of type

@@ -210,7 +210,7 @@ g_type_tag_to_string (

g_info_type_to_string ()

-
const gchar *
+
const gchar *
 g_info_type_to_string (GIInfoType type);

Obtain a string representation of type

@@ -237,7 +237,7 @@ g_info_type_to_string (

g_type_info_is_pointer ()

-
gboolean
+
gboolean
 g_type_info_is_pointer (GITypeInfo *info);

Obtain if the type is passed as a reference.

Note that the types of GI_DIRECTION_OUT and GI_DIRECTION_INOUT parameters @@ -261,7 +261,7 @@ pointer).

Returns

-

TRUE if it is a pointer

+

TRUE if it is a pointer


@@ -296,7 +296,7 @@ of type tags.

g_type_info_get_param_type ()

GITypeInfo *
 g_type_info_get_param_type (GITypeInfo *info,
-                            gint n);
+ gint n);

Obtain the parameter type n .

@@ -353,7 +353,7 @@ a concrete GObject, a GInterface, a structure, etc. using

Returns

-

the GIBaseInfo, or NULL. Free it with +

the GIBaseInfo, or NULL. Free it with g_base_info_unref() when done.

[transfer full]

@@ -361,7 +361,7 @@ a concrete GObject, a GInterface, a structure, etc. using

g_type_info_get_array_length ()

-
gint
+
gint
 g_type_info_get_array_length (GITypeInfo *info);

Obtain the array length of the type. The type tag must be a GI_TYPE_TAG_ARRAY or -1 will returned.

@@ -388,7 +388,7 @@ g_type_info_get_array_length (

g_type_info_get_array_fixed_size ()

-
gint
+
gint
 g_type_info_get_array_fixed_size (GITypeInfo *info);

Obtain the fixed array size of the type. The type tag must be a GI_TYPE_TAG_ARRAY or -1 will returned.

@@ -415,10 +415,10 @@ g_type_info_get_array_fixed_size (

g_type_info_is_zero_terminated ()

-
gboolean
+
gboolean
 g_type_info_is_zero_terminated (GITypeInfo *info);
-

Obtain if the last element of the array is NULL. The type tag must be a -GI_TYPE_TAG_ARRAY or FALSE will returned.

+

Obtain if the last element of the array is NULL. The type tag must be a +GI_TYPE_TAG_ARRAY or FALSE will returned.

Parameters

@@ -436,7 +436,7 @@ g_type_info_is_zero_terminated (

Returns

-

TRUE if zero terminated

+

TRUE if zero terminated


@@ -479,6 +479,6 @@ returned.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GITypelib.html b/docs/reference/html/gi-GITypelib.html index 78b6a18..c4951fc 100644 --- a/docs/reference/html/gi-GITypelib.html +++ b/docs/reference/html/gi-GITypelib.html @@ -8,7 +8,7 @@ - + @@ -83,7 +83,7 @@ justifications.
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -988,12 +988,12 @@ with different tradeoffs from the format minor version.

- + - + @@ -1026,27 +1026,27 @@ the first 8 bytes (the reserved flags may be used by some blob types)

- + - + - + - + - + @@ -1078,27 +1078,27 @@ looked up by name.

- + - + - + - + - + @@ -1137,7 +1137,7 @@ have one of the upper 24 bits set.

- + @@ -1185,17 +1185,17 @@ offset which points to a TypeBlob.

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1325,49 +1325,49 @@ with the callback, or -1.

- + - + - + - + - + - - + - + - + @@ -1405,22 +1405,22 @@ length of the array of ArgBlobs.

- + - + - + - + @@ -1465,82 +1465,82 @@ length of the array of ArgBlobs.

- + - + - + +g_object_set().

- + +g_object_get().

- + - + - + - + - + - + - + - + - + - + @@ -1571,27 +1571,27 @@ function whose name is conceptually scoped to the object.

- + - + - + - + - + @@ -1622,27 +1622,27 @@ the return value type.

- + - + - + - + - + @@ -1664,12 +1664,12 @@ the return value type.

- + - + @@ -1707,47 +1707,47 @@ the return value type.

- + - + - + - + +NULL value.

- + - + - + - + @@ -1790,27 +1790,27 @@ size are implicit in the structure.

- + - + - + - + - + @@ -1848,32 +1848,32 @@ size are implicit in the structure.

- + - + - + - + - + - + @@ -1903,27 +1903,27 @@ size are implicit in the structure.

- + - + - + - + - + @@ -1961,44 +1961,44 @@ size are implicit in the structure.

- + - + - + - + - + - + - + - + @@ -2036,37 +2036,37 @@ indicates that the struct offset is unknown.

- + - + - + - + - + - + - + @@ -2113,79 +2113,79 @@ type.

- + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + @@ -2231,77 +2231,77 @@ a native language binding instead of relying of introspected bindings.

- + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + @@ -2351,59 +2351,59 @@ indicates that the discriminator offset is unknown.

- + - + - + - + - + - + - - + + - - + + - + - + - - + + @@ -2446,44 +2446,44 @@ indicates that the discriminator offset is unknown.

- + - + - + - + - + - + - + - + - + - + @@ -2545,78 +2545,78 @@ things.

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2658,75 +2658,75 @@ and the return value type.

- + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2783,136 +2783,136 @@ the return value type.

- + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2960,89 +2960,89 @@ interfaces.

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3079,22 +3079,22 @@ interfaces.

- + - + - + - + @@ -3105,17 +3105,17 @@ or string.

- + - + - + @@ -3143,19 +3143,19 @@ or string.

- + - + - + @@ -3231,6 +3231,6 @@ entry can be found by a binary search.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIUnionInfo.html b/docs/reference/html/gi-GIUnionInfo.html index 388434d..3b47442 100644 --- a/docs/reference/html/gi-GIUnionInfo.html +++ b/docs/reference/html/gi-GIUnionInfo.html @@ -8,7 +8,7 @@ - + @@ -41,7 +41,7 @@
- + - + @@ -278,21 +278,21 @@ is the implementation for info

Returns

-

address to a function or NULL if an error happened

+

address to a function or NULL if an error happened


g_vfunc_info_invoke ()

-
gboolean
+
gboolean
 g_vfunc_info_invoke (GIVFuncInfo *info,
-                     GType implementor,
+                     GType implementor,
                      const GIArgument *in_args,
                      int n_in_args,
                      const GIArgument *out_args,
                      int n_out_args,
                      GIArgument *return_value,
-                     GError **error);
+ GError **error);

Invokes the function described in info with the given arguments. Note that inout parameters must appear in both @@ -314,7 +314,7 @@ argument lists.

- + @@ -322,7 +322,7 @@ argument lists.

+can be NULL

@@ -336,7 +336,7 @@ array

+may be NULL

@@ -350,12 +350,12 @@ array

+NULL

- + @@ -363,7 +363,7 @@ may be

Returns

-

TRUE if the function has been invoked, FALSE if an +

TRUE if the function has been invoked, FALSE if an error occurred.

@@ -413,7 +413,7 @@ error occurred.

@@ -424,6 +424,6 @@ error occurred.

+
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-GIValueInfo.html b/docs/reference/html/gi-GIValueInfo.html index 6ebddea..017ddcb 100644 --- a/docs/reference/html/gi-GIValueInfo.html +++ b/docs/reference/html/gi-GIValueInfo.html @@ -8,7 +8,7 @@ - + @@ -70,6 +70,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-building.html b/docs/reference/html/gi-building.html index b8c70ed..05c9a5c 100644 --- a/docs/reference/html/gi-building.html +++ b/docs/reference/html/gi-building.html @@ -8,7 +8,7 @@ - + @@ -173,6 +173,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-common-types.html b/docs/reference/html/gi-common-types.html index c072053..5807dad 100644 --- a/docs/reference/html/gi-common-types.html +++ b/docs/reference/html/gi-common-types.html @@ -8,7 +8,7 @@ - + @@ -121,107 +121,107 @@
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -335,7 +335,7 @@ @@ -371,28 +371,28 @@ @@ -438,14 +438,14 @@ @@ -463,6 +463,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-gir-reference.html b/docs/reference/html/gi-gir-reference.html index 30bd5fc..e0cff95 100644 --- a/docs/reference/html/gi-gir-reference.html +++ b/docs/reference/html/gi-gir-reference.html @@ -8,7 +8,7 @@ - + @@ -217,6 +217,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-girffi.html b/docs/reference/html/gi-girffi.html index c3dc373..6972d90 100644 --- a/docs/reference/html/gi-girffi.html +++ b/docs/reference/html/gi-girffi.html @@ -8,7 +8,7 @@ - + @@ -73,7 +73,7 @@
- + @@ -326,18 +326,18 @@ inside the binding's function mapping.

Returns

-

TRUE on success, FALSE otherwise with error +

TRUE on success, FALSE otherwise with error set.


g_function_invoker_new_for_address ()

-
gboolean
-g_function_invoker_new_for_address (gpointer addr,
+
gboolean
+g_function_invoker_new_for_address (gpointer addr,
                                     GICallableInfo *info,
                                     GIFunctionInvoker *invoker,
-                                    GError **error);
+ GError **error);

Initialize the caller-allocated invoker structure with a cache of information needed to invoke the C function corresponding to @@ -372,7 +372,7 @@ inside the binding's function mapping.

- + @@ -380,7 +380,7 @@ inside the binding's function mapping.

Returns

-

TRUE on success, FALSE otherwise with error +

TRUE on success, FALSE otherwise with error set.

@@ -416,7 +416,7 @@ itself however.

g_callable_info_prepare_closure (GICallableInfo *callable_info, ffi_cif *cif, GIFFIClosureCallback callback, - gpointer user_data); + gpointer user_data);

Prepares a callback for ffi invocation.

Parameters

@@ -512,7 +512,7 @@ g_callable_info_free_closure ( 
- + @@ -530,6 +530,6 @@ g_callable_info_free_closure ( -
Generated by GTK-Doc V1.24.1 +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-gitypelib.html b/docs/reference/html/gi-gitypelib.html index 862040e..8d8d6b1 100644 --- a/docs/reference/html/gi-gitypelib.html +++ b/docs/reference/html/gi-gitypelib.html @@ -8,7 +8,7 @@ - + @@ -73,14 +73,14 @@
- - + @@ -155,9 +155,9 @@ repository is destroyed.

g_typelib_new_from_const_memory ()

GITypelib *
-g_typelib_new_from_const_memory (const guint8 *memory,
-                                 gsize len,
-                                 GError **error);
+g_typelib_new_from_const_memory (const guint8 *memory, + gsize len, + GError **error);

Creates a new GITypelib from a memory location.

[skip]

@@ -181,7 +181,7 @@ g_typelib_new_from_const_memory (const

error

-
+ @@ -196,9 +196,9 @@ g_typelib_new_from_const_memory (const

g_typelib_new_from_mapped_file ()

GITypelib *
-g_typelib_new_from_mapped_file (GMappedFile *mfile,
-                                GError **error);
-

Creates a new GITypelib from a GMappedFile.

+g_typelib_new_from_mapped_file (GMappedFile *mfile, + GError **error); +

Creates a new GITypelib from a GMappedFile.

[skip]

Parameters

@@ -211,12 +211,12 @@ g_typelib_new_from_mapped_file (

mfile

-
+ - + @@ -252,10 +252,10 @@ g_typelib_free (

g_typelib_symbol ()

-
gboolean
+
gboolean
 g_typelib_symbol (GITypelib *typelib,
-                  const gchar *symbol_name,
-                  gpointer *symbol);
+ const gchar *symbol_name, + gpointer *symbol);

Loads a symbol from GITypelib.

Parameters

@@ -286,13 +286,13 @@ g_typelib_symbol (

Returns

-

TRUE on success

+

TRUE on success


g_typelib_get_namespace ()

-
const gchar *
+
const gchar *
 g_typelib_get_namespace (GITypelib *typelib);

TODO

@@ -328,6 +328,6 @@ g_typelib_get_namespace ( -
Generated by GTK-Doc V1.24.1
+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/gi-programming.html b/docs/reference/html/gi-programming.html index a969009..6ea2ac8 100644 --- a/docs/reference/html/gi-programming.html +++ b/docs/reference/html/gi-programming.html @@ -8,7 +8,7 @@ - + @@ -36,6 +36,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-struct-hierarchy.html b/docs/reference/html/gi-struct-hierarchy.html index 670fd50..333526a 100644 --- a/docs/reference/html/gi-struct-hierarchy.html +++ b/docs/reference/html/gi-struct-hierarchy.html @@ -8,7 +8,7 @@ - + @@ -51,6 +51,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi-typelib.html b/docs/reference/html/gi-typelib.html index 6e2326a..84455db 100644 --- a/docs/reference/html/gi-typelib.html +++ b/docs/reference/html/gi-typelib.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/gi.html b/docs/reference/html/gi.html index d7a6463..8a8c32f 100644 --- a/docs/reference/html/gi.html +++ b/docs/reference/html/gi.html @@ -8,7 +8,7 @@ - + @@ -113,6 +113,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/index.html b/docs/reference/html/index.html index 44ac587..d4b4b9c 100644 --- a/docs/reference/html/index.html +++ b/docs/reference/html/index.html @@ -6,7 +6,7 @@ - + @@ -15,7 +15,7 @@
-gboolean +gboolean g_typelib_matches_gtype_name_prefix () @@ -105,7 +105,7 @@ justifications.
-GQuark +GQuark g_typelib_error_quark () @@ -113,7 +113,7 @@ justifications.
-gboolean +gboolean g_typelib_validate () @@ -305,7 +305,7 @@ multiple flexible arrays).

g_typelib_get_dir_entry ()

DirEntry *
 g_typelib_get_dir_entry (GITypelib *typelib,
-                         guint16 index);
+ guint16 index);

TODO

Parameters

@@ -373,7 +373,7 @@ g_typelib_get_dir_entry_by_name (

g_typelib_get_dir_entry_by_gtype_name ()

DirEntry *
 g_typelib_get_dir_entry_by_gtype_name (GITypelib *typelib,
-                                       const gchar *gtype_name);
+ const gchar *gtype_name);

TODO

Parameters

@@ -408,7 +408,7 @@ g_typelib_get_dir_entry_by_gtype_name (DirEntry * g_typelib_get_dir_entry_by_error_domain (GITypelib *typelib, - GQuark error_domain); + GQuark error_domain);

TODO

Parameters

@@ -440,9 +440,9 @@ g_typelib_get_dir_entry_by_error_domain

g_typelib_matches_gtype_name_prefix ()

-
gboolean
+
gboolean
 g_typelib_matches_gtype_name_prefix (GITypelib *typelib,
-                                     const gchar *gtype_name);
+ const gchar *gtype_name);

TODO

Parameters

@@ -513,7 +513,7 @@ g_typelib_check_sanity (void

g_typelib_error_quark ()

-
GQuark
+
GQuark
 g_typelib_error_quark (void);

TODO

@@ -524,9 +524,9 @@ g_typelib_error_quark (void

g_typelib_validate ()

-
gboolean
+
gboolean
 g_typelib_validate (GITypelib *typelib,
-                    GError **error);
+ GError **error);

TODO

Parameters

@@ -726,18 +726,18 @@ collection of meta-information, such as the number of entries and dependencies.<

gchar magic[16];

gchar magic[16];

See G_IR_MAGIC.

 

guint8 major_version;

guint8 major_version;

The major version number of the typelib format. Major version number changes indicate incompatible changes to the tyeplib format.

 

guint8 minor_version;

guint8 minor_version;

The minor version number of the typelib format. Minor version number changes indicate compatible changes and should still allow the typelib to be parsed by a parser designed for the same major_version @@ -745,38 +745,38 @@ typelib to be parsed by a parser designed for the same  

guint16 reserved;

guint16 reserved;

Reserved for future use.

 

guint16 n_entries;

guint16 n_entries;

The number of entries in the directory.

 

guint16 n_local_entries;

guint16 n_local_entries;

The number of entries referring to blobs in this typelib. The local entries must occur before the unresolved entries.

 

guint32 directory;

guint32 directory;

Offset of the directory in the typelib.

 

guint32 n_attributes;

guint32 n_attributes;

Number of attribute blocks

 

guint32 attributes;

guint32 attributes;

Offset of the list of attributes in the typelib.

 

guint32 dependencies;

guint32 dependencies;

Offset of a single string, which is the list of immediate dependencies, separated by the '|' character. The dependencies are required in order to avoid having programs consuming a typelib check for @@ -784,130 +784,130 @@ an "Unresolved" type return from every API call.

 

guint32 size;

guint32 size;

The size in bytes of the typelib.

 

guint32 namespace;

guint32 namespace;

Offset of the namespace string in the typelib.

 

guint32 nsversion;

guint32 nsversion;

Offset of the namespace version string in the typelib.

 

guint32 shared_library;

guint32 shared_library;

This field is the set of shared libraries associated with the typelib. The entries are separated by the '|' (pipe) character.

 

guint32 c_prefix;

guint32 c_prefix;

The prefix for the function names of the library

 

guint16 entry_blob_size;

guint16 entry_blob_size;

The sizes of fixed-size blobs. Recording this information here allows to write parser which continue to work if the format is extended by adding new fields to the end of the fixed-size blobs.

 

guint16 function_blob_size;

guint16 function_blob_size;

See entry_blob_size .

 

guint16 callback_blob_size;

guint16 callback_blob_size;

See entry_blob_size .

 

guint16 signal_blob_size;

guint16 signal_blob_size;

See entry_blob_size .

 

guint16 vfunc_blob_size;

guint16 vfunc_blob_size;

See entry_blob_size .

 

guint16 arg_blob_size;

guint16 arg_blob_size;

See entry_blob_size .

 

guint16 property_blob_size;

guint16 property_blob_size;

See entry_blob_size .

 

guint16 field_blob_size;

guint16 field_blob_size;

See entry_blob_size .

 

guint16 value_blob_size;

guint16 value_blob_size;

See entry_blob_size .

 

guint16 attribute_blob_size;

guint16 attribute_blob_size;

See entry_blob_size .

 

guint16 constant_blob_size;

guint16 constant_blob_size;

See entry_blob_size .

 

guint16 error_domain_blob_size;

guint16 error_domain_blob_size;

See entry_blob_size .

 

guint16 signature_blob_size;

guint16 signature_blob_size;

See entry_blob_size .

 

guint16 enum_blob_size;

guint16 enum_blob_size;

See entry_blob_size .

 

guint16 struct_blob_size;

guint16 struct_blob_size;

See entry_blob_size .

 

guint16 object_blob_size;

guint16 object_blob_size;

See entry_blob_size .

 

guint16 interface_blob_size;

guint16 interface_blob_size;

For variable-size blobs, the size of the struct up to the first flexible array member. Recording this information here allows to write parser which continue to work if the format is extended by @@ -916,18 +916,18 @@ variable-size blobs.

 

guint16 union_blob_size;

guint16 union_blob_size;

See entry_blob_size .

 

guint32 sections;

guint32 sections;

Offset of section blob array

 

guint16 padding[6];

guint16 padding[6];

TODO

 

guint32 id;

guint32 id;

A SectionType

 

guint32 offset;

guint32 offset;

Integer offset for this section

 

guint16 blob_type;

guint16 blob_type;

A GTypelibBlobType

 

guint16 local : 1;

guint16 local : 1;

Whether this entry refers to a blob in this typelib.

 

guint16 reserved :15;

guint16 reserved :15;

Reserved for future use.

 

guint32 name;

guint32 name;

The name of the entry.

 

guint32 offset;

guint32 offset;

If is_local is set, this is the offset of the blob in the typelib. Otherwise, it is the offset of the namespace in which the blob has to be looked up by name.

guint reserved : 8;

guint reserved : 8;

Reserved for future use.

 

guint reserved2 :16;

guint reserved2 :16;

Reserved for future use.

 

guint pointer : 1;

guint pointer : 1;

TODO

 

guint reserved3 : 2;

guint reserved3 : 2;

Reserved for future use.

 

guint tag : 5;

guint tag : 5;

A GITypeTag

 
 

guint32 offset;

guint32 offset;

Offset relative to header->types that points to a TypeBlob. Unlike other offsets, this is in words (ie 32bit units) rather than bytes.

guint32 name;

guint32 name;

A suggested name for the parameter.

 

guint in : 1;

guint in : 1;

The parameter is an input to the function

 

guint out : 1;

guint out : 1;

The parameter is used to return an output of the function. Parameters can be both in and out. Out parameters implicitly add another level of indirection to the parameter type. Ie if the type is uint32 in an out @@ -1203,13 +1203,13 @@ parameter, the function actually takes an uint32*.

 

guint caller_allocates : 1;

guint caller_allocates : 1;

The parameter is a pointer to a struct or object that will receive an output of the function.

 

guint nullable : 1;

guint nullable : 1;

Only meaningful for types which are passed as pointers. For an in parameter, indicates if it is ok to pass NULL in. Gor an out parameter, indicates whether it may return NULL. Note that NULL is a @@ -1218,20 +1218,20 @@ for parameters of these types.

 

guint optional : 1;

guint optional : 1;

For an out parameter, indicates that NULL may be passed in if the value is not needed.

 

guint transfer_ownership : 1;

guint transfer_ownership : 1;

For an in parameter, indicates that the function takes over ownership of the parameter value. For an out parameter, it indicates that the caller is responsible for freeing the return value.

 

guint transfer_container_ownership : 1;

guint transfer_container_ownership : 1;

For container types, indicates that the ownership of the container, but not of its contents is transferred. This is typically the case for out parameters returning lists of @@ -1239,7 +1239,7 @@ statically allocated things.

 

guint return_value : 1;

guint return_value : 1;

The parameter should be considered the return value of the function. Only out parameters can be marked as return value, and there can be at most one per function call. If an out parameter is marked as @@ -1248,36 +1248,36 @@ void or a boolean indicating the success of the call.

 

guint scope : 3;

guint scope : 3;

A GIScopeType. If the parameter is of a callback type, this denotes the scope of the user_data and the callback function pointer itself (for languages that emit code at run-time).

 

guint skip : 1;

guint skip : 1;

Indicates that the parameter is only useful in C and should be skipped.

 

guint reserved :20;

guint reserved :20;

Reserved for future use.

 

gint8 closure;

gint8 closure;

Index of the closure (user_data) parameter associated with the callback, or -1.

 

gint8 destroy;

gint8 destroy;

Index of the destroy notfication callback parameter associated with the callback, or -1.

 

guint16 padding;

guint16 padding;

TODO

 
 

guint16 may_return_null : 1;

guint16 may_return_null : 1;

Only relevant for pointer types. Indicates whether the caller must expect NULL as a return value.

 

guint16 caller_owns_return_value : 1;

guint16 caller_owns_return_value : 1;

If set, the caller is responsible for freeing the return value if it is no longer needed.

 

guint16 caller_owns_return_container : 1;

guint16 caller_owns_return_container : 1;

This flag is only relevant if the return type is a container type. If the flag is set, the caller is resonsible for freeing the container, but not its contents.

 

guint16 skip_return : 1;

guint16 skip_return : 1;

Indicates that the return value is only useful in C and should be skipped.

 

guint16 instance_transfer_ownership : 1;

guint16 instance_transfer_ownership : 1;

When calling, the function assumes ownership of the instance parameter.

 

guint16 throws : 1;

Denotes the signature takes an additional GError argument beyond +

guint16 throws : 1;

Denotes the signature takes an additional GError argument beyond the annotated arguments.

 

guint16 reserved :10;

guint16 reserved :10;

Reserved for future use.

 

guint16 n_arguments;

guint16 n_arguments;

The number of arguments that this function expects, also the length of the array of ArgBlobs.

 

guint16 blob_type;

guint16 blob_type;

A GTypelibBlobType

 

guint16 deprecated : 1;

guint16 deprecated : 1;

Whether the blob is deprecated.

 

guint16 reserved :15;

guint16 reserved :15;

Reserved for future use.

 

guint32 name;

guint32 name;

The name of the blob.

 

guint16 blob_type;

guint16 blob_type;

BLOB_TYPE_FUNCTION

 

guint16 deprecated : 1;

guint16 deprecated : 1;

The function is deprecated.

 

guint16 setter : 1;

guint16 setter : 1;

The function is a setter for a property. Language bindings may prefer to not bind individual setters and rely on the generic -g_object_set().

 

guint16 getter : 1;

guint16 getter : 1;

The function is a getter for a property. Language bindings may prefer to not bind individual getters and rely on the generic -g_object_get().

 

guint16 constructor : 1;

guint16 constructor : 1;

The function acts as a constructor for the object it is contained in.

 

guint16 wraps_vfunc : 1;

guint16 wraps_vfunc : 1;

The function is a simple wrapper for a virtual function.

 

guint16 throws : 1;

guint16 throws : 1;

This is now additionally stored in the SignatureBlob.

[deprecated]

guint16 index :10;

guint16 index :10;

Index of the property that this function is a setter or getter of in the array of properties of the containing interface, or index of the virtual function that this function wraps.

 

guint32 name;

guint32 name;

TODO

 

guint32 symbol;

guint32 symbol;

The symbol which can be used to obtain the function pointer with dlsym().

 

guint32 signature;

guint32 signature;

Offset of the SignatureBlob describing the parameter types and the return value type.

 

guint16 is_static : 1;

guint16 is_static : 1;

The function is a "static method"; in other words it's a pure function whose name is conceptually scoped to the object.

 

guint16 reserved : 15;

guint16 reserved : 15;

Reserved for future use.

 

guint16 reserved2 : 16;

guint16 reserved2 : 16;

Reserved for future use.

 

guint16 blob_type;

guint16 blob_type;

TODO

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 reserved :15;

guint16 reserved :15;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 

guint32 signature;

guint32 signature;

Offset of the SignatureBlob describing the parameter types and the return value type.

 

guint8 pointer :1;

guint8 pointer :1;

Whether this type represents an indirection

 

guint8 reserved :2;

guint8 reserved :2;

Reserved for future use.

 

guint8 tag :5;

guint8 tag :5;

A GITypeTag

 

guint8 reserved2;

guint8 reserved2;

Reserved for future use.

 

guint16 interface;

guint16 interface;

Index of the directory entry for the interface.

 

guint16 length;

guint16 length;

TODO

 

guint16 size;

guint16 size;

TODO

 

guint16 pointer :1;

guint16 pointer :1;

TODO

 

guint16 reserved :2;

guint16 reserved :2;

Reserved for future use.

 

guint16 tag :5;

guint16 tag :5;

TODO

 

guint16 zero_terminated :1;

guint16 zero_terminated :1;

Indicates that the array must be terminated by a suitable -NULL value.

 

guint16 has_length :1;

guint16 has_length :1;

Indicates that length points to a parameter specifying the length of the array. If both has_length and zero_terminated are set, the convention is to pass -1 for the length if the array is zero-terminated.

 

guint16 has_size :1;

guint16 has_size :1;

Indicates that size is the fixed size of the array.

 

guint16 array_type :2;

guint16 array_type :2;

Indicates whether this is a C array, GArray, GPtrArray, or GByteArray. If something other than a C array, the length and element size are implicit in the structure.

 

guint16 reserved2 :3;

guint16 reserved2 :3;

Reserved for future use.

 

guint8 pointer :1;

guint8 pointer :1;

TODO

 

guint8 reserved :2;

guint8 reserved :2;

Reserved for future use.

 

guint8 tag :5;

guint8 tag :5;

TODO

 

guint8 reserved2;

guint8 reserved2;

Reserved for future use.

 

guint16 n_types;

guint16 n_types;

The number of parameter types to follow.

 

guint8 pointer :1;

guint8 pointer :1;

TODO

 

guint8 reserved :2;

guint8 reserved :2;

TODO

 

guint8 tag :5;

guint8 tag :5;

TODO

 

guint8 reserved2;

guint8 reserved2;

TODO

 

guint16 n_domains;

guint16 n_domains;

TODO: must be 0

 

guint16 domains[];

guint16 domains[];

TODO

 

guint32 deprecated : 1;

guint32 deprecated : 1;

Whether this value is deprecated

 

guint32 unsigned_value : 1;

guint32 unsigned_value : 1;

if set, value is a 32-bit unsigned integer cast to gint32

 

guint32 reserved :30;

guint32 reserved :30;

Reserved for future use.

 

guint32 name;

guint32 name;

Name of blob

 

gint32 value;

gint32 value;

The numerical value

 

guint32 name;

guint32 name;

The name of the field.

 

guint8 readable :1;

guint8 readable :1;

TODO

 

guint8 writable :1;

guint8 writable :1;

How the field may be accessed.

 

guint8 has_embedded_type :1;

guint8 has_embedded_type :1;

An anonymous type follows the FieldBlob.

 

guint8 reserved :5;

guint8 reserved :5;

Reserved for future use.

 

guint8 bits;

guint8 bits;

If this field is part of a bitfield, the number of bits which it uses, otherwise 0.

 

guint16 struct_offset;

guint16 struct_offset;

The offset of the field in the struct. The value 0xFFFF indicates that the struct offset is unknown.

 

guint32 reserved2;

guint32 reserved2;

Reserved for future use.

 

guint16 blob_type;

guint16 blob_type;

TODO

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 unregistered : 1;

guint16 unregistered : 1;

TODO

 

guint16 reserved :14;

guint16 reserved :14;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 

guint32 gtype_name;

guint32 gtype_name;

The name under which the type is registered with GType.

 

guint32 gtype_init;

guint32 gtype_init;

The symbol name of the get_type() function which registers the type.

 

guint16 blob_type;

guint16 blob_type;

BLOB_TYPE_STRUCT

 

guint16 deprecated : 1;

guint16 deprecated : 1;

Whether this structure is deprecated

 

guint16 unregistered : 1;

guint16 unregistered : 1;

If this is set, the type is not registered with GType.

 

guint16 is_gtype_struct : 1;

guint16 is_gtype_struct : 1;

Whether this structure is the class or interface layout for a GObject

 

guint16 alignment : 6;

guint16 alignment : 6;

The byte boundary that the struct is aligned to in memory

 

guint16 foreign : 1;

guint16 foreign : 1;

If the type is foreign, eg if it's expected to be overridden by a native language binding instead of relying of introspected bindings.

 

guint16 reserved : 6;

guint16 reserved : 6;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 

guint32 gtype_name;

String name of the associated GType

guint32 gtype_name;

String name of the associated GType

 

guint32 gtype_init;

String naming the symbol which gets the runtime GType

guint32 gtype_init;

String naming the symbol which gets the runtime GType

 

guint32 size;

guint32 size;

The size of the struct in bytes.

 

guint16 n_fields;

guint16 n_fields;

TODO

 

guint16 n_methods;

guint16 n_methods;

TODO

 

guint32 reserved2;

guint32 reserved2;

Reserved for future use.

 

guint32 reserved3;

guint32 reserved3;

Reserved for future use.

 

guint16 blob_type;

guint16 blob_type;

TODO

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 unregistered : 1;

guint16 unregistered : 1;

If this is set, the type is not registered with GType.

 

guint16 discriminated : 1;

guint16 discriminated : 1;

Is set if the union is discriminated

 

guint16 alignment : 6;

guint16 alignment : 6;

The byte boundary that the union is aligned to in memory

 

guint16 reserved : 7;

guint16 reserved : 7;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 

guint32 gtype_name;

String name of the associated GType

guint32 gtype_name;

String name of the associated GType

 

guint32 gtype_init;

String naming the symbol which gets the runtime GType

guint32 gtype_init;

String naming the symbol which gets the runtime GType

 

guint32 size;

guint32 size;

TODO

 

guint16 n_fields;

guint16 n_fields;

Length of the arrays

 

guint16 n_functions;

guint16 n_functions;

TODO

 

guint32 reserved2;

guint32 reserved2;

Reserved for future use.

 

guint32 reserved3;

guint32 reserved3;

Reserved for future use.

 

gint32 discriminator_offset;

gint32 discriminator_offset;

Offset from the beginning of the union where the discriminator of a discriminated union is located. The value 0xFFFF indicates that the discriminator offset is unknown.

guint16 blob_type;

guint16 blob_type;

TODO

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 unregistered : 1;

guint16 unregistered : 1;

If this is set, the type is not registered with GType.

 

guint16 storage_type : 5;

guint16 storage_type : 5;

The tag of the type used for the enum in the C ABI (will be a signed or unsigned integral type)

 

guint16 reserved : 9;

guint16 reserved : 9;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 

guint32 gtype_name;

String name of the associated GType

guint32 gtype_name;

String name of the associated GType

 

guint32 gtype_init;

String naming the symbol which gets the runtime GType

guint32 gtype_init;

String naming the symbol which gets the runtime GType

 

guint16 n_values;

guint16 n_values;

The length of the values array.

 

guint16 n_methods;

guint16 n_methods;

The length of the methods array.

 

guint32 error_domain;

String naming the GError domain this enum is associated with

guint32 error_domain;

String naming the GError domain this enum is associated with

 

guint32 name;

guint32 name;

The name of the property.

 

guint32 deprecated : 1;

guint32 deprecated : 1;

TODO

 

guint32 readable : 1;

guint32 readable : 1;

TODO

 

guint32 writable : 1;

guint32 writable : 1;

TODO

 

guint32 construct : 1;

guint32 construct : 1;

TODO

 

guint32 construct_only : 1;

guint32 construct_only : 1;

The ParamFlags used when registering the property.

 

guint32 transfer_ownership : 1;

guint32 transfer_ownership : 1;

When writing, the type containing the property takes ownership of the value. When reading, the returned value needs to be released by the caller.

 

guint32 transfer_container_ownership : 1;

guint32 transfer_container_ownership : 1;

For container types indicates that the ownership of the container, but not of its contents, is transferred. This is typically the case when reading lists of statically allocated @@ -2491,12 +2491,12 @@ things.

 

guint32 reserved :25;

guint32 reserved :25;

Reserved for future use.

 

guint32 reserved2;

guint32 reserved2;

Reserved for future use.

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 run_first : 1;

guint16 run_first : 1;

TODO

 

guint16 run_last : 1;

guint16 run_last : 1;

TODO

 

guint16 run_cleanup : 1;

guint16 run_cleanup : 1;

TODO

 

guint16 no_recurse : 1;

guint16 no_recurse : 1;

TODO

 

guint16 detailed : 1;

guint16 detailed : 1;

TODO

 

guint16 action : 1;

guint16 action : 1;

TODO

 

guint16 no_hooks : 1;

guint16 no_hooks : 1;

The flags used when registering the signal.

 

guint16 has_class_closure : 1;

guint16 has_class_closure : 1;

Set if the signal has a class closure.

 

guint16 true_stops_emit : 1;

guint16 true_stops_emit : 1;

Whether the signal has true-stops-emit semantics

 

guint16 reserved : 6;

guint16 reserved : 6;

Reserved for future use.

 

guint16 class_closure;

guint16 class_closure;

The index of the class closure in the list of virtual functions of the object or interface on which the signal is defined.

 

guint32 name;

guint32 name;

The name of the signal.

 

guint32 reserved2;

guint32 reserved2;

Reserved for future use.

 

guint32 signature;

guint32 signature;

Offset of the SignatureBlob describing the parameter types and the return value type.

 

guint32 name;

guint32 name;

The name of the virtual function.

 

guint16 must_chain_up : 1;

guint16 must_chain_up : 1;

If set, every implementation of this virtual function must chain up to the implementation of the parent class.

 

guint16 must_be_implemented : 1;

guint16 must_be_implemented : 1;

If set, every derived class must override this virtual function.

 

guint16 must_not_be_implemented : 1;

guint16 must_not_be_implemented : 1;

If set, derived class must not override this virtual function.

 

guint16 class_closure : 1;

guint16 class_closure : 1;

Set if this virtual function is the class closure of a signal.

 

guint16 throws : 1;

guint16 throws : 1;

This is now additionally stored in the SignatureBlob.

[deprecated]

guint16 reserved :11;

guint16 reserved :11;

Reserved for future use.

 

guint16 signal;

guint16 signal;

The index of the signal in the list of signals of the object or interface to which this virtual function belongs.

 

guint16 struct_offset;

guint16 struct_offset;

The offset of the function pointer in the class struct. The value 0xFFFF indicates that the struct offset is unknown.

 

guint16 invoker : 10;

guint16 invoker : 10;

If a method invoker for this virtual exists, this is the offset in the class structure of the method. If no method is known, this value will be 0x3ff.

 

guint16 reserved2 : 6;

guint16 reserved2 : 6;

Reserved for future use.

 

guint32 reserved3;

guint32 reserved3;

Reserved for future use.

 

guint32 signature;

guint32 signature;

Offset of the SignatureBlob describing the parameter types and the return value type.

 

guint16 blob_type;

guint16 blob_type;

BLOB_TYPE_OBJECT

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 abstract : 1;

guint16 abstract : 1;

TODO

 

guint16 fundamental : 1;

guint16 fundamental : 1;

this object is not a GObject derived type, instead it's an additional fundamental type.

 

guint16 reserved :13;

guint16 reserved :13;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 

guint32 gtype_name;

String name of the associated GType

guint32 gtype_name;

String name of the associated GType

 

guint32 gtype_init;

String naming the symbol which gets the runtime GType

guint32 gtype_init;

String naming the symbol which gets the runtime GType

 

guint16 parent;

guint16 parent;

The directory index of the parent type. This is only set for objects. If an object does not have a parent, it is zero.

 

guint16 gtype_struct;

guint16 gtype_struct;

TODO

 

guint16 n_interfaces;

guint16 n_interfaces;

TODO

 

guint16 n_fields;

guint16 n_fields;

TODO

 

guint16 n_properties;

guint16 n_properties;

TODO

 

guint16 n_methods;

guint16 n_methods;

TODO

 

guint16 n_signals;

guint16 n_signals;

TODO

 

guint16 n_vfuncs;

guint16 n_vfuncs;

TODO

 

guint16 n_constants;

guint16 n_constants;

The lengths of the arrays.Up to 16bits of padding may be inserted between the arrays to ensure that they start on a 32bit boundary.

 

guint16 n_field_callbacks;

guint16 n_field_callbacks;

The number of n_fields which are also callbacks. This is used to calculate the fields section size in constant time.

 

guint32 ref_func;

guint32 ref_func;

String pointing to a function which can be called to increase the reference count for an instance of this object type.

 

guint32 unref_func;

guint32 unref_func;

String pointing to a function which can be called to decrease the reference count for an instance of this object type.

 

guint32 set_value_func;

guint32 set_value_func;

String pointing to a function which can be called to convert a pointer of this object to a GValue

 

guint32 get_value_func;

guint32 get_value_func;

String pointing to a function which can be called to convert extract a pointer to this object from a GValue

 

guint32 reserved3;

guint32 reserved3;

Reserved for future use.

 

guint32 reserved4;

guint32 reserved4;

Reserved for future use.

 

guint16 interfaces[];

guint16 interfaces[];

An array of indices of directory entries for the implemented interfaces.

 

guint16 blob_type;

guint16 blob_type;

TODO

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 reserved :15;

guint16 reserved :15;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 

guint32 gtype_name;

guint32 gtype_name;

TODO

 

guint32 gtype_init;

guint32 gtype_init;

TODO

 

guint16 gtype_struct;

guint16 gtype_struct;

Name of the interface "class" C structure

 

guint16 n_prerequisites;

guint16 n_prerequisites;

Number of prerequisites

 

guint16 n_properties;

guint16 n_properties;

Number of properties

 

guint16 n_methods;

guint16 n_methods;

Number of methods

 

guint16 n_signals;

guint16 n_signals;

Number of signals

 

guint16 n_vfuncs;

guint16 n_vfuncs;

Number of virtual functions

 

guint16 n_constants;

guint16 n_constants;

The lengths of the arrays. Up to 16bits of padding may be inserted between the arrays to ensure that they start on a 32bit boundary.

 

guint16 padding;

guint16 padding;

TODO

 

guint32 reserved2;

guint32 reserved2;

Reserved for future use.

 

guint32 reserved3;

guint32 reserved3;

Reserved for future use.

 

guint16 prerequisites[];

guint16 prerequisites[];

An array of indices of directory entries for required interfaces.

 

guint16 blob_type;

guint16 blob_type;

TODO

 

guint16 deprecated : 1;

guint16 deprecated : 1;

TODO

 

guint16 reserved :15;

guint16 reserved :15;

Reserved for future use.

 

guint32 name;

guint32 name;

TODO

 
 

guint32 size;

guint32 size;

The size of the value in bytes.

 

guint32 offset;

guint32 offset;

The offset of the value in the typelib.

 

guint32 reserved2;

guint32 reserved2;

Reserved for future use.

 

guint32 offset;

guint32 offset;

The offset of the typelib entry to which this attribute refers. Attributes are kept sorted by offset, so that the attributes of an entry can be found by a binary search.

 

guint32 name;

guint32 name;

The name of the attribute, a string.

 

guint32 value;

guint32 value;

The value of the attribute (also a string)

 
-gint +gint g_union_info_get_n_fields () @@ -57,7 +57,7 @@
-gint +gint g_union_info_get_n_methods () @@ -73,7 +73,7 @@
-gboolean +gboolean g_union_info_is_discriminated () @@ -81,7 +81,7 @@
-gint +gint g_union_info_get_discriminator_offset () @@ -113,7 +113,7 @@
-gsize +gsize g_union_info_get_size () @@ -121,7 +121,7 @@
-gsize +gsize g_union_info_get_alignment () @@ -162,7 +162,7 @@ fields is valid for specified instance.

Functions

g_union_info_get_n_fields ()

-
gint
+
gint
 g_union_info_get_n_fields (GIUnionInfo *info);

Obtain the number of fields this union has.

@@ -190,7 +190,7 @@ g_union_info_get_n_fields (

g_union_info_get_field ()

GIFieldInfo *
 g_union_info_get_field (GIUnionInfo *info,
-                        gint n);
+ gint n);

Obtain the type information for field with specified index.

Parameters

@@ -224,7 +224,7 @@ when done.


g_union_info_get_n_methods ()

-
gint
+
gint
 g_union_info_get_n_methods (GIUnionInfo *info);

Obtain the number of methods this union has.

@@ -252,7 +252,7 @@ g_union_info_get_n_methods (

g_union_info_get_method ()

GIFunctionInfo *
 g_union_info_get_method (GIUnionInfo *info,
-                         gint n);
+ gint n);

Obtain the type information for method with specified index.

Parameters

@@ -286,7 +286,7 @@ when done.


g_union_info_is_discriminated ()

-
gboolean
+
gboolean
 g_union_info_is_discriminated (GIUnionInfo *info);

Return true if this union contains discriminator field.

@@ -306,13 +306,13 @@ g_union_info_is_discriminated (

Returns

-

TRUE if this is a discriminated union, FALSE otherwise

+

TRUE if this is a discriminated union, FALSE otherwise


g_union_info_get_discriminator_offset ()

-
gint
+
gint
 g_union_info_get_discriminator_offset (GIUnionInfo *info);

Returns offset of the discriminator field in the structure.

@@ -369,7 +369,7 @@ when done.

g_union_info_get_discriminator ()

GIConstantInfo *
 g_union_info_get_discriminator (GIUnionInfo *info,
-                                gint n);
+ gint n);

Obtain discriminator value assigned for n-th union field, i.e. n-th union field is the active one if discriminator contains this constant.

@@ -407,7 +407,7 @@ when done.

g_union_info_find_method ()

GIFunctionInfo *
 g_union_info_find_method (GIUnionInfo *info,
-                          const gchar *name);
+ const gchar *name);

Obtain the type information for method named name .

@@ -442,7 +442,7 @@ when done.


g_union_info_get_size ()

-
gsize
+
gsize
 g_union_info_get_size (GIUnionInfo *info);

Obtain the total size of the union.

@@ -468,7 +468,7 @@ g_union_info_get_size (

g_union_info_get_alignment ()

-
gsize
+
gsize
 g_union_info_get_alignment (GIUnionInfo *info);

Obtain the required alignment of the union.

@@ -503,6 +503,6 @@ g_union_info_get_alignment ( -
Generated by GTK-Doc V1.24.1
+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/gi-GIVFuncInfo.html b/docs/reference/html/gi-GIVFuncInfo.html index bad7272..3dab427 100644 --- a/docs/reference/html/gi-GIVFuncInfo.html +++ b/docs/reference/html/gi-GIVFuncInfo.html @@ -8,7 +8,7 @@ - + @@ -49,7 +49,7 @@
-gint +gint g_vfunc_info_get_offset () @@ -73,7 +73,7 @@
-gpointer +gpointer g_vfunc_info_get_address () @@ -81,7 +81,7 @@
-gboolean +gboolean g_vfunc_info_invoke () @@ -155,7 +155,7 @@ more information about possible flag values.


g_vfunc_info_get_offset ()

-
gint
+
gint
 g_vfunc_info_get_offset (GIVFuncInfo *info);

Obtain the offset of the function pointer in the class struct. The value 0xFFFF indicates that the struct offset is unknown.

@@ -204,7 +204,7 @@ this virtual function belongs.

Returns

-

the signal or NULL if none set.

+

the signal or NULL if none set.

[transfer full]

@@ -233,7 +233,7 @@ method will return it. An invoker method is a C entry point.

Returns

-

the GIVFuncInfo or NULL. Free it with +

the GIVFuncInfo or NULL. Free it with g_base_info_unref() when done.

[transfer full]

@@ -241,10 +241,10 @@ method will return it. An invoker method is a C entry point.


g_vfunc_info_get_address ()

-
gpointer
+
gpointer
 g_vfunc_info_get_address (GIVFuncInfo *info,
-                          GType implementor_gtype,
-                          GError **error);
+ GType implementor_gtype, + GError **error);

This method will look up where inside the type struct of implementor_gtype is the implementation for info @@ -265,12 +265,12 @@ is the implementation for info

implementor_gtype

GType implementing this virtual function

GType implementing this virtual function

 

error

return location for a GError

return location for a GError

 

implementor

GType of the type that implements this virtual function

GType of the type that implements this virtual function

 

an array of GIArguments, one for each in parameter of info . If there are no in parameter, in_args -can be NULL

 

an array of GIArguments, one for each out parameter of info . If there are no out parameters, out_args -may be NULL

 

return location for the return value of the function. If the function returns void, return_value may be -NULL

 

error

return location for detailed error information, or NULL

return location for detailed error information, or NULL

 

GI_VFUNC_THROWS

-

Includes a GError

+

Includes a GError

 

gboolean v_boolean;

gboolean v_boolean;

TODO

 

gint8 v_int8;

gint8 v_int8;

TODO

 

guint8 v_uint8;

guint8 v_uint8;

TODO

 

gint16 v_int16;

gint16 v_int16;

TODO

 

guint16 v_uint16;

guint16 v_uint16;

TODO

 

gint32 v_int32;

gint32 v_int32;

TODO

 

guint32 v_uint32;

guint32 v_uint32;

TODO

 

gint64 v_int64;

gint64 v_int64;

TODO

 

guint64 v_uint64;

guint64 v_uint64;

TODO

 

gfloat v_float;

gfloat v_float;

TODO

 

gdouble v_double;

gdouble v_double;

TODO

 

gshort v_short;

gshort v_short;

TODO

 

gushort v_ushort;

gushort v_ushort;

TODO

 

gint v_int;

gint v_int;

TODO

 

guint v_uint;

guint v_uint;

TODO

 

glong v_long;

glong v_long;

TODO

 

gulong v_ulong;

gulong v_ulong;

TODO

 

gssize v_ssize;

gssize v_ssize;

TODO

 

gsize v_size;

gsize v_size;

TODO

 

gchar *v_string;

gchar *v_string;

TODO

 

gpointer v_pointer;

gpointer v_pointer;

TODO

 

GI_TYPE_TAG_GTYPE

-

a GType

+

a GType

 

GI_TYPE_TAG_GLIST

-

a GList

+

a GList

 

GI_TYPE_TAG_GSLIST

-

a GSList

+

a GSList

 

GI_TYPE_TAG_GHASH

-

a GHashTable

+

a GHashTable

 

GI_TYPE_TAG_ERROR

-

a GError

+

a GError

 

GI_ARRAY_TYPE_PTR_ARRAY

-

a GPtrArray array

+

a GPtrArray array

 

GI_ARRAY_TYPE_BYTE_ARRAY

-

a GByteArray array

+

a GByteArray array

 
-gboolean +gboolean g_function_info_prep_invoker () @@ -81,7 +81,7 @@
-gboolean +gboolean g_function_invoker_new_for_address () @@ -185,7 +185,7 @@

gi_type_tag_get_ffi_type ()

ffi_type *
 gi_type_tag_get_ffi_type (GITypeTag type_tag,
-                          gboolean is_pointer);
+ gboolean is_pointer);

TODO

Parameters

@@ -285,10 +285,10 @@ GIArgument: https://bugzilla.gnome.org/show_bug.cgi?id=665152


g_function_info_prep_invoker ()

-
gboolean
+
gboolean
 g_function_info_prep_invoker (GIFunctionInfo *info,
                               GIFunctionInvoker *invoker,
-                              GError **error);
+ GError **error);

Initialize the caller-allocated invoker structure with a cache of information needed to invoke the C function corresponding to @@ -318,7 +318,7 @@ inside the binding's function mapping.

error

A GError

A GError

 

error

A GError

A GError

 

gpointer native_address;

gpointer native_address;

the native address

 
-gboolean +gboolean g_typelib_symbol ()
const gchar * +const gchar * g_typelib_get_namespace () @@ -111,12 +111,12 @@

g_typelib_new_from_memory ()

GITypelib *
-g_typelib_new_from_memory (guint8 *memory,
-                           gsize len,
-                           GError **error);
+g_typelib_new_from_memory (guint8 *memory, + gsize len, + GError **error);

Creates a new GITypelib from a memory location. The memory block pointed to by typelib - will be automatically g_free()d when the + will be automatically g_free()d when the repository is destroyed.

[skip]

@@ -140,7 +140,7 @@ repository is destroyed.

error

a GError

a GError

 

A GError

A GError

 

a GMappedFile, that will be free'd when the repository is destroyed

a GMappedFile, that will be free'd when the repository is destroyed

 

error

a GError

a GError

 
+
Generated by GTK-Doc V1.25.1
\ No newline at end of file diff --git a/docs/reference/html/overview.html b/docs/reference/html/overview.html index fee9634..b5a2ef2 100644 --- a/docs/reference/html/overview.html +++ b/docs/reference/html/overview.html @@ -8,7 +8,7 @@ - + @@ -57,6 +57,6 @@ +
Generated by GTK-Doc V1.25.1 \ No newline at end of file diff --git a/docs/reference/html/overview.png b/docs/reference/html/overview.png deleted file mode 100644 index b4a12bda4711a600998b4db297e54b4a66954c8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112776 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 u2UkVp1FbR&@_WuB~l)8@q diff --git a/docs/reference/version.xml b/docs/reference/version.xml index 9db5ea1..29306a9 100644 --- a/docs/reference/version.xml +++ b/docs/reference/version.xml @@ -1 +1 @@ -1.48.0 +1.49.1 diff --git a/gir/gio-2.0.c b/gir/gio-2.0.c index fc47538..4ada324 100644 --- a/gir/gio-2.0.c +++ b/gir/gio-2.0.c @@ -401,11 +401,11 @@ * @open: invoked on the primary instance when there are files to open * @command_line: invoked on the primary instance when a command-line is * not handled locally - * @local_command_line: invoked (locally) when the process has been invoked - * via commandline execution (as opposed to, say, D-Bus activation - which - * is not currently supported by GApplication). The virtual function has - * the chance to inspect (and possibly replace) the list of command line - * arguments. See g_application_run() for more information. + * @local_command_line: invoked (locally). The virtual function has the chance + * to inspect (and possibly replace) command line arguments. See + * g_application_run() for more information. Also see the + * #GApplication::handle-local-options signal, which is a simpler + * alternative to handling some commandline options locally * @before_emit: invoked on the primary instance before 'activate', 'open', * 'command-line' or any action invocation, gets the 'platform data' from * the calling instance @@ -432,7 +432,7 @@ * is using its D-Bus backend. Use this to undo anything done by the * @dbus_register vfunc. Since: 2.34 * @handle_local_options: invoked locally after the parsing of the commandline - * options has occurred. + * options has occurred. Since: 2.40 * * Virtual function table for #GApplication. * @@ -1746,7 +1746,7 @@ * * Emitted when @file has been changed. * - * If using %G_FILE_MONITOR_WATCH_RENAMES on a directory monitor, and + * If using %G_FILE_MONITOR_WATCH_MOVES on a directory monitor, and * the information is available (and if supported by the backend), * @event_type may be %G_FILE_MONITOR_EVENT_RENAMED, * %G_FILE_MONITOR_EVENT_MOVED_IN or %G_FILE_MONITOR_EVENT_MOVED_OUT. @@ -1765,7 +1765,7 @@ * %G_FILE_MONITOR_EVENT_DELETED, with extra information. * %G_FILE_MONITOR_EVENT_RENAMED is equivalent to a delete/create * pair. This is exactly how the events will be reported in the case - * that the %G_FILE_MONITOR_WATCH_RENAMES flag is not in use. + * that the %G_FILE_MONITOR_WATCH_MOVES flag is not in use. * * If using the deprecated flag %G_FILE_MONITOR_SEND_MOVED flag and @event_type is * #G_FILE_MONITOR_EVENT_MOVED, @file will be set to a #GFile containing the @@ -2734,6 +2734,9 @@ * This signal supports detailed connections. You can connect to the * detailed signal "changed::x" in order to only receive callbacks * when key "x" changes. + * + * Note that @settings only emits this signal if you have read @key at + * least once while a signal handler was already connected for @key. */ @@ -4170,6 +4173,343 @@ /** + * GXdpDocuments: + * + * Abstract interface type for the D-Bus interface org.freedesktop.portal.Documents. + */ + + +/** + * GXdpDocuments::handle-add: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @arg_o_path_fd: Argument passed by remote caller. + * @arg_reuse_existing: Argument passed by remote caller. + * @arg_persistent: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the Add() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-add-named: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @arg_o_path_parent_fd: Argument passed by remote caller. + * @arg_filename: Argument passed by remote caller. + * @arg_reuse_existing: Argument passed by remote caller. + * @arg_persistent: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the AddNamed() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add_named() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-delete: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @arg_doc_id: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the Delete() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_delete() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-get-mount-point: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the GetMountPoint() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_get_mount_point() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-grant-permissions: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @arg_doc_id: Argument passed by remote caller. + * @arg_app_id: Argument passed by remote caller. + * @arg_permissions: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the GrantPermissions() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_grant_permissions() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-info: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @arg_doc_id: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the Info() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_info() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-list: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @arg_app_id: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the List() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_list() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-lookup: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @arg_filename: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the Lookup() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_lookup() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocuments::handle-revoke-permissions: + * @object: A #GXdpDocuments. + * @invocation: A #GDBusMethodInvocation. + * @arg_doc_id: Argument passed by remote caller. + * @arg_app_id: Argument passed by remote caller. + * @arg_permissions: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the RevokePermissions() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_revoke_permissions() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpDocumentsIface: + * @parent_iface: The parent interface. + * @handle_add: Handler for the #GXdpDocuments::handle-add signal. + * @handle_add_named: Handler for the #GXdpDocuments::handle-add-named signal. + * @handle_delete: Handler for the #GXdpDocuments::handle-delete signal. + * @handle_get_mount_point: Handler for the #GXdpDocuments::handle-get-mount-point signal. + * @handle_grant_permissions: Handler for the #GXdpDocuments::handle-grant-permissions signal. + * @handle_info: Handler for the #GXdpDocuments::handle-info signal. + * @handle_list: Handler for the #GXdpDocuments::handle-list signal. + * @handle_lookup: Handler for the #GXdpDocuments::handle-lookup signal. + * @handle_revoke_permissions: Handler for the #GXdpDocuments::handle-revoke-permissions signal. + * + * Virtual table for the D-Bus interface org.freedesktop.portal.Documents. + */ + + +/** + * GXdpDocumentsProxy: + * + * The #GXdpDocumentsProxy structure contains only private data and should only be accessed using the provided API. + */ + + +/** + * GXdpDocumentsProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GXdpDocumentsProxy. + */ + + +/** + * GXdpDocumentsSkeleton: + * + * The #GXdpDocumentsSkeleton structure contains only private data and should only be accessed using the provided API. + */ + + +/** + * GXdpDocumentsSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GXdpDocumentsSkeleton. + */ + + +/** + * GXdpNetworkMonitor: + * + * Abstract interface type for the D-Bus interface org.freedesktop.portal.NetworkMonitor. + */ + + +/** + * GXdpNetworkMonitor::changed: + * @object: A #GXdpNetworkMonitor. + * @arg_available: Argument. + * + * On the client-side, this signal is emitted whenever the D-Bus signal "changed" is received. + * + * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal. + */ + + +/** + * GXdpNetworkMonitor:available: + * + * Represents the D-Bus property "available". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + + +/** + * GXdpNetworkMonitor:connectivity: + * + * Represents the D-Bus property "connectivity". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + + +/** + * GXdpNetworkMonitor:metered: + * + * Represents the D-Bus property "metered". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + + +/** + * GXdpNetworkMonitorIface: + * @parent_iface: The parent interface. + * @get_available: Getter for the #GXdpNetworkMonitor:available property. + * @get_connectivity: Getter for the #GXdpNetworkMonitor:connectivity property. + * @get_metered: Getter for the #GXdpNetworkMonitor:metered property. + * @changed: Handler for the #GXdpNetworkMonitor::changed signal. + * + * Virtual table for the D-Bus interface org.freedesktop.portal.NetworkMonitor. + */ + + +/** + * GXdpNetworkMonitorProxy: + * + * The #GXdpNetworkMonitorProxy structure contains only private data and should only be accessed using the provided API. + */ + + +/** + * GXdpNetworkMonitorProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GXdpNetworkMonitorProxy. + */ + + +/** + * GXdpNetworkMonitorSkeleton: + * + * The #GXdpNetworkMonitorSkeleton structure contains only private data and should only be accessed using the provided API. + */ + + +/** + * GXdpNetworkMonitorSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GXdpNetworkMonitorSkeleton. + */ + + +/** + * GXdpProxyResolver: + * + * Abstract interface type for the D-Bus interface org.freedesktop.portal.ProxyResolver. + */ + + +/** + * GXdpProxyResolver::handle-lookup: + * @object: A #GXdpProxyResolver. + * @invocation: A #GDBusMethodInvocation. + * @arg_uri: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the Lookup() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_proxy_resolver_complete_lookup() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + + +/** + * GXdpProxyResolverIface: + * @parent_iface: The parent interface. + * @handle_lookup: Handler for the #GXdpProxyResolver::handle-lookup signal. + * + * Virtual table for the D-Bus interface org.freedesktop.portal.ProxyResolver. + */ + + +/** + * GXdpProxyResolverProxy: + * + * The #GXdpProxyResolverProxy structure contains only private data and should only be accessed using the provided API. + */ + + +/** + * GXdpProxyResolverProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GXdpProxyResolverProxy. + */ + + +/** + * GXdpProxyResolverSkeleton: + * + * The #GXdpProxyResolverSkeleton structure contains only private data and should only be accessed using the provided API. + */ + + +/** + * GXdpProxyResolverSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GXdpProxyResolverSkeleton. + */ + + +/** * GZlibCompressor: * * Zlib decompression @@ -4241,6 +4581,33 @@ /** + * SECTION:GXdpDocuments + * @title: GXdpDocuments + * @short_description: Generated C code for the org.freedesktop.portal.Documents D-Bus interface + * + * This section contains code for working with the org.freedesktop.portal.Documents D-Bus interface in C. + */ + + +/** + * SECTION:GXdpNetworkMonitor + * @title: GXdpNetworkMonitor + * @short_description: Generated C code for the org.freedesktop.portal.NetworkMonitor D-Bus interface + * + * This section contains code for working with the org.freedesktop.portal.NetworkMonitor D-Bus interface in C. + */ + + +/** + * SECTION:GXdpProxyResolver + * @title: GXdpProxyResolver + * @short_description: Generated C code for the org.freedesktop.portal.ProxyResolver D-Bus interface + * + * This section contains code for working with the org.freedesktop.portal.ProxyResolver D-Bus interface in C. + */ + + +/** * SECTION:_GFreedesktopDBus * @title: _GFreedesktopDBus * @short_description: Generated C code for the org.freedesktop.DBus D-Bus interface @@ -5692,7 +6059,8 @@ * manager should typically be exported at `/net/example/ExampleService1`, or * below (to allow for multiple object managers in a service). * - * It is not supported to export an object manager at the root path, `/`. + * It is supported, but not recommended, to export an object manager at the root + * path, `/`. * * See #GDBusObjectManagerClient for the client-side code that is * intended to be used with #GDBusObjectManagerServer or any D-Bus @@ -7322,6 +7690,34 @@ * when the library is unloaded. However, in practice this is not generally a problem, since most resource accesses * is for your own resources, and resource data is often used once, during parsing, and then released. * + * When debugging a program or testing a change to an installed version, it is often useful to be able to + * replace resources in the program or library, without recompiling, for debugging or quick hacking and testing + * purposes. + * + * Since GLib 2.50, it is possible to use the `G_RESOURCE_OVERLAYS` environment variable to selectively overlay + * resources with replacements from the filesystem. It is a colon-separated list of substitutions to perform + * during resource lookups. + * + * A substitution has the form + * + * |[ + * /org/gtk/libgtk=/home/desrt/gtk-overlay + * ]| + * + * The part before the `=` is the resource subpath for which the overlay applies. The part after is a + * filesystem path which contains files and subdirectories as you would like to be loaded as resources with the + * equivalent names. + * + * In the example above, if an application tried to load a resource with the resource path + * `/org/gtk/libgtk/ui/gtkdialog.ui` then GResource would check the filesystem path + * `/home/desrt/gtk-overlay/ui/gtkdialog.ui`. If a file was found there, it would be used instead. This is an + * overlay, not an outright replacement, which means that if a file is not found at that path, the built-in + * version will be used instead. Whiteouts are not currently supported. + * + * Substitutions must start with a slash, and must not contain a trailing slash before the '='. The path after + * the slash should ideally be absolute, but this is not strictly required. It is possible to overlay the + * location of a single resource with an individual file. + * * Since: 2.32 */ @@ -11859,10 +12255,9 @@ * * It is an error to call this function with an invalid action name. * - * This function is the opposite of - * g_action_parse_detailed_action_name(). It will produce a string that - * can be parsed back to the @action_name and @target_value by that - * function. + * This function is the opposite of g_action_parse_detailed_name(). + * It will produce a string that can be parsed back to the @action_name + * and @target_value by that function. * * See that function for the types of strings that will be printed by * this function. @@ -12000,7 +12395,7 @@ * Gets the commandline with which the application will be * started. * - * Returns: a string containing the @appinfo's commandline, + * Returns: (type filename): a string containing the @appinfo's commandline, * or %NULL if this information is not available * Since: 2.20 */ @@ -12062,7 +12457,7 @@ * * Gets the executable's name for the installed application. * - * Returns: a string containing the @appinfo's application + * Returns: (type filename): a string containing the @appinfo's application * binaries name */ @@ -12275,7 +12670,8 @@ /** * g_app_info_set_as_default_for_extension: * @appinfo: a #GAppInfo. - * @extension: a string containing the file extension (without the dot). + * @extension: (type filename): a string containing the file extension + * (without the dot). * @error: a #GError. * * Sets the application as the default handler for the given file extension. @@ -12647,7 +13043,7 @@ * The return value should not be modified or freed and is valid for as * long as @cmdline exists. * - * Returns: the current directory, or %NULL + * Returns: (nullable) (type filename): the current directory, or %NULL * Since: 2.28 */ @@ -19295,8 +19691,7 @@ /** * g_dbus_object_manager_server_new: - * @object_path: The object path to export the manager object at, which should - * not be `/`. + * @object_path: The object path to export the manager object at. * * Creates a new #GDBusObjectManagerServer object. * @@ -20165,7 +20560,8 @@ * situations such as the #GDesktopAppInfo returned from * g_desktop_app_info_new_from_keyfile(), this function will return %NULL. * - * Returns: The full path to the file for @info, or %NULL if not known. + * Returns: (type filename): The full path to the file for @info, + * or %NULL if not known. * Since: 2.24 */ @@ -20411,7 +20807,8 @@ /** * g_desktop_app_info_new_from_filename: - * @filename: the path of a desktop file, in the GLib filename encoding + * @filename: (type filename): the path of a desktop file, in the GLib + * filename encoding * * Creates a new #GDesktopAppInfo. * @@ -20725,6 +21122,18 @@ /** + * g_drive_is_removable: + * @drive: a #GDrive. + * + * Checks if the #GDrive and/or its media is considered removable by the user. + * See g_drive_is_media_removable(). + * + * Returns: %TRUE if @drive and/or its media is considered removable, %FALSE otherwise. + * Since: 2.50 + */ + + +/** * g_drive_poll_for_media: * @drive: a #GDrive. * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. @@ -22341,7 +22750,7 @@ * requires allocation of a temporary #GError. * * In contrast, with this function, a %FALSE return from - * gs_file_enumerator_iterate() *always* means + * g_file_enumerator_iterate() *always* means * "error". End of iteration is signaled by @out_info or @out_child being %NULL. * * Another crucial difference is that the references for @out_info and @@ -22550,16 +22959,16 @@ * * This call does no blocking I/O. * - * Returns: (nullable): string containing the #GFile's base name, or - * %NULL if given #GFile is invalid. The returned string should be - * freed with g_free() when no longer needed. + * Returns: (type filename) (nullable): string containing the #GFile's + * base name, or %NULL if given #GFile is invalid. The returned string + * should be freed with g_free() when no longer needed. */ /** * g_file_get_child: * @file: input #GFile - * @name: string containing the child's basename + * @name: (type filename): string containing the child's basename * * Gets a child of @file with basename equal to @name. * @@ -22645,8 +23054,8 @@ * * This call does no blocking I/O. * - * Returns: (nullable): string containing the #GFile's path, or %NULL - * if no such path exists. The returned string should be freed + * Returns: (type filename) (nullable): string containing the #GFile's path, + * or %NULL if no such path exists. The returned string should be freed * with g_free() when no longer needed. */ @@ -22660,8 +23069,8 @@ * * This call does no blocking I/O. * - * Returns: (nullable): string with the relative path from @descendant - * to @parent, or %NULL if @descendant doesn't have @parent as + * Returns: (type filename) (nullable): string with the relative path from + * @descendant to @parent, or %NULL if @descendant doesn't have @parent as * prefix. The returned string should be freed with g_free() when * no longer needed. */ @@ -23113,7 +23522,7 @@ * * Gets the name for a file. * - * Returns: a string containing the file name. + * Returns: (type filename): a string containing the file name. */ @@ -23440,7 +23849,7 @@ /** * g_file_info_set_name: * @info: a #GFileInfo. - * @name: a string containing a name. + * @name: (type filename): a string containing a name. * * Sets the name attribute for the current #GFileInfo. * See %G_FILE_ATTRIBUTE_STANDARD_NAME. @@ -23850,7 +24259,8 @@ /** * g_file_make_symbolic_link: * @file: a #GFile with the name of the symlink to create - * @symlink_value: a string with the path for the target of the new symlink + * @symlink_value: (type filename): a string with the path for the target + * of the new symlink * @cancellable: (allow-none): optional #GCancellable object, * %NULL to ignore * @error: a #GError @@ -24231,7 +24641,7 @@ /** * g_file_new_for_commandline_arg_and_cwd: * @arg: a command line string - * @cwd: the current working directory of the commandline + * @cwd: (type filename): the current working directory of the commandline * * Creates a #GFile with the given argument from the command line. * @@ -24252,7 +24662,7 @@ /** * g_file_new_for_path: - * @path: a string containing a relative or absolute path. + * @path: (type filename): a string containing a relative or absolute path. * The string must be encoded in the glib filename encoding. * * Constructs a #GFile for a given path. This operation never @@ -25116,7 +25526,7 @@ /** * g_file_resolve_relative_path: * @file: input #GFile - * @relative_path: a given relative path string + * @relative_path: (type filename): a given relative path string * * Resolves a relative path for @file to an absolute path. * @@ -26952,7 +27362,7 @@ /** * g_io_module_new: - * @filename: filename of the shared library module. + * @filename: (type filename): filename of the shared library module. * * Creates a new GIOModule that will load the specific * shared library when in use. @@ -27003,7 +27413,8 @@ /** * g_io_modules_load_all_in_directory: - * @dirname: pathname for a directory containing modules to load. + * @dirname: (type filename): pathname for a directory containing modules + * to load. * * Loads all the modules in the specified directory. * @@ -27022,7 +27433,8 @@ /** * g_io_modules_load_all_in_directory_with_scope: - * @dirname: pathname for a directory containing modules to load. + * @dirname: (type filename): pathname for a directory containing modules + * to load. * @scope: a scope to use when scanning the modules. * * Loads all the modules in the specified directory. @@ -27043,7 +27455,8 @@ /** * g_io_modules_scan_all_in_directory: - * @dirname: pathname for a directory containing modules to scan. + * @dirname: (type filename): pathname for a directory containing modules + * to scan. * * Scans all the modules in the specified directory, ensuring that * any extension point implemented by a module is registered. @@ -27063,7 +27476,8 @@ /** * g_io_modules_scan_all_in_directory_with_scope: - * @dirname: pathname for a directory containing modules to scan. + * @dirname: (type filename): pathname for a directory containing modules + * to scan. * @scope: a scope to use when scanning the modules * * Scans all the modules in the specified directory, ensuring that @@ -32524,6 +32938,23 @@ /** + * g_settings_get_int64: + * @settings: a #GSettings object + * @key: the key to get the value for + * + * Gets the value that is stored at @key in @settings. + * + * A convenience variant of g_settings_get() for 64-bit integers. + * + * It is a programmer error to give a @key that isn't specified as + * having a int64 type in the schema for @settings. + * + * Returns: a 64-bit integer + * Since: 2.50 + */ + + +/** * g_settings_get_mapped: * @settings: a #GSettings object * @key: the key to get the value for @@ -32628,6 +33059,24 @@ /** + * g_settings_get_uint64: + * @settings: a #GSettings object + * @key: the key to get the value for + * + * Gets the value that is stored at @key in @settings. + * + * A convenience variant of g_settings_get() for 64-bit unsigned + * integers. + * + * It is a programmer error to give a @key that isn't specified as + * having a uint64 type in the schema for @settings. + * + * Returns: a 64-bit unsigned integer + * Since: 2.50 + */ + + +/** * g_settings_get_user_value: * @settings: a #GSettings object * @key: the key to get the user value for @@ -33245,7 +33694,7 @@ /** * g_settings_schema_source_new_from_directory: - * @directory: the filename of a directory + * @directory: (type filename): the filename of a directory * @parent: (allow-none): a #GSettingsSchemaSource, or %NULL * @trusted: %TRUE, if the directory is trusted * @error: a pointer to a #GError pointer set to %NULL, or %NULL @@ -33437,6 +33886,25 @@ /** + * g_settings_set_int64: + * @settings: a #GSettings object + * @key: the name of the key to set + * @value: the value to set it to + * + * Sets @key in @settings to @value. + * + * A convenience variant of g_settings_set() for 64-bit integers. + * + * It is a programmer error to give a @key that isn't specified as + * having a int64 type in the schema for @settings. + * + * Returns: %TRUE if setting the key succeeded, + * %FALSE if the key was not writable + * Since: 2.50 + */ + + +/** * g_settings_set_string: * @settings: a #GSettings object * @key: the name of the key to set @@ -33496,6 +33964,26 @@ /** + * g_settings_set_uint64: + * @settings: a #GSettings object + * @key: the name of the key to set + * @value: the value to set it to + * + * Sets @key in @settings to @value. + * + * A convenience variant of g_settings_set() for 64-bit unsigned + * integers. + * + * It is a programmer error to give a @key that isn't specified as + * having a uint64 type in the schema for @settings. + * + * Returns: %TRUE if setting the key succeeded, + * %FALSE if the key was not writable + * Since: 2.50 + */ + + +/** * g_settings_set_value: * @settings: a #GSettings object * @key: the name of the key to set @@ -36476,6 +36964,10 @@ * New listeners can be added with e.g. g_socket_listener_add_address() * or g_socket_listener_add_inet_port(). * + * New services are created active, there is no need to call + * g_socket_service_start(), unless g_socket_service_stop() has been + * called before. + * * Returns: a new #GSocketService. * Since: 2.22 */ @@ -36485,8 +36977,10 @@ * g_socket_service_start: * @service: a #GSocketService * - * Starts the service, i.e. start accepting connections - * from the added sockets when the mainloop runs. + * Restarts the service, i.e. start accepting connections + * from the added sockets when the mainloop runs. This only needs + * to be called after the service has been stopped from + * g_socket_service_stop(). * * This call is thread-safe, so it may be called from a thread * handling an incoming client request. @@ -36511,6 +37005,10 @@ * close the listening sockets, call g_socket_listener_close(). (This * will happen automatically when the #GSocketService is finalized.) * + * This must be called before calling g_socket_listener_close() as + * the socket service will start accepting connections immediately + * when a new socket is added. + * * Since: 2.22 */ @@ -37226,7 +37724,7 @@ /** * g_subprocess_launcher_set_cwd: * @self: a #GSubprocess - * @cwd: the cwd for launched processes + * @cwd: (type filename): the cwd for launched processes * * Sets the current working directory that processes will be launched * with. @@ -37285,7 +37783,7 @@ /** * g_subprocess_launcher_set_stderr_file_path: * @self: a #GSubprocessLauncher - * @path: a filename or %NULL + * @path: (type filename) (nullable): a filename or %NULL * * Sets the file path to use as the stderr for spawned processes. * @@ -37309,7 +37807,7 @@ /** * g_subprocess_launcher_set_stdin_file_path: * @self: a #GSubprocessLauncher - * @path: a filename or %NULL + * @path: * * Sets the file path to use as the stdin for spawned processes. * @@ -37329,7 +37827,7 @@ /** * g_subprocess_launcher_set_stdout_file_path: * @self: a #GSubprocessLauncher - * @path: a filename or %NULL + * @path: (type filename) (nullable): a filename or %NULL * * Sets the file path to use as the stdout for spawned processes. * @@ -38603,7 +39101,7 @@ /** * g_tls_certificate_list_new_from_file: - * @file: file containing PEM-encoded certificates to import + * @file: (type filename): file containing PEM-encoded certificates to import * @error: #GError for error reporting, or %NULL to ignore. * * Creates one or more #GTlsCertificates from the PEM-encoded @@ -38621,7 +39119,7 @@ /** * g_tls_certificate_new_from_file: - * @file: file containing a PEM-encoded certificate to import + * @file: (type filename): file containing a PEM-encoded certificate to import * @error: #GError for error reporting, or %NULL to ignore. * * Creates a #GTlsCertificate from the PEM-encoded data in @file. The @@ -38645,9 +39143,10 @@ /** * g_tls_certificate_new_from_files: - * @cert_file: file containing one or more PEM-encoded certificates to - * import - * @key_file: file containing a PEM-encoded private key to import + * @cert_file: (type filename): file containing one or more PEM-encoded + * certificates to import + * @key_file: (type filename): file containing a PEM-encoded private key + * to import * @error: #GError for error reporting, or %NULL to ignore. * * Creates a #GTlsCertificate from the PEM-encoded data in @cert_file @@ -39471,7 +39970,7 @@ /** * g_tls_file_database_new: - * @anchors: filename of anchor certificate authorities. + * @anchors: (type filename): filename of anchor certificate authorities. * @error: #GError for error reporting, or %NULL to ignore. * * Creates a new #GTlsFileDatabase which uses anchor certificate authorities @@ -40332,7 +40831,7 @@ /** * g_unix_is_mount_path_system_internal: - * @mount_path: a mount path, e.g. `/media/disk` or `/usr` + * @mount_path: (type filename): a mount path, e.g. `/media/disk` or `/usr` * * Determines if @mount_path is considered an implementation of the * OS. This is primarily used for hiding mountable and mounted volumes @@ -40383,7 +40882,7 @@ * * Gets the device path for a unix mount. * - * Returns: a string containing the device path. + * Returns: (type filename): a string containing the device path. */ @@ -40403,7 +40902,7 @@ * * Gets the mount path for a unix mount. * - * Returns: the mount path for @mount_entry. + * Returns: (type filename): the mount path for @mount_entry. */ @@ -40567,7 +41066,7 @@ * * Gets the device path for a unix mount point. * - * Returns: a string containing the device path. + * Returns: (type filename): a string containing the device path. */ @@ -40587,7 +41086,7 @@ * * Gets the mount path for a unix mount point. * - * Returns: a string containing the mount path. + * Returns: (type filename): a string containing the mount path. */ @@ -41000,6 +41499,63 @@ /** + * g_vfs_register_uri_scheme: + * @vfs: a #GVfs + * @scheme: an URI scheme, e.g. "http" + * @uri_func: (scope notified) (nullable): a #GVfsFileLookupFunc + * @uri_data: (nullable): custom data passed to be passed to @uri_func, or %NULL + * @uri_destroy: (nullable): function to be called when unregistering the + * URI scheme, or when @vfs is disposed, to free the resources used + * by the URI lookup function + * @parse_name_func: (scope notified) (nullable): a #GVfsFileLookupFunc + * @parse_name_data: (nullable): custom data passed to be passed to + * @parse_name_func, or %NULL + * @parse_name_destroy: (nullable): function to be called when unregistering the + * URI scheme, or when @vfs is disposed, to free the resources used + * by the parse name lookup function + * + * Registers @uri_func and @parse_name_func as the #GFile URI and parse name + * lookup functions for URIs with a scheme matching @scheme. + * Note that @scheme is registered only within the running application, as + * opposed to desktop-wide as it happens with GVfs backends. + * + * When a #GFile is requested with an URI containing @scheme (e.g. through + * g_file_new_for_uri()), @uri_func will be called to allow a custom + * constructor. The implementation of @uri_func should not be blocking, and + * must not call g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme(). + * + * When g_file_parse_name() is called with a parse name obtained from such file, + * @parse_name_func will be called to allow the #GFile to be created again. In + * that case, it's responsibility of @parse_name_func to make sure the parse + * name matches what the custom #GFile implementation returned when + * g_file_get_parse_name() was previously called. The implementation of + * @parse_name_func should not be blocking, and must not call + * g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme(). + * + * It's an error to call this function twice with the same scheme. To unregister + * a custom URI scheme, use g_vfs_unregister_uri_scheme(). + * + * Returns: %TRUE if @scheme was successfully registered, or %FALSE if a handler + * for @scheme already exists. + * Since: 2.50 + */ + + +/** + * g_vfs_unregister_uri_scheme: + * @vfs: a #GVfs + * @scheme: an URI scheme, e.g. "http" + * + * Unregisters the URI handler for @scheme previously registered with + * g_vfs_register_uri_scheme(). + * + * Returns: %TRUE if @scheme was successfully unregistered, or %FALSE if a + * handler for @scheme does not exist. + * Since: 2.50 + */ + + +/** * g_volume_can_eject: * @volume: a #GVolume * @@ -42162,6 +42718,1058 @@ */ +/** + * gxdp_documents_call_add: + * @proxy: A #GXdpDocumentsProxy. + * @arg_o_path_fd: Argument to pass with the method invocation. + * @arg_reuse_existing: Argument to pass with the method invocation. + * @arg_persistent: Argument to pass with the method invocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the Add() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_add_finish() to get the result of the operation. + * + * See gxdp_documents_call_add_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_add_finish: + * @proxy: A #GXdpDocumentsProxy. + * @out_doc_id: (out): Return location for return parameter or %NULL to ignore. + * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_add(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_add_named: + * @proxy: A #GXdpDocumentsProxy. + * @arg_o_path_parent_fd: Argument to pass with the method invocation. + * @arg_filename: Argument to pass with the method invocation. + * @arg_reuse_existing: Argument to pass with the method invocation. + * @arg_persistent: Argument to pass with the method invocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the AddNamed() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_add_named_finish() to get the result of the operation. + * + * See gxdp_documents_call_add_named_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_add_named_finish: + * @proxy: A #GXdpDocumentsProxy. + * @out_doc_id: (out): Return location for return parameter or %NULL to ignore. + * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add_named(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_add_named(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_add_named_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_o_path_parent_fd: Argument to pass with the method invocation. + * @arg_filename: Argument to pass with the method invocation. + * @arg_reuse_existing: Argument to pass with the method invocation. + * @arg_persistent: Argument to pass with the method invocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @out_doc_id: (out): Return location for return parameter or %NULL to ignore. + * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the AddNamed() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_add_named() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_add_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_o_path_fd: Argument to pass with the method invocation. + * @arg_reuse_existing: Argument to pass with the method invocation. + * @arg_persistent: Argument to pass with the method invocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @out_doc_id: (out): Return location for return parameter or %NULL to ignore. + * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Add() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_add() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_delete: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the Delete() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_delete_finish() to get the result of the operation. + * + * See gxdp_documents_call_delete_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_delete_finish: + * @proxy: A #GXdpDocumentsProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_delete(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_delete(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_delete_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Delete() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_delete() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_get_mount_point: + * @proxy: A #GXdpDocumentsProxy. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the GetMountPoint() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_get_mount_point_finish() to get the result of the operation. + * + * See gxdp_documents_call_get_mount_point_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_get_mount_point_finish: + * @proxy: A #GXdpDocumentsProxy. + * @out_path: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_get_mount_point(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_get_mount_point(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_get_mount_point_sync: + * @proxy: A #GXdpDocumentsProxy. + * @out_path: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the GetMountPoint() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_get_mount_point() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_grant_permissions: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @arg_app_id: Argument to pass with the method invocation. + * @arg_permissions: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the GrantPermissions() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_grant_permissions_finish() to get the result of the operation. + * + * See gxdp_documents_call_grant_permissions_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_grant_permissions_finish: + * @proxy: A #GXdpDocumentsProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_grant_permissions(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_grant_permissions(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_grant_permissions_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @arg_app_id: Argument to pass with the method invocation. + * @arg_permissions: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the GrantPermissions() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_grant_permissions() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_info: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the Info() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_info_finish() to get the result of the operation. + * + * See gxdp_documents_call_info_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_info_finish: + * @proxy: A #GXdpDocumentsProxy. + * @out_path: (out): Return location for return parameter or %NULL to ignore. + * @out_apps: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_info(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_info(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_info_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @out_path: (out): Return location for return parameter or %NULL to ignore. + * @out_apps: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Info() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_info() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_list: + * @proxy: A #GXdpDocumentsProxy. + * @arg_app_id: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the List() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_list_finish() to get the result of the operation. + * + * See gxdp_documents_call_list_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_list_finish: + * @proxy: A #GXdpDocumentsProxy. + * @out_docs: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_list(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_list(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_list_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_app_id: Argument to pass with the method invocation. + * @out_docs: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the List() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_list() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_lookup: + * @proxy: A #GXdpDocumentsProxy. + * @arg_filename: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the Lookup() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_lookup_finish() to get the result of the operation. + * + * See gxdp_documents_call_lookup_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_lookup_finish: + * @proxy: A #GXdpDocumentsProxy. + * @out_doc_id: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_lookup(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_lookup(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_lookup_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_filename: Argument to pass with the method invocation. + * @out_doc_id: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Lookup() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_lookup() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_revoke_permissions: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @arg_app_id: Argument to pass with the method invocation. + * @arg_permissions: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the RevokePermissions() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_call_revoke_permissions_finish() to get the result of the operation. + * + * See gxdp_documents_call_revoke_permissions_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_documents_call_revoke_permissions_finish: + * @proxy: A #GXdpDocumentsProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_revoke_permissions(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_documents_call_revoke_permissions(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_call_revoke_permissions_sync: + * @proxy: A #GXdpDocumentsProxy. + * @arg_doc_id: Argument to pass with the method invocation. + * @arg_app_id: Argument to pass with the method invocation. + * @arg_permissions: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the RevokePermissions() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_documents_call_revoke_permissions() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_documents_complete_add: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @doc_id: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the Add() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_add_named: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @fd_list: (allow-none): A #GUnixFDList or %NULL. + * @doc_id: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the AddNamed() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_delete: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the Delete() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_get_mount_point: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @path: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the GetMountPoint() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_grant_permissions: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the GrantPermissions() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_info: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @path: Parameter to return. + * @apps: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the Info() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_list: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @docs: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the List() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_lookup: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @doc_id: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the Lookup() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_complete_revoke_permissions: + * @object: A #GXdpDocuments. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the RevokePermissions() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_documents_interface_info: + * + * Gets a machine-readable description of the org.freedesktop.portal.Documents D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ + + +/** + * gxdp_documents_override_properties: + * @klass: The class structure for a #GObject-derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GXdpDocuments interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ + + +/** + * gxdp_documents_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.freedesktop.portal.Documents. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_proxy_new_finish() to get the result of the operation. + * + * See gxdp_documents_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ + + +/** + * gxdp_documents_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with gxdp_documents_proxy_new(). + * + * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_documents_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like gxdp_documents_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_documents_proxy_new_for_bus_finish() to get the result of the operation. + * + * See gxdp_documents_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ + + +/** + * gxdp_documents_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with gxdp_documents_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_documents_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like gxdp_documents_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See gxdp_documents_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_documents_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.freedesktop.portal.Documents. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See gxdp_documents_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_documents_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.freedesktop.portal.Documents. + * + * Returns: (transfer full) (type GXdpDocumentsSkeleton): The skeleton object. + */ + + +/** + * gxdp_network_monitor_emit_changed: + * @object: A #GXdpNetworkMonitor. + * @arg_available: Argument to pass with the signal. + * + * Emits the "changed" D-Bus signal. + */ + + +/** + * gxdp_network_monitor_get_available: (skip) + * @object: A #GXdpNetworkMonitor. + * + * Gets the value of the "available" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ + + +/** + * gxdp_network_monitor_get_connectivity: (skip) + * @object: A #GXdpNetworkMonitor. + * + * Gets the value of the "connectivity" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ + + +/** + * gxdp_network_monitor_get_metered: (skip) + * @object: A #GXdpNetworkMonitor. + * + * Gets the value of the "metered" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ + + +/** + * gxdp_network_monitor_interface_info: + * + * Gets a machine-readable description of the org.freedesktop.portal.NetworkMonitor D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ + + +/** + * gxdp_network_monitor_override_properties: + * @klass: The class structure for a #GObject-derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GXdpNetworkMonitor interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ + + +/** + * gxdp_network_monitor_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.freedesktop.portal.NetworkMonitor. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_network_monitor_proxy_new_finish() to get the result of the operation. + * + * See gxdp_network_monitor_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ + + +/** + * gxdp_network_monitor_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_network_monitor_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with gxdp_network_monitor_proxy_new(). + * + * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_network_monitor_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like gxdp_network_monitor_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_network_monitor_proxy_new_for_bus_finish() to get the result of the operation. + * + * See gxdp_network_monitor_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ + + +/** + * gxdp_network_monitor_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_network_monitor_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with gxdp_network_monitor_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_network_monitor_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like gxdp_network_monitor_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See gxdp_network_monitor_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_network_monitor_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.freedesktop.portal.NetworkMonitor. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See gxdp_network_monitor_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_network_monitor_set_available: (skip) + * @object: A #GXdpNetworkMonitor. + * @value: The value to set. + * + * Sets the "available" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ + + +/** + * gxdp_network_monitor_set_connectivity: (skip) + * @object: A #GXdpNetworkMonitor. + * @value: The value to set. + * + * Sets the "connectivity" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ + + +/** + * gxdp_network_monitor_set_metered: (skip) + * @object: A #GXdpNetworkMonitor. + * @value: The value to set. + * + * Sets the "metered" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ + + +/** + * gxdp_network_monitor_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.freedesktop.portal.NetworkMonitor. + * + * Returns: (transfer full) (type GXdpNetworkMonitorSkeleton): The skeleton object. + */ + + +/** + * gxdp_proxy_resolver_call_lookup: + * @proxy: A #GXdpProxyResolverProxy. + * @arg_uri: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the Lookup() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_proxy_resolver_call_lookup_finish() to get the result of the operation. + * + * See gxdp_proxy_resolver_call_lookup_sync() for the synchronous, blocking version of this method. + */ + + +/** + * gxdp_proxy_resolver_call_lookup_finish: + * @proxy: A #GXdpProxyResolverProxy. + * @out_proxies: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_call_lookup(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with gxdp_proxy_resolver_call_lookup(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_proxy_resolver_call_lookup_sync: + * @proxy: A #GXdpProxyResolverProxy. + * @arg_uri: Argument to pass with the method invocation. + * @out_proxies: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Lookup() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See gxdp_proxy_resolver_call_lookup() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ + + +/** + * gxdp_proxy_resolver_complete_lookup: + * @object: A #GXdpProxyResolver. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @proxies: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the Lookup() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ + + +/** + * gxdp_proxy_resolver_interface_info: + * + * Gets a machine-readable description of the org.freedesktop.portal.ProxyResolver D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ + + +/** + * gxdp_proxy_resolver_override_properties: + * @klass: The class structure for a #GObject-derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GXdpProxyResolver interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ + + +/** + * gxdp_proxy_resolver_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.freedesktop.portal.ProxyResolver. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_proxy_resolver_proxy_new_finish() to get the result of the operation. + * + * See gxdp_proxy_resolver_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ + + +/** + * gxdp_proxy_resolver_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with gxdp_proxy_resolver_proxy_new(). + * + * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_proxy_resolver_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like gxdp_proxy_resolver_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call gxdp_proxy_resolver_proxy_new_for_bus_finish() to get the result of the operation. + * + * See gxdp_proxy_resolver_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ + + +/** + * gxdp_proxy_resolver_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with gxdp_proxy_resolver_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_proxy_resolver_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like gxdp_proxy_resolver_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See gxdp_proxy_resolver_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_proxy_resolver_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.freedesktop.portal.ProxyResolver. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See gxdp_proxy_resolver_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set. + */ + + +/** + * gxdp_proxy_resolver_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.freedesktop.portal.ProxyResolver. + * + * Returns: (transfer full) (type GXdpProxyResolverSkeleton): The skeleton object. + */ + + /************************************************************/ /* THIS FILE IS GENERATED DO NOT EDIT */ diff --git a/gir/glib-2.0.c b/gir/glib-2.0.c index c91dddd..cb1bb41 100644 --- a/gir/glib-2.0.c +++ b/gir/glib-2.0.c @@ -1029,7 +1029,7 @@ * various functions such as g_io_channel_write_chars() to * write raw bytes to the channel. Encoding and buffering * issues are dealt with at a higher level. - * @io_seek: (optional) seeks the channel. This is called from + * @io_seek: (optional): seeks the channel. This is called from * g_io_channel_seek() on channels that support it. * @io_close: closes the channel. This is called from * g_io_channel_close() after flushing the buffers. @@ -5418,13 +5418,13 @@ * "Presentación.sxi". If the application which created it uses * ISO-8859-1 for its encoding, * |[ - * Character: P r e s e n t a c i ó n . s x i + * Character: P r e s e n t a c i ó n . s x i * Hex code: 50 72 65 73 65 6e 74 61 63 69 f3 6e 2e 73 78 69 * ]| * However, if the application use UTF-8, the actual file name on * disk would look like this: * |[ - * Character: P r e s e n t a c i ó n . s x i + * Character: P r e s e n t a c i ó n . s x i * Hex code: 50 72 65 73 65 6e 74 61 63 69 c3 b3 6e 2e 73 78 69 * ]| * Glib uses UTF-8 for its strings, and GUI toolkits like GTK+ that use @@ -6076,7 +6076,7 @@ * Note that, unless you set the #G_REGEX_RAW flag, all the strings passed * to these functions must be encoded in UTF-8. The lengths and the positions * inside the strings are in bytes and not in characters, so, for instance, - * "\xc3\xa0" (i.e. "à") is two bytes long but it is treated as a + * "\xc3\xa0" (i.e. "à") is two bytes long but it is treated as a * single character. If you set #G_REGEX_RAW the strings can be non-valid * UTF-8 strings and a byte is treated as a character, so "\xc3\xa0" is two * bytes and two characters long. @@ -6159,10 +6159,36 @@ * @short_description: strongly typed value datatype * @see_also: GVariantType * - * #GVariant is a variant datatype; it stores a value along with - * information about the type of that value. The range of possible - * values is determined by the type. The type system used by #GVariant - * is #GVariantType. + * #GVariant is a variant datatype; it can contain one or more values + * along with information about the type of the values. + * + * A #GVariant may contain simple types, like an integer, or a boolean value; + * or complex types, like an array of two strings, or a dictionary of key + * value pairs. A #GVariant is also immutable: once it's been created neither + * its type nor its content can be modified further. + * + * GVariant is useful whenever data needs to be serialized, for example when + * sending method parameters in DBus, or when saving settings using GSettings. + * + * When creating a new #GVariant, you pass the data you want to store in it + * along with a string representing the type of data you wish to pass to it. + * + * For instance, if you want to create a #GVariant holding an integer value you + * can use: + * + * |[ + * GVariant *v = g_variant_new ('u', 40); + * ]| + * + * The string 'u' in the first argument tells #GVariant that the data passed to + * the constructor (40) is going to be an unsigned integer. + * + * More advanced examples of #GVariant in use can be found in documentation for + * [GVariant format strings][gvariant-format-strings-pointers]. + * + * The range of possible values is determined by the type. + * + * The type system used by #GVariant is #GVariantType. * * #GVariant instances always have a type and a value (which are given * at construction time). The type and value of a #GVariant instance @@ -8222,6 +8248,47 @@ * generally considered undefined after one of these checks fails. * They are not intended for normal control flow, only to give a * perhaps-helpful warning before giving up. + * + * Structured logging output is supported using g_log_structured(). This differs + * from the traditional g_log() API in that log messages are handled as a + * collection of key–value pairs representing individual pieces of information, + * rather than as a single string containing all the information in an arbitrary + * format. + * + * The support for structured logging was motivated by the following needs (some + * of which were supported previously; others weren’t): + * * Support for multiple logging levels. + * * Structured log support with the ability to add `MESSAGE_ID`s (see + * g_log_structured()). + * * Moving the responsibility for filtering log messages from the program to + * the log viewer — instead of libraries and programs installing log handlers + * (with g_log_set_handler()) which filter messages before output, all log + * messages are outputted, and the log viewer program (such as `journalctl`) + * must filter them. This is based on the idea that bugs are sometimes hard + * to reproduce, so it is better to log everything possible and then use + * tools to analyse the logs than it is to not be able to reproduce a bug to + * get additional log data. Code which uses logging in performance-critical + * sections should compile out the g_log_structured() calls in + * release builds, and compile them in in debugging builds. + * * A single writer function which handles all log messages in a process, from + * all libraries and program code; rather than multiple log handlers with + * poorly defined interactions between them. This allows a program to easily + * change its logging policy by changing the writer function, for example to + * log to an additional location or to change what logging output fallbacks + * are used. The log writer functions provided by GLib are exposed publicly + * so they can be used from programs’ log writers. This allows log writer + * policy and implementation to be kept separate. + * * If a library wants to add standard information to all of its log messages + * (such as library state) or to redact private data (such as passwords or + * network credentials), it should use a wrapper function around its + * g_log_structured() calls or implement that in the single log writer + * function. + * * If a program wants to pass context data from a g_log_structured() call to + * its log writer function so that, for example, it can use the correct + * server connection to submit logs to, that user data can be passed as a + * zero-length #GLogField to g_log_structured_array(). + * * Color output needed to be supported on the terminal, to make reading + * through logs easier. */ @@ -8265,8 +8332,24 @@ /** + * g_abort: + * + * A wrapper for the POSIX abort() function. + * + * On Windows it is a function that makes extra effort (including a call + * to abort()) to ensure that a debugger-catchable exception is thrown + * before the program terminates. + * + * See your C library manual for more details about abort(). + * + * Since: 2.50 + */ + + +/** * g_access: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @mode: as in access() * * A wrapper for the POSIX access() function. This function is used to @@ -10338,13 +10421,13 @@ /** * g_basename: - * @file_name: the name of the file + * @file_name: (type filename): the name of the file * * Gets the name of the file without any leading directory * components. It returns a pointer into the given file name * string. * - * Returns: the name of the file without any leading + * Returns: (type filename): the name of the file without any leading * directory components * Deprecated: 2.2: Use g_path_get_basename() instead, but notice * that g_path_get_basename() allocates new memory for the @@ -10820,9 +10903,9 @@ /** * g_bookmark_file_load_from_data_dirs: * @bookmark: a #GBookmarkFile - * @file: a relative path to a filename to open and parse - * @full_path: (allow-none): return location for a string containing the full path - * of the file, or %NULL + * @file: (type filename): a relative path to a filename to open and parse + * @full_path: (type filename) (allow-none): return location for a string + * containing the full path of the file, or %NULL * @error: return location for a #GError, or %NULL * * This function looks for a desktop bookmark file named @file in the @@ -10839,7 +10922,8 @@ /** * g_bookmark_file_load_from_file: * @bookmark: an empty #GBookmarkFile struct - * @filename: the path of a filename to load, in the GLib file name encoding + * @filename: (type filename): the path of a filename to load, in the + * GLib file name encoding * @error: return location for a #GError, or %NULL * * Loads a desktop bookmark file into an empty #GBookmarkFile structure. @@ -11147,7 +11231,7 @@ /** * g_bookmark_file_to_file: * @bookmark: a #GBookmarkFile - * @filename: path of the output file + * @filename: (type filename): path of the output file * @error: return location for a #GError, or %NULL * * This function outputs @bookmark into a file. The write process is @@ -11160,7 +11244,7 @@ /** * g_build_filename: - * @first_element: the first element in the path + * @first_element: (type filename): the first element in the path * @...: remaining elements in path, terminated by %NULL * * Creates a filename from a series of elements using the correct @@ -11179,27 +11263,30 @@ * path. If the first element is a relative path, the result will * be a relative path. * - * Returns: a newly-allocated string that must be freed with g_free(). + * Returns: (type filename): a newly-allocated string that must be freed with + * g_free(). */ /** * g_build_filenamev: - * @args: (array zero-terminated=1): %NULL-terminated array of strings containing the path elements. + * @args: (array zero-terminated=1) (element-type filename): %NULL-terminated + * array of strings containing the path elements. * * Behaves exactly like g_build_filename(), but takes the path elements * as a string array, instead of varargs. This function is mainly * meant for language bindings. * - * Returns: a newly-allocated string that must be freed with g_free(). + * Returns: (type filename): a newly-allocated string that must be freed + * with g_free(). * Since: 2.8 */ /** * g_build_path: - * @separator: a string used to separator the elements of the path. - * @first_element: the first element in the path + * @separator: (type filename): a string used to separator the elements of the path. + * @first_element: (type filename): the first element in the path * @...: remaining elements in path, terminated by %NULL * * Creates a path from a series of elements using @separator as the @@ -11229,20 +11316,23 @@ * copies of the separator, elements consisting only of copies * of the separator are ignored. * - * Returns: a newly-allocated string that must be freed with g_free(). + * Returns: (type filename): a newly-allocated string that must be freed with + * g_free(). */ /** * g_build_pathv: * @separator: a string used to separator the elements of the path. - * @args: (array zero-terminated=1): %NULL-terminated array of strings containing the path elements. + * @args: (array zero-terminated=1) (element-type filename): %NULL-terminated + * array of strings containing the path elements. * * Behaves exactly like g_build_path(), but takes the path elements * as a string array, instead of varargs. This function is mainly * meant for language bindings. * - * Returns: a newly-allocated string that must be freed with g_free(). + * Returns: (type filename): a newly-allocated string that must be freed + * with g_free(). * Since: 2.8 */ @@ -11679,7 +11769,8 @@ /** * g_chdir: - * @path: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @path: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * * A wrapper for the POSIX chdir() function. The function changes the * current directory of the process to @path. @@ -11915,7 +12006,8 @@ /** * g_chmod: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @mode: as in chmod() * * A wrapper for the POSIX chmod() function. The chmod() function is @@ -12034,11 +12126,29 @@ /** + * g_compute_hmac_for_bytes: + * @digest_type: a #GChecksumType to use for the HMAC + * @key: the key to use in the HMAC + * @data: binary blob to compute the HMAC of + * + * Computes the HMAC for a binary @data. This is a + * convenience wrapper for g_hmac_new(), g_hmac_get_string() + * and g_hmac_unref(). + * + * The hexadecimal string returned will be in lower case. + * + * Returns: the HMAC of the binary data as a string in hexadecimal. + * The returned string should be freed with g_free() when done using it. + * Since: 2.50 + */ + + +/** * g_compute_hmac_for_data: * @digest_type: a #GChecksumType to use for the HMAC * @key: (array length=key_len): the key to use in the HMAC * @key_len: the length of the key - * @data: binary blob to compute the HMAC of + * @data: (array length=length): binary blob to compute the HMAC of * @length: length of @data * * Computes the HMAC for a binary @data of @length. This is a @@ -12344,7 +12454,8 @@ /** * g_creat: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @mode: as in creat() * * A wrapper for the POSIX creat() function. The creat() function is @@ -12993,7 +13104,7 @@ * @date: a #GDate * * Returns the week of the year during which this date falls, if - * weeks are understood to being on Sunday. The date must be valid. + * weeks are understood to begin on Sunday. The date must be valid. * Can return 0 if the day is before the first Sunday of the year. * * Returns: week number @@ -14395,7 +14506,7 @@ * On Windows, as is true of all GLib functions which operate on * filenames, the returned name is in UTF-8. * - * Returns: The entry's name or %NULL if there are no + * Returns: (type filename): The entry's name or %NULL if there are no * more entries. The return value is owned by GLib and * must not be modified or freed. */ @@ -14445,14 +14556,14 @@ /** * g_dirname: - * @file_name: the name of the file + * @file_name: (type filename): the name of the file * * Gets the directory components of a file name. * * If the file name has no directory components "." is returned. * The returned string should be freed when no longer needed. * - * Returns: the directory components of the file + * Returns: (type filename): the directory components of the file * Deprecated: use g_path_get_dirname() instead */ @@ -14790,15 +14901,15 @@ /** * g_file_read_link: - * @filename: the symbolic link + * @filename: (type filename): the symbolic link * @error: return location for a #GError * * Reads the contents of the symbolic link @filename like the POSIX * readlink() function. The returned string is in the encoding used * for filenames. Use g_filename_to_utf8() to convert it to UTF-8. * - * Returns: A newly-allocated string with the contents of the symbolic link, - * or %NULL if an error occurred. + * Returns: (type filename): A newly-allocated string with the contents of + * the symbolic link, or %NULL if an error occurred. * Since: 2.4 */ @@ -14844,7 +14955,8 @@ /** * g_file_test: - * @filename: a filename to test in the GLib file name encoding + * @filename: (type filename): a filename to test in the + * GLib file name encoding * @test: bitfield of #GFileTest flags * * Returns %TRUE if any of the tests in the bitfield @test are @@ -14895,7 +15007,8 @@ /** * g_filename_display_basename: - * @filename: an absolute pathname in the GLib file name encoding + * @filename: (type filename): an absolute pathname in the + * GLib file name encoding * * Returns the display basename for the particular filename, guaranteed * to be valid UTF-8. The display name might not be identical to the filename, @@ -14922,7 +15035,8 @@ /** * g_filename_display_name: - * @filename: a pathname hopefully in the GLib file name encoding + * @filename: (type filename): a pathname hopefully in the + * GLib file name encoding * * Converts a filename into a valid UTF-8 string. The conversion is * not necessarily reversible, so you should keep the original around @@ -14994,9 +15108,9 @@ /** * g_filename_to_uri: - * @filename: an absolute filename specified in the GLib file name encoding, - * which is the on-disk file name bytes on Unix, and UTF-8 on - * Windows + * @filename: (type filename): an absolute filename specified in the GLib file + * name encoding, which is the on-disk file name bytes on Unix, and UTF-8 + * on Windows * @hostname: (allow-none): A UTF-8 encoded hostname, or %NULL for none. * @error: location to store the error occurring, or %NULL to ignore * errors. Any of the errors in #GConvertError may occur. @@ -15011,7 +15125,7 @@ /** * g_filename_to_utf8: - * @opsysstring: a string in the encoding for filenames + * @opsysstring: (type filename): a string in the encoding for filenames * @len: the length of the string, or -1 if the string is * nul-terminated (Note that some encodings may allow nul * bytes to occur inside strings. In that case, using -1 @@ -15040,7 +15154,7 @@ /** * g_find_program_in_path: - * @program: a program name in the GLib file name encoding + * @program: (type filename): a program name in the GLib file name encoding * * Locates the first executable named @program in the user's path, in the * same way that execvp() would locate it. Returns an allocated string @@ -15060,13 +15174,15 @@ * the program is found, the return value contains the full name * including the type suffix. * - * Returns: a newly-allocated string with the absolute path, or %NULL + * Returns: (type filename): a newly-allocated string with the absolute path, + * or %NULL */ /** * g_fopen: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @mode: a string describing the mode in which the file should be opened * * A wrapper for the stdio fopen() function. The fopen() function @@ -15175,7 +15291,8 @@ /** * g_freopen: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @mode: a string describing the mode in which the file should be opened * @stream: (allow-none): an existing stream which will be reused, or %NULL * @@ -15256,7 +15373,7 @@ * the current directory. This can make a difference in the case that * the current directory is the target of a symbolic link. * - * Returns: the current directory + * Returns: (type filename): the current directory */ @@ -15305,7 +15422,7 @@ * and said environment variables have no effect. * * `G_FILENAME_ENCODING` may be set to a comma-separated list of - * character set names. The special token "@locale" is taken + * character set names. The special token "\@locale" is taken * to mean the character set for the [current locale][setlocale]. * If `G_FILENAME_ENCODING` is not set, but `G_BROKEN_FILENAMES` is, * the character set of the current locale is taken as the filename @@ -15348,7 +15465,7 @@ * should either directly check the `HOME` environment variable yourself * or unset it before calling any functions in GLib. * - * Returns: the current user's home directory + * Returns: (type filename): the current user's home directory */ @@ -15472,7 +15589,7 @@ * real user name cannot be determined, the string "Unknown" is * returned. * - * Returns: the user's real name. + * Returns: (type filename): the user's real name. */ @@ -15512,8 +15629,9 @@ * of clip art, or a log file in the CSIDL_COMMON_APPDATA folder. * This information will not roam and is available to anyone using the computer. * - * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of strings owned by GLib that must - * not be modified or freed. + * Returns: (array zero-terminated=1) (element-type filename) (transfer none): + * a %NULL-terminated array of strings owned by GLib that must not be + * modified or freed. * Since: 2.6 */ @@ -15551,8 +15669,9 @@ * Note that on Windows the returned list can vary depending on where * this function is called. * - * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of strings owned by GLib that must - * not be modified or freed. + * Returns: (array zero-terminated=1) (element-type filename) (transfer none): + * a %NULL-terminated array of strings owned by GLib that must not be + * modified or freed. * Since: 2.6 */ @@ -15575,7 +15694,7 @@ * it is always UTF-8. The return value is never %NULL or the empty * string. * - * Returns: the directory to use for temporary files. + * Returns: (type filename): the directory to use for temporary files. */ @@ -15595,7 +15714,7 @@ * C:\Documents and Settings\username\Local Settings\Temporary Internet Files. * See documentation for CSIDL_INTERNET_CACHE. * - * Returns: a string owned by GLib that must not be modified + * Returns: (type filename): a string owned by GLib that must not be modified * or freed. * Since: 2.6 */ @@ -15617,7 +15736,7 @@ * CSIDL_LOCAL_APPDATA. Note that on Windows it thus is the same as * what g_get_user_data_dir() returns. * - * Returns: a string owned by GLib that must not be modified + * Returns: (type filename): a string owned by GLib that must not be modified * or freed. * Since: 2.6 */ @@ -15639,7 +15758,7 @@ * CSIDL_LOCAL_APPDATA. Note that on Windows it thus is the same as * what g_get_user_config_dir() returns. * - * Returns: a string owned by GLib that must not be modified + * Returns: (type filename): a string owned by GLib that must not be modified * or freed. * Since: 2.6 */ @@ -15653,7 +15772,7 @@ * encoding, or something else, and there is no guarantee that it is even * consistent on a machine. On Windows, it is always UTF-8. * - * Returns: the user name of the current user. + * Returns: (type filename): the user name of the current user. */ @@ -15676,7 +15795,8 @@ * CSIDL_LOCAL_APPDATA. Note that on Windows it thus is the same as * what g_get_user_config_dir() returns. * - * Returns: a string owned by GLib that must not be modified or freed. + * Returns: (type filename): a string owned by GLib that must not be + * modified or freed. * Since: 2.28 */ @@ -15696,8 +15816,8 @@ * of the special directory without requiring the session to restart; GLib * will not reflect any change once the special directories are loaded. * - * Returns: the path to the specified special directory, or %NULL - * if the logical id was not found. The returned string is owned by + * Returns: (type filename): the path to the specified special directory, or + * %NULL if the logical id was not found. The returned string is owned by * GLib and should not be modified or freed. * Since: 2.14 */ @@ -17168,7 +17288,7 @@ /** * g_io_channel_new_file: - * @filename: A string containing the name of a file + * @filename: (type filename): A string containing the name of a file * @mode: One of "r", "w", "a", "r+", "w+", "a+". These have * the same meaning as in fopen() * @error: A location to return an error of type %G_FILE_ERROR @@ -18050,6 +18170,21 @@ /** + * g_key_file_load_from_bytes: + * @key_file: an empty #GKeyFile struct + * @bytes: a #GBytes + * @flags: flags from #GKeyFileFlags + * @error: return location for a #GError, or %NULL + * + * Loads a key file from the data in @bytes into an empty #GKeyFile structure. + * If the object cannot be created then %error is set to a #GKeyFileError. + * + * Returns: %TRUE if a key file could be loaded, %FALSE otherwise + * Since: 2.50 + */ + + +/** * g_key_file_load_from_data: * @key_file: an empty #GKeyFile struct * @data: key file loaded in memory @@ -19150,6 +19285,14 @@ * the `G_DEBUG` environment variable (see * [Running GLib Applications](glib-running.html)). * + * Libraries should not call this function, as it affects all messages logged + * by a process, including those from other libraries. + * + * Structured log messages (using g_log_structured() and + * g_log_structured_array()) are fatal only if the default log writer is used; + * otherwise it is up to the writer function to determine which log messages + * are fatal. + * * Returns: the old fatal mask */ @@ -19177,6 +19320,11 @@ * Sets the log levels which are fatal in the given domain. * %G_LOG_LEVEL_ERROR is always fatal. * + * This has no effect on structured log messages (using g_log_structured() or + * g_log_structured_array()). To change the fatal behaviour for specific log + * messages, programs must install a custom log writer function using + * g_log_set_writer_func(). + * * Returns: the old fatal mask for the log domain */ @@ -19244,6 +19392,265 @@ /** + * g_log_set_writer_func: + * @func: log writer function, which must not be %NULL + * @user_data: (closure func): user data to pass to @func + * @user_data_free: (destroy func): function to free @user_data once it’s + * finished with, if non-%NULL + * + * Set a writer function which will be called to format and write out each log + * message. Each program should set a writer function, or the default writer + * (g_log_writer_default()) will be used. + * + * Libraries **must not** call this function — only programs are allowed to + * install a writer function, as there must be a single, central point where + * log messages are formatted and outputted. + * + * There can only be one writer function. It is an error to set more than one. + * + * Since: 2.50 + */ + + +/** + * g_log_structured: + * @log_domain: log domain, usually %G_LOG_DOMAIN + * @log_level: log level, either from #GLogLevelFlags, or a user-defined + * level + * @...: key-value pairs of structured data to add to the log entry, followed + * by the key "MESSAGE", followed by a printf()-style message format, + * followed by parameters to insert in the format string + * + * Log a message with structured data. The message will be passed through to + * the log writer set by the application using g_log_set_writer_func(). If the + * message is fatal (i.e. its log level is %G_LOG_LEVEL_ERROR), the program will + * be aborted at the end of this function. + * + * The structured data is provided as key–value pairs, where keys are UTF-8 + * strings, and values are arbitrary pointers — typically pointing to UTF-8 + * strings, but that is not a requirement. To pass binary (non-nul-terminated) + * structured data, use g_log_structured_array(). The keys for structured data + * should follow the [systemd journal + * fields](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html) + * specification. It is suggested that custom keys are namespaced according to + * the code which sets them. For example, custom keys from GLib all have a + * `GLIB_` prefix. + * + * The @log_domain will be converted into a `GLIB_DOMAIN` field. @log_level will + * be converted into a + * [`PRIORITY`](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#PRIORITY=) + * field. The format string will have its placeholders substituted for the provided + * values and be converted into a + * [`MESSAGE`](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#MESSAGE=) + * field. + * + * Other fields you may commonly want to pass into this function: + * + * * [`MESSAGE_ID`](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#MESSAGE_ID=) + * * [`CODE_FILE`](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#CODE_FILE=) + * * [`CODE_LINE`](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#CODE_LINE=) + * * [`CODE_FUNC`](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#CODE_FUNC=) + * * [`ERRNO`](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#ERRNO=) + * + * Note that `CODE_FILE`, `CODE_LINE` and `CODE_FUNC` are automatically set by + * the logging macros, G_DEBUG_HERE(), g_message(), g_warning(), g_critical(), + * g_error(), etc, if the symbols `G_LOG_USE_STRUCTURED` is defined before including + * glib.h. + * + * For example: + * |[ + * g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, + * "MESSAGE_ID", "06d4df59e6c24647bfe69d2c27ef0b4e", + * "MY_APPLICATION_CUSTOM_FIELD", "some debug string", + * "MESSAGE", "This is a debug message about pointer %p and integer %u.", + * some_pointer, some_integer); + * ]| + * + * Note that each `MESSAGE_ID` must be [uniquely and randomly + * generated](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html#MESSAGE_ID=). + * If adding a `MESSAGE_ID`, consider shipping a [message + * catalog](https://www.freedesktop.org/wiki/Software/systemd/catalog/) with + * your software. + * + * To pass a user data pointer to the log writer function which is specific to + * this logging call, you must use g_log_structured_array() and pass the pointer + * as a field with #GLogField.length set to zero, otherwise it will be + * interpreted as a string. + * + * For example: + * |[ + * const GLogField fields[] = { + * { "MESSAGE", "This is a debug message.", -1 }, + * { "MESSAGE_ID", "fcfb2e1e65c3494386b74878f1abf893", -1 }, + * { "MY_APPLICATION_CUSTOM_FIELD", "some debug string", -1 }, + * { "MY_APPLICATION_STATE", state_object, 0 }, + * }; + * g_log_structured_array (G_LOG_LEVEL_DEBUG, fields, G_N_ELEMENTS (fields)); + * ]| + * + * Note also that, even if no structured fields are specified, the key-value + * part of the argument list must be %NULL-terminated. + * + * The default writer function for `stdout` and `stderr` will automatically + * append a new-line character after the message, so you should not add one + * manually to the format string. + * + * Since: 2.50 + */ + + +/** + * g_log_structured_array: + * @log_level: log level, either from #GLogLevelFlags, or a user-defined + * level + * @fields: (array length=n_fields): key–value pairs of structured data to add + * to the log message + * @n_fields: number of elements in the @fields array + * + * Log a message with structured data. The message will be passed through to the + * log writer set by the application using g_log_set_writer_func(). If the + * message is fatal (i.e. its log level is %G_LOG_LEVEL_ERROR), the program will + * be aborted at the end of this function. + * + * See g_log_structured() for more documentation. + * + * This assumes that @log_level is already present in @fields (typically as the + * `PRIORITY` field). + * + * Since: 2.50 + */ + + +/** + * g_log_writer_default: + * @log_level: log level, either from #GLogLevelFlags, or a user-defined + * level + * @fields: (array length=n_fields): key–value pairs of structured data forming + * the log message + * @n_fields: number of elements in the @fields array + * @user_data: user data passed to g_log_set_writer_func() + * + * Format a structured log message and output it to the default log destination + * for the platform. On Linux, this is typically the systemd journal, falling + * back to `stdout` or `stderr` if running from the terminal or if output is + * being redirected to a file. + * + * Support for other platform-specific logging mechanisms may be added in + * future. Distributors of GLib may modify this function to impose their own + * (documented) platform-specific log writing policies. + * + * This is suitable for use as a #GLogWriterFunc, and is the default writer used + * if no other is set using g_log_set_writer_func(). + * + * Returns: %G_LOG_WRITER_HANDLED on success, %G_LOG_WRITER_UNHANDLED otherwise + * Since: 2.50 + */ + + +/** + * g_log_writer_format_fields: + * @log_level: log level, either from #GLogLevelFlags, or a user-defined + * level + * @fields: (array length=n_fields): key–value pairs of structured data forming + * the log message + * @n_fields: number of elements in the @fields array + * @use_color: %TRUE to use ANSI color escape sequences when formatting the + * message, %FALSE to not + * + * Format a structured log message as a string suitable for outputting to the + * terminal (or elsewhere). This will include the values of all fields it knows + * how to interpret, which includes `MESSAGE` and `GLIB_DOMAIN` (see the + * documentation for g_log_structured()). It does not include values from + * unknown fields. + * + * The returned string does **not** have a trailing new-line character. It is + * encoded in the character set of the current locale, which is not necessarily + * UTF-8. + * + * Returns: (transfer full): string containing the formatted log message, in + * the character set of the current locale + * Since: 2.50 + */ + + +/** + * g_log_writer_is_journald: + * @output_fd: output file descriptor to check + * + * Check whether the given @output_fd file descriptor is a connection to the + * systemd journal, or something else (like a log file or `stdout` or + * `stderr`). + * + * Returns: %TRUE if @output_fd points to the journal, %FALSE otherwise + * Since: 2.50 + */ + + +/** + * g_log_writer_journald: + * @log_level: log level, either from #GLogLevelFlags, or a user-defined + * level + * @fields: (array length=n_fields): key–value pairs of structured data forming + * the log message + * @n_fields: number of elements in the @fields array + * @user_data: user data passed to g_log_set_writer_func() + * + * Format a structured log message and send it to the systemd journal as a set + * of key–value pairs. All fields are sent to the journal, but if a field has + * length zero (indicating program-specific data) then only its key will be + * sent. + * + * This is suitable for use as a #GLogWriterFunc. + * + * If GLib has been compiled without systemd support, this function is still + * defined, but will always return %G_LOG_WRITER_UNHANDLED. + * + * Returns: %G_LOG_WRITER_HANDLED on success, %G_LOG_WRITER_UNHANDLED otherwise + * Since: 2.50 + */ + + +/** + * g_log_writer_standard_streams: + * @log_level: log level, either from #GLogLevelFlags, or a user-defined + * level + * @fields: (array length=n_fields): key–value pairs of structured data forming + * the log message + * @n_fields: number of elements in the @fields array + * @user_data: user data passed to g_log_set_writer_func() + * + * Format a structured log message and print it to either `stdout` or `stderr`, + * depending on its log level. %G_LOG_LEVEL_INFO and %G_LOG_LEVEL_DEBUG messages + * are sent to `stdout`; all other log levels are sent to `stderr`. Only fields + * which are understood by this function are included in the formatted string + * which is printed. + * + * If the output stream supports ANSI color escape sequences, they will be used + * in the output. + * + * A trailing new-line character is added to the log message when it is printed. + * + * This is suitable for use as a #GLogWriterFunc. + * + * Returns: %G_LOG_WRITER_HANDLED on success, %G_LOG_WRITER_UNHANDLED otherwise + * Since: 2.50 + */ + + +/** + * g_log_writer_supports_color: + * @output_fd: output file descriptor to check + * + * Check whether the given @output_fd file descriptor supports ANSI color + * escape sequences. If so, they can safely be used when formatting log + * messages. + * + * Returns: %TRUE if ANSI color escapes are supported, %FALSE otherwise + * Since: 2.50 + */ + + +/** * g_logv: * @log_domain: (nullable): the log domain, or %NULL for the default "" * application domain @@ -19264,7 +19671,8 @@ /** * g_lstat: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @buf: a pointer to a stat struct, which will be filled with the file * information * @@ -19591,9 +19999,20 @@ * Normally you would call this function shortly after creating a new * thread, passing it a #GMainContext which will be run by a * #GMainLoop in that thread, to set a new default context for all - * async operations in that thread. (In this case, you don't need to - * ever call g_main_context_pop_thread_default().) In some cases - * however, you may want to schedule a single operation in a + * async operations in that thread. In this case you may not need to + * ever call g_main_context_pop_thread_default(), assuming you want the + * new #GMainContext to be the default for the whole lifecycle of the + * thread. + * + * If you don't have control over how the new thread was created (e.g. + * in the new thread isn't newly created, or if the thread life + * cycle is managed by a #GThreadPool), it is always suggested to wrap + * the logic that needs to use the new #GMainContext inside a + * g_main_context_push_thread_default() / g_main_context_pop_thread_default() + * pair, otherwise threads that are re-used will end up never explicitly + * releasing the #GMainContext reference they hold. + * + * In some cases you may want to schedule a single operation in a * non-default context, or temporarily use a non-default context in * the main thread. In that case, you can wrap the call to the * asynchronous operation inside a @@ -20050,7 +20469,8 @@ /** * g_mapped_file_new: - * @filename: The path of the file to load, in the GLib filename encoding + * @filename: (type filename): The path of the file to load, in the GLib + * filename encoding * @writable: whether the mapping should be writable * @error: return location for a #GError, or %NULL * @@ -20941,7 +21361,8 @@ /** * g_mkdir: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @mode: permissions to use for the newly created directory * * A wrapper for the POSIX mkdir() function. The mkdir() function @@ -20958,7 +21379,7 @@ /** * g_mkdir_with_parents: - * @pathname: a pathname in the GLib file name encoding + * @pathname: (type filename): a pathname in the GLib file name encoding * @mode: permissions to use for newly created directories * * Create a directory if it doesn't already exist. Create intermediate @@ -20986,8 +21407,8 @@ * The string should be in the GLib file name encoding. Most importantly, * on Windows it should be in UTF-8. * - * Returns: A pointer to @tmpl, which has been modified - * to hold the directory name. In case of errors, %NULL is + * Returns: (nullable) (type filename): A pointer to @tmpl, which has been + * modified to hold the directory name. In case of errors, %NULL is * returned and %errno will be set. * Since: 2.30 */ @@ -21010,8 +21431,8 @@ * in the GLib file name encoding. Most importantly, on Windows it * should be in UTF-8. * - * Returns: A pointer to @tmpl, which has been modified - * to hold the directory name. In case of errors, %NULL is + * Returns: (nullable) (type filename): A pointer to @tmpl, which has been + * modified to hold the directory name. In case of errors, %NULL is * returned, and %errno will be set. * Since: 2.30 */ @@ -21660,7 +22081,8 @@ /** * g_open: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @flags: as in open() * @mode: as in open() * @@ -22226,7 +22648,7 @@ /** * g_path_get_basename: - * @file_name: the name of the file + * @file_name: (type filename): the name of the file * * Gets the last component of the filename. * @@ -22235,27 +22657,27 @@ * separators (and on Windows, possibly a drive letter), a single * separator is returned. If @file_name is empty, it gets ".". * - * Returns: a newly allocated string containing the last + * Returns: (type filename): a newly allocated string containing the last * component of the filename */ /** * g_path_get_dirname: - * @file_name: the name of the file + * @file_name: (type filename): the name of the file * * Gets the directory components of a file name. * * If the file name has no directory components "." is returned. * The returned string should be freed when no longer needed. * - * Returns: the directory components of the file + * Returns: (type filename): the directory components of the file */ /** * g_path_is_absolute: - * @file_name: a file name + * @file_name: (type filename): a file name * * Returns %TRUE if the given @file_name is an absolute file name. * Note that this is a somewhat vague concept on Windows. @@ -22288,13 +22710,14 @@ /** * g_path_skip_root: - * @file_name: a file name + * @file_name: (type filename): a file name * * Returns a pointer into @file_name after the root component, * i.e. after the "/" in UNIX or "C:\" under Windows. If @file_name * is not an absolute path it returns %NULL. * - * Returns: (nullable): a pointer into @file_name after the root component + * Returns: (type filename) (nullable): a pointer into @file_name after the + * root component */ @@ -24466,7 +24889,8 @@ /** * g_remove: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * * A wrapper for the POSIX remove() function. The remove() function * deletes a name from the filesystem. @@ -24493,8 +24917,9 @@ /** * g_rename: - * @oldfilename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @newfilename: a pathname in the GLib file name encoding + * @oldfilename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) + * @newfilename: (type filename): a pathname in the GLib file name encoding * * A wrapper for the POSIX rename() function. The rename() function * renames a file, moving it between directories if required. @@ -24518,7 +24943,8 @@ /** * g_rmdir: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * * A wrapper for the POSIX rmdir() function. The rmdir() function * deletes a directory from the filesystem. @@ -27145,7 +27571,7 @@ /** * g_spawn_async: - * @working_directory: (allow-none): child's current working directory, or %NULL to inherit parent's + * @working_directory: (type filename) (allow-none): child's current working directory, or %NULL to inherit parent's * @argv: (array zero-terminated=1): child's argument vector * @envp: (array zero-terminated=1) (allow-none): child's environment, or %NULL to inherit parent's * @flags: flags from #GSpawnFlags @@ -27175,7 +27601,7 @@ /** * g_spawn_async_with_pipes: - * @working_directory: (allow-none): child's current working directory, or %NULL to inherit parent's, in the GLib file name encoding + * @working_directory: (type filename) (allow-none): child's current working directory, or %NULL to inherit parent's, in the GLib file name encoding * @argv: (array zero-terminated=1): child's argument vector, in the GLib file name encoding * @envp: (array zero-terminated=1) (allow-none): child's environment, or %NULL to inherit parent's, in the GLib file name encoding * @flags: flags from #GSpawnFlags @@ -27456,7 +27882,7 @@ /** * g_spawn_sync: - * @working_directory: (allow-none): child's current working directory, or %NULL to inherit parent's + * @working_directory: (type filename) (allow-none): child's current working directory, or %NULL to inherit parent's * @argv: (array zero-terminated=1): child's argument vector * @envp: (array zero-terminated=1) (allow-none): child's environment, or %NULL to inherit parent's * @flags: flags from #GSpawnFlags @@ -27514,7 +27940,8 @@ /** * g_stat: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @buf: a pointer to a stat struct, which will be filled with the file * information * @@ -27960,7 +28387,7 @@ * @exceptions: (nullable): a string of characters not to escape in @source * * Escapes the special characters '\b', '\f', '\n', '\r', '\t', '\v', '\' - * and '"' in the string @source by inserting a '\' before + * and '"' in the string @source by inserting a '\' before * them. Additionally all characters in the range 0x01-0x1F (everything * below SPACE) and in the range 0x7F-0xFF (all non-ASCII chars) are * replaced with a '\' followed by their octal representation. @@ -28626,6 +29053,10 @@ * optional @separator inserted between each of them. The returned string * should be freed with g_free(). * + * If @str_array has no items, the return value will be an + * empty string. If @str_array contains a single item, @separator will not + * appear in the resulting string. + * * Returns: a newly-allocated string containing all of the strings joined * together, with @separator between them */ @@ -29237,7 +29668,7 @@ * This is approximately the same as calling g_test_build_filename("."), * but you don't need to free the return value. * - * Returns: the path of the directory, owned by GLib + * Returns: (type filename): the path of the directory, owned by GLib * Since: 2.38 */ @@ -29405,6 +29836,11 @@ * * This handler has no effect on g_error messages. * + * This handler also has no effect on structured log messages (using + * g_log_structured() or g_log_structured_array()). To change the fatal + * behaviour for specific log messages, programs must install a custom log + * writer function using g_log_set_writer_func(). + * * Since: 2.22 */ @@ -32223,7 +32659,8 @@ /** * g_unlink: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * * A wrapper for the POSIX unlink() function. The unlink() function * deletes a name from the filesystem. If this was the last link to the @@ -32910,7 +33347,8 @@ /** * g_utime: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) + * @filename: (type filename): a pathname in the GLib file name encoding + * (UTF-8 on Windows) * @utb: a pointer to a struct utimbuf. * * A wrapper for the POSIX utime() function. The utime() function @@ -33069,7 +33507,10 @@ * It is not permissible to use @builder in any way after this call * except for reference counting operations (in the case of a * heap-allocated #GVariantBuilder) or by reinitialising it with - * g_variant_builder_init() (in the case of stack-allocated). + * g_variant_builder_init() (in the case of stack-allocated). This + * means that for the stack-allocated builders there is no need to + * call g_variant_builder_clear() after the call to + * g_variant_builder_end(). * * It is an error to call this function in any way that would create an * inconsistent value to be constructed (ie: insufficient number of @@ -33677,6 +34118,9 @@ * the last byte then the returned string is the string, up to the first * such nul character. * + * g_variant_get_fixed_array() should be used instead if the array contains + * arbitrary data that could not be nul-terminated or could contain nul bytes. + * * It is an error to call this function with a @value that is not an * array of bytes. * diff --git a/gir/gobject-2.0.c b/gir/gobject-2.0.c index ebabda8..dd4454c 100644 --- a/gir/gobject-2.0.c +++ b/gir/gobject-2.0.c @@ -6014,7 +6014,7 @@ /** * g_value_array_insert: * @value_array: #GValueArray to add an element to - * @index_: insertion position, must be <= value_array->n_values + * @index_: insertion position, must be <= value_array->;n_values * @value: (allow-none): #GValue to copy into #GValueArray, or %NULL * * Insert a copy of @value at specified position into @value_array. If @value @@ -6855,8 +6855,8 @@ * * Check whether g_value_transform() is able to transform values * of type @src_type into values of type @dest_type. Note that for - * the types to be transformable, they must be compatible and a - * transform function must be registered. + * the types to be transformable, they must be compatible or a + * transformation function must be registered. * * Returns: %TRUE if the transformation is possible, %FALSE otherwise. */ diff --git a/girepository/gdump.c b/girepository/gdump.c index b60a5dc..6aa8bfd 100644 --- a/girepository/gdump.c +++ b/girepository/gdump.c @@ -480,10 +480,17 @@ g_irepository_dump (const char *arg, GError **error) g_strfreev (args); input = g_file_read (input_file, NULL, error); + g_object_unref (input_file); + if (input == NULL) - return FALSE; + { + g_object_unref (output_file); + return FALSE; + } output = g_file_replace (output_file, NULL, FALSE, 0, NULL, error); + g_object_unref (output_file); + if (output == NULL) { g_input_stream_close (G_INPUT_STREAM (input), NULL, NULL); diff --git a/girepository/gicallableinfo.c b/girepository/gicallableinfo.c index 8360bbf..27c7cb2 100644 --- a/girepository/gicallableinfo.c +++ b/girepository/gicallableinfo.c @@ -267,7 +267,7 @@ g_callable_info_skip_return (GICallableInfo *info) * See whether the caller owns the return value of this callable. * #GITransfer contains a list of possible transfer values. * - * Returns: %TRUE if the caller owns the return value, %FALSE otherwise. + * Returns: the transfer mode for the return value of the callable */ GITransfer g_callable_info_get_caller_owns (GICallableInfo *info) @@ -295,7 +295,7 @@ g_callable_info_get_caller_owns (GICallableInfo *info) * Obtains the ownership transfer for the instance argument. * #GITransfer contains a list of possible transfer values. * - * Returns: the transfer + * Returns: the transfer mode of the instance argument */ GITransfer g_callable_info_get_instance_ownership_transfer (GICallableInfo *info) diff --git a/girepository/girepository.c b/girepository/girepository.c index 4537c03..d9f8f6c 100644 --- a/girepository/girepository.c +++ b/girepository/girepository.c @@ -46,7 +46,6 @@ static GIRepository *default_repository = NULL; static GSList *search_path = NULL; -static GSList *override_search_path = NULL; struct _GIRepositoryPrivate { @@ -163,7 +162,6 @@ init_globals (void) type_lib_path_env = g_getenv ("GI_TYPELIB_PATH"); search_path = NULL; - override_search_path = NULL; if (type_lib_path_env) { gchar **custom_dirs; @@ -174,7 +172,7 @@ init_globals (void) d = custom_dirs; while (*d) { - override_search_path = g_slist_prepend (override_search_path, *d); + search_path = g_slist_prepend (search_path, *d); d++; } @@ -182,9 +180,6 @@ init_globals (void) g_free (custom_dirs); } - if (override_search_path != NULL) - override_search_path = g_slist_reverse (override_search_path); - libdir = GOBJECT_INTROSPECTION_LIBDIR; typelib_dir = g_build_filename (libdir, "girepository-1.0", NULL); @@ -227,23 +222,6 @@ g_irepository_get_search_path (void) return search_path; } -static GSList * -build_search_path_with_overrides (void) -{ - GSList *result; - - init_globals (); - - if (override_search_path != NULL) - { - result = g_slist_copy (override_search_path); - g_slist_last (result)->next = g_slist_copy (search_path); - } - else - result = g_slist_copy (search_path); - return result; -} - static char * build_typelib_key (const char *name, const char *source) { @@ -1394,13 +1372,11 @@ g_irepository_enumerate_versions (GIRepository *repository, const gchar *namespace_) { GList *ret = NULL; - GSList *search_path; GSList *candidates, *link; const gchar *loaded_version; - search_path = build_search_path_with_overrides (); + init_globals (); candidates = enumerate_namespace_versions (namespace_, search_path); - g_slist_free (search_path); for (link = candidates; link; link = link->next) { @@ -1563,13 +1539,11 @@ g_irepository_require (GIRepository *repository, GIRepositoryLoadFlags flags, GError **error) { - GSList *search_path; GITypelib *typelib; - search_path = build_search_path_with_overrides (); + init_globals (); typelib = require_internal (repository, namespace, version, flags, search_path, error); - g_slist_free (search_path); return typelib; } diff --git a/giscanner/ast.py b/giscanner/ast.py index 99bbd3e..7a2b5b1 100644 --- a/giscanner/ast.py +++ b/giscanner/ast.py @@ -569,7 +569,8 @@ class Node(Annotated): (namespace, name) pair. When combined with a ., this is called a GIName. It's possible for nodes to contain or point to other nodes.""" - c_name = property(lambda self: self.namespace.name + self.name) + c_name = property(lambda self: self.namespace.name + self.name if self.namespace else + self.name) gi_name = property(lambda self: '%s.%s' % (self.namespace.name, self.name)) def __init__(self, name=None): diff --git a/gobject-introspection-1.0.pc b/gobject-introspection-1.0.pc index 32ef393..ce4a5d1 100644 --- a/gobject-introspection-1.0.pc +++ b/gobject-introspection-1.0.pc @@ -1,4 +1,4 @@ -prefix=/usr +prefix=/home/fmuellner/opt/gnome exec_prefix=${prefix} libdir=${exec_prefix}/lib bindir=${exec_prefix}/bin @@ -21,4 +21,4 @@ Libs.private: Name: gobject-introspection Description: GObject Introspection -Version: 1.48.0 +Version: 1.49.1 diff --git a/gobject-introspection-no-export-1.0.pc b/gobject-introspection-no-export-1.0.pc index 74d7cbb..d1e2c7f 100644 --- a/gobject-introspection-no-export-1.0.pc +++ b/gobject-introspection-no-export-1.0.pc @@ -1,4 +1,4 @@ -prefix=/usr +prefix=/home/fmuellner/opt/gnome exec_prefix=${prefix} libdir=${exec_prefix}/lib bindir=${exec_prefix}/bin @@ -20,4 +20,4 @@ Libs.private: Name: gobject-introspection Description: GObject Introspection -Version: 1.48.0 +Version: 1.49.1 diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 10ab284..a644432 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -2867,6 +2867,9 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) # before this can be enabled. hardcode_into_libs=yes + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command @@ -2875,7 +2878,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -2887,18 +2890,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no @@ -3558,7 +3549,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -4436,7 +4427,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4948,9 +4939,6 @@ m4_if([$1], [CXX], [ ;; esac ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -5013,9 +5001,6 @@ dnl Note also adjust exclude_expsyms for C++ above. openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -5270,7 +5255,7 @@ _LT_EOF fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -5791,7 +5776,6 @@ _LT_EOF if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi - _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -5813,7 +5797,7 @@ _LT_EOF esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else diff --git a/scannerlexer.c b/scannerlexer.c index 4101801..64481a2 100644 --- a/scannerlexer.c +++ b/scannerlexer.c @@ -7,8 +7,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 0 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 39 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -141,15 +141,7 @@ typedef unsigned int flex_uint32_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else #define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -210,7 +202,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -280,7 +272,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ yy_size_t yyleng; /* Points to current character in buffer. */ @@ -352,17 +344,11 @@ extern int yylineno; int yylineno = 1; extern char *yytext; -#ifdef yytext_ptr -#undef yytext_ptr -#endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); -#if defined(__GNUC__) && __GNUC__ >= 3 -__attribute__((__noreturn__)) -#endif static void yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the @@ -573,7 +559,7 @@ static yyconst flex_int16_t yy_accept[678] = 978, 978, 978, 978, 978, 979, 979 } ; -static yyconst YY_CHAR yy_ec[256] = +static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, @@ -605,7 +591,7 @@ static yyconst YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[85] = +static yyconst flex_int32_t yy_meta[85] = { 0, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 5, 1, 1, 1, 6, @@ -618,7 +604,7 @@ static yyconst YY_CHAR yy_meta[85] = 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[704] = +static yyconst flex_int16_t yy_base[704] = { 0, 0, 0, 1173, 1174, 83, 0, 1141, 79, 84, 59, 82, 82, 1174, 1174, 1140, 79, 1174, 80, 78, 95, @@ -782,7 +768,7 @@ static yyconst flex_int16_t yy_def[704] = 676, 676, 676 } ; -static yyconst flex_uint16_t yy_nxt[1259] = +static yyconst flex_int16_t yy_nxt[1259] = { 0, 4, 5, 6, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, @@ -1084,7 +1070,7 @@ goto find_rule; \ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -#line 1 "giscanner/scannerlexer.l" +#line 1 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" /* -*- Mode: C -*- * GObject introspection: C lexer * @@ -1114,7 +1100,7 @@ char *yytext; * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#line 32 "giscanner/scannerlexer.l" +#line 32 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" #include #include #include @@ -1145,7 +1131,7 @@ static void process_linemarks (GISourceScanner *scanner, gboolean has_line); static int check_identifier (GISourceScanner *scanner, const char *); static int parse_ignored_macro (void); static void print_error (GISourceScanner *scanner); -#line 1149 "scannerlexer.c" +#line 1135 "scannerlexer.c" #define INITIAL 0 @@ -1178,11 +1164,11 @@ void yyset_extra (YY_EXTRA_TYPE user_defined ); FILE *yyget_in (void ); -void yyset_in (FILE * _in_str ); +void yyset_in (FILE * in_str ); FILE *yyget_out (void ); -void yyset_out (FILE * _out_str ); +void yyset_out (FILE * out_str ); yy_size_t yyget_leng (void ); @@ -1190,7 +1176,7 @@ char *yyget_text (void ); int yyget_lineno (void ); -void yyset_lineno (int _line_number ); +void yyset_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1204,10 +1190,6 @@ extern int yywrap (void ); #endif #endif -#ifndef YY_NO_UNPUT - -#endif - #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif @@ -1228,12 +1210,7 @@ static int input (void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else #define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -1320,7 +1297,7 @@ extern int yylex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK /*LINTED*/break; +#define YY_BREAK break; #endif #define YY_RULE_SETUP \ @@ -1330,9 +1307,9 @@ extern int yylex (void); */ YY_DECL { - yy_state_type yy_current_state; - char *yy_cp, *yy_bp; - int yy_act; + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; if ( !(yy_init) ) { @@ -1367,12 +1344,12 @@ YY_DECL } { -#line 73 "giscanner/scannerlexer.l" +#line 73 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" -#line 1374 "scannerlexer.c" +#line 1351 "scannerlexer.c" - while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -1392,7 +1369,7 @@ YY_DECL yy_match: do { - YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -1433,7 +1410,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 75 "giscanner/scannerlexer.l" +#line 75 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { strncpy(linebuf, yytext+1, sizeof(linebuf)); /* save the next line */ linebuf[sizeof(linebuf)-1]='\0'; /* printf("%4d:%s\n",lineno,linebuf); */ @@ -1444,801 +1421,801 @@ YY_RULE_SETUP case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 81 "giscanner/scannerlexer.l" +#line 81 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; } YY_BREAK case 3: YY_RULE_SETUP -#line 83 "giscanner/scannerlexer.l" +#line 83 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* Ignore whitespace. */ } YY_BREAK case 4: YY_RULE_SETUP -#line 85 "giscanner/scannerlexer.l" +#line 85 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { parse_comment(scanner); } YY_BREAK case 5: YY_RULE_SETUP -#line 86 "giscanner/scannerlexer.l" +#line 86 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { parse_trigraph(scanner); } YY_BREAK case 6: YY_RULE_SETUP -#line 87 "giscanner/scannerlexer.l" +#line 87 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* Ignore C++ style comments. */ } YY_BREAK case 7: YY_RULE_SETUP -#line 89 "giscanner/scannerlexer.l" +#line 89 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { yyless (yyleng - 1); return FUNCTION_MACRO; } YY_BREAK case 8: YY_RULE_SETUP -#line 90 "giscanner/scannerlexer.l" +#line 90 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return OBJECT_MACRO; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP -#line 91 "giscanner/scannerlexer.l" +#line 91 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return IFDEF_GI_SCANNER; } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 92 "giscanner/scannerlexer.l" +#line 92 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return IFNDEF_GI_SCANNER; } YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 93 "giscanner/scannerlexer.l" +#line 93 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return IFNDEF_COND; } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP -#line 94 "giscanner/scannerlexer.l" +#line 94 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return IFDEF_COND; } YY_BREAK case 13: /* rule 13 can match eol */ YY_RULE_SETUP -#line 95 "giscanner/scannerlexer.l" +#line 95 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return IF_COND; } YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP -#line 96 "giscanner/scannerlexer.l" +#line 96 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return ELIF_COND; } YY_BREAK case 15: /* rule 15 can match eol */ YY_RULE_SETUP -#line 97 "giscanner/scannerlexer.l" +#line 97 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return ELSE_COND; } YY_BREAK case 16: /* rule 16 can match eol */ YY_RULE_SETUP -#line 98 "giscanner/scannerlexer.l" +#line 98 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; return ENDIF_COND; } YY_BREAK case 17: /* rule 17 can match eol */ YY_RULE_SETUP -#line 99 "giscanner/scannerlexer.l" +#line 99 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; /* Ignore pragma. */ } YY_BREAK case 18: /* rule 18 can match eol */ YY_RULE_SETUP -#line 101 "giscanner/scannerlexer.l" +#line 101 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; process_linemarks(scanner, FALSE); } YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP -#line 102 "giscanner/scannerlexer.l" +#line 102 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; process_linemarks(scanner, TRUE); } YY_BREAK case 20: YY_RULE_SETUP -#line 103 "giscanner/scannerlexer.l" +#line 103 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { } YY_BREAK case 21: YY_RULE_SETUP -#line 104 "giscanner/scannerlexer.l" +#line 104 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '{'; } YY_BREAK case 22: YY_RULE_SETUP -#line 105 "giscanner/scannerlexer.l" +#line 105 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '{'; } YY_BREAK case 23: YY_RULE_SETUP -#line 106 "giscanner/scannerlexer.l" +#line 106 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '}'; } YY_BREAK case 24: YY_RULE_SETUP -#line 107 "giscanner/scannerlexer.l" +#line 107 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '}'; } YY_BREAK case 25: YY_RULE_SETUP -#line 108 "giscanner/scannerlexer.l" +#line 108 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '['; } YY_BREAK case 26: YY_RULE_SETUP -#line 109 "giscanner/scannerlexer.l" +#line 109 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '['; } YY_BREAK case 27: YY_RULE_SETUP -#line 110 "giscanner/scannerlexer.l" +#line 110 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ']'; } YY_BREAK case 28: YY_RULE_SETUP -#line 111 "giscanner/scannerlexer.l" +#line 111 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ']'; } YY_BREAK case 29: YY_RULE_SETUP -#line 112 "giscanner/scannerlexer.l" +#line 112 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '('; } YY_BREAK case 30: YY_RULE_SETUP -#line 113 "giscanner/scannerlexer.l" +#line 113 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ')'; } YY_BREAK case 31: YY_RULE_SETUP -#line 114 "giscanner/scannerlexer.l" +#line 114 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ';'; } YY_BREAK case 32: YY_RULE_SETUP -#line 115 "giscanner/scannerlexer.l" +#line 115 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ':'; } YY_BREAK case 33: YY_RULE_SETUP -#line 116 "giscanner/scannerlexer.l" +#line 116 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ELLIPSIS; } YY_BREAK case 34: YY_RULE_SETUP -#line 117 "giscanner/scannerlexer.l" +#line 117 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '?'; } YY_BREAK case 35: YY_RULE_SETUP -#line 118 "giscanner/scannerlexer.l" +#line 118 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '.'; } YY_BREAK case 36: YY_RULE_SETUP -#line 119 "giscanner/scannerlexer.l" +#line 119 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '+'; } YY_BREAK case 37: YY_RULE_SETUP -#line 120 "giscanner/scannerlexer.l" +#line 120 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '-'; } YY_BREAK case 38: YY_RULE_SETUP -#line 121 "giscanner/scannerlexer.l" +#line 121 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '*'; } YY_BREAK case 39: YY_RULE_SETUP -#line 122 "giscanner/scannerlexer.l" +#line 122 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '/'; } YY_BREAK case 40: YY_RULE_SETUP -#line 123 "giscanner/scannerlexer.l" +#line 123 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '%'; } YY_BREAK case 41: YY_RULE_SETUP -#line 124 "giscanner/scannerlexer.l" +#line 124 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '^'; } YY_BREAK case 42: YY_RULE_SETUP -#line 125 "giscanner/scannerlexer.l" +#line 125 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '&'; } YY_BREAK case 43: YY_RULE_SETUP -#line 126 "giscanner/scannerlexer.l" +#line 126 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '|'; } YY_BREAK case 44: YY_RULE_SETUP -#line 127 "giscanner/scannerlexer.l" +#line 127 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '~'; } YY_BREAK case 45: YY_RULE_SETUP -#line 128 "giscanner/scannerlexer.l" +#line 128 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '!'; } YY_BREAK case 46: YY_RULE_SETUP -#line 129 "giscanner/scannerlexer.l" +#line 129 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '='; } YY_BREAK case 47: YY_RULE_SETUP -#line 130 "giscanner/scannerlexer.l" +#line 130 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '<'; } YY_BREAK case 48: YY_RULE_SETUP -#line 131 "giscanner/scannerlexer.l" +#line 131 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return '>'; } YY_BREAK case 49: YY_RULE_SETUP -#line 132 "giscanner/scannerlexer.l" +#line 132 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ADDEQ; } YY_BREAK case 50: YY_RULE_SETUP -#line 133 "giscanner/scannerlexer.l" +#line 133 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SUBEQ; } YY_BREAK case 51: YY_RULE_SETUP -#line 134 "giscanner/scannerlexer.l" +#line 134 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return MULEQ; } YY_BREAK case 52: YY_RULE_SETUP -#line 135 "giscanner/scannerlexer.l" +#line 135 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return DIVEQ; } YY_BREAK case 53: YY_RULE_SETUP -#line 136 "giscanner/scannerlexer.l" +#line 136 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return MODEQ; } YY_BREAK case 54: YY_RULE_SETUP -#line 137 "giscanner/scannerlexer.l" +#line 137 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return XOREQ; } YY_BREAK case 55: YY_RULE_SETUP -#line 138 "giscanner/scannerlexer.l" +#line 138 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ANDEQ; } YY_BREAK case 56: YY_RULE_SETUP -#line 139 "giscanner/scannerlexer.l" +#line 139 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return OREQ; } YY_BREAK case 57: YY_RULE_SETUP -#line 140 "giscanner/scannerlexer.l" +#line 140 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SL; } YY_BREAK case 58: YY_RULE_SETUP -#line 141 "giscanner/scannerlexer.l" +#line 141 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SR; } YY_BREAK case 59: YY_RULE_SETUP -#line 142 "giscanner/scannerlexer.l" +#line 142 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SLEQ; } YY_BREAK case 60: YY_RULE_SETUP -#line 143 "giscanner/scannerlexer.l" +#line 143 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SREQ; } YY_BREAK case 61: YY_RULE_SETUP -#line 144 "giscanner/scannerlexer.l" +#line 144 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return EQ; } YY_BREAK case 62: YY_RULE_SETUP -#line 145 "giscanner/scannerlexer.l" +#line 145 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return NOTEQ; } YY_BREAK case 63: YY_RULE_SETUP -#line 146 "giscanner/scannerlexer.l" +#line 146 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return LTEQ; } YY_BREAK case 64: YY_RULE_SETUP -#line 147 "giscanner/scannerlexer.l" +#line 147 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return GTEQ; } YY_BREAK case 65: YY_RULE_SETUP -#line 148 "giscanner/scannerlexer.l" +#line 148 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ANDAND; } YY_BREAK case 66: YY_RULE_SETUP -#line 149 "giscanner/scannerlexer.l" +#line 149 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return OROR; } YY_BREAK case 67: YY_RULE_SETUP -#line 150 "giscanner/scannerlexer.l" +#line 150 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return PLUSPLUS; } YY_BREAK case 68: YY_RULE_SETUP -#line 151 "giscanner/scannerlexer.l" +#line 151 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return MINUSMINUS; } YY_BREAK case 69: YY_RULE_SETUP -#line 152 "giscanner/scannerlexer.l" +#line 152 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ','; } YY_BREAK case 70: YY_RULE_SETUP -#line 153 "giscanner/scannerlexer.l" +#line 153 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ARROW; } YY_BREAK case 71: YY_RULE_SETUP -#line 155 "giscanner/scannerlexer.l" +#line 155 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 72: YY_RULE_SETUP -#line 156 "giscanner/scannerlexer.l" +#line 156 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 73: YY_RULE_SETUP -#line 157 "giscanner/scannerlexer.l" +#line 157 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 74: YY_RULE_SETUP -#line 158 "giscanner/scannerlexer.l" +#line 158 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 75: YY_RULE_SETUP -#line 159 "giscanner/scannerlexer.l" +#line 159 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 76: YY_RULE_SETUP -#line 160 "giscanner/scannerlexer.l" +#line 160 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 77: YY_RULE_SETUP -#line 161 "giscanner/scannerlexer.l" +#line 161 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 78: YY_RULE_SETUP -#line 162 "giscanner/scannerlexer.l" +#line 162 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return CONST; } YY_BREAK case 79: YY_RULE_SETUP -#line 163 "giscanner/scannerlexer.l" +#line 163 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return EXTENSION; } YY_BREAK case 80: YY_RULE_SETUP -#line 164 "giscanner/scannerlexer.l" +#line 164 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INLINE; } YY_BREAK case 81: YY_RULE_SETUP -#line 165 "giscanner/scannerlexer.l" +#line 165 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INLINE; } YY_BREAK case 82: YY_RULE_SETUP -#line 166 "giscanner/scannerlexer.l" +#line 166 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 83: YY_RULE_SETUP -#line 167 "giscanner/scannerlexer.l" +#line 167 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* Ignore */ } YY_BREAK case 84: YY_RULE_SETUP -#line 168 "giscanner/scannerlexer.l" +#line 168 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SIGNED; } YY_BREAK case 85: YY_RULE_SETUP -#line 169 "giscanner/scannerlexer.l" +#line 169 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SIGNED; } YY_BREAK case 86: YY_RULE_SETUP -#line 170 "giscanner/scannerlexer.l" +#line 170 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return RESTRICT; } YY_BREAK case 87: YY_RULE_SETUP -#line 171 "giscanner/scannerlexer.l" +#line 171 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return RESTRICT; } YY_BREAK case 88: YY_RULE_SETUP -#line 172 "giscanner/scannerlexer.l" +#line 172 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 89: YY_RULE_SETUP -#line 173 "giscanner/scannerlexer.l" +#line 173 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return VOLATILE; } YY_BREAK case 90: YY_RULE_SETUP -#line 174 "giscanner/scannerlexer.l" +#line 174 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return VOLATILE; } YY_BREAK case 91: YY_RULE_SETUP -#line 175 "giscanner/scannerlexer.l" +#line 175 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return BOOL; } YY_BREAK case 92: /* rule 92 can match eol */ YY_RULE_SETUP -#line 176 "giscanner/scannerlexer.l" +#line 176 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { ++lineno; /* Ignore */ } YY_BREAK case 93: YY_RULE_SETUP -#line 177 "giscanner/scannerlexer.l" +#line 177 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* Ignore */ } YY_BREAK case 94: YY_RULE_SETUP -#line 178 "giscanner/scannerlexer.l" +#line 178 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* Ignore */ } YY_BREAK case 95: YY_RULE_SETUP -#line 179 "giscanner/scannerlexer.l" +#line 179 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* Ignore */ } YY_BREAK case 96: YY_RULE_SETUP -#line 180 "giscanner/scannerlexer.l" +#line 180 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* ignore */ } YY_BREAK case 97: YY_RULE_SETUP -#line 181 "giscanner/scannerlexer.l" +#line 181 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { /* ignore */ } YY_BREAK case 98: YY_RULE_SETUP -#line 182 "giscanner/scannerlexer.l" +#line 182 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INT; } YY_BREAK case 99: YY_RULE_SETUP -#line 185 "giscanner/scannerlexer.l" +#line 185 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INTL_CONST; } YY_BREAK case 100: YY_RULE_SETUP -#line 186 "giscanner/scannerlexer.l" +#line 186 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INTUL_CONST; } YY_BREAK case 101: YY_RULE_SETUP -#line 188 "giscanner/scannerlexer.l" +#line 188 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return BOOLEAN; } YY_BREAK case 102: YY_RULE_SETUP -#line 189 "giscanner/scannerlexer.l" +#line 189 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return BOOLEAN; } YY_BREAK case 103: YY_RULE_SETUP -#line 190 "giscanner/scannerlexer.l" +#line 190 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return BOOLEAN; } YY_BREAK case 104: YY_RULE_SETUP -#line 191 "giscanner/scannerlexer.l" +#line 191 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return BOOLEAN; } YY_BREAK case 105: YY_RULE_SETUP -#line 193 "giscanner/scannerlexer.l" +#line 193 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (scanner->macro_scan) return check_identifier(scanner, yytext); else REJECT; } YY_BREAK case 106: YY_RULE_SETUP -#line 195 "giscanner/scannerlexer.l" +#line 195 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { if (!parse_ignored_macro()) REJECT; } YY_BREAK case 107: YY_RULE_SETUP -#line 196 "giscanner/scannerlexer.l" +#line 196 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return AUTO; } YY_BREAK case 108: YY_RULE_SETUP -#line 197 "giscanner/scannerlexer.l" +#line 197 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return BOOL; } YY_BREAK case 109: YY_RULE_SETUP -#line 198 "giscanner/scannerlexer.l" +#line 198 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return BREAK; } YY_BREAK case 110: YY_RULE_SETUP -#line 199 "giscanner/scannerlexer.l" +#line 199 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return CASE; } YY_BREAK case 111: YY_RULE_SETUP -#line 200 "giscanner/scannerlexer.l" +#line 200 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return CHAR; } YY_BREAK case 112: YY_RULE_SETUP -#line 201 "giscanner/scannerlexer.l" +#line 201 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return CONST; } YY_BREAK case 113: YY_RULE_SETUP -#line 202 "giscanner/scannerlexer.l" +#line 202 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return CONTINUE; } YY_BREAK case 114: YY_RULE_SETUP -#line 203 "giscanner/scannerlexer.l" +#line 203 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return DEFAULT; } YY_BREAK case 115: YY_RULE_SETUP -#line 204 "giscanner/scannerlexer.l" +#line 204 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return DO; } YY_BREAK case 116: YY_RULE_SETUP -#line 205 "giscanner/scannerlexer.l" +#line 205 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return DOUBLE; } YY_BREAK case 117: YY_RULE_SETUP -#line 206 "giscanner/scannerlexer.l" +#line 206 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ELSE; } YY_BREAK case 118: YY_RULE_SETUP -#line 207 "giscanner/scannerlexer.l" +#line 207 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return ENUM; } YY_BREAK case 119: YY_RULE_SETUP -#line 208 "giscanner/scannerlexer.l" +#line 208 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return EXTERN; } YY_BREAK case 120: YY_RULE_SETUP -#line 209 "giscanner/scannerlexer.l" +#line 209 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return FLOAT; } YY_BREAK case 121: YY_RULE_SETUP -#line 210 "giscanner/scannerlexer.l" +#line 210 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return FOR; } YY_BREAK case 122: YY_RULE_SETUP -#line 211 "giscanner/scannerlexer.l" +#line 211 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return GOTO; } YY_BREAK case 123: YY_RULE_SETUP -#line 212 "giscanner/scannerlexer.l" +#line 212 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return IF; } YY_BREAK case 124: YY_RULE_SETUP -#line 213 "giscanner/scannerlexer.l" +#line 213 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INLINE; } YY_BREAK case 125: YY_RULE_SETUP -#line 214 "giscanner/scannerlexer.l" +#line 214 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INT; } YY_BREAK case 126: YY_RULE_SETUP -#line 215 "giscanner/scannerlexer.l" +#line 215 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INT; } YY_BREAK case 127: YY_RULE_SETUP -#line 216 "giscanner/scannerlexer.l" +#line 216 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INT; } YY_BREAK case 128: YY_RULE_SETUP -#line 217 "giscanner/scannerlexer.l" +#line 217 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INT; } YY_BREAK case 129: YY_RULE_SETUP -#line 218 "giscanner/scannerlexer.l" +#line 218 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INT; } YY_BREAK case 130: YY_RULE_SETUP -#line 219 "giscanner/scannerlexer.l" +#line 219 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return LONG; } YY_BREAK case 131: YY_RULE_SETUP -#line 220 "giscanner/scannerlexer.l" +#line 220 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return REGISTER; } YY_BREAK case 132: YY_RULE_SETUP -#line 221 "giscanner/scannerlexer.l" +#line 221 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return RESTRICT; } YY_BREAK case 133: YY_RULE_SETUP -#line 222 "giscanner/scannerlexer.l" +#line 222 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return RETURN; } YY_BREAK case 134: YY_RULE_SETUP -#line 223 "giscanner/scannerlexer.l" +#line 223 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SHORT; } YY_BREAK case 135: YY_RULE_SETUP -#line 224 "giscanner/scannerlexer.l" +#line 224 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SIGNED; } YY_BREAK case 136: YY_RULE_SETUP -#line 225 "giscanner/scannerlexer.l" +#line 225 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SIZEOF; } YY_BREAK case 137: YY_RULE_SETUP -#line 226 "giscanner/scannerlexer.l" +#line 226 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return STATIC; } YY_BREAK case 138: YY_RULE_SETUP -#line 227 "giscanner/scannerlexer.l" +#line 227 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return STRUCT; } YY_BREAK case 139: YY_RULE_SETUP -#line 228 "giscanner/scannerlexer.l" +#line 228 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return SWITCH; } YY_BREAK case 140: YY_RULE_SETUP -#line 229 "giscanner/scannerlexer.l" +#line 229 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return TYPEDEF; } YY_BREAK case 141: YY_RULE_SETUP -#line 230 "giscanner/scannerlexer.l" +#line 230 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return UNION; } YY_BREAK case 142: YY_RULE_SETUP -#line 231 "giscanner/scannerlexer.l" +#line 231 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return UNSIGNED; } YY_BREAK case 143: YY_RULE_SETUP -#line 232 "giscanner/scannerlexer.l" +#line 232 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return VOID; } YY_BREAK case 144: YY_RULE_SETUP -#line 233 "giscanner/scannerlexer.l" +#line 233 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return VOLATILE; } YY_BREAK case 145: YY_RULE_SETUP -#line 234 "giscanner/scannerlexer.l" +#line 234 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return WHILE; } YY_BREAK case 146: YY_RULE_SETUP -#line 236 "giscanner/scannerlexer.l" +#line 236 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return check_identifier(scanner, yytext); } YY_BREAK case 147: YY_RULE_SETUP -#line 238 "giscanner/scannerlexer.l" +#line 238 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INTEGER; } YY_BREAK case 148: YY_RULE_SETUP -#line 239 "giscanner/scannerlexer.l" +#line 239 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INTEGER; } YY_BREAK case 149: YY_RULE_SETUP -#line 240 "giscanner/scannerlexer.l" +#line 240 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return INTEGER; } YY_BREAK case 150: YY_RULE_SETUP -#line 242 "giscanner/scannerlexer.l" +#line 242 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return FLOATING; } YY_BREAK case 151: YY_RULE_SETUP -#line 243 "giscanner/scannerlexer.l" +#line 243 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return FLOATING; } YY_BREAK case 152: /* rule 152 can match eol */ YY_RULE_SETUP -#line 245 "giscanner/scannerlexer.l" +#line 245 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return CHARACTER; } YY_BREAK case 153: /* rule 153 can match eol */ YY_RULE_SETUP -#line 246 "giscanner/scannerlexer.l" +#line 246 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return CHARACTER; } YY_BREAK case 154: /* rule 154 can match eol */ YY_RULE_SETUP -#line 248 "giscanner/scannerlexer.l" +#line 248 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return STRING; } YY_BREAK case 155: /* rule 155 can match eol */ YY_RULE_SETUP -#line 249 "giscanner/scannerlexer.l" +#line 249 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { return STRING; } YY_BREAK case 156: YY_RULE_SETUP -#line 251 "giscanner/scannerlexer.l" +#line 251 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" { print_error(scanner); } YY_BREAK case 157: YY_RULE_SETUP -#line 253 "giscanner/scannerlexer.l" +#line 253 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" ECHO; YY_BREAK -#line 2242 "scannerlexer.c" +#line 2219 "scannerlexer.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2381,9 +2358,9 @@ ECHO; */ static int yy_get_next_buffer (void) { - char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - char *source = (yytext_ptr); - yy_size_t number_to_move, i; + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -2412,7 +2389,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -2465,9 +2442,9 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); @@ -2486,8 +2463,8 @@ static int yy_get_next_buffer (void) static yy_state_type yy_get_previous_state (void) { - yy_state_type yy_current_state; - char *yy_cp; + register yy_state_type yy_current_state; + register char *yy_cp; yy_current_state = (yy_start); @@ -2496,7 +2473,7 @@ static int yy_get_next_buffer (void) for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -2517,9 +2494,9 @@ static int yy_get_next_buffer (void) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { - int yy_is_jam; + register int yy_is_jam; - YY_CHAR yy_c = 1; + register YY_CHAR yy_c = 1; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -2534,10 +2511,6 @@ static int yy_get_next_buffer (void) return yy_is_jam ? 0 : yy_current_state; } -#ifndef YY_NO_UNPUT - -#endif - #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) @@ -2687,7 +2660,7 @@ static void yy_load_buffer_state (void) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - b->yy_buf_size = (yy_size_t)size; + b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. @@ -2842,7 +2815,7 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + num_to_alloc = 1; (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -2859,7 +2832,7 @@ static void yyensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - yy_size_t grow_size = 8 /* arbitrary grow size */; + int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc @@ -2967,7 +2940,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len static void yy_fatal_error (yyconst char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -3033,29 +3006,29 @@ char *yyget_text (void) } /** Set the current line number. - * @param _line_number line number + * @param line_number * */ -void yyset_lineno (int _line_number ) +void yyset_lineno (int line_number ) { - yylineno = _line_number; + yylineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param _in_str A readable stream. + * @param in_str A readable stream. * * @see yy_switch_to_buffer */ -void yyset_in (FILE * _in_str ) +void yyset_in (FILE * in_str ) { - yyin = _in_str ; + yyin = in_str ; } -void yyset_out (FILE * _out_str ) +void yyset_out (FILE * out_str ) { - yyout = _out_str ; + yyout = out_str ; } int yyget_debug (void) @@ -3063,9 +3036,9 @@ int yyget_debug (void) return yy_flex_debug; } -void yyset_debug (int _bdebug ) +void yyset_debug (int bdebug ) { - yy_flex_debug = _bdebug ; + yy_flex_debug = bdebug ; } static int yy_init_globals (void) @@ -3133,8 +3106,7 @@ int yylex_destroy (void) #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { - - int i; + register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } @@ -3143,7 +3115,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { - int n; + register int n; for ( n = 0; s[n]; ++n ) ; @@ -3153,12 +3125,11 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return (void *) malloc( size ); } void *yyrealloc (void * ptr, yy_size_t size ) { - /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -3171,12 +3142,12 @@ void *yyrealloc (void * ptr, yy_size_t size ) void yyfree (void * ptr ) { - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -#line 253 "giscanner/scannerlexer.l" +#line 253 "/home/fmuellner/src/gobject-introspection/giscanner/scannerlexer.l" diff --git a/scannerparser.c b/scannerparser.c index a1417b2..c07889e 100644 --- a/scannerparser.c +++ b/scannerparser.c @@ -62,7 +62,7 @@ /* Copy the first part of user declarations. */ -#line 29 "giscanner/scannerparser.y" /* yacc.c:339 */ +#line 29 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:339 */ #include #include @@ -442,7 +442,7 @@ extern int yydebug; union YYSTYPE { -#line 212 "giscanner/scannerparser.y" /* yacc.c:355 */ +#line 212 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:355 */ char *str; GList *list; @@ -2363,7 +2363,7 @@ yyreduce: switch (yyn) { case 2: -#line 305 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 305 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = g_hash_table_lookup (const_table, (yyvsp[0].str)); if ((yyval.symbol) == NULL) { @@ -2376,7 +2376,7 @@ yyreduce: break; case 3: -#line 314 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 314 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { char *rest; guint64 value; @@ -2396,7 +2396,7 @@ yyreduce: break; case 4: -#line 330 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 330 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_boolean_set = TRUE; @@ -2406,7 +2406,7 @@ yyreduce: break; case 5: -#line 336 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 336 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2416,7 +2416,7 @@ yyreduce: break; case 6: -#line 342 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 342 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_double_set = TRUE; @@ -2427,7 +2427,7 @@ yyreduce: break; case 8: -#line 350 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 350 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-1].symbol); } @@ -2435,7 +2435,7 @@ yyreduce: break; case 9: -#line 354 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 354 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2443,7 +2443,7 @@ yyreduce: break; case 10: -#line 362 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 362 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); yytext[strlen (yytext) - 1] = '\0'; @@ -2462,7 +2462,7 @@ yyreduce: break; case 11: -#line 377 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 377 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { char *strings, *string2; (yyval.symbol) = (yyvsp[-1].symbol); @@ -2477,7 +2477,7 @@ yyreduce: break; case 12: -#line 391 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 391 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.str) = g_strdup (yytext); } @@ -2485,7 +2485,7 @@ yyreduce: break; case 16: -#line 404 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 404 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2493,7 +2493,7 @@ yyreduce: break; case 17: -#line 408 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 408 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2501,7 +2501,7 @@ yyreduce: break; case 18: -#line 412 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 412 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2509,7 +2509,7 @@ yyreduce: break; case 19: -#line 416 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 416 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2517,7 +2517,7 @@ yyreduce: break; case 20: -#line 420 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 420 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2525,7 +2525,7 @@ yyreduce: break; case 21: -#line 424 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 424 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2533,7 +2533,7 @@ yyreduce: break; case 22: -#line 428 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 428 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2541,7 +2541,7 @@ yyreduce: break; case 26: -#line 441 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 441 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2549,7 +2549,7 @@ yyreduce: break; case 27: -#line 445 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 445 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2557,7 +2557,7 @@ yyreduce: break; case 28: -#line 449 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 449 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { switch ((yyvsp[-1].unary_operator)) { case UNARY_PLUS: @@ -2584,7 +2584,7 @@ yyreduce: break; case 29: -#line 472 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 472 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-1].symbol); if ((yyval.symbol)->const_int_set) { @@ -2595,7 +2595,7 @@ yyreduce: break; case 30: -#line 479 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 479 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-1].symbol); if ((yyval.symbol)->const_int_set) { @@ -2606,7 +2606,7 @@ yyreduce: break; case 31: -#line 486 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 486 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2614,7 +2614,7 @@ yyreduce: break; case 32: -#line 490 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 490 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { ctype_free ((yyvsp[-1].ctype)); (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); @@ -2623,7 +2623,7 @@ yyreduce: break; case 33: -#line 498 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 498 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.unary_operator) = UNARY_ADDRESS_OF; } @@ -2631,7 +2631,7 @@ yyreduce: break; case 34: -#line 502 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 502 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.unary_operator) = UNARY_POINTER_INDIRECTION; } @@ -2639,7 +2639,7 @@ yyreduce: break; case 35: -#line 506 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 506 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.unary_operator) = UNARY_PLUS; } @@ -2647,7 +2647,7 @@ yyreduce: break; case 36: -#line 510 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 510 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.unary_operator) = UNARY_MINUS; } @@ -2655,7 +2655,7 @@ yyreduce: break; case 37: -#line 514 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 514 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.unary_operator) = UNARY_BITWISE_COMPLEMENT; } @@ -2663,7 +2663,7 @@ yyreduce: break; case 38: -#line 518 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 518 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.unary_operator) = UNARY_LOGICAL_NEGATION; } @@ -2671,7 +2671,7 @@ yyreduce: break; case 40: -#line 526 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 526 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[0].symbol); if ((yyval.symbol)->const_int_set || (yyval.symbol)->const_double_set || (yyval.symbol)->const_string != NULL) { @@ -2684,7 +2684,7 @@ yyreduce: break; case 42: -#line 539 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 539 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2694,7 +2694,7 @@ yyreduce: break; case 43: -#line 545 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 545 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2706,7 +2706,7 @@ yyreduce: break; case 44: -#line 553 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 553 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2718,7 +2718,7 @@ yyreduce: break; case 46: -#line 565 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 565 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2728,7 +2728,7 @@ yyreduce: break; case 47: -#line 571 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 571 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2738,7 +2738,7 @@ yyreduce: break; case 49: -#line 581 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 581 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2754,7 +2754,7 @@ yyreduce: break; case 50: -#line 593 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 593 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2764,7 +2764,7 @@ yyreduce: break; case 52: -#line 603 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 603 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2774,7 +2774,7 @@ yyreduce: break; case 53: -#line 609 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 609 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2784,7 +2784,7 @@ yyreduce: break; case 54: -#line 615 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 615 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2794,7 +2794,7 @@ yyreduce: break; case 55: -#line 621 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 621 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2804,7 +2804,7 @@ yyreduce: break; case 57: -#line 631 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 631 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2814,7 +2814,7 @@ yyreduce: break; case 58: -#line 637 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 637 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2824,7 +2824,7 @@ yyreduce: break; case 60: -#line 647 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 647 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2834,7 +2834,7 @@ yyreduce: break; case 62: -#line 657 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 657 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2844,7 +2844,7 @@ yyreduce: break; case 64: -#line 667 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 667 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2854,7 +2854,7 @@ yyreduce: break; case 66: -#line 677 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 677 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2866,7 +2866,7 @@ yyreduce: break; case 68: -#line 689 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 689 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno); (yyval.symbol)->const_int_set = TRUE; @@ -2878,7 +2878,7 @@ yyreduce: break; case 70: -#line 701 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 701 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_get_const_boolean ((yyvsp[-4].symbol)) ? (yyvsp[-2].symbol) : (yyvsp[0].symbol); } @@ -2886,7 +2886,7 @@ yyreduce: break; case 72: -#line 709 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 709 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2894,7 +2894,7 @@ yyreduce: break; case 86: -#line 732 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 732 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -2902,7 +2902,7 @@ yyreduce: break; case 88: -#line 745 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 745 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GList *l; for (l = (yyvsp[-1].list); l != NULL; l = l->next) { @@ -2924,7 +2924,7 @@ yyreduce: break; case 89: -#line 763 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 763 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { ctype_free ((yyvsp[-1].ctype)); } @@ -2932,7 +2932,7 @@ yyreduce: break; case 90: -#line 770 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 770 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[0].ctype); (yyval.ctype)->storage_class_specifier |= (yyvsp[-1].storage_class_specifier); @@ -2941,7 +2941,7 @@ yyreduce: break; case 91: -#line 775 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 775 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_type_new (CTYPE_INVALID); (yyval.ctype)->storage_class_specifier |= (yyvsp[0].storage_class_specifier); @@ -2950,7 +2950,7 @@ yyreduce: break; case 92: -#line 780 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 780 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[-1].ctype); /* combine basic types like unsigned int and long long */ @@ -2967,7 +2967,7 @@ yyreduce: break; case 94: -#line 794 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 794 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[0].ctype); (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier); @@ -2976,7 +2976,7 @@ yyreduce: break; case 95: -#line 799 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 799 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_type_new (CTYPE_INVALID); (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier); @@ -2985,7 +2985,7 @@ yyreduce: break; case 96: -#line 804 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 804 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[0].ctype); (yyval.ctype)->function_specifier |= (yyvsp[-1].function_specifier); @@ -2994,7 +2994,7 @@ yyreduce: break; case 97: -#line 809 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 809 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_type_new (CTYPE_INVALID); (yyval.ctype)->function_specifier |= (yyvsp[0].function_specifier); @@ -3003,7 +3003,7 @@ yyreduce: break; case 98: -#line 817 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 817 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol)); } @@ -3011,7 +3011,7 @@ yyreduce: break; case 99: -#line 821 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 821 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol)); } @@ -3019,7 +3019,7 @@ yyreduce: break; case 102: -#line 833 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 833 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.storage_class_specifier) = STORAGE_CLASS_TYPEDEF; } @@ -3027,7 +3027,7 @@ yyreduce: break; case 103: -#line 837 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 837 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.storage_class_specifier) = STORAGE_CLASS_EXTERN; } @@ -3035,7 +3035,7 @@ yyreduce: break; case 104: -#line 841 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 841 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.storage_class_specifier) = STORAGE_CLASS_STATIC; } @@ -3043,7 +3043,7 @@ yyreduce: break; case 105: -#line 845 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 845 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.storage_class_specifier) = STORAGE_CLASS_AUTO; } @@ -3051,7 +3051,7 @@ yyreduce: break; case 106: -#line 849 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 849 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.storage_class_specifier) = STORAGE_CLASS_REGISTER; } @@ -3059,7 +3059,7 @@ yyreduce: break; case 107: -#line 856 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 856 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_type_new (CTYPE_VOID); } @@ -3067,7 +3067,7 @@ yyreduce: break; case 108: -#line 860 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 860 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("char"); } @@ -3075,7 +3075,7 @@ yyreduce: break; case 109: -#line 864 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 864 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("short"); } @@ -3083,7 +3083,7 @@ yyreduce: break; case 110: -#line 868 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 868 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("int"); } @@ -3091,7 +3091,7 @@ yyreduce: break; case 111: -#line 872 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 872 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("long"); } @@ -3099,7 +3099,7 @@ yyreduce: break; case 112: -#line 876 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 876 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("float"); } @@ -3107,7 +3107,7 @@ yyreduce: break; case 113: -#line 880 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 880 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("double"); } @@ -3115,7 +3115,7 @@ yyreduce: break; case 114: -#line 884 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 884 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("signed"); } @@ -3123,7 +3123,7 @@ yyreduce: break; case 115: -#line 888 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 888 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("unsigned"); } @@ -3131,7 +3131,7 @@ yyreduce: break; case 116: -#line 892 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 892 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_basic_type_new ("bool"); } @@ -3139,7 +3139,7 @@ yyreduce: break; case 119: -#line 898 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 898 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_typedef_new ((yyvsp[0].str)); g_free ((yyvsp[0].str)); @@ -3148,7 +3148,7 @@ yyreduce: break; case 120: -#line 906 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 906 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceSymbol *sym; (yyval.ctype) = (yyvsp[-4].ctype); @@ -3172,7 +3172,7 @@ yyreduce: break; case 121: -#line 926 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 926 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[-3].ctype); (yyval.ctype)->child_list = (yyvsp[-1].list); @@ -3181,7 +3181,7 @@ yyreduce: break; case 122: -#line 931 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 931 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[-1].ctype); (yyval.ctype)->name = (yyvsp[0].str); @@ -3190,7 +3190,7 @@ yyreduce: break; case 123: -#line 939 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 939 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { scanner->private = FALSE; (yyval.ctype) = gi_source_struct_new (NULL); @@ -3199,7 +3199,7 @@ yyreduce: break; case 124: -#line 944 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 944 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { scanner->private = FALSE; (yyval.ctype) = gi_source_union_new (NULL); @@ -3208,7 +3208,7 @@ yyreduce: break; case 126: -#line 953 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 953 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.list) = g_list_concat ((yyvsp[-1].list), (yyvsp[0].list)); } @@ -3216,7 +3216,7 @@ yyreduce: break; case 127: -#line 960 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 960 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GList *l; (yyval.list) = NULL; @@ -3237,7 +3237,7 @@ yyreduce: break; case 128: -#line 980 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 980 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[-1].ctype); (yyval.ctype)->base_type = (yyvsp[0].ctype); @@ -3246,7 +3246,7 @@ yyreduce: break; case 130: -#line 986 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 986 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = (yyvsp[0].ctype); (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier); @@ -3255,7 +3255,7 @@ yyreduce: break; case 131: -#line 991 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 991 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_type_new (CTYPE_INVALID); (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier); @@ -3264,7 +3264,7 @@ yyreduce: break; case 132: -#line 999 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 999 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol)); } @@ -3272,7 +3272,7 @@ yyreduce: break; case 133: -#line 1003 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1003 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol)); } @@ -3280,7 +3280,7 @@ yyreduce: break; case 134: -#line 1010 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1010 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -3288,7 +3288,7 @@ yyreduce: break; case 136: -#line 1015 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1015 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); } @@ -3296,7 +3296,7 @@ yyreduce: break; case 137: -#line 1019 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1019 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-2].symbol); if ((yyvsp[0].symbol)->const_int_set) { @@ -3308,7 +3308,7 @@ yyreduce: break; case 138: -#line 1030 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1030 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_enum_new ((yyvsp[-3].str)); (yyval.ctype)->child_list = (yyvsp[-1].list); @@ -3319,7 +3319,7 @@ yyreduce: break; case 139: -#line 1037 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1037 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_enum_new (NULL); (yyval.ctype)->child_list = (yyvsp[-1].list); @@ -3330,7 +3330,7 @@ yyreduce: break; case 140: -#line 1044 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1044 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_enum_new ((yyvsp[-4].str)); (yyval.ctype)->child_list = (yyvsp[-2].list); @@ -3341,7 +3341,7 @@ yyreduce: break; case 141: -#line 1051 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1051 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_enum_new (NULL); (yyval.ctype)->child_list = (yyvsp[-2].list); @@ -3352,7 +3352,7 @@ yyreduce: break; case 142: -#line 1058 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1058 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_enum_new ((yyvsp[0].str)); } @@ -3360,7 +3360,7 @@ yyreduce: break; case 143: -#line 1065 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1065 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { scanner->flags = FALSE; scanner->private = FALSE; @@ -3369,7 +3369,7 @@ yyreduce: break; case 144: -#line 1073 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1073 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { /* reset flag before the first enum value */ is_bitfield = FALSE; @@ -3378,7 +3378,7 @@ yyreduce: break; case 145: -#line 1078 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1078 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyvsp[0].symbol)->private = scanner->private; (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol)); @@ -3387,7 +3387,7 @@ yyreduce: break; case 146: -#line 1083 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1083 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyvsp[0].symbol)->private = scanner->private; (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol)); @@ -3396,7 +3396,7 @@ yyreduce: break; case 147: -#line 1091 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1091 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno); (yyval.symbol)->ident = (yyvsp[0].str); @@ -3408,7 +3408,7 @@ yyreduce: break; case 148: -#line 1099 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1099 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno); (yyval.symbol)->ident = (yyvsp[-2].str); @@ -3421,7 +3421,7 @@ yyreduce: break; case 149: -#line 1111 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1111 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.type_qualifier) = TYPE_QUALIFIER_CONST; } @@ -3429,7 +3429,7 @@ yyreduce: break; case 150: -#line 1115 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1115 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.type_qualifier) = TYPE_QUALIFIER_RESTRICT; } @@ -3437,7 +3437,7 @@ yyreduce: break; case 151: -#line 1119 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1119 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.type_qualifier) = TYPE_QUALIFIER_EXTENSION; } @@ -3445,7 +3445,7 @@ yyreduce: break; case 152: -#line 1123 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1123 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.type_qualifier) = TYPE_QUALIFIER_VOLATILE; } @@ -3453,7 +3453,7 @@ yyreduce: break; case 153: -#line 1130 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1130 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.function_specifier) = FUNCTION_INLINE; } @@ -3461,7 +3461,7 @@ yyreduce: break; case 154: -#line 1137 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1137 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[0].symbol); gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype)); @@ -3470,7 +3470,7 @@ yyreduce: break; case 156: -#line 1146 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1146 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); (yyval.symbol)->ident = (yyvsp[0].str); @@ -3479,7 +3479,7 @@ yyreduce: break; case 157: -#line 1151 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1151 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-1].symbol); } @@ -3487,7 +3487,7 @@ yyreduce: break; case 158: -#line 1155 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1155 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-3].symbol); gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol))); @@ -3496,7 +3496,7 @@ yyreduce: break; case 159: -#line 1160 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1160 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-2].symbol); gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL)); @@ -3505,7 +3505,7 @@ yyreduce: break; case 160: -#line 1165 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1165 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType *func = gi_source_function_new (); // ignore (void) parameter list @@ -3519,7 +3519,7 @@ yyreduce: break; case 161: -#line 1175 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1175 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType *func = gi_source_function_new (); func->child_list = (yyvsp[-1].list); @@ -3530,7 +3530,7 @@ yyreduce: break; case 162: -#line 1182 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1182 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType *func = gi_source_function_new (); (yyval.symbol) = (yyvsp[-2].symbol); @@ -3540,7 +3540,7 @@ yyreduce: break; case 163: -#line 1191 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1191 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_pointer_new (NULL); (yyval.ctype)->type_qualifier = (yyvsp[0].type_qualifier); @@ -3549,7 +3549,7 @@ yyreduce: break; case 164: -#line 1196 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1196 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.ctype) = gi_source_pointer_new (NULL); } @@ -3557,7 +3557,7 @@ yyreduce: break; case 165: -#line 1200 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1200 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType **base = &((yyvsp[0].ctype)->base_type); @@ -3572,7 +3572,7 @@ yyreduce: break; case 166: -#line 1211 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1211 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType **base = &((yyvsp[0].ctype)->base_type); @@ -3586,7 +3586,7 @@ yyreduce: break; case 168: -#line 1225 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1225 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier); } @@ -3594,7 +3594,7 @@ yyreduce: break; case 169: -#line 1232 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1232 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol)); } @@ -3602,7 +3602,7 @@ yyreduce: break; case 170: -#line 1236 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1236 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol)); } @@ -3610,7 +3610,7 @@ yyreduce: break; case 171: -#line 1243 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1243 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[0].symbol); gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype)); @@ -3619,7 +3619,7 @@ yyreduce: break; case 172: -#line 1248 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1248 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[0].symbol); gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype)); @@ -3628,7 +3628,7 @@ yyreduce: break; case 173: -#line 1253 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1253 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); (yyval.symbol)->base_type = (yyvsp[0].ctype); @@ -3637,7 +3637,7 @@ yyreduce: break; case 174: -#line 1258 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1258 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_ELLIPSIS, scanner->current_file, lineno); } @@ -3645,7 +3645,7 @@ yyreduce: break; case 175: -#line 1265 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1265 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); sym->ident = (yyvsp[0].str); @@ -3655,7 +3655,7 @@ yyreduce: break; case 176: -#line 1271 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1271 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); sym->ident = (yyvsp[0].str); @@ -3665,7 +3665,7 @@ yyreduce: break; case 179: -#line 1285 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1285 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[0].ctype)); @@ -3674,7 +3674,7 @@ yyreduce: break; case 181: -#line 1291 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1291 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[0].symbol); gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype)); @@ -3683,7 +3683,7 @@ yyreduce: break; case 182: -#line 1299 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1299 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-1].symbol); } @@ -3691,7 +3691,7 @@ yyreduce: break; case 183: -#line 1303 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1303 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL)); @@ -3700,7 +3700,7 @@ yyreduce: break; case 184: -#line 1308 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1308 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol))); @@ -3709,7 +3709,7 @@ yyreduce: break; case 185: -#line 1313 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1313 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-2].symbol); gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL)); @@ -3718,7 +3718,7 @@ yyreduce: break; case 186: -#line 1318 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1318 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.symbol) = (yyvsp[-3].symbol); gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol))); @@ -3727,7 +3727,7 @@ yyreduce: break; case 187: -#line 1323 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1323 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType *func = gi_source_function_new (); (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno); @@ -3737,7 +3737,7 @@ yyreduce: break; case 188: -#line 1329 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1329 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType *func = gi_source_function_new (); // ignore (void) parameter list @@ -3751,7 +3751,7 @@ yyreduce: break; case 189: -#line 1339 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1339 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType *func = gi_source_function_new (); (yyval.symbol) = (yyvsp[-2].symbol); @@ -3761,7 +3761,7 @@ yyreduce: break; case 190: -#line 1345 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1345 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { GISourceType *func = gi_source_function_new (); // ignore (void) parameter list @@ -3775,7 +3775,7 @@ yyreduce: break; case 191: -#line 1358 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1358 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.str) = g_strdup (yytext); } @@ -3783,7 +3783,7 @@ yyreduce: break; case 241: -#line 1465 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1465 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.str) = g_strdup (yytext + strlen ("#define ")); } @@ -3791,7 +3791,7 @@ yyreduce: break; case 242: -#line 1472 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1472 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { (yyval.str) = g_strdup (yytext + strlen ("#define ")); } @@ -3799,7 +3799,7 @@ yyreduce: break; case 244: -#line 1483 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1483 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { if ((yyvsp[0].symbol)->const_int_set || (yyvsp[0].symbol)->const_boolean_set || (yyvsp[0].symbol)->const_double_set || (yyvsp[0].symbol)->const_string != NULL) { (yyvsp[0].symbol)->ident = (yyvsp[-1].str); @@ -3811,7 +3811,7 @@ yyreduce: break; case 245: -#line 1494 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1494 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { push_conditional (scanner, FOR_GI_SCANNER); update_skipping (scanner); @@ -3820,7 +3820,7 @@ yyreduce: break; case 246: -#line 1499 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1499 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { push_conditional (scanner, NOT_GI_SCANNER); update_skipping (scanner); @@ -3829,7 +3829,7 @@ yyreduce: break; case 247: -#line 1504 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1504 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { warn_if_cond_has_gi_scanner (scanner, yytext); push_conditional (scanner, IRRELEVANT); @@ -3838,7 +3838,7 @@ yyreduce: break; case 248: -#line 1509 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1509 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { warn_if_cond_has_gi_scanner (scanner, yytext); push_conditional (scanner, IRRELEVANT); @@ -3847,7 +3847,7 @@ yyreduce: break; case 249: -#line 1514 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1514 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { warn_if_cond_has_gi_scanner (scanner, yytext); push_conditional (scanner, IRRELEVANT); @@ -3856,7 +3856,7 @@ yyreduce: break; case 250: -#line 1519 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1519 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { warn_if_cond_has_gi_scanner (scanner, yytext); pop_conditional (scanner); @@ -3867,7 +3867,7 @@ yyreduce: break; case 251: -#line 1526 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1526 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { toggle_conditional (scanner); update_skipping (scanner); @@ -3876,7 +3876,7 @@ yyreduce: break; case 252: -#line 1531 "giscanner/scannerparser.y" /* yacc.c:1646 */ +#line 1531 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1646 */ { pop_conditional (scanner); update_skipping (scanner); @@ -4113,7 +4113,7 @@ yyreturn: #endif return yyresult; } -#line 1544 "giscanner/scannerparser.y" /* yacc.c:1906 */ +#line 1544 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1906 */ static void yyerror (GISourceScanner *scanner, const char *s) diff --git a/scannerparser.h b/scannerparser.h index 7e82e05..b886761 100644 --- a/scannerparser.h +++ b/scannerparser.h @@ -208,7 +208,7 @@ extern int yydebug; union YYSTYPE { -#line 212 "giscanner/scannerparser.y" /* yacc.c:1909 */ +#line 212 "/home/fmuellner/src/gobject-introspection/giscanner/scannerparser.y" /* yacc.c:1909 */ char *str; GList *list; diff --git a/tests/Makefile.in b/tests/Makefile.in index 3dd867f..3931f57 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -604,7 +604,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/tests/gi-tester b/tests/gi-tester index 51199dd..26e2259 100755 --- a/tests/gi-tester +++ b/tests/gi-tester @@ -19,19 +19,19 @@ case $targetname in exit 0 ;; *-C) - diff -r -u -w -B -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase} + diff -r -u -w -I '^\s*$' -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase} exit $? ;; *-Python) - diff -r -u -w -B -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase} + diff -r -u -w -I '^\s*$' -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase} exit $? ;; *-Gjs) - diff -r -u -w -B -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase} + diff -r -u -w -I '^\s*$' -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase} exit $? ;; *-sections.txt) - diff -u -w -B -U 10 ${srcdir}/${targetname::-4}-expected.txt ${builddir}/${targetname} + diff -u -w -I '^\s*$' -U 10 ${srcdir}/${targetname::-4}-expected.txt ${builddir}/${targetname} exit $? ;; *.py) diff --git a/tests/offsets/Makefile.in b/tests/offsets/Makefile.in index bc838a6..f2f92eb 100644 --- a/tests/offsets/Makefile.in +++ b/tests/offsets/Makefile.in @@ -605,7 +605,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/tests/repository/Makefile.in b/tests/repository/Makefile.in index 2f97f08..57f99a5 100644 --- a/tests/repository/Makefile.in +++ b/tests/repository/Makefile.in @@ -567,7 +567,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/tests/scanner/Makefile.in b/tests/scanner/Makefile.in index 61499de..3c1d1fc 100644 --- a/tests/scanner/Makefile.in +++ b/tests/scanner/Makefile.in @@ -706,7 +706,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-None.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-None.page new file mode 100644 index 0000000..45f06a9 --- /dev/null +++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-None.page @@ -0,0 +1,14 @@ + + + + + + Regress.AnonymousUnionAndStruct->None + + + diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-x.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-x.page new file mode 100644 index 0000000..1f2f8f0 --- /dev/null +++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct-x.page @@ -0,0 +1,14 @@ + + + + + + Regress.AnonymousUnionAndStruct->x + + + diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct.page b/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct.page new file mode 100644 index 0000000..e9b8ae7 --- /dev/null +++ b/tests/scanner/Regress-1.0-C-expected/Regress.AnonymousUnionAndStruct.page @@ -0,0 +1,35 @@ + + + + + + Regress.AnonymousUnionAndStruct + + + + Constructors + + + Methods + + + Static Functions + + + Fields + + + Other + + diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct-x.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct-x.page new file mode 100644 index 0000000..44f120a --- /dev/null +++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct-x.page @@ -0,0 +1,18 @@ + + + + + x + + Regress.AnonymousUnionAndStruct.x + +AnonymousUnionAndStruct.x: Number(gint) (Read / Write) + + + + diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct.page new file mode 100644 index 0000000..915dd53 --- /dev/null +++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.AnonymousUnionAndStruct.page @@ -0,0 +1,42 @@ + + + + + + Regress.AnonymousUnionAndStruct + +const Regress = imports.gi.Regress; + +let anonymousUnionAndStruct = new Regress.AnonymousUnionAndStruct({ + x: value +}); + + + + + Constructors + + + Methods + + + Static Functions + + + Fields + + + Other + + diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-None.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-None.page new file mode 100644 index 0000000..45f06a9 --- /dev/null +++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-None.page @@ -0,0 +1,14 @@ + + + + + + Regress.AnonymousUnionAndStruct->None + + + diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-x.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-x.page new file mode 100644 index 0000000..1f2f8f0 --- /dev/null +++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct-x.page @@ -0,0 +1,14 @@ + + + + + + Regress.AnonymousUnionAndStruct->x + + + diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct.page b/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct.page new file mode 100644 index 0000000..1dab19a --- /dev/null +++ b/tests/scanner/Regress-1.0-Python-expected/Regress.AnonymousUnionAndStruct.page @@ -0,0 +1,40 @@ + + + + + + Regress.AnonymousUnionAndStruct + +from gi.repository import Regress + +anonymous_union_and_struct = Regress.AnonymousUnionAndStruct() + + + + + Constructors + + + Methods + + + Static Functions + + + Fields + + + Other + + diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir index 658b17f..2dca2f2 100644 --- a/tests/scanner/Regress-1.0-expected.gir +++ b/tests/scanner/Regress-1.0-expected.gir @@ -910,6 +910,28 @@ it says it's pointer but it's actually a string. + + + + + + + + + + + + + + + + + + + + diff --git a/tests/scanner/annotationparser/Makefile.in b/tests/scanner/annotationparser/Makefile.in index 58b4be6..a224419 100644 --- a/tests/scanner/annotationparser/Makefile.in +++ b/tests/scanner/annotationparser/Makefile.in @@ -507,7 +507,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h index c110690..1abd610 100644 --- a/tests/scanner/regress.h +++ b/tests/scanner/regress.h @@ -1449,6 +1449,19 @@ typedef struct { }; } RegressAnAnonymousUnion; +typedef struct { + int x; + + union { + struct { + RegressLikeGnomeKeyringPasswordSchema *a; + RegressLikeXklConfigItem *b; + }; + + guint padding[4]; + }; +} RegressAnonymousUnionAndStruct; + GVariant * regress_get_variant (void); diff --git a/tests/warn/Makefile.in b/tests/warn/Makefile.in index 2416c14..13e2ccd 100644 --- a/tests/warn/Makefile.in +++ b/tests/warn/Makefile.in @@ -506,7 +506,6 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/tools/g-ir-inspect.c b/tools/g-ir-inspect.c new file mode 100644 index 0000000..7223af1 --- /dev/null +++ b/tools/g-ir-inspect.c @@ -0,0 +1,133 @@ +/* GObject introspection: typelib inspector + * + * Copyright (C) 2011-2016 Dominique Leuenberger + * Copyright © 2016 Igor Gnatenko + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include +#include +#include + +static void +print_shlibs (const gchar *namespace) +{ + guint i = 0; + + /* Finding the shared library we depend on (if any) */ + const gchar *shlibs = g_irepository_get_shared_library (NULL, namespace); + if (shlibs && shlibs[0] != '\0') + { + /* shlibs is a comma-separated list of libraries */ + GStrv libs = g_strsplit (shlibs, ",", -1); + for (i = 0; libs[i]; i++) + g_print ("shlib: %s\n", libs[i]); + g_strfreev (libs); + } +} + +static void +print_typelibs (const gchar *namespace) +{ + guint i = 0; + + /* Finding all the typelib-based Requires */ + GStrv deps = g_irepository_get_dependencies (NULL, namespace); + if (deps) + { + for (i = 0; deps[i]; i++) + g_print ("typelib: %s\n", deps[i]); + g_strfreev (deps); + } +} + +gint +main (gint argc, + gchar *argv[]) +{ + gint status = EXIT_SUCCESS; + + GError *error = NULL; + GITypelib *typelib = NULL; + + gchar *version = NULL; + gboolean opt_shlibs = FALSE; + gboolean opt_typelibs = FALSE; + GStrv namespaces = NULL; + const gchar *namespace = NULL; + const GOptionEntry options[] = { + { "version", 0, 0, G_OPTION_ARG_STRING, &version, "Version", "VERSION" }, + { "print-shlibs", 0, 0, G_OPTION_ARG_NONE, &opt_shlibs, "List the shared libraries the typelib requires" }, + { "print-typelibs", 0, 0, G_OPTION_ARG_NONE, &opt_typelibs, "List other typelibs the inspected typelib requires" }, + { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &namespaces, "The typelib to inspect", "NAMESPACE" }, + { NULL }, + }; + + g_autoptr(GOptionContext) context = g_option_context_new ("- Inspect GI typelib"); + g_option_context_add_main_entries (context, options, NULL); + if (!g_option_context_parse (context, &argc, &argv, &error)) + { + status = EXIT_FAILURE; + g_printerr ("Failed to parse command line options: %s\n", error->message); + goto out; + } + + if (!namespaces) + { + status = EXIT_FAILURE; + g_printerr ("Please specify at least one namespace\n"); + goto out; + } + + if (g_strv_length (namespaces) > 1) + { + status = EXIT_FAILURE; + g_printerr ("Please specify only one namespace\n"); + goto out; + } + namespace = namespaces[0]; + + if (!opt_shlibs && !opt_typelibs) + { + status = EXIT_FAILURE; + g_printerr ("Please specify --print-shlibs, --print-typelibs or both.\n"); + goto out; + } + + typelib = g_irepository_require (NULL, namespace, version, 0, &error); + if (!typelib) + { + status = EXIT_FAILURE; + g_printerr ("Failed to load typelib: %s\n", error->message); + goto out; + } + + if (opt_shlibs) + print_shlibs (namespace); + if (opt_typelibs) + print_typelibs (namespace); + +out: + if (error) + g_error_free (error); + if (typelib) + g_typelib_free (typelib); + g_strfreev (namespaces); + g_free (version); + + return status; +} -- 2.7.4